diff mbox series

[committed] Fix longjmp expander on hppa

Message ID b8bd6194-35bb-5829-1f2b-43e436e9072a@bell.net
State New
Headers show
Series [committed] Fix longjmp expander on hppa | expand

Commit Message

John David Anglin July 1, 2019, 5:06 p.m. UTC
With the recent update to setjmp, we now need to restore the hard frame pointer
directly from the saved frame pointer.  We don't need to adjust for the offset between
the virtual_stack_vars_rtx and the hard frame pointer.

Tested on hppa-unknwon-linux-gnu, hppa2.0w-hp-hpux11.11 and hppa64-hp-hpux11.11.

Committed to trunk.

Dave
diff mbox series

Patch

Index: config/pa/pa.md
===================================================================
--- config/pa/pa.md	(revision 272852)
+++ config/pa/pa.md	(working copy)
@@ -8700,9 +8700,7 @@ 
      restoring the gp.  */
   emit_move_insn (pv, lab);

-  /* Restore the stack and frame pointers.  The virtual_stack_vars_rtx
-     is saved instead of the hard_frame_pointer_rtx in the save area.
-     We need to adjust for the offset between these two values.  */
+  /* Restore the stack and frame pointers.  */
   fp = copy_to_reg (fp);
   emit_stack_restore (SAVE_NONLOCAL, stack);

@@ -8710,7 +8708,7 @@ 
   emit_insn (gen_blockage ());
   emit_clobber (hard_frame_pointer_rtx);
   emit_clobber (frame_pointer_rtx);
-  emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8));
+  emit_move_insn (hard_frame_pointer_rtx, fp);

   emit_use (hard_frame_pointer_rtx);
   emit_use (stack_pointer_rtx);