defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
authorOlivier Hainque <hainque@adacore.com>
Fri, 5 Dec 2014 17:01:42 +0000 (17:01 +0000)
committerOlivier Hainque <hainque@gcc.gnu.org>
Fri, 5 Dec 2014 17:01:42 +0000 (17:01 +0000)
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.

From-SVN: r218429

gcc/ChangeLog
gcc/defaults.h
gcc/dwarf2cfi.c
libgcc/ChangeLog
libgcc/unwind-dw2.c

index 8a91551b283177f747fa63a8de8416bd255f5ff8..3fc9bf138ba2097eae8841aea3f435900b0c1953 100644 (file)
@@ -1,3 +1,9 @@
+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
index d2609e761c2e91ad24fd5472a81c2ca6e5c257a4..26e5750b29bc398518ded122d152bcbbe7f0fe68 100644 (file)
@@ -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.  */
index 0cd7220584d00324fc22c8972bca2068491a9d9d..04a17bd36ab5555bb1cc3c65fea5499b2d4debf2 100644 (file)
@@ -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;
index d7a522d5ef1ba0496651e38fd3c8ce66c78c4425..ce8c1f7470f25c23c029ca57c0bef6d04745dea0 100644 (file)
@@ -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
index e474433603105ec414ecf3e846569be28f7c4b3c..b262fd9f5b92e2d0ea4f0e65152927de0290fcbd 100644 (file)
 #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.