diff options
| author | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-14 00:11:19 +0000 |
|---|---|---|
| committer | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-14 00:11:19 +0000 |
| commit | faf3c9a5fe01e802a209d62735e870dac0bfb995 (patch) | |
| tree | 1f75726a825173c0ad2abd1afabd29f18e317953 | |
| parent | 3a845f75d795f73376aee84acf6e781e6e885b26 (diff) | |
| download | ppe42-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/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/sh/linux.h | 11 |
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)) |

