aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/TargetPrinter.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-22 19:44:47 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-22 19:44:47 +0200
commitd7f75509c290d871cb8cd8aa11a0be2923c9ef17 (patch)
tree5e1cfd9366ae875a5da7286d1912b7fab7454ce0 /powerpc/TargetPrinter.ml
parent4b9b0e8f988cdfa1f848919b41bfe24c6e9a052a (diff)
downloadcompcert-kvx-d7f75509c290d871cb8cd8aa11a0be2923c9ef17.tar.gz
compcert-kvx-d7f75509c290d871cb8cd8aa11a0be2923c9ef17.zip
Record the scope structure during unblocking.
Instead of creating separate annotations for the local variables we call the Debug.add_lvar_scope and we construct a mapping from function id + scope id to scope information.
Diffstat (limited to 'powerpc/TargetPrinter.ml')
-rw-r--r--powerpc/TargetPrinter.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/powerpc/TargetPrinter.ml b/powerpc/TargetPrinter.ml
index 58117ee7..2faaf2e3 100644
--- a/powerpc/TargetPrinter.ml
+++ b/powerpc/TargetPrinter.ml
@@ -78,6 +78,8 @@ let end_addr = ref (-1)
let stmt_list_addr = ref (-1)
+let debug_start_addr = ref (-1)
+
let label = elf_label
module Linux_System : SYSTEM =
@@ -241,6 +243,9 @@ module Diab_System : SYSTEM =
let label_start = new_label () in
start_addr := label_start;
fprintf oc "%a:\n" label label_start;
+ let d_start = new_label() in
+ debug_start_addr := d_start;
+ fprintf oc " .0byte %a\n" label d_start;
fprintf oc " .d2_line_start .debug_line\n";
end
@@ -284,6 +289,7 @@ module Diab_System : SYSTEM =
fprintf oc " .section %s,,n\n" name;
fprintf oc " .sectionlink .debug_line\n";
section oc sec;
+ fprintf oc " .0byte %a\n" label !debug_start_addr;
fprintf oc " .d2_line_start %s\n" name
end
| _ -> () (* Only the case of a user section is interresting *)
@@ -856,6 +862,8 @@ module Target (System : SYSTEM):TARGET =
let get_stmt_list_addr () = !stmt_list_addr
+ let get_debug_start_addr () = !debug_start_addr
+
module DwarfAbbrevs = DwarfUtil.DefaultAbbrevs
let new_label = new_label