]> gcc.gnu.org Git - gcc.git/commitdiff
(input_operand): Allow "easy" FP constants.
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 1 Sep 1993 22:41:28 +0000 (18:41 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 1 Sep 1993 22:41:28 +0000 (18:41 -0400)
From-SVN: r5241

gcc/config/rs6000/rs6000.c

index bad874af52adf4a9a9941770529f32f832749451..56cc6cdbb56243e1ac1d0687f82c6374fcd98a9f 100644 (file)
@@ -405,14 +405,21 @@ input_operand (op, mode)
      register rtx op;
      enum machine_mode mode;
 {
+  /* Memory is always valid.  */
   if (memory_operand (op, mode))
     return 1;
 
-  /* For floating-point or multi-word mode, only register or memory
-     is valid.  */
+  /* For floating-point, easy constants are valid.  */
+  if (GET_MODE_CLASS (mode) == MODE_FLOAT
+      && CONSTANT_P (op)
+      && easy_fp_constant (op, mode))
+    return 1;
+
+  /* For floating-point or multi-word mode, the only remaining valid type
+     is a register.  */
   if (GET_MODE_CLASS (mode) == MODE_FLOAT
       || GET_MODE_SIZE (mode) > UNITS_PER_WORD)
-    return gpc_reg_operand (op, mode);
+    return register_operand (op, mode);
 
   /* The only cases left are integral modes one word or smaller (we
      do not get called for MODE_CC values).  These can be in any
This page took 0.064043 seconds and 5 git commands to generate.