diff options
author | Maciej W. Rozycki <macro@codesourcery.com> | 2013-05-16 23:33:55 +0100 |
---|---|---|
committer | Maciej W. Rozycki <macro@codesourcery.com> | 2013-05-16 23:33:55 +0100 |
commit | 2848b105856e49d98f3c5026b6d8d790f9723c0c (patch) | |
tree | 66e6cc9d3c1c6d95324e50ceb1140d0eed52ec37 /ports/sysdeps/mips/mips64 | |
parent | c58b274f01658400ba75886b04cb044ba9467a94 (diff) | |
download | glibc-2848b105856e49d98f3c5026b6d8d790f9723c0c.tar.gz glibc-2848b105856e49d98f3c5026b6d8d790f9723c0c.tar.xz glibc-2848b105856e49d98f3c5026b6d8d790f9723c0c.zip |
MIPS: soft-fp NaN representation corrections
[BZ #15442] This adds support for the inverse interpretation of the quiet bit of IEEE 754 floating-point NaN data that some processors use. This includes in particular MIPS architecture processors; the payload used for the canonical qNaN encoding is updated accordingly so as not to interfere with the quiet bit.
Diffstat (limited to 'ports/sysdeps/mips/mips64')
-rw-r--r-- | ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h b/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h index c81067dfd7..1bdde5ace8 100644 --- a/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h +++ b/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h @@ -17,14 +17,16 @@ #define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_1_udiv_norm(D,R,X,Y) #define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y) -#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1) -#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1) -#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1 +#define _FP_NANFRAC_S (_FP_QNANBIT_S - 1) +#define _FP_NANFRAC_D (_FP_QNANBIT_D - 1) +#define _FP_NANFRAC_Q (_FP_QNANBIT_Q - 1), -1 #define _FP_NANSIGN_S 0 #define _FP_NANSIGN_D 0 #define _FP_NANSIGN_Q 0 #define _FP_KEEPNANFRACP 1 +#define _FP_QNANNEGATEDP 1 + /* From my experiments it seems X is chosen unless one of the NaNs is sNaN, in which case the result is NANSIGN/NANFRAC. */ #define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \ |