]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Add support for DWARF-5 and experimental two-level line number tables.
authorCary Coutant <ccoutant@google.com>
Tue, 23 Dec 2014 23:01:40 +0000 (15:01 -0800)
committerCary Coutant <ccoutant@google.com>
Thu, 1 Jan 2015 18:59:24 +0000 (10:59 -0800)
commitb274bee1611aeae95d5e0ac9d4d55f0a75e9ed32
tree981d5c922999fe2abd705b8a06436d551d45af07
parent244e0772d8332e2517bf003171ed3137c3b408b3
Add support for DWARF-5 and experimental two-level line number tables.

2014-12-23  Cary Coutant  <ccoutant@google.com>

gas/
* config/obj-elf.c (elf_pseudo_table): Add .lloc and .subprog
directives.
* dwarf2dbg.h (struct dwarf2_line_info): Add logical field.
(dwarf2_directive_subprog): New function.
(dwarf2_directive_loc): Add is_lloc parameter.
* dwarf2dbg.c: Include "hash.h".
(DWARF2_LINE_EXPERIMENTAL_VERSION): New macro.
(DWARF2_EXPERIMENTAL_LINE_OPCODE_BASE): New macro.
(opcode_base): New static variable.
(DWARF2_LINE_BASE, DWARF2_LINE_RANGE): Adjust parameters.
(DWARF2_LINE_MAX_OPS_PER_INSN): New macro.
(SPECIAL_LINE, SPECIAL_ADDR): Use opcode_base.
(struct subprog_entry): New struct.
(subprogs, subprogs_in_use, subprogs_allocated): New variables.
(struct logicals_entry): New struct.
(logicals, logicals_in_use, logicals_allocated, logicals_with_labels):
New variables.
(struct string_table): New struct.
(debug_line_str_table): New variable.
(current): Add logical field.
(dwarf2_gen_line_info): Fill in symbol and segment for recent logicals.
(dwarf2_where): Add logical field.
(make_subprog_entry): New function.
(make_logical): New function.
(dwarf2_directive_subprog): New function.
(dwarf2_directive_loc): Add is_lloc parameter; add support for .lloc
directive.
(out_set_addr_from_logical): New function.
(size_inc_line_addr): Fix signed/unsigned warnings. Use opcode_base.
(emit_inc_line_addr): Likewise.
(emit_logicals): New function.
(process_entries): Add support for two-level line tables.
(add_to_string_table): New function.
(out_string_table): New function.
(out_dwarf5_file_list): New function.
(out_subprog_list): New function.
(out_debug_line): Add support for DWARF-5 line tables and for
experimental two-level line number tables.
(dwarf2_finish): Likewise.
gas/config/obj-elf.c
gas/dwarf2dbg.c
gas/dwarf2dbg.h