Commit e34e5207 by Uros Bizjak Committed by Uros Bizjak

i386.c (ix86_decompose_address): Use simplify_gen_subreg for all addresses, zero-extended with AND.

	* config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
	for all addresses, zero-extended with AND.

From-SVN: r192950
parent 163497f1
2012-10-29 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_decompose_address): Use simplify_gen_subreg
for all addresses, zero-extended with AND.
2012-10-29 Vladimir Makarov <vmakarov@redhat.com> 2012-10-29 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/55116 PR middle-end/55116
...@@ -11810,23 +11810,11 @@ ix86_decompose_address (rtx addr, struct ix86_address *out) ...@@ -11810,23 +11810,11 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
else if (GET_CODE (addr) == AND else if (GET_CODE (addr) == AND
&& const_32bit_mask (XEXP (addr, 1), DImode)) && const_32bit_mask (XEXP (addr, 1), DImode))
{ {
addr = XEXP (addr, 0); addr = simplify_gen_subreg (SImode, XEXP (addr, 0), DImode, 0);
if (addr == NULL_RTX)
return 0;
/* Adjust SUBREGs. */ if (CONST_INT_P (addr))
if (GET_CODE (addr) == SUBREG
&& GET_MODE (SUBREG_REG (addr)) == SImode)
{
addr = SUBREG_REG (addr);
if (CONST_INT_P (addr))
return 0;
}
else if (GET_MODE (addr) == DImode)
{
addr = simplify_gen_subreg (SImode, addr, DImode, 0);
if (addr == NULL_RTX)
return 0;
}
else if (GET_MODE (addr) != VOIDmode)
return 0; return 0;
} }
} }
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