From: Kaz Kojima Date: Thu, 14 Aug 2003 00:11:19 +0000 (+0000) Subject: linux.h (DBX_REGISTER_NUMBER): Define so to map a special index for MD_FALLBACK_FRAME... X-Git-Tag: releases/gcc-3.4.0~4258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=235b4b36bfab9e3d94688b0fde2be160a7faa81c;p=thirdparty%2Fgcc.git linux.h (DBX_REGISTER_NUMBER): Define so to map a special index for MD_FALLBACK_FRAME_STATE_FOR to itself. * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a09b22821fa7..c91f30128bd5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-08-13 Kaz Kojima + + * 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 * 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 edc7fa6e2c7b..1ba1a1a85a2d 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))