OSDN Git Service

* c-common.c (signed_or_unsigned_type): Handle machine mode types
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Sep 2001 22:14:43 +0000 (22:14 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Sep 2001 22:14:43 +0000 (22:14 +0000)
        which have no corresponding C type.
        * fold_const.c (target_isinf,target_isnan,target_negative): Update
        the representation of 64-bit doubles to work with 64-bit ints.

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

gcc/ChangeLog
gcc/c-common.c
gcc/fold-const.c

index cc838bc..75d8514 100644 (file)
@@ -1,7 +1,14 @@
-2001-09-06  Aldy Hernandez  <aldyh@redhat.com>
+2001-09-07  Roman Lechtchinsky  <rl@cs.tu-berlin.de>
+
+       * c-common.c (signed_or_unsigned_type): Handle machine mode types
+       which have no corresponding C type.
+       * fold_const.c (target_isinf,target_isnan,target_negative): Update
+       the representation of 64-bit doubles to work with 64-bit ints.
+
+2001-09-07  Aldy Hernandez  <aldyh@redhat.com>
 
-       * config/mips/mips.c (override_options): Do not override ISA when ABI
-        specified if MIPS_CPU_STRING_DEFAULT was specified.
+       * config/mips/mips.c (override_options): Do not override ISA when ABI
+       specified if MIPS_CPU_STRING_DEFAULT was specified.
 
 2001-09-07  Richard Henderson  <rth@redhat.com>
 
@@ -111,7 +118,7 @@ Thu Sep  6 11:16:35 2001  Jeffrey A Law  (law@cygnus.com)
 
 2001-09-05  Ziemowit Laski  <zlaski@apple.com>
 
-        * objc/objc-act.c (build_message_expr): If a class method cannot
+       * objc/objc-act.c (build_message_expr): If a class method cannot
        be found, do not issue a warning if a corresponding instance
        method exists in the root class.
 
index 84a9262..72b1417 100644 (file)
@@ -2071,6 +2071,20 @@ signed_or_unsigned_type (unsignedp, type)
   if (TYPE_PRECISION (type) == TYPE_PRECISION (widest_integer_literal_type_node))
     return (unsignedp ? widest_unsigned_literal_type_node
            : widest_integer_literal_type_node);
+
+#if HOST_BITS_PER_WIDE_INT >= 64
+  if (TYPE_PRECISION (type) == TYPE_PRECISION (intTI_type_node))
+    return unsignedp ? unsigned_intTI_type_node : intTI_type_node;
+#endif
+  if (TYPE_PRECISION (type) == TYPE_PRECISION (intDI_type_node))
+    return unsignedp ? unsigned_intDI_type_node : intDI_type_node;
+  if (TYPE_PRECISION (type) == TYPE_PRECISION (intSI_type_node))
+    return unsignedp ? unsigned_intSI_type_node : intSI_type_node;
+  if (TYPE_PRECISION (type) == TYPE_PRECISION (intHI_type_node))
+    return unsignedp ? unsigned_intHI_type_node : intHI_type_node;
+  if (TYPE_PRECISION (type) == TYPE_PRECISION (intQI_type_node))
+    return unsignedp ? unsigned_intQI_type_node : intQI_type_node;
+
   return type;
 }
 \f
index 90d9f16..7cefaea 100644 (file)
@@ -821,10 +821,10 @@ target_isinf (x)
       unsigned sign      :  1;
       unsigned exponent  : 11;
       unsigned mantissa1 : 20;
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
     } little_endian;
     struct {
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
       unsigned mantissa1 : 20;
       unsigned exponent  : 11;
       unsigned sign      :  1;
@@ -861,10 +861,10 @@ target_isnan (x)
       unsigned sign      :  1;
       unsigned exponent  : 11;
       unsigned mantissa1 : 20;
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
     } little_endian;
     struct {
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
       unsigned mantissa1 : 20;
       unsigned exponent  : 11;
       unsigned sign      :  1;
@@ -901,10 +901,10 @@ target_negative (x)
       unsigned sign      :  1;
       unsigned exponent  : 11;
       unsigned mantissa1 : 20;
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
     } little_endian;
     struct {
-      unsigned mantissa2;
+      unsigned mantissa2 : 32;
       unsigned mantissa1 : 20;
       unsigned exponent  : 11;
       unsigned sign      :  1;