OSDN Git Service

* pa.c (hppa_expand_epilogue): Emit a "blockage" insn
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 1993 16:21:12 +0000 (16:21 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 1993 16:21:12 +0000 (16:21 +0000)
to keepthe stack and frame pointer adjustments at the
end of the epilogue.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4248 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/pa/pa.c

index 1ee230a..7e01981 100644 (file)
@@ -2098,6 +2098,10 @@ hppa_expand_epilogue()
      ??? What race condition?!?  */
   else if (frame_pointer_needed)
     {
+      /* Emit a blockage insn here to keep these insns from being moved
+        to the beginning of the prologue or into the main instruction
+        stream, doing so avoids some very obscure problems.  */
+      emit_insn (gen_blockage ());
       set_reg_plus_d (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, 64);
       emit_insn (gen_pre_ldwm (stack_pointer_rtx, stack_pointer_rtx,
                               GEN_INT (-64), frame_pointer_rtx));