]> gcc.gnu.org Git - gcc.git/commitdiff
(mips_const_double_ok): Accept VOIDmode not DImode.
authorJim Wilson <wilson@gcc.gnu.org>
Sat, 19 Nov 1994 22:14:18 +0000 (14:14 -0800)
committerJim Wilson <wilson@gcc.gnu.org>
Sat, 19 Nov 1994 22:14:18 +0000 (14:14 -0800)
(mips_move_1word): Accept VOIDmode CONST_DOUBLE.

From-SVN: r8526

gcc/config/mips/mips.c

index e22b76b8e1111f4ec60d0b8ed1302f447050eed5..aab092e6d070bf62c241e616bc3db17f6b3cc17f 100644 (file)
@@ -478,7 +478,7 @@ mips_const_double_ok (op, mode)
   if (GET_CODE (op) != CONST_DOUBLE)
     return FALSE;
 
-  if (mode == DImode)
+  if (mode == VOIDmode)
     return TRUE;
 
   if (mode != SFmode && mode != DFmode)
@@ -1016,8 +1016,18 @@ mips_move_1word (operands, insn, unsignedp)
            }
        }
 
-      else if (code1 == CONST_INT)
+      else if (code1 == CONST_INT
+              || (code1 == CONST_DOUBLE
+                  && GET_MODE (op1) == VOIDmode))
        {
+         if (code1 == CONST_DOUBLE)
+           {
+             /* This can happen when storing constants into long long
+                 bitfields.  Just store the least significant word of
+                 the value.  */
+             operands[1] = op1 = GEN_INT (CONST_DOUBLE_LOW (op1));
+           }
+
          if (INTVAL (op1) == 0)
            {
              if (GP_REG_P (regno0))
This page took 0.072737 seconds and 5 git commands to generate.