Fix last change
authorMichael Meissner <meissner@gcc.gnu.org>
Wed, 10 Jul 1996 22:04:32 +0000 (22:04 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Wed, 10 Jul 1996 22:04:32 +0000 (22:04 +0000)
From-SVN: r12422

gcc/config/rs6000/rs6000.c

index 7b7896001b4920e9f0ecd23cf10873f3b693173d..921bc18664e86367e2f7c66b7ffc05510ead5d2c 100644 (file)
@@ -632,12 +632,19 @@ num_insns_constant (op, mode)
      rtx op;
      enum machine_mode mode;
 {
-  if (mode != SImode && mode != DImode && mode != SFmode && mode != DFmode)
-    abort ();
-
   if (GET_CODE (op) == CONST_INT)
     return num_insns_constant_wide (INTVAL (op));
 
+  else if (GET_CODE (op) == CONST_DOUBLE && mode == SFmode)
+    {
+      long l;
+      REAL_VALUE_TYPE rv;
+
+      REAL_VALUE_FROM_CONST_DOUBLE (rv, op);
+      REAL_VALUE_TO_TARGET_SINGLE (rv, l);
+      return num_insns_constant_wide ((HOST_WIDE_INT)l);
+    }
+
   else if (GET_CODE (op) == CONST_DOUBLE && TARGET_32BIT)
     return (num_insns_constant_wide (CONST_DOUBLE_LOW (op))
            + num_insns_constant_wide (CONST_DOUBLE_HIGH (op)));