Commit 948d330e by Richard Henderson Committed by Richard Henderson

dwarf2: Move CFI output routines to dwarf2cfi.c.

        * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
        DWARF_TYPE_SIGNATURE_SIZE): Move from ...
        * dwarf2out.c: ... here.
        (output_all_cfis): Remove.
        (dwarf2out_switch_text_section): Use output_cfis directly.
        (size_of_locs): Export.
        (output_loc_sequence, output_loc_sequence_raw): Export.
        (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
        output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
        output_cfa_loc_raw): Move to ...
        * dwarfcfi.c: ... here.
        * dwarf2out.h: Update decls.

From-SVN: r176107
parent db42e39d
2011-07-09 Richard Henderson <rth@redhat.com> 2011-07-09 Richard Henderson <rth@redhat.com>
* defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
DWARF_TYPE_SIGNATURE_SIZE): Move from ...
* dwarf2out.c: ... here.
(output_all_cfis): Remove.
(dwarf2out_switch_text_section): Use output_cfis directly.
(size_of_locs): Export.
(output_loc_sequence, output_loc_sequence_raw): Export.
(div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
output_cfa_loc_raw): Move to ...
* dwarfcfi.c: ... here.
* dwarf2out.h: Update decls.
2011-07-09 Richard Henderson <rth@redhat.com>
* defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN, * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ... DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
* dwarf2cfi.c: ... here. * dwarf2cfi.c: ... here.
......
...@@ -453,6 +453,28 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -453,6 +453,28 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO) #define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
#endif #endif
/* The size of addresses as they appear in the Dwarf 2 data.
Some architectures use word addresses to refer to code locations,
but Dwarf 2 info always uses byte addresses. On such machines,
Dwarf 2 addresses need to be larger than the architecture's
pointers. */
#ifndef DWARF2_ADDR_SIZE
#define DWARF2_ADDR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
#endif
/* The size in bytes of a DWARF field indicating an offset or length
relative to a debug info section, specified to be 4 bytes in the
DWARF-2 specification. The SGI/MIPS ABI defines it to be the same
as PTR_SIZE. */
#ifndef DWARF_OFFSET_SIZE
#define DWARF_OFFSET_SIZE 4
#endif
/* The size in bytes of a DWARF 4 type signature. */
#ifndef DWARF_TYPE_SIGNATURE_SIZE
#define DWARF_TYPE_SIGNATURE_SIZE 8
#endif
/* Default sizes for base C types. If the sizes are different for /* Default sizes for base C types. If the sizes are different for
your target, you should override these values by defining the your target, you should override these values by defining the
appropriate symbols in your tm.h file. */ appropriate symbols in your tm.h file. */
......
...@@ -228,11 +228,18 @@ extern struct dw_loc_descr_struct *mem_loc_descriptor ...@@ -228,11 +228,18 @@ extern struct dw_loc_descr_struct *mem_loc_descriptor
extern enum machine_mode get_address_mode (rtx mem); extern enum machine_mode get_address_mode (rtx mem);
extern dw_fde_ref dwarf2out_alloc_current_fde (void); extern dw_fde_ref dwarf2out_alloc_current_fde (void);
extern unsigned long size_of_locs (dw_loc_descr_ref);
extern void output_loc_sequence (dw_loc_descr_ref, int);
extern void output_loc_sequence_raw (dw_loc_descr_ref);
/* Interface from dwarf2cfi.c to dwarf2out.c. */ /* Interface from dwarf2cfi.c to dwarf2out.c. */
extern void lookup_cfa_1 (dw_cfi_ref cfi, dw_cfa_location *loc, extern void lookup_cfa_1 (dw_cfi_ref cfi, dw_cfa_location *loc,
dw_cfa_location *remember); dw_cfa_location *remember);
extern bool cfa_equal_p (const dw_cfa_location *, const dw_cfa_location *); extern bool cfa_equal_p (const dw_cfa_location *, const dw_cfa_location *);
extern void output_cfi (dw_cfi_ref, dw_fde_ref, int);
extern void output_cfis (cfi_vec, int, bool, dw_fde_ref, bool);
extern GTY(()) cfi_vec cie_cfi_vec; extern GTY(()) cfi_vec cie_cfi_vec;
/* Interface from dwarf2*.c to the rest of the compiler. */ /* Interface from dwarf2*.c to the rest of the compiler. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment