diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-10-17 23:08:36 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-10-17 17:08:36 -0600 |
commit | 7739ebae532a59826503967bca495918273fe9e5 (patch) | |
tree | 97df9dd97a4e7e9756f22a48d27529dc4b2fa00b /gcc | |
parent | 60588660d0d2f910c85a1ca90a86da50dd591734 (diff) | |
download | gcc-7739ebae532a59826503967bca495918273fe9e5.zip gcc-7739ebae532a59826503967bca495918273fe9e5.tar.gz gcc-7739ebae532a59826503967bca495918273fe9e5.tar.bz2 |
* pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
From-SVN: r30060
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e4feac5..9749bb0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) + * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). + * haifa-sched.c (add_dependence): Only check/update the cache if it exists. (remove_dependence): Likewise. diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 6af0066..28fdf93 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -332,6 +332,14 @@ move_operand (op, mode) op = XEXP (op, 0); + /* The LO_SUM part of a DLT reference is not considered a move_operand; + we must reject it here since it must be accepted by memory_address_p. */ + if (GET_CODE (op) == LO_SUM + && GET_CODE (XEXP (op, 0)) == REG + && REG_OK_FOR_BASE_P (XEXP (op, 0)) + && GET_CODE (XEXP (op, 1)) == UNSPEC) + return 0; + /* Since move_operand is only used for source operands, we can always allow scaled indexing! */ if (! TARGET_DISABLE_INDEXING |