diff options
author | Richard Stallman <rms@gnu.org> | 1992-11-10 14:35:03 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-11-10 14:35:03 +0000 |
commit | 12d635bdfc0704e152e403da3f7314b48edf805f (patch) | |
tree | 7890a64e250c1cfedf34e579636b492468b6a688 /gcc | |
parent | d14774f07b73301fc68aae6bfc7e04f5de1c498d (diff) | |
download | gcc-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.h | 16 |
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; \ + } \ } |