Commit 4bdd6fa6 by Uros Bizjak

re PR target/52882 (ICE in memory_address_length, at config/i386/i386.c:23373)

	PR target/52882
	* config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
	CONST_INT operands, zero-extended with AND.

testsuite/ChangeLog:

	PR target/52882
	* gcc.target/i386/pr52882.c: New test.

From-SVN: r186170
parent 9b9ad23f
2012-04-05 Uros Bizjak <ubizjak@gmail.com>
PR target/52882
* config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
CONST_INT operands, zero-extended with AND.
2012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
PR target/50751
* config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
first argument instead of mode size. Move displacement calculations
to ...
(mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
(mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
... these new functions.
(disp_adjust): Remove max_mov_disp field.
(sh_legitimate_index_p): Use max_mov_insn_displacement and
......
......@@ -11510,7 +11510,7 @@ ix86_decompose_address (rtx addr, struct ix86_address *out)
addr = SUBREG_REG (addr);
else if (GET_MODE (addr) == DImode)
addr = gen_rtx_SUBREG (SImode, addr, 0);
else
else if (GET_MODE (addr) != VOIDmode)
return 0;
}
}
2012-04-05 Uros Bizjak <ubizjak@gmail.com>
PR target/52882
* gcc.target/i386/pr52882.c: New test.
2012-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Dominique D'Humieures <dominiq@lps.ens.fr>
......
/* { dg-do compile } */
/* { dg-options "-O" } */
struct S1 {
int f0;
int f1;
};
int fn1 ();
void fn2 (struct S1);
void
fn3 () {
struct S1 a = { 1, 0 };
if (fn1 ())
fn2 (a);
for (; a.f1;) {
}
}
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