qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Why some ARM NEON helper functions need mask?


From: Chih-Min Chao
Subject: Re: [Qemu-devel] Why some ARM NEON helper functions need mask?
Date: Mon, 31 Oct 2011 02:21:02 +0800

On Sun, Oct 30, 2011 at 7:39 PM, 陳韋任 <address@hidden> wrote:
> Hi, all
>
>  I am looking into QEMU's implementation for ARM NEON instructions
> (target-arm/neon_helper.c). Some helper functions will do mask
> operation, neon_add_u8, for example. I thought simply adding a and b
> is enough and can't figure out why the mask operation is needed.
>
> ---
> uint32_t HELPER(neon_add_u8)(uint32_t a, uint32_t b)
> {
>    uint32_t mask;
>    mask = (a ^ b) & 0x80808080u;
>    a &= ~0x80808080u;
>    b &= ~0x80808080u;
>    return (a + b) ^ mask;
> }
> ---
>
ex :

a =  0x01  01 01 01
b = 0xFF  FF FF FF

the expected result of a+ b is
0x0   0   0   0

simply add a to b is
0x1   1   1   0

>  Any help is appreciated.
>
> Regards,
> chenwj
>
> --
> Wei-Ren Chen (陳韋任)
> Computer Systems Lab, Institute of Information Science,
> Academia Sinica, Taiwan (R.O.C.)
> Tel:886-2-2788-3799 #1667
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]