aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2002-06-05 14:35:23 -0600
committerJeff Law <law@gcc.gnu.org>2002-06-05 14:35:23 -0600
commit8008102813dc5fc95925453a06c5f88a269dc0ab (patch)
tree841e04a8bada9d54e747fa20c77683baaef16437
parentcbc69f844ef9dcec70f15d45467026c5fd937db2 (diff)
downloadgcc-8008102813dc5fc95925453a06c5f88a269dc0ab.zip
gcc-8008102813dc5fc95925453a06c5f88a269dc0ab.tar.gz
gcc-8008102813dc5fc95925453a06c5f88a269dc0ab.tar.bz2
pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it rejects (mem (lo_sum (reg) (unspec)))...
* pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it rejects (mem (lo_sum (reg) (unspec))), but will allow (mem (lo_sum (reg) (symbol_ref)) for PA2.0. From-SVN: r54294
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.h6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a51e8cf..8fa7a5d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-06-05 Jeffrey Law <law@redhat.com>
+
+ * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
+ rejects (mem (lo_sum (reg) (unspec))), but will allow
+ (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
+
2002-06-05 Neil Booth <neil@daikokuya.demon.co.uk>
* cpphash.h (_cpp_create_definition): Update prototype.
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 9dd93f4..336703e 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1173,7 +1173,11 @@ extern int may_call_alloca;
? GET_MODE (OP) \
: DFmode), \
XEXP (OP, 0)) \
- && GET_CODE (XEXP (OP, 0)) != LO_SUM \
+ && !(GET_CODE (XEXP (OP, 0)) == LO_SUM \
+ && GET_CODE (XEXP (XEXP (OP, 0), 0)) == REG \
+ && REG_OK_FOR_BASE_P (XEXP (XEXP (OP, 0), 0))\
+ && GET_CODE (XEXP (XEXP (OP, 0), 1)) == UNSPEC\
+ && GET_MODE (XEXP (OP, 0)) == Pmode) \
&& !(GET_CODE (XEXP (OP, 0)) == PLUS \
&& (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\
|| GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT)))\