diff options
author | Jeff Law <law@gcc.gnu.org> | 1996-02-20 12:22:49 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1996-02-20 12:22:49 -0700 |
commit | 1144563fbc40c80298e1477c67c0614d1e9a917e (patch) | |
tree | 27516760db40e9ec335990a918d83cedd3acd3ef /gcc/config/pa/pa.c | |
parent | 97da85b7a061926d4ddf4db2d91a561396a3f150 (diff) | |
download | gcc-1144563fbc40c80298e1477c67c0614d1e9a917e.zip gcc-1144563fbc40c80298e1477c67c0614d1e9a917e.tar.gz gcc-1144563fbc40c80298e1477c67c0614d1e9a917e.tar.bz2 |
pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters.
* pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters.
* pa.c (hppa_expand_epilogue): Always emit a blockage insn
before cutting back the stack.
From-SVN: r11327
Diffstat (limited to 'gcc/config/pa/pa.c')
-rw-r--r-- | gcc/config/pa/pa.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 5c00d45..2c3e014 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -2475,6 +2475,12 @@ hppa_expand_epilogue () gen_rtx (POST_INC, DFmode, tmpreg))); } + /* Emit a blockage insn here to keep these insns from being moved to + an earlier spot in the epilogue, or into the main instruction stream. + + This is necessary as we must not cut the stack back before all the + restores are finished. */ + emit_insn (gen_blockage ()); /* No frame pointer, but we have a stack greater than 8k. We restore %r2 very late in this case. (All other cases are restored as early as possible.) */ @@ -2499,10 +2505,6 @@ hppa_expand_epilogue () pointer is initially set to fp + 64 to avoid a 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 (frame_pointer_rtx, stack_pointer_rtx, |