]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dwarf2out.c (dwarf2out_frame_debug): Check for queued saves again after processing...
authorDaniel Jacobowitz <dan@codesourcery.com>
Fri, 23 Jul 2010 13:55:07 +0000 (13:55 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Fri, 23 Jul 2010 13:55:07 +0000 (13:55 +0000)
* dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
again after processing insn.

From-SVN: r162460

gcc/ChangeLog
gcc/dwarf2out.c

index cbe0146a5177966d168653db92f66b61a650a0a4..c96691a88c38ed6d5c3d77701ded7db96efce8fa 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
+       again after processing insn.
+
 2010-07-23  Jie Zhang  <jie@codesourcery.com>
 
        * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
index 183bbd38a2b87c2cde52989f3437b08780fb274c..239f00271c46cc0c5380913c871ee7f855dad60d 100644 (file)
@@ -2791,6 +2791,12 @@ dwarf2out_frame_debug (rtx insn, bool after_p)
   insn = PATTERN (insn);
  found:
   dwarf2out_frame_debug_expr (insn, label);
+
+  /* Check again.  A parallel can save and update the same register.
+     We could probably check just once, here, but this is safer than
+     removing the check above.  */
+  if (clobbers_queued_reg_save (insn))
+    flush_queued_reg_saves ();
 }
 
 /* Determine if we need to save and restore CFI information around this