aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hassey <hassey@gnu.org>1993-05-12 21:22:50 +0000
committerJohn Hassey <hassey@gnu.org>1993-05-12 21:22:50 +0000
commit903a89144e257229fd2fb190353386ada36318a0 (patch)
tree012686188ad3bcbd94bd3db2e79abc76de133889
parentef39bb951c50c757ca7f394ef8c832608ea2054f (diff)
downloadgcc-903a89144e257229fd2fb190353386ada36318a0.zip
gcc-903a89144e257229fd2fb190353386ada36318a0.tar.gz
gcc-903a89144e257229fd2fb190353386ada36318a0.tar.bz2
(REG_OK_FOR_BASE_P REG_OK_FOR_INDEX_P): Don't use extended registers for base or index.
From-SVN: r4433
-rw-r--r--gcc/config/m88k/m88k.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index dacead4..2fbd069 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -654,6 +654,9 @@ extern char * reg_names[];
/* INSN_CLOBBERS_REGNO_P(INSN, REGNO) 0 */
/* PRESERVE_DEATH_INFO_REGNO_P(REGNO) 0 */
+/* True if register is an extended register. */
+#define XRF_REGNO_P(N) ((N) < FIRST_PSEUDO_REGISTER && (N) >= FIRST_EXTENDED_REGISTER)
+
/* Return number of consecutive hard regs needed starting at reg REGNO
to hold something of mode MODE.
This is ordinarily the length in words of a value of mode MODE
@@ -1361,10 +1364,11 @@ enum reg_class { NO_REGS, AP_REG, XRF_REGS, GENERAL_REGS, AGRF_REGS,
/* Nonzero if X is a hard reg that can be used as an index
or if it is a pseudo reg. Not the argument pointer. */
-#define REG_OK_FOR_INDEX_P(X) (X)
+#define REG_OK_FOR_INDEX_P(X) \
+ (!XRF_REGNO_P(REGNO (X)))
/* Nonzero if X is a hard reg that can be used as a base reg
or if it is a pseudo reg. */
-#define REG_OK_FOR_BASE_P(X) (1)
+#define REG_OK_FOR_BASE_P(X) (REG_OK_FOR_INDEX_P (X))
#else