OSDN Git Service

* emit-rtl.c (gen_lowpart_common): Remove earlier change.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Nov 1998 18:06:07 +0000 (18:06 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Nov 1998 18:06:07 +0000 (18:06 +0000)
        * real.c (make_nan): Make SIGN arg actually specify the sign bit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23874 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c
gcc/real.c

index 803fb78..22188d5 100644 (file)
@@ -1,3 +1,8 @@
+Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
+
+       * emit-rtl.c (gen_lowpart_common): Remove earlier change.
+       * real.c (make_nan): Make SIGN arg actually specify the sign bit.
+
 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
 
        * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
index 9a19de1..037269a 100644 (file)
@@ -781,9 +781,6 @@ gen_lowpart_common (mode, x)
 
       i = INTVAL (x);
       r = REAL_VALUE_FROM_TARGET_SINGLE (i);
-      /* Avoid changing the bit pattern of a NaN.  */
-      if (REAL_VALUE_ISNAN (r))
-       return 0;
       return CONST_DOUBLE_FROM_REAL_VALUE (r, mode);
     }
 #else
@@ -822,8 +819,6 @@ gen_lowpart_common (mode, x)
        i[0] = low, i[1] = high;
 
       r = REAL_VALUE_FROM_TARGET_DOUBLE (i);
-      if (REAL_VALUE_ISNAN (r))
-       return 0;
       return CONST_DOUBLE_FROM_REAL_VALUE (r, mode);
     }
 #else
index 7fac64d..d40a0f3 100644 (file)
@@ -6205,11 +6205,11 @@ make_nan (nan, sign, mode)
       abort ();
     }
   if (REAL_WORDS_BIG_ENDIAN)
-    *nan++ = (sign << 15) | *p++;
+    *nan++ = (sign << 15) | (*p++ & 0x7fff);
   while (--n != 0)
     *nan++ = *p++;
   if (! REAL_WORDS_BIG_ENDIAN)
-    *nan = (sign << 15) | *p;
+    *nan = (sign << 15) | (*p & 0x7fff);
 }
 
 /* This is the inverse of the function `etarsingle' invoked by