Commit 17939c98 by Steve Ellcey Committed by Steve Ellcey

explow.c (convert_memory_address): Fold memory reference when POINTERS_EXTEND_UNSIGNED < 0

	* explow.c (convert_memory_address): Fold memory reference when
	POINTERS_EXTEND_UNSIGNED < 0

From-SVN: r123113
parent b5cf27d7
2007-02-21 Steve Ellcey <sje@cup.hp.com>
* explow.c (convert_memory_address): Fold memory reference when
POINTERS_EXTEND_UNSIGNED < 0
2007-03-21 Richard Henderson <rth@redhat.com> 2007-03-21 Richard Henderson <rth@redhat.com>
PR target/31245 PR target/31245
......
...@@ -382,12 +382,15 @@ convert_memory_address (enum machine_mode to_mode ATTRIBUTE_UNUSED, ...@@ -382,12 +382,15 @@ convert_memory_address (enum machine_mode to_mode ATTRIBUTE_UNUSED,
case MULT: case MULT:
/* For addition we can safely permute the conversion and addition /* For addition we can safely permute the conversion and addition
operation if one operand is a constant and converting the constant operation if one operand is a constant and converting the constant
does not change it. We can always safely permute them if we are does not change it or if one operand is a constant and we are
making the address narrower. */ using a ptr_extend instruction (POINTERS_EXTEND_UNSIGNED < 0).
We can always safely permute them if we are making the address
narrower. */
if (GET_MODE_SIZE (to_mode) < GET_MODE_SIZE (from_mode) if (GET_MODE_SIZE (to_mode) < GET_MODE_SIZE (from_mode)
|| (GET_CODE (x) == PLUS || (GET_CODE (x) == PLUS
&& GET_CODE (XEXP (x, 1)) == CONST_INT && GET_CODE (XEXP (x, 1)) == CONST_INT
&& XEXP (x, 1) == convert_memory_address (to_mode, XEXP (x, 1)))) && (XEXP (x, 1) == convert_memory_address (to_mode, XEXP (x, 1))
|| POINTERS_EXTEND_UNSIGNED < 0)))
return gen_rtx_fmt_ee (GET_CODE (x), to_mode, return gen_rtx_fmt_ee (GET_CODE (x), to_mode,
convert_memory_address (to_mode, XEXP (x, 0)), convert_memory_address (to_mode, XEXP (x, 0)),
XEXP (x, 1)); XEXP (x, 1));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment