mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* bug in generic math-emu
@ 2001-02-19 19:18 schwidefsky
  0 siblings, 0 replies; only message in thread
From: schwidefsky @ 2001-02-19 19:18 UTC (permalink / raw)
  To: linux-kernel



Hi,
I found a bug in the generic floating point emulation code. The glibc
math testcases showed errors for the nearbyint(0.5) test. The problem
is in the _FP_FRAC_SRS_2 macro. The expression to find out if some 1
bits have been shifted out is wrong. Try the _FP_FRAC_SRS_2 macro
with the following parameters: X_f1 = 0x00800000, X_f0 = 0x00000000,
N = 53, sz = 56. It comes back with 0x0000000000000005 instead of
0x0000000000000004. Now you can do the math ;-)
With the following patch test-float and test-double (both from glibc)
now run without errors on a S/390 without IEEE fpu.

diff -u -r1.1.1.1 op-2.h
--- include/math-emu/op-2.h   2000/02/04 13:53:47  1.1.1.1
+++ include/math-emu/op-2.h   2001/02/19 18:53:41
@@ -79,7 +79,7 @@
     else                                     \
       {                                           \
     X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) |                \
-           (((X##_f1 << (sz - (N))) | X##_f0) != 0));       \
+           (((X##_f1 << (2*_FP_W_TYPE_SIZE - (N))) | X##_f0) != 0)); \
     X##_f1 = 0;                                   \
       }                                           \
   } while (0)


blue skies,
   Martin

Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-02-19 19:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-02-19 19:18 bug in generic math-emu schwidefsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®