Commit 2ebb1b42 by Jeff Law

pa.c (hppa_expand_prologue): Avoid writing outside the current stack boundary in…

pa.c (hppa_expand_prologue): Avoid writing outside the current stack boundary in code to handle large stack...

	* pa.c (hppa_expand_prologue): Avoid writing outside the current
	stack boundary in code to handle large stack frames.

From-SVN: r7926
parent 40e81af5
......@@ -2090,10 +2090,18 @@ hppa_expand_prologue()
size_rtx, tmpreg));
else
{
store_reg (1, 0, FRAME_POINTER_REGNUM);
/* It is incorrect to store the saved frame pointer at *sp,
then increment sp (writes beyond the current stack boundary).
So instead use stwm to store at *sp and post-increment the
stack pointer as an atomic operation. Then increment sp to
finish allocating the new frame. */
emit_insn (gen_post_stwm (stack_pointer_rtx,
stack_pointer_rtx,
GEN_INT (64), tmpreg));
set_reg_plus_d (STACK_POINTER_REGNUM,
STACK_POINTER_REGNUM,
actual_fsize);
actual_fsize - 64);
}
}
/* no frame pointer needed. */
......
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