pa.h (DBX_CONTIN_LENGTH): Define to 4000 characters.
authorJeff Law <law@gcc.gnu.org>
Tue, 20 Feb 1996 19:22:49 +0000 (12:22 -0700)
committerJeff Law <law@gcc.gnu.org>
Tue, 20 Feb 1996 19:22:49 +0000 (12:22 -0700)
        * 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

gcc/config/pa/pa.c
gcc/config/pa/pa.h

index 5c00d45..2c3e014 100644 (file)
@@ -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,
index 3fd3be9..a61af99 100644 (file)
@@ -1596,7 +1596,7 @@ while (0)
 #define SLOW_BYTE_ACCESS 1
 
 /* Do not break .stabs pseudos into continuations.  */
-#define DBX_CONTIN_LENGTH 0
+#define DBX_CONTIN_LENGTH 4000
 
 /* Value is 1 if truncating an integer of INPREC bits to OUTPREC bits
    is done just by pretending it is already truncated.  */