i386.c (pro_epilogue_adjust_stack): Use EBP for tail call epilogues.
* config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP for tail call epilogues. From-SVN: r160050
This commit is contained in:
parent
e6bdd0396c
commit
17f01631e1
|
@ -1,3 +1,8 @@
|
||||||
|
2010-05-30 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
|
* config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
|
||||||
|
for tail call epilogues.
|
||||||
|
|
||||||
2010-05-30 Jan Hubicka <jh@suse.cz>
|
2010-05-30 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
* passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
|
* passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
|
||||||
|
|
|
@ -8363,17 +8363,21 @@ pro_epilogue_adjust_stack (rtx dest, rtx src, rtx offset,
|
||||||
insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64 (dest, src, offset));
|
insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64 (dest, src, offset));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rtx r11;
|
rtx tmp;
|
||||||
/* r11 is used by indirect sibcall return as well, set before the
|
/* r11 is used by indirect sibcall return as well, set before the
|
||||||
epilogue and used after the epilogue. ATM indirect sibcall
|
epilogue and used after the epilogue. */
|
||||||
shouldn't be used together with huge frame sizes in one
|
if (style)
|
||||||
function because of the frame_size check in sibcall.c. */
|
tmp = gen_rtx_REG (DImode, R11_REG);
|
||||||
gcc_assert (style);
|
else
|
||||||
r11 = gen_rtx_REG (DImode, R11_REG);
|
{
|
||||||
insn = emit_insn (gen_rtx_SET (DImode, r11, offset));
|
gcc_assert (src != hard_frame_pointer_rtx
|
||||||
|
&& dest != hard_frame_pointer_rtx);
|
||||||
|
tmp = hard_frame_pointer_rtx;
|
||||||
|
}
|
||||||
|
insn = emit_insn (gen_rtx_SET (DImode, tmp, offset));
|
||||||
if (style < 0)
|
if (style < 0)
|
||||||
RTX_FRAME_RELATED_P (insn) = 1;
|
RTX_FRAME_RELATED_P (insn) = 1;
|
||||||
insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64_2 (dest, src, r11,
|
insn = emit_insn (gen_pro_epilogue_adjust_stack_rex64_2 (dest, src, tmp,
|
||||||
offset));
|
offset));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue