aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/c4x
diff options
context:
space:
mode:
authorMichael Hayes <m.hayes@elec.canterbury.ac.nz>2004-01-26 00:40:05 +0000
committerMichael Hayes <m.hayes@gcc.gnu.org>2004-01-26 00:40:05 +0000
commit9c3602e40ffa8b11bbee42a2d4ee81dbd8759fd8 (patch)
treeac3b71ef804718c26db47d1f8b9f98753b2efa7c /gcc/config/c4x
parenta026b9d64dfbcdd8efd4ffde6f435274f529765c (diff)
downloadgcc-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.c8
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);
}