[Bug target/56807] mingw32: Conflict between stack realignment and stack probe destroys function argument in EAX
hjl.tools at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 16 21:33:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56807
--- Comment #22 from H.J. Lu <hjl.tools at gmail dot com> ---
That piece of code is only trigged by -mstack-arg-probe, which is
specific to Windows:
else if (!ix86_target_stack_probe ()
|| frame.stack_pointer_offset < CHECK_STACK_LIMIT)
{
pro_epilogue_adjust_stack (stack_pointer_rtx, stack_pointer_rtx,
GEN_INT (-allocate), -1,
m->fs.cfa_reg == stack_pointer_rtx);
}
else
{
rtx eax = gen_rtx_REG (Pmode, AX_REG);
rtx r10 = NULL;
rtx (*adjust_stack_insn)(rtx, rtx, rtx);
const bool sp_is_cfa_reg = (m->fs.cfa_reg == stack_pointer_rtx);
bool eax_live = false;
bool r10_live = false;
if (TARGET_64BIT)
r10_live = (DECL_STATIC_CHAIN (current_function_decl) != 0);
if (!TARGET_64BIT_MS_ABI)
eax_live = ix86_eax_live_at_start_p ();
Is it possible to write a test with eax_live == true and r10_live == true?
More information about the Gcc-bugs
mailing list