diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-22 19:44:47 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-22 19:44:47 +0200 |
commit | d7f75509c290d871cb8cd8aa11a0be2923c9ef17 (patch) | |
tree | 5e1cfd9366ae875a5da7286d1912b7fab7454ce0 /powerpc/TargetPrinter.ml | |
parent | 4b9b0e8f988cdfa1f848919b41bfe24c6e9a052a (diff) | |
download | compcert-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.ml | 8 |
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 |