Commit 4c470097 by Andreas Tobler

unwind-arm-common.h: Revert previous commit.

gcc:
    * ginclude/unwind-arm-common.h: Revert previous commit.

libstdc++-v3:
    * libsupc++/unwind-cxx.h: Revert previous commit.

From-SVN: r219392
parent 82a19768
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org> 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
* ginclude/unwind-arm-common.h: Revert previous commit.
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
* config.gcc (arm*-*-freebsd*): New configuration. * config.gcc (arm*-*-freebsd*): New configuration.
* config/arm/freebsd.h: New file. * config/arm/freebsd.h: New file.
* config.host: Add extra components for arm*-*-freebsd*. * config.host: Add extra components for arm*-*-freebsd*.
......
...@@ -82,11 +82,7 @@ extern "C" { ...@@ -82,11 +82,7 @@ extern "C" {
struct _Unwind_Control_Block struct _Unwind_Control_Block
{ {
#ifdef __FreeBSD__
unsigned exception_class __attribute__((__mode__(__DI__)));
#else
char exception_class[8]; char exception_class[8];
#endif
void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *); void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
/* Unwinder cache, private fields for the unwinder's use */ /* Unwinder cache, private fields for the unwinder's use */
struct struct
...@@ -185,11 +181,7 @@ extern "C" { ...@@ -185,11 +181,7 @@ extern "C" {
/* Support functions for the PR. */ /* Support functions for the PR. */
#define _Unwind_Exception _Unwind_Control_Block #define _Unwind_Exception _Unwind_Control_Block
#ifdef __FreeBSD__
typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
#else
typedef char _Unwind_Exception_Class[8]; typedef char _Unwind_Exception_Class[8];
#endif
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *); void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *); _Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
......
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org> 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
* libsupc++/unwind-cxx.h: Revert previous commit.
2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
* configure.host: Add arm*-*-freebsd* port_specific_symbol_files. * configure.host: Add arm*-*-freebsd* port_specific_symbol_files.
2015-01-09 Tim Shen <timshen@google.com> 2015-01-09 Tim Shen <timshen@google.com>
......
...@@ -235,7 +235,7 @@ __get_dependent_exception_from_ue (_Unwind_Exception *exc) ...@@ -235,7 +235,7 @@ __get_dependent_exception_from_ue (_Unwind_Exception *exc)
return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1; return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1;
} }
#if defined (__ARM_EABI_UNWINDER__) && !defined (__FreeBSD__) #ifdef __ARM_EABI_UNWINDER__
static inline bool static inline bool
__is_gxx_exception_class(_Unwind_Exception_Class c) __is_gxx_exception_class(_Unwind_Exception_Class c)
{ {
...@@ -309,7 +309,13 @@ __GXX_INIT_FORCED_UNWIND_CLASS(_Unwind_Exception_Class c) ...@@ -309,7 +309,13 @@ __GXX_INIT_FORCED_UNWIND_CLASS(_Unwind_Exception_Class c)
c[6] = 'R'; c[6] = 'R';
c[7] = '\0'; c[7] = '\0';
} }
#else // !__ARM_EABI_UNWINDER__ || __FreeBSD__
static inline void*
__gxx_caught_object(_Unwind_Exception* eo)
{
return (void*)eo->barrier_cache.bitpattern[0];
}
#else // !__ARM_EABI_UNWINDER__
// This is the primary exception class we report -- "GNUCC++\0". // This is the primary exception class we report -- "GNUCC++\0".
const _Unwind_Exception_Class __gxx_primary_exception_class const _Unwind_Exception_Class __gxx_primary_exception_class
= ((((((((_Unwind_Exception_Class) 'G' = ((((((((_Unwind_Exception_Class) 'G'
...@@ -333,16 +339,6 @@ const _Unwind_Exception_Class __gxx_dependent_exception_class ...@@ -333,16 +339,6 @@ const _Unwind_Exception_Class __gxx_dependent_exception_class
<< 8 | (_Unwind_Exception_Class) '+') << 8 | (_Unwind_Exception_Class) '+')
<< 8 | (_Unwind_Exception_Class) '\x01'); << 8 | (_Unwind_Exception_Class) '\x01');
const _Unwind_Exception_Class __gxx_forced_unwind_class
= ((((((((_Unwind_Exception_Class) 'G'
<< 8 | (_Unwind_Exception_Class) 'N')
<< 8 | (_Unwind_Exception_Class) 'U')
<< 8 | (_Unwind_Exception_Class) 'C')
<< 8 | (_Unwind_Exception_Class) 'F')
<< 8 | (_Unwind_Exception_Class) 'O')
<< 8 | (_Unwind_Exception_Class) 'R')
<< 8 | (_Unwind_Exception_Class) '\0');
static inline bool static inline bool
__is_gxx_exception_class(_Unwind_Exception_Class c) __is_gxx_exception_class(_Unwind_Exception_Class c)
{ {
...@@ -350,12 +346,6 @@ __is_gxx_exception_class(_Unwind_Exception_Class c) ...@@ -350,12 +346,6 @@ __is_gxx_exception_class(_Unwind_Exception_Class c)
|| c == __gxx_dependent_exception_class; || c == __gxx_dependent_exception_class;
} }
static inline bool
__is_gxx_forced_unwind_class(_Unwind_Exception_Class c)
{
return c == __gxx_forced_unwind_class;
}
// Only checks for primary or dependent, but not that it is a C++ exception at // Only checks for primary or dependent, but not that it is a C++ exception at
// all. // all.
static inline bool static inline bool
...@@ -367,17 +357,6 @@ __is_dependent_exception(_Unwind_Exception_Class c) ...@@ -367,17 +357,6 @@ __is_dependent_exception(_Unwind_Exception_Class c)
#define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class #define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class
#define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \ #define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \
c = __gxx_dependent_exception_class c = __gxx_dependent_exception_class
#define __GXX_INIT_FORCED_UNWIND_CLASS(c) c = __gxx_forced_unwind_class
#endif // __ARM_EABI_UNWINDER__ && !__FreeBSD__
#ifdef __ARM_EABI_UNWINDER__
static inline void*
__gxx_caught_object(_Unwind_Exception* eo)
{
return (void*)eo->barrier_cache.bitpattern[0];
}
#else // !__ARM_EABI_UNWINDER__
// GNU C++ personality routine, Version 0. // GNU C++ personality routine, Version 0.
extern "C" _Unwind_Reason_Code __gxx_personality_v0 extern "C" _Unwind_Reason_Code __gxx_personality_v0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment