[PATCH] Fix rounding bug in emulation for double float operating
David Gibson
david at gibson.dropbear.id.au
Mon Dec 10 15:56:16 EST 2007
On Mon, Dec 10, 2007 at 01:00:52PM +0800, Liu Yu wrote:
>
> This patch fixes rounding bug in emulation for double float operating on PowerPC platform.
>
> When pack double float operand, it need to truncate the tail due to the limited precision.
> If the truncated part is not zero, the last bit of work bit (totally 3 bits) need to '|' 1.
>
> This patch is completed in _FP_FRAC_SRS_2(X,N,sz) (arch/powerpc/math-emu/op-2.h).
> Originally the code leftwards rotates the operand to just keep the truncated part,
> then check whether it is zero. However, the number it rotates is not correct when
> N is not smaller than _FP_W_TYPE_SIZE, and it will cause the work bit '|' 1 in the improper case.
>
> This patch fixes this issue.
>
> Signed-off-by: Liu Yu <b13201 at freescale.com>
Wow someone deciphered the hideous macro hell of the math emulation
code enough to fix a bug. I don't suppose you'd care to fix the
millions of warnings that the math-emu code generates...?
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
More information about the Linuxppc-dev
mailing list