diff options
author | hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-05 17:01:42 +0000 |
---|---|---|
committer | hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-05 17:01:42 +0000 |
commit | c0235a33de8c4f78cce35b2a8c2035c83fe1bd14 (patch) | |
tree | 1e512f15b6544db42a15b89c2b3b637da2a29dab | |
parent | 4fd39f1329379e00f958394adde6be96f0caf21f (diff) | |
download | gcc-c0235a33de8c4f78cce35b2a8c2035c83fe1bd14.tar.gz |
2014-12-05 Olivier Hainque <hainque@adacore.com>
gcc/
* defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
* dwarf2cfi.c (init_one_dwarf_reg_size): Honor
DWARF_REG_TO_UNWIND_COLUMN.
libgcc/
* unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Remove default def,
now provided by defaults.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218429 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/defaults.h | 5 | ||||
-rw-r--r-- | gcc/dwarf2cfi.c | 3 | ||||
-rw-r--r-- | libgcc/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/unwind-dw2.c | 4 |
5 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a91551b283..3fc9bf138ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2014-12-05 Olivier Hainque <hainque@adacore.com> + * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default. + * dwarf2cfi.c (init_one_dwarf_reg_size): Honor + DWARF_REG_TO_UNWIND_COLUMN. + +2014-12-05 Olivier Hainque <hainque@adacore.com> + * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing one particular reg for expand_builtin_init_dwarf_reg_sizes. (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and diff --git a/gcc/defaults.h b/gcc/defaults.h index d2609e761c2..26e5750b29b 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -438,6 +438,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define DWARF_FRAME_REGNUM(REG) DBX_REGISTER_NUMBER (REG) #endif +/* The mapping from dwarf CFA reg number to internal dwarf reg numbers. */ +#ifndef DWARF_REG_TO_UNWIND_COLUMN +#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO) +#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. */ diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c index 0cd7220584d..04a17bd36ab 100644 --- a/gcc/dwarf2cfi.c +++ b/gcc/dwarf2cfi.c @@ -286,8 +286,9 @@ void init_one_dwarf_reg_size (int regno, machine_mode regmode, { const unsigned int dnum = DWARF_FRAME_REGNUM (regno); const unsigned int rnum = DWARF2_FRAME_REG_OUT (dnum, 1); + const unsigned int dcol = DWARF_REG_TO_UNWIND_COLUMN (rnum); - const HOST_WIDE_INT slotoffset = rnum * GET_MODE_SIZE (slotmode); + const HOST_WIDE_INT slotoffset = dcol * GET_MODE_SIZE (slotmode); const HOST_WIDE_INT regsize = GET_MODE_SIZE (regmode); init_state->processed_regno[regno] = true; diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index d7a522d5ef1..ce8c1f7470f 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2014-12-05 Olivier Hainque <hainque@adacore.com> + + * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Remove default def, + now provided by defaults.h. + 2014-11-30 Oleg Endo <olegendo@gcc.gnu.org> * config/sh/lib1funcs.S: Check value of __SHMEDIA__ instead of checking diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c index e4744336031..b262fd9f5b9 100644 --- a/libgcc/unwind-dw2.c +++ b/libgcc/unwind-dw2.c @@ -55,10 +55,6 @@ #define PRE_GCC3_DWARF_FRAME_REGISTERS __LIBGCC_DWARF_FRAME_REGISTERS__ #endif -#ifndef DWARF_REG_TO_UNWIND_COLUMN -#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO) -#endif - /* ??? For the public function interfaces, we tend to gcc_assert that the column numbers are in range. For the dwarf2 unwind info this does happen, although so far in a case that doesn't actually matter. |