diff options
author | Michael Hayes <m.hayes@elec.canterbury.ac.nz> | 2004-01-26 00:40:05 +0000 |
---|---|---|
committer | Michael Hayes <m.hayes@gcc.gnu.org> | 2004-01-26 00:40:05 +0000 |
commit | 9c3602e40ffa8b11bbee42a2d4ee81dbd8759fd8 (patch) | |
tree | ac3b71ef804718c26db47d1f8b9f98753b2efa7c /gcc/config/c4x | |
parent | a026b9d64dfbcdd8efd4ffde6f435274f529765c (diff) | |
download | gcc-9c3602e40ffa8b11bbee42a2d4ee81dbd8759fd8.zip gcc-9c3602e40ffa8b11bbee42a2d4ee81dbd8759fd8.tar.gz gcc-9c3602e40ffa8b11bbee42a2d4ee81dbd8759fd8.tar.bz2 |
c4x.c (c4x_legitimate_address_p): Invalidate direct memory references if TARGET_EXPOSE_LDP nonzero.
* config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.
From-SVN: r76611
Diffstat (limited to 'gcc/config/c4x')
-rw-r--r-- | gcc/config/c4x/c4x.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c index db350ce..9a6b888 100644 --- a/gcc/config/c4x/c4x.c +++ b/gcc/config/c4x/c4x.c @@ -1236,10 +1236,11 @@ c4x_emit_move_sequence (rtx *operands, enum machine_mode mode) && dp_reg_operand (XEXP (op1, 0), mode)) { /* expand_increment will sometimes create a LO_SUM immediate - address. */ + address. Undo this sillyness. */ op1 = XEXP (op1, 1); } - else if (symbolic_address_operand (op1, mode)) + + if (symbolic_address_operand (op1, mode)) { if (TARGET_LOAD_ADDRESS) { @@ -3267,7 +3268,8 @@ src_operand (rtx op, enum machine_mode mode) && ((GET_CODE (XEXP (op, 0)) == SYMBOL_REF || GET_CODE (XEXP (op, 0)) == LABEL_REF || GET_CODE (XEXP (op, 0)) == CONST))) - return ! TARGET_LOAD_DIRECT_MEMS && GET_MODE (op) == mode; + return !TARGET_EXPOSE_LDP && + ! TARGET_LOAD_DIRECT_MEMS && GET_MODE (op) == mode; return general_operand (op, mode); } |