This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

A missing __FLOAT_WORD_ORDER patch for sysdeps/ieee754/ieee754.h


Hi,

I have this patch applied to the Debian glibc sources for arm, and 
since I noticed other patches to use __FLOAT_WORD_ORDER were 
accepted, I was wondering why this one wasn't. Is there something 
wrong with it, or did it just slip through the cracks?

--- sysdeps/ieee754/ieee754.h
+++ sysdeps/ieee754/ieee754.h
@@ -80,11 +80,18 @@
  	unsigned int mantissa1:32;
  #endif				/* Big endian.  */
  #if	__BYTE_ORDER == __LITTLE_ENDIAN
+#if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+	unsigned int mantissa0:20;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+	unsigned int mantissa1:32;
+#else
  	/* Together these comprise the mantissa.  */
  	unsigned int mantissa1:32;
  	unsigned int mantissa0:20;
  	unsigned int exponent:11;
  	unsigned int negative:1;
+#endif
  #endif				/* Little endian.  */
        } ieee;
 
@@ -99,6 +106,13 @@
  	unsigned int mantissa0:19;
  	unsigned int mantissa1:32;
  #else
+#if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+	unsigned int mantissa0:19;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+	unsigned int mantissa1:32;
+#else
  	/* Together these comprise the mantissa.  */
  	unsigned int mantissa1:32;
  	unsigned int mantissa0:19;
@@ -106,6 +120,7 @@
  	unsigned int exponent:11;
  	unsigned int negative:1;
  #endif
+#endif
        } ieee_nan;
    };
 
@@ -127,12 +142,20 @@
  	unsigned int mantissa1:32;
  #endif
  #if	__BYTE_ORDER == __LITTLE_ENDIAN
+#if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+	unsigned int mantissa0:32;
+	unsigned int mantissa1:32;
+#else
  	unsigned int mantissa1:32;
  	unsigned int mantissa0:32;
  	unsigned int exponent:15;
  	unsigned int negative:1;
  	unsigned int empty:16;
  #endif
+#endif
        } ieee;
 
      /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
@@ -148,6 +171,15 @@
  	unsigned int mantissa1:32;
  #endif
  #if	__BYTE_ORDER == __LITTLE_ENDIAN
+#if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+	unsigned int quiet_nan:1;
+	unsigned int one:1;
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:30;
+#else
  	unsigned int mantissa1:32;
  	unsigned int mantissa0:30;
  	unsigned int quiet_nan:1;
@@ -155,6 +187,7 @@
  	unsigned int exponent:15;
  	unsigned int negative:1;
  	unsigned int empty:16;
+#endif
  #endif
        } ieee_nan;
    };
-- 
Joel Klecker (aka Espy)       <URL:mailto:espy@debian.org>
Debian Package Maintainer for the GNU C Library.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]