]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
linux.h (DBX_REGISTER_NUMBER): Define so to map a special index for MD_FALLBACK_FRAME...
authorKaz Kojima <kkojima@gcc.gnu.org>
Thu, 14 Aug 2003 00:11:19 +0000 (00:11 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Thu, 14 Aug 2003 00:11:19 +0000 (00:11 +0000)
* config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
special index for MD_FALLBACK_FRAME_STATE_FOR to itself.

From-SVN: r70422

gcc/ChangeLog
gcc/config/sh/linux.h

index a09b22821fa73a0a99a9433df3938e3c44ea311e..c91f30128bd55589d6a7f8253fc4f20ff2eacf90 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
+       special index for MD_FALLBACK_FRAME_STATE_FOR to itself.
+
 2003-08-13  J"orn Rennecke <joern.rennecke@superh.com>
 
        * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
index edc7fa6e2c7b8d211c0bcc2332201e256a021d68..1ba1a1a85a2dc0254e30e59d93569ecd42508b7b 100644 (file)
@@ -277,3 +277,14 @@ do { \
 
 #endif /* defined (__SH5__) */
 #endif /* IN_LIBGCC2 */
+
+/* For SH3 and SH4, we use a slot of the unwind frame which correspond
+   to a fake register number 16 as a placeholder for the return address
+   in MD_FALLBACK_FRAME_STATE_FOR and its content will be read with
+   _Unwind_GetGR which uses dwarf_reg_size_table to get the size of
+   the register.  So the entry of dwarf_reg_size_table corresponding to
+   this slot must be set.  To do this, we redefine DBX_REGISTER_NUMBER
+   so as to return itself for 16.  */
+#undef DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(REGNO) \
+  ((! TARGET_SH5 && (REGNO) == 16) ? 16 : SH_DBX_REGISTER_NUMBER (REGNO))