mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 09:41:09 +08:00
re PR target/69140 (stack alignment + O1 breaks with Microsoft ABI)
2016-01-07 Uros Bizjak <ubizjak@gmail.com> PR target/69140 * config/i386/i386.c (ix86_frame_pointer_required): Enable frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned. 2016-01-07 Uros Bizjak <ubizjak@gmail.com> Revert 2016-01-06 Uros Bizjak <ubizjak@gmail.com> PR target/69140 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid depending on frame_pointer_needed before remaining integer and SSE registers are saved. From-SVN: r232140
This commit is contained in:
parent
95918b49df
commit
0de71e1f51
@ -1,3 +1,19 @@
|
||||
2016-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/69140
|
||||
* config/i386/i386.c (ix86_frame_pointer_required): Enable
|
||||
frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
|
||||
|
||||
2016-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
Revert
|
||||
2016-01-06 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/69140
|
||||
* config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
|
||||
depending on frame_pointer_needed before remaining integer and SSE
|
||||
registers are saved.
|
||||
|
||||
2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
PR 1078
|
||||
|
@ -10903,6 +10903,10 @@ ix86_frame_pointer_required (void)
|
||||
if (TARGET_64BIT_MS_ABI && get_frame_size () > SEH_MAX_FRAME_SIZE)
|
||||
return true;
|
||||
|
||||
/* SSE saves require frame-pointer when stack is misaligned. */
|
||||
if (TARGET_64BIT_MS_ABI && ix86_incoming_stack_boundary < 128)
|
||||
return true;
|
||||
|
||||
/* In ix86_option_override_internal, TARGET_OMIT_LEAF_FRAME_POINTER
|
||||
turns off the frame pointer by default. Turn it back on now if
|
||||
we've not got a leaf function. */
|
||||
@ -13065,8 +13069,6 @@ ix86_expand_prologue (void)
|
||||
m->fs.fp_valid = true;
|
||||
}
|
||||
|
||||
m->fs.sp_valid = !frame_pointer_needed;
|
||||
|
||||
if (!int_registers_saved)
|
||||
ix86_emit_save_regs_using_mov (frame.reg_save_offset);
|
||||
if (!sse_registers_saved)
|
||||
|
Loading…
x
Reference in New Issue
Block a user