diff options
author | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-26 00:40:05 +0000 |
---|---|---|
committer | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-26 00:40:05 +0000 |
commit | 635a078f08c4a00f83976f47362b314fc0e2c305 (patch) | |
tree | ac3b71ef804718c26db47d1f8b9f98753b2efa7c /gcc/config/c4x/c4x.c | |
parent | 1b82ab1639138e18b6059708d90898bcaf307caf (diff) | |
download | gcc-635a078f08c4a00f83976f47362b314fc0e2c305.tar.gz |
* config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76611 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/c4x/c4x.c')
-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 db350cee080..9a6b88832e1 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); } |