diff options
author | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-19 19:19:35 +0000 |
---|---|---|
committer | andreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-01-19 19:19:35 +0000 |
commit | fda615954709a34a26d4adfb780c8cebb288cda2 (patch) | |
tree | 4eba58acbff072ff079405d890b8da2c4f774d02 /boehm-gc | |
parent | c5a1dccda45eaf8952ed4decfc88424ced909136 (diff) | |
download | gcc-fda615954709a34a26d4adfb780c8cebb288cda2.tar.gz |
2007-01-19 Andreas Tobler <a.tobler@schweiz.org>
* os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently
added defines to include/private/gc_priv.h
* darwin_stop_world.c: Removed the above defines.
(catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too.
* include/private/gc_priv.h: Moved definitions from darwin_stop_world.c
and os_dep.c to here. Fixed THREAD definition fixes for ppc64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120977 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc')
-rw-r--r-- | boehm-gc/ChangeLog | 9 | ||||
-rw-r--r-- | boehm-gc/darwin_stop_world.c | 13 | ||||
-rw-r--r-- | boehm-gc/include/private/gc_priv.h | 18 | ||||
-rw-r--r-- | boehm-gc/os_dep.c | 11 |
4 files changed, 26 insertions, 25 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index 24b4d358084..74463dc03fd 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,12 @@ +2007-01-19 Andreas Tobler <a.tobler@schweiz.org> + + * os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently + added defines to include/private/gc_priv.h + * darwin_stop_world.c: Removed the above defines. + (catch_exception_raise): Added THREAD_FLD in exc_state for POWERPC too. + * include/private/gc_priv.h: Moved definitions from darwin_stop_world.c + and os_dep.c to here. Fixed THREAD definition fixes for ppc64. + 2007-01-17 David Daney <ddaney@avtrex.com> * configure.ac: Don't define NO_SIGSET and NO_DEBUGGING while diff --git a/boehm-gc/darwin_stop_world.c b/boehm-gc/darwin_stop_world.c index 5ddb271646e..719b1b02d35 100644 --- a/boehm-gc/darwin_stop_world.c +++ b/boehm-gc/darwin_stop_world.c @@ -20,19 +20,6 @@ # define PPC_RED_ZONE_SIZE 320 #endif -/* Try to work out the right way to access thread state structure members. - The structure has changed its definition in different Darwin versions. */ -/* This now defaults to the (older) names without __, thus hopefully */ -/* not breaking any existing Makefile.direct builds. */ -#if defined (HAS_PPC_THREAD_STATE___R0) || \ - defined (HAS_PPC_THREAD_STATE64___R0) || \ - defined (HAS_X86_THREAD_STATE32___EAX) || \ - defined (HAS_X86_THREAD_STATE64___RAX) -# define THREAD_FLD(x) __ ## x -#else -# define THREAD_FLD(x) x -#endif - typedef struct StackFrame { unsigned long savedSP; unsigned long savedCR; diff --git a/boehm-gc/include/private/gc_priv.h b/boehm-gc/include/private/gc_priv.h index f72faf9922a..41c75d3bb62 100644 --- a/boehm-gc/include/private/gc_priv.h +++ b/boehm-gc/include/private/gc_priv.h @@ -472,15 +472,17 @@ extern GC_warn_proc GC_current_warn_proc; # if defined(POWERPC) # if CPP_WORDSZ == 32 # define GC_THREAD_STATE_T ppc_thread_state_t +# define GC_MACH_THREAD_STATE PPC_THREAD_STATE +# define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT # define GC_MACH_HEADER mach_header # define GC_MACH_SECTION section # else # define GC_THREAD_STATE_T ppc_thread_state64_t +# define GC_MACH_THREAD_STATE PPC_THREAD_STATE64 +# define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE64_COUNT # define GC_MACH_HEADER mach_header_64 # define GC_MACH_SECTION section_64 # endif -# define GC_MACH_THREAD_STATE PPC_THREAD_STATE -# define GC_MACH_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT # elif defined(I386) || defined(X86_64) # if CPP_WORDSZ == 32 # define GC_THREAD_STATE_T x86_thread_state32_t @@ -500,6 +502,18 @@ extern GC_warn_proc GC_current_warn_proc; # define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE # define GC_MACH_THREAD_STATE_COUNT MACHINE_THREAD_STATE_COUNT # endif +/* Try to work out the right way to access thread state structure members. + The structure has changed its definition in different Darwin versions. + This now defaults to the (older) names without __, thus hopefully, + not breaking any existing Makefile.direct builds. */ +# if defined (HAS_PPC_THREAD_STATE___R0) \ + || defined (HAS_PPC_THREAD_STATE64___R0) \ + || defined (HAS_X86_THREAD_STATE32___EAX) \ + || defined (HAS_X86_THREAD_STATE64___RAX) +# define THREAD_FLD(x) __ ## x +# else +# define THREAD_FLD(x) x +# endif #endif /*********************************/ /* */ diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c index 30811055ab5..3f0f20e834c 100644 --- a/boehm-gc/os_dep.c +++ b/boehm-gc/os_dep.c @@ -3405,15 +3405,6 @@ extern kern_return_t exception_raise_state_identity( #define MAX_EXCEPTION_PORTS 16 -#if defined (HAS_PPC_THREAD_STATE___R0) || \ - defined (HAS_PPC_THREAD_STATE64___R0) || \ - defined (HAS_X86_THREAD_STATE32___EAX) || \ - defined (HAS_X86_THREAD_STATE64___RAX) -# define THREAD_FLD(x) __ ## x -#else -# define THREAD_FLD(x) x -#endif - static struct { mach_msg_type_number_t count; exception_mask_t masks[MAX_EXCEPTION_PORTS]; @@ -3853,7 +3844,7 @@ catch_exception_raise( /* This is the address that caused the fault */ #if defined(POWERPC) - addr = (char*) exc_state.dar; + addr = (char*) exc_state. THREAD_FLD(dar); #elif defined (I386) || defined (X86_64) addr = (char*) exc_state. THREAD_FLD(faultvaddr); #else |