diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-04-27 10:21:12 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-04-27 10:21:12 -0600 |
commit | 3c7243a1cf5fcaa92c80dd5d528fea1190cc62fb (patch) | |
tree | 566718067bf37590ee2f102a638d8693839d0ded | |
parent | 3b39b94f8463fabe0ad1c7d1f897fe16f35e4a0a (diff) | |
download | gcc-3c7243a1cf5fcaa92c80dd5d528fea1190cc62fb.zip gcc-3c7243a1cf5fcaa92c80dd5d528fea1190cc62fb.tar.gz gcc-3c7243a1cf5fcaa92c80dd5d528fea1190cc62fb.tar.bz2 |
pa.c (hppa_expand_epilogue): Emit a "blockage" insn to keepthe stack and frame pointer adjustments at the...
* pa.c (hppa_expand_epilogue): Emit a "blockage" insn
to keepthe stack and frame pointer adjustments at the
end of the epilogue.
From-SVN: r4248
-rw-r--r-- | gcc/config/pa/pa.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 1ee230a..7e01981 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -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)); |