dwarf2cfi: Add debug_cfi_row.
authorRichard Henderson <rth@redhat.com>
Mon, 25 Jul 2011 22:35:13 +0000 (15:35 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 25 Jul 2011 22:35:13 +0000 (15:35 -0700)
From-SVN: r176771

gcc/ChangeLog
gcc/dwarf2cfi.c

index 421fcee2efa0cff142664625514adf60f0cd484d..e33d773d00d05394b1ec25716fc07a0fa63fbfd4 100644 (file)
@@ -1,3 +1,7 @@
+2011-07-25  Richard Henderson  <rth@redhat.com>
+
+       * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
+
 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
 
        * genattr.c (write_upcase, gen_attr <enum definition writing>):
index 57fe566baf9890973d9421654d745f800af98d53..1b542780504e7e1a630da39204338500fac27f58 100644 (file)
@@ -3314,6 +3314,38 @@ dwarf2out_emit_cfi (dw_cfi_ref cfi)
   if (dwarf2out_do_cfi_asm ())
     output_cfi_directive (asm_out_file, cfi);
 }
+
+static void
+dump_cfi_row (FILE *f, dw_cfi_row *row)
+{
+  dw_cfi_ref cfi;
+  unsigned i;
+
+  cfi = row->cfa_cfi;
+  if (!cfi)
+    {
+      dw_cfa_location dummy;
+      memset(&dummy, 0, sizeof(dummy));
+      dummy.reg = INVALID_REGNUM;
+      cfi = def_cfa_0 (&dummy, &row->cfa);
+    }
+  output_cfi_directive (f, cfi);
+
+  FOR_EACH_VEC_ELT (dw_cfi_ref, row->reg_save, i, cfi)
+    if (cfi)
+      output_cfi_directive (f, cfi);
+
+  fprintf (f, "\t.cfi_GNU_args_size "HOST_WIDE_INT_PRINT_DEC "\n",
+          row->args_size);
+}
+
+void debug_cfi_row (dw_cfi_row *row);
+
+void
+debug_cfi_row (dw_cfi_row *row)
+{
+  dump_cfi_row (stderr, row);
+}
 \f
 
 /* Save the result of dwarf2out_do_frame across PCH.