aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2005-03-01 04:34:00 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2005-03-01 04:34:00 +0000
commitd7459fa85fa50f05654298030be3b685b07248d6 (patch)
tree74465051a3f33e41290a884856f330c6c7c0fd50 /gcc/config/pa
parent44dd2da22c931e67b9c721f35c08036a959aa931 (diff)
downloadgcc-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.h7
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) \