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
This commit is contained in:
Michael Hayes 2004-01-26 00:40:05 +00:00 committed by Michael Hayes
parent a026b9d64d
commit 9c3602e40f
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.

View File

@ -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);
}