re PR target/45189 (New stack alignment test failures)

PR target/45189
Fix unwind for i386 stack re-alignment.

From-SVN: r162919
This commit is contained in:
Richard Henderson 2010-08-05 11:04:58 -07:00 committed by Richard Henderson
parent 29e9efdf75
commit 55b324a67c
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2010-08-05 Richard Henderson <rth@redhat.com>
PR target/45189
* config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
the alignment constant is properly sign-extended.
2010-08-05 Richard Guenther <rguenther@suse.de>
* expr.c (store_expr): Use emit_block_move only if both
@ -6,7 +12,7 @@
2010-08-05 Richard Henderson <rth@redhat.com>
PR 45189
PR debug/45188
* dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
(INCOMING_RETURN_ADDR_RTX): Likewise.
(dwarf2out_do_frame): Remove conditional compilation.

View File

@ -8639,7 +8639,8 @@ ix86_emit_save_reg_using_mov (enum machine_mode mode, unsigned int regno,
reference to the locations within the frame. Instead,
simply compute the location of the aligned frame from
the frame pointer. */
addr = GEN_INT (-crtl->stack_alignment_needed / BITS_PER_UNIT);
addr = GEN_INT (-(HOST_WIDE_INT)crtl->stack_alignment_needed
/ BITS_PER_UNIT);
addr = gen_rtx_AND (Pmode, hard_frame_pointer_rtx, addr);
addr = plus_constant (addr, -cfa_offset);
mem = gen_rtx_MEM (mode, addr);