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
This commit is contained in:
Uros Bizjak 2012-10-29 17:41:41 +01:00 committed by Uros Bizjak
parent 163497f1a3
commit e34e52073e
2 changed files with 9 additions and 16 deletions

View file

@ -1,3 +1,8 @@
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>
PR middle-end/55116

View file

@ -11810,23 +11810,11 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
else if (GET_CODE (addr) == AND
&& 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 (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)
if (CONST_INT_P (addr))
return 0;
}
}