re PR target/67967 (ICE in i386_pe_seh_unwind_emit)
PR target/67967 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add REG_CFA_EXPRESSION to aligned SSE stores. From-SVN: r228826
This commit is contained in:
parent
3837c6d66f
commit
a409ca75d6
2 changed files with 10 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-10-14 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/67967
|
||||
* config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
|
||||
REG_CFA_EXPRESSION to aligned SSE stores.
|
||||
|
||||
2015-10-14 Jeff Law <law@redhat.com>
|
||||
|
||||
* tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
|
||||
|
|
|
@ -11612,6 +11612,7 @@ ix86_emit_save_reg_using_mov (machine_mode mode, unsigned int regno,
|
|||
{
|
||||
struct machine_function *m = cfun->machine;
|
||||
rtx reg = gen_rtx_REG (mode, regno);
|
||||
rtx unspec = NULL_RTX;
|
||||
rtx mem, addr, base, insn;
|
||||
unsigned int align;
|
||||
|
||||
|
@ -11626,13 +11627,9 @@ ix86_emit_save_reg_using_mov (machine_mode mode, unsigned int regno,
|
|||
In case INCOMING_STACK_BOUNDARY is misaligned, we have
|
||||
to emit unaligned store. */
|
||||
if (mode == V4SFmode && align < 128)
|
||||
{
|
||||
rtx unspec = gen_rtx_UNSPEC (mode, gen_rtvec (1, reg), UNSPEC_STOREU);
|
||||
insn = emit_insn (gen_rtx_SET (mem, unspec));
|
||||
}
|
||||
else
|
||||
insn = emit_insn (gen_rtx_SET (mem, reg));
|
||||
unspec = gen_rtx_UNSPEC (mode, gen_rtvec (1, reg), UNSPEC_STOREU);
|
||||
|
||||
insn = emit_insn (gen_rtx_SET (mem, unspec ? unspec : reg));
|
||||
RTX_FRAME_RELATED_P (insn) = 1;
|
||||
|
||||
base = addr;
|
||||
|
@ -11679,7 +11676,7 @@ ix86_emit_save_reg_using_mov (machine_mode mode, unsigned int regno,
|
|||
mem = gen_rtx_MEM (mode, addr);
|
||||
add_reg_note (insn, REG_CFA_OFFSET, gen_rtx_SET (mem, reg));
|
||||
}
|
||||
else
|
||||
else if (unspec)
|
||||
add_reg_note (insn, REG_CFA_EXPRESSION, gen_rtx_SET (mem, reg));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue