diff options
author | Richard Henderson <rth@redhat.com> | 2001-03-17 21:09:55 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-03-17 21:09:55 -0800 |
commit | fbfa55b0f65c48b281b708eecaa0cbec9c04ffc6 (patch) | |
tree | fa5628ade1ad651230550f737966340e18c83f7f /gcc/final.c | |
parent | 9de8be0b19b5e0f3ad37e6f56ee241293889f41a (diff) | |
download | gcc-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.c | 29 |
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 |