diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2005-03-01 04:34:00 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2005-03-01 04:34:00 +0000 |
commit | d7459fa85fa50f05654298030be3b685b07248d6 (patch) | |
tree | 74465051a3f33e41290a884856f330c6c7c0fd50 /gcc/config/pa | |
parent | 44dd2da22c931e67b9c721f35c08036a959aa931 (diff) | |
download | gcc-d7459fa85fa50f05654298030be3b685b07248d6.zip gcc-d7459fa85fa50f05654298030be3b685b07248d6.tar.gz gcc-d7459fa85fa50f05654298030be3b685b07248d6.tar.bz2 |
re PR target/19819 (ICE when compiling aegis 4.20)
PR target/19819
* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
and after reload in REG+REG indexed addresses without REG_POINTER
set in the base and not set in the index.
From-SVN: r95729
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 9130d61..b2d2044 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1532,7 +1532,12 @@ extern int may_call_alloca; && (TARGET_NO_SPACE_REGS \ ? (base && REG_P (index)) \ : (base == XEXP (X, 1) && REG_P (index) \ - && REG_POINTER (base) && !REG_POINTER (index))) \ + && (reload_completed \ + || (reload_in_progress && HARD_REGISTER_P (base)) \ + || REG_POINTER (base)) \ + && (reload_completed \ + || (reload_in_progress && HARD_REGISTER_P (index)) \ + || !REG_POINTER (index)))) \ && MODE_OK_FOR_UNSCALED_INDEXING_P (MODE) \ && REG_OK_FOR_INDEX_P (index) \ && borx_reg_operand (base, Pmode) \ |