[Top][All Lists]
[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
>
>