Commit 17f01631 by Jan Hubicka Committed by Jan Hubicka

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
parent e6bdd039
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>
* passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initilalize dump
files.
......
......@@ -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));
else
{
rtx r11;
rtx tmp;
/* r11 is used by indirect sibcall return as well, set before the
epilogue and used after the epilogue. ATM indirect sibcall
shouldn't be used together with huge frame sizes in one
function because of the frame_size check in sibcall.c. */
gcc_assert (style);
r11 = gen_rtx_REG (DImode, R11_REG);
insn = emit_insn (gen_rtx_SET (DImode, r11, offset));
epilogue and used after the epilogue. */
if (style)
tmp = gen_rtx_REG (DImode, R11_REG);
else
{
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)
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));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment