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/config | |
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/config')
-rw-r--r-- | gcc/config/pa/pa.c | 8 |
1 files changed, 8 insertions, 0 deletions
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 |