OSDN Git Service

dwarf2cfi: Add debug_cfi_row.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 25 Jul 2011 22:35:13 +0000 (22:35 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 25 Jul 2011 22:35:13 +0000 (22:35 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176771 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2cfi.c

index 421fcee..e33d773 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 57fe566..1b54278 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.