summaryrefslogtreecommitdiff
path: root/gcc/dwarf2cfi.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-25 22:35:13 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-25 22:35:13 +0000
commit35bf1d17d16b84851170cf4ea11a190be32365be (patch)
treeec2ce07bfeadc70b3443c41f8c272027155111cb /gcc/dwarf2cfi.c
parent19c83f0039a29220154096bf312df1fd54bfab6e (diff)
downloadgcc-35bf1d17d16b84851170cf4ea11a190be32365be.tar.gz
dwarf2cfi: Add debug_cfi_row.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176771 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2cfi.c')
-rw-r--r--gcc/dwarf2cfi.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index 57fe566baf9..1b542780504 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -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);
+}
/* Save the result of dwarf2out_do_frame across PCH.