aboutsummaryrefslogtreecommitdiffstats
path: root/debug/DebugInformation.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-10-15 13:15:28 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-10-15 13:15:28 +0200
commit1e52bb2001964d87086cea00d0cb779e270b99ce (patch)
tree1a4c629ee6b8c5130654be3a42fb91f38fc80984 /debug/DebugInformation.ml
parent44845982f412810b0c18067987f2780ef6245fbb (diff)
downloadcompcert-kvx-1e52bb2001964d87086cea00d0cb779e270b99ce.tar.gz
compcert-kvx-1e52bb2001964d87086cea00d0cb779e270b99ce.zip
First step to implemente address ranges for the gnu backend.
In contrast to the dcc, the gcc uses address ranges to express non-contiguous range of addresses. As a first step we set the start and end addresses for the different address ranges for the compilation unit by using the start and end addresses of functions. Bug 17392.
Diffstat (limited to 'debug/DebugInformation.ml')
-rw-r--r--debug/DebugInformation.ml12
1 files changed, 11 insertions, 1 deletions
diff --git a/debug/DebugInformation.ml b/debug/DebugInformation.ml
index 95f34b1d..51fbfde9 100644
--- a/debug/DebugInformation.ml
+++ b/debug/DebugInformation.ml
@@ -593,10 +593,20 @@ let add_compilation_section_end sec addr =
let sec = section_to_string sec in
Hashtbl.add compilation_section_end sec addr
-let add_diab_info sec addr1 add2 =
+let add_diab_info sec addr1 add2 addr3 =
let sec' = section_to_string sec in
+ Hashtbl.add compilation_section_start sec' addr3;
Hashtbl.add diab_additional sec' (addr1,add2,sec)
+let diab_add_fun_addr name _ addr = add_fun_addr name addr
+
+let gnu_add_fun_addr name sec (high,low) =
+ let sec = section_to_string sec in
+ if not (Hashtbl.mem compilation_section_start sec) then
+ Hashtbl.add compilation_section_start sec low;
+ Hashtbl.replace compilation_section_end sec high;
+ add_fun_addr name (high,low)
+
let exists_section sec =
Hashtbl.mem compilation_section_start (section_to_string sec)