diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2007-09-14 14:35:12 -0400 |
---|---|---|
committer | Sandra Loosemore <sandra@gcc.gnu.org> | 2007-09-14 14:35:12 -0400 |
commit | 56e449d39af4a5c032d8d1f2825182ebed7a1a75 (patch) | |
tree | 16301c9c22fd4a89593267534d7bb3be2bc2087f /gcc/config | |
parent | c417817a8575731e1e10ddf063d25d9c4cdde12a (diff) | |
download | gcc-56e449d39af4a5c032d8d1f2825182ebed7a1a75.zip gcc-56e449d39af4a5c032d8d1f2825182ebed7a1a75.tar.gz gcc-56e449d39af4a5c032d8d1f2825182ebed7a1a75.tar.bz2 |
tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
2007-09-14 Sandra Loosemore <sandra@codesourcery.com>
Nigel Stephens <nigel@mips.com>
gcc/
* doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.
* unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
(_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to
declaration.
(_Unwind_ForcedUnwind): Likewise.
(_Unwind_Resume): Likewise.
(_Unwind_Resume_or_Rethrow): Likewise.
(_Unwind_Backtrace): Likewise.
(_Unwind_SjLj_RaiseException): Likewise.
(_Unwind_SjLj_ForcedUnwind): Likewise.
(_Unwind_SjLj_Resume): Likewise.
(_Unwind_SjLj_Resume_or_Rethrow): Likewise.
* unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE
to definition.
(_Unwind_ForcedUnwind): Likewise.
(_Unwind_Resume): Likewise.
(_Unwind_Resume_or_Rethrow): Likewise.
(_Unwind_Backtrace): Likewise.
* unwind-compat.c (_Unwind_Backtrace): Likewise.
(_Unwind_ForcedUnwind): Likewise.
(_Unwind_RaiseException): Likewise.
(_Unwind_Resume): Likewise.
(_Unwind_Resume_or_Rethrow): Likewise.
* config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force
nomips16 mode when IN_LIBGCC2 with hard float.
Co-Authored-By: Nigel Stephens <nigel@mips.com>
From-SVN: r128501
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/mips/mips.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 55e605a..0d23e56 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -582,6 +582,17 @@ extern enum mips_llsc_setting mips_llsc; #endif #endif /* IN_LIBGCC2 */ +/* Force the call stack unwinders in unwind.inc not to be MIPS16 code + when compiled with hardware floating point. This is because MIPS16 + code cannot save and restore the floating-point registers, which is + important if in a mixed MIPS16/non-MIPS16 environment. */ + +#ifdef IN_LIBGCC2 +#if __mips_hard_float +#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((__nomips16__)) +#endif +#endif /* IN_LIBGCC2 */ + #define TARGET_LIBGCC_SDATA_SECTION ".sdata" #ifndef MULTILIB_ENDIAN_DEFAULT |