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
+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
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. */
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)