(LIMIT_RELOAD_CLASS): Define.
authorJim Wilson <wilson@gcc.gnu.org>
Wed, 25 Jun 1997 02:26:15 +0000 (19:26 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 25 Jun 1997 02:26:15 +0000 (19:26 -0700)
From-SVN: r14301

gcc/config/m68k/m68k.h

index 07ce8724209c01990bc6cadcaa6e5875210d4c67..c5849adcb2c2352b50b9ed40c564b284ebf01a2e 100644 (file)
@@ -778,6 +778,16 @@ extern enum reg_class regno_reg_class[];
       ? FP_REGS : NO_REGS)                     \
    : (CLASS))
 
+/* Force QImode output reloads from subregs to be allocated to data regs,
+   since QImode stores from address regs are not supported.  We make the
+   assumption that if the class is not ADDR_REGS, then it must be a superset
+   of DATA_REGS.  */
+
+#define LIMIT_RELOAD_CLASS(MODE, CLASS) \
+  (((MODE) == QImode && (CLASS) != ADDR_REGS)  \
+   ? DATA_REGS                                 \
+   : (CLASS))
+
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */
 /* On the 68000, this is the size of MODE in words,