summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-14 00:11:19 +0000
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-14 00:11:19 +0000
commitfaf3c9a5fe01e802a209d62735e870dac0bfb995 (patch)
tree1f75726a825173c0ad2abd1afabd29f18e317953
parent3a845f75d795f73376aee84acf6e781e6e885b26 (diff)
downloadppe42-gcc-faf3c9a5fe01e802a209d62735e870dac0bfb995.tar.gz
ppe42-gcc-faf3c9a5fe01e802a209d62735e870dac0bfb995.zip
* config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
special index for MD_FALLBACK_FRAME_STATE_FOR to itself. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70422 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/linux.h11
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a09b22821fa..c91f30128bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index edc7fa6e2c7..1ba1a1a85a2 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -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))
OpenPOWER on IntegriCloud