aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-11-10 14:35:03 +0000
committerRichard Stallman <rms@gnu.org>1992-11-10 14:35:03 +0000
commit12d635bdfc0704e152e403da3f7314b48edf805f (patch)
tree7890a64e250c1cfedf34e579636b492468b6a688 /gcc
parentd14774f07b73301fc68aae6bfc7e04f5de1c498d (diff)
downloadgcc-12d635bdfc0704e152e403da3f7314b48edf805f.zip
gcc-12d635bdfc0704e152e403da3f7314b48edf805f.tar.gz
gcc-12d635bdfc0704e152e403da3f7314b48edf805f.tar.bz2
(GO_IF_LEGITIMATE_ADDRESS): Verify that register is valid for use as base...
(GO_IF_LEGITIMATE_ADDRESS): Verify that register is valid for use as base register (un-allocated pseudos aren't when strict). From-SVN: r2731
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/elxsi/elxsi.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/config/elxsi/elxsi.h b/gcc/config/elxsi/elxsi.h
index 027740a..533b633 100644
--- a/gcc/config/elxsi/elxsi.h
+++ b/gcc/config/elxsi/elxsi.h
@@ -573,13 +573,17 @@ enum reg_class { NO_REGS, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
if (GET_CODE (X) == REG) goto ADDR; \
if (CONSTANT_ADDRESS_P (X)) goto ADDR; \
if (GET_CODE (X) == PLUS) \
- { /* Handle [index]<address> represented with index-sum outermost */\
- if (GET_CODE (XEXP (X, 0)) == REG && \
- GET_CODE (XEXP (X, 1)) == CONST_INT) \
+ { \
+ /* Handle [index]<address> represented with index-sum outermost */\
+ if (GET_CODE (XEXP (X, 0)) == REG \
+ && REG_OK_FOR_BASE_P (XEXP (X, 0)) \
+ && GET_CODE (XEXP (X, 1)) == CONST_INT) \
goto ADDR; \
- if (GET_CODE (XEXP (X, 1)) == REG && \
- GET_CODE (XEXP (X, 0)) == CONST_INT) \
- goto ADDR; } \
+ if (GET_CODE (XEXP (X, 1)) == REG \
+ && REG_OK_FOR_BASE_P (XEXP (X, 0)) \
+ && GET_CODE (XEXP (X, 0)) == CONST_INT) \
+ goto ADDR; \
+ } \
}