diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-25 16:43:18 +0200 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2015-09-25 16:43:18 +0200 |
commit | aff813685455559f6d6a88158dd3d605893ba3a3 (patch) | |
tree | 41905241a6f4d2969ad77e3952f4427d3cb4613d /debug/DwarfTypes.mli | |
parent | fc8afb9287ab7b1607e5a7d2a03b0078fd9867d0 (diff) | |
download | compcert-kvx-aff813685455559f6d6a88158dd3d605893ba3a3.tar.gz compcert-kvx-aff813685455559f6d6a88158dd3d605893ba3a3.zip |
Added support for the locations of stack allocated local variables.
This commit adds furher support for location information for local
variables and starts with the implementation of the debug_loc section.
Diffstat (limited to 'debug/DwarfTypes.mli')
-rw-r--r-- | debug/DwarfTypes.mli | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/debug/DwarfTypes.mli b/debug/DwarfTypes.mli index 1d41403b..f01e550a 100644 --- a/debug/DwarfTypes.mli +++ b/debug/DwarfTypes.mli @@ -12,8 +12,9 @@ (* Types used for writing dwarf debug information *) -open Sections +open BinNums open Camlcoq +open Sections (* Basic types for the value of attributes *) @@ -39,16 +40,17 @@ type block = string type location_expression = | DW_OP_plus_uconst of constant - | DW_OP - + | DW_OP_bregx of int * int32 + | DW_OP_piece of int type location_value = | LocSymbol of atom - | LocConst of constant - | LocBlock of block - + | LocRef of address + | LocSimple of location_expression + | LocList of location_expression list + type data_location_value = - | DataLocBlock of location_expression list + | DataLocBlock of location_expression | DataLocRef of reference type bound_value = @@ -233,6 +235,14 @@ type dw_entry = id: reference; } +(* The type for the location list. *) +type location_entry = + { + loc: (int * int * location_value) list; + loc_id: reference; + } +type dw_locations = location_entry list + (* Module type for a matching from type to dwarf encoding *) module type DWARF_ABBREVS = sig @@ -257,7 +267,7 @@ module type DWARF_ABBREVS = val artificial_type_abbr: int val variable_parameter_type_abbr: int val bit_size_type_abbr: int - val location_const_type_abbr: int + val location_ref_type_abbr: int val location_block_type_abbr: int val data_location_block_type_abbr: int val data_location_ref_type_abbr: int |