Commit db42e39d by Richard Henderson Committed by Richard Henderson

dwarf2: Reduce some redundant definitions.

Move some definitions to defaults.h; some simply aren't needed
anymore in the respective dwarf2{cfi,out}.c files.

        * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
        DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
        * dwarf2cfi.c: ... here.
        (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
        (DWARF_ROUND, DWARF_CIE_ID): Remove.
        * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
        (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
        (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.

From-SVN: r176102
parent a8e5c0e7
2011-07-09 Richard Henderson <rth@redhat.com> 2011-07-09 Richard Henderson <rth@redhat.com>
* defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
* dwarf2cfi.c: ... here.
(PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
(DWARF_ROUND, DWARF_CIE_ID): Remove.
* dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
(DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
(DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2011-07-09 Richard Henderson <rth@redhat.com>
* dwarf2cfi.c (cie_return_save): New. * dwarf2cfi.c (cie_return_save): New.
(queue_reg_save): Use compare_reg_or_pc. (queue_reg_save): Use compare_reg_or_pc.
(dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column. (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
......
...@@ -413,6 +413,26 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -413,6 +413,26 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER #define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
#endif #endif
/* Offsets recorded in opcodes are a multiple of this alignment factor. */
#ifndef DWARF_CIE_DATA_ALIGNMENT
#ifdef STACK_GROWS_DOWNWARD
#define DWARF_CIE_DATA_ALIGNMENT (-((int) UNITS_PER_WORD))
#else
#define DWARF_CIE_DATA_ALIGNMENT ((int) UNITS_PER_WORD)
#endif
#endif
/* The DWARF 2 CFA column which tracks the return address. Normally this
is the column for PC, or the first column after all of the hard
registers. */
#ifndef DWARF_FRAME_RETURN_COLUMN
#ifdef PC_REGNUM
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PC_REGNUM)
#else
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGISTERS
#endif
#endif
/* How to renumber registers for dbx and gdb. If not defined, assume /* How to renumber registers for dbx and gdb. If not defined, assume
no renumbering is necessary. */ no renumbering is necessary. */
...@@ -420,6 +440,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ...@@ -420,6 +440,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define DBX_REGISTER_NUMBER(REGNO) (REGNO) #define DBX_REGISTER_NUMBER(REGNO) (REGNO)
#endif #endif
/* The mapping from gcc register number to DWARF 2 CFA column number.
By default, we just provide columns for all registers. */
#ifndef DWARF_FRAME_REGNUM
#define DWARF_FRAME_REGNUM(REG) DBX_REGISTER_NUMBER (REG)
#endif
/* Map register numbers held in the call frame info that gcc has
collected using DWARF_FRAME_REGNUM to those that should be output in
.debug_frame and .eh_frame. */
#ifndef DWARF2_FRAME_REG_OUT
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
#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. */
......
...@@ -55,88 +55,8 @@ along with GCC; see the file COPYING3. If not see ...@@ -55,88 +55,8 @@ along with GCC; see the file COPYING3. If not see
#define INCOMING_RETURN_ADDR_RTX (gcc_unreachable (), NULL_RTX) #define INCOMING_RETURN_ADDR_RTX (gcc_unreachable (), NULL_RTX)
#endif #endif
/* The size of the target's pointer type. */
#ifndef PTR_SIZE
#define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
#endif
/* Maximum size (in bytes) of an artificially generated label. */ /* Maximum size (in bytes) of an artificially generated label. */
#define MAX_ARTIFICIAL_LABEL_BYTES 30 #define MAX_ARTIFICIAL_LABEL_BYTES 30
/* 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
/* According to the (draft) DWARF 3 specification, the initial length
should either be 4 or 12 bytes. When it's 12 bytes, the first 4
bytes are 0xffffffff, followed by the length stored in the next 8
bytes.
However, the SGI/MIPS ABI uses an initial length which is equal to
DWARF_OFFSET_SIZE. It is defined (elsewhere) accordingly. */
#ifndef DWARF_INITIAL_LENGTH_SIZE
#define DWARF_INITIAL_LENGTH_SIZE (DWARF_OFFSET_SIZE == 4 ? 4 : 12)
#endif
/* Round SIZE up to the nearest BOUNDARY. */
#define DWARF_ROUND(SIZE,BOUNDARY) \
((((SIZE) + (BOUNDARY) - 1) / (BOUNDARY)) * (BOUNDARY))
/* Offsets recorded in opcodes are a multiple of this alignment factor. */
#ifndef DWARF_CIE_DATA_ALIGNMENT
#ifdef STACK_GROWS_DOWNWARD
#define DWARF_CIE_DATA_ALIGNMENT (-((int) UNITS_PER_WORD))
#else
#define DWARF_CIE_DATA_ALIGNMENT ((int) UNITS_PER_WORD)
#endif
#endif
/* CIE identifier. */
#if HOST_BITS_PER_WIDE_INT >= 64
#define DWARF_CIE_ID \
(unsigned HOST_WIDE_INT) (DWARF_OFFSET_SIZE == 4 ? DW_CIE_ID : DW64_CIE_ID)
#else
#define DWARF_CIE_ID DW_CIE_ID
#endif
/* The DWARF 2 CFA column which tracks the return address. Normally this
is the column for PC, or the first column after all of the hard
registers. */
#ifndef DWARF_FRAME_RETURN_COLUMN
#ifdef PC_REGNUM
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PC_REGNUM)
#else
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGISTERS
#endif
#endif
/* The mapping from gcc register number to DWARF 2 CFA column number. By
default, we just provide columns for all registers. */
#ifndef DWARF_FRAME_REGNUM
#define DWARF_FRAME_REGNUM(REG) DBX_REGISTER_NUMBER (REG)
#endif
/* Map register numbers held in the call frame info that gcc has
collected using DWARF_FRAME_REGNUM to those that should be output in
.debug_frame and .eh_frame. */
#ifndef DWARF2_FRAME_REG_OUT
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
#endif
/* A vector of call frame insns for the CIE. */ /* A vector of call frame insns for the CIE. */
cfi_vec cie_cfi_vec; cfi_vec cie_cfi_vec;
......
...@@ -122,17 +122,6 @@ int vms_file_stats_name (const char *, long long *, long *, char *, int *); ...@@ -122,17 +122,6 @@ int vms_file_stats_name (const char *, long long *, long *, char *, int *);
#pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO #pragma GCC poison DWARF2_UNWIND_INFO DWARF2_FRAME_INFO
#endif #endif
#ifndef INCOMING_RETURN_ADDR_RTX
#define INCOMING_RETURN_ADDR_RTX (gcc_unreachable (), NULL_RTX)
#endif
/* Map register numbers held in the call frame info that gcc has
collected using DWARF_FRAME_REGNUM to those that should be output in
.debug_frame and .eh_frame. */
#ifndef DWARF2_FRAME_REG_OUT
#define DWARF2_FRAME_REG_OUT(REGNO, FOR_EH) (REGNO)
#endif
/* The size of the target's pointer type. */ /* The size of the target's pointer type. */
#ifndef PTR_SIZE #ifndef PTR_SIZE
#define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT) #define PTR_SIZE (POINTER_SIZE / BITS_PER_UNIT)
...@@ -211,15 +200,6 @@ static GTY(()) section *debug_frame_section; ...@@ -211,15 +200,6 @@ static GTY(()) section *debug_frame_section;
#define DWARF_ROUND(SIZE,BOUNDARY) \ #define DWARF_ROUND(SIZE,BOUNDARY) \
((((SIZE) + (BOUNDARY) - 1) / (BOUNDARY)) * (BOUNDARY)) ((((SIZE) + (BOUNDARY) - 1) / (BOUNDARY)) * (BOUNDARY))
/* Offsets recorded in opcodes are a multiple of this alignment factor. */
#ifndef DWARF_CIE_DATA_ALIGNMENT
#ifdef STACK_GROWS_DOWNWARD
#define DWARF_CIE_DATA_ALIGNMENT (-((int) UNITS_PER_WORD))
#else
#define DWARF_CIE_DATA_ALIGNMENT ((int) UNITS_PER_WORD)
#endif
#endif
/* CIE identifier. */ /* CIE identifier. */
#if HOST_BITS_PER_WIDE_INT >= 64 #if HOST_BITS_PER_WIDE_INT >= 64
#define DWARF_CIE_ID \ #define DWARF_CIE_ID \
...@@ -309,23 +289,6 @@ static GTY(()) rtx current_unit_personality; ...@@ -309,23 +289,6 @@ static GTY(()) rtx current_unit_personality;
#define LN_PROLOG_AS_LABEL "LASLTP" #define LN_PROLOG_AS_LABEL "LASLTP"
#define LN_PROLOG_END_LABEL "LELTP" #define LN_PROLOG_END_LABEL "LELTP"
#define DIE_LABEL_PREFIX "DW" #define DIE_LABEL_PREFIX "DW"
/* The DWARF 2 CFA column which tracks the return address. Normally this
is the column for PC, or the first column after all of the hard
registers. */
#ifndef DWARF_FRAME_RETURN_COLUMN
#ifdef PC_REGNUM
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PC_REGNUM)
#else
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGISTERS
#endif
#endif
/* The mapping from gcc register number to DWARF 2 CFA column number. By
default, we just provide columns for all registers. */
#ifndef DWARF_FRAME_REGNUM
#define DWARF_FRAME_REGNUM(REG) DBX_REGISTER_NUMBER (REG)
#endif
/* Match the base name of a file to the base name of a compilation unit. */ /* Match the base name of a file to the base name of a compilation unit. */
......
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