bug-glibc
[Top][All Lists]
Advanced

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

fclearexcept() broken with xmm-instructions (latest CVS version)


From: Claus-Justus Heine
Subject: fclearexcept() broken with xmm-instructions (latest CVS version)
Date: Thu, 28 Aug 2003 14:22:25 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030806

Hi,

there is a little bug in sysdeps/i386/fpu/fclrexcpt.c, it's just a '&'<->'^' thing.

#############################################################################
--- sysdeps/i386/fpu/fclrexcpt.c.old    2003-08-28 13:21:45.000000000 +0200
+++ sysdeps/i386/fpu/fclrexcpt.c        2003-08-28 13:21:55.000000000 +0200
@@ -50,7 +50,7 @@
       __asm__ ("stmxcsr %0" : "=m" (*&xnew_exc));

       /* Clear the relevant bits.  */
-      xnew_exc &= excepts ^ FE_ALL_EXCEPT;
+      xnew_exc ^= excepts ^ FE_ALL_EXCEPT;

       /* Put the new data in effect.  */
       __asm__ ("ldmxcsr %0" : : "m" (*&xnew_exc));
#############################################################################

With "&" one clears the exception-mask bits in the mxcsr which is not intended, the ^ will work fine because "excepts" already has all bits cleared which do not belong to the exception status.

Regards

Claus
--- sysdeps/i386/fpu/fclrexcpt.c.old    2003-08-28 13:21:45.000000000 +0200
+++ sysdeps/i386/fpu/fclrexcpt.c        2003-08-28 13:21:55.000000000 +0200
@@ -50,7 +50,7 @@
       __asm__ ("stmxcsr %0" : "=m" (*&xnew_exc));
       
       /* Clear the relevant bits.  */
-      xnew_exc &= excepts ^ FE_ALL_EXCEPT;
+      xnew_exc ^= excepts ^ FE_ALL_EXCEPT;
       
       /* Put the new data in effect.  */
       __asm__ ("ldmxcsr %0" : : "m" (*&xnew_exc));

reply via email to

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