diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-15 13:15:28 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-10-15 13:15:28 +0200 |
commit | 1e52bb2001964d87086cea00d0cb779e270b99ce (patch) | |
tree | 1a4c629ee6b8c5130654be3a42fb91f38fc80984 /debug/DebugInformation.ml | |
parent | 44845982f412810b0c18067987f2780ef6245fbb (diff) | |
download | compcert-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.ml | 12 |
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) |