aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1997-06-24 19:26:15 -0700
committerJim Wilson <wilson@gcc.gnu.org>1997-06-24 19:26:15 -0700
commit6c13d91005127b6c1d09a7cdfa471bca08faafb9 (patch)
treee6c6b7097ce4251697c8a813e0a741f5211de2d6 /gcc
parent011063bd06a65aaa62f19f1991a19fa575b240f9 (diff)
downloadgcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.zip
gcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.tar.gz
gcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.tar.bz2
(LIMIT_RELOAD_CLASS): Define.
From-SVN: r14301
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 07ce872..c5849ad 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -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,