]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles to memory.
authorRichard Henderson <rth@cygnus.com>
Mon, 28 Jun 1999 04:18:34 +0000 (22:18 -0600)
committerJeff Law <law@gcc.gnu.org>
Mon, 28 Jun 1999 04:18:34 +0000 (22:18 -0600)
P
        * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
        to memory.

From-SVN: r27803

gcc/config/m68k/m68k.h

index 268b639d8b73793c001aae7ea00df42be56a442e..8152cddb8b5bc7a3378ccd47a920ed4d2cef1d07 100644 (file)
@@ -772,23 +772,19 @@ extern enum reg_class regno_reg_class[];
    in some cases it is preferable to use a more restrictive class.
    On the 68000 series, use a data reg if possible when the
    value is a constant in the range where moveq could be used
-   and we ensure that QImodes are reloaded into data regs.
-   Also, if a floating constant needs reloading, put it in memory.
-   Don't do this for !G constants, since all patterns in the md file
-   expect them to be loaded into a register via fpmovecr.  See above.  */
-
-#define PREFERRED_RELOAD_CLASS(X,CLASS)  \
-  ((GET_CODE (X) == CONST_INT                  \
-    && (unsigned) (INTVAL (X) + 0x80) < 0x100  \
-    && (CLASS) != ADDR_REGS)                   \
-   ? DATA_REGS                                 \
-   : (GET_MODE (X) == QImode && (CLASS) != ADDR_REGS) \
-   ? DATA_REGS                                 \
-   : (GET_CODE (X) == CONST_DOUBLE             \
-      && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \
-   ? (! CONST_DOUBLE_OK_FOR_LETTER_P (X, 'G')  \
-      && (CLASS == FP_REGS || CLASS == DATA_OR_FP_REGS) \
-      ? FP_REGS : NO_REGS)                     \
+   and we ensure that QImodes are reloaded into data regs.  */
+
+#define PREFERRED_RELOAD_CLASS(X,CLASS)                                        \
+  ((GET_CODE (X) == CONST_INT                                          \
+    && (unsigned) (INTVAL (X) + 0x80) < 0x100                          \
+    && (CLASS) != ADDR_REGS)                                           \
+   ? DATA_REGS                                                         \
+   : (GET_MODE (X) == QImode && (CLASS) != ADDR_REGS)                  \
+   ? DATA_REGS                                                         \
+   : (GET_CODE (X) == CONST_DOUBLE                                     \
+      && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT)                  \
+   ? (TARGET_68881 && (CLASS == FP_REGS || CLASS == DATA_OR_FP_REGS)   \
+      ? FP_REGS : NO_REGS)                                             \
    : (CLASS))
 
 /* Force QImode output reloads from subregs to be allocated to data regs,