diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1997-06-24 19:26:15 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-06-24 19:26:15 -0700 |
commit | 6c13d91005127b6c1d09a7cdfa471bca08faafb9 (patch) | |
tree | e6c6b7097ce4251697c8a813e0a741f5211de2d6 | |
parent | 011063bd06a65aaa62f19f1991a19fa575b240f9 (diff) | |
download | gcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.zip gcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.tar.gz gcc-6c13d91005127b6c1d09a7cdfa471bca08faafb9.tar.bz2 |
(LIMIT_RELOAD_CLASS): Define.
From-SVN: r14301
-rw-r--r-- | gcc/config/m68k/m68k.h | 10 |
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, |