aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-03-17 21:09:55 -0800
committerRichard Henderson <rth@gcc.gnu.org>2001-03-17 21:09:55 -0800
commitfbfa55b0f65c48b281b708eecaa0cbec9c04ffc6 (patch)
treefa5628ade1ad651230550f737966340e18c83f7f /gcc/final.c
parent9de8be0b19b5e0f3ad37e6f56ee241293889f41a (diff)
downloadgcc-fbfa55b0f65c48b281b708eecaa0cbec9c04ffc6.zip
gcc-fbfa55b0f65c48b281b708eecaa0cbec9c04ffc6.tar.gz
gcc-fbfa55b0f65c48b281b708eecaa0cbec9c04ffc6.tar.bz2
dwarf2out.c (queue_reg_save): New.
* dwarf2out.c (queue_reg_save): New. (flush_queued_reg_saves, clobbers_queued_reg_save): New. (dwarf2out_frame_debug_expr): Call queue_reg_save instead of dwarf2out_reg_save. (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed. (cfa, cfa_store, cfa_temp): Make static. * final.c (final_scan_insn): Always call dwarf2out_frame_debug. From-SVN: r40594
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 70d6add..2e3b40d 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -2324,9 +2324,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
case BARRIER:
#if defined (DWARF2_UNWIND_INFO)
- /* If we push arguments, we need to check all insns for stack
- adjustments. */
- if (!ACCUMULATE_OUTGOING_ARGS && dwarf2out_do_frame ())
+ if (dwarf2out_do_frame ())
dwarf2out_frame_debug (insn);
#endif
break;
@@ -2936,9 +2934,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
current_output_insn = debug_insn = insn;
#if defined (DWARF2_UNWIND_INFO)
- /* If we push arguments, we want to know where the calls are. */
- if (!ACCUMULATE_OUTGOING_ARGS && GET_CODE (insn) == CALL_INSN
- && dwarf2out_do_frame ())
+ if (GET_CODE (insn) == CALL_INSN && dwarf2out_do_frame ())
dwarf2out_frame_debug (insn);
#endif
@@ -3006,22 +3002,15 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
output_asm_insn (template, recog_data.operand);
#if defined (DWARF2_UNWIND_INFO)
- /* If we push arguments, we need to check all insns for stack
- adjustments. */
- if (!ACCUMULATE_OUTGOING_ARGS)
- {
- if (GET_CODE (insn) == INSN && dwarf2out_do_frame ())
- dwarf2out_frame_debug (insn);
- }
- else
- {
#if defined (HAVE_prologue)
- /* If this insn is part of the prologue, emit DWARF v2
- call frame info. */
- if (RTX_FRAME_RELATED_P (insn) && dwarf2out_do_frame ())
- dwarf2out_frame_debug (insn);
+ if (GET_CODE (insn) == INSN && dwarf2out_do_frame ())
+ dwarf2out_frame_debug (insn);
+#else
+ if (!ACCUMULATE_OUTGOING_ARGS
+ && GET_CODE (insn) == INSN
+ && dwarf2out_do_frame ())
+ dwarf2out_frame_debug (insn);
#endif
- }
#endif
#if 0