aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorandreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-19 19:19:35 +0000
committerandreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-19 19:19:35 +0000
commitfda615954709a34a26d4adfb780c8cebb288cda2 (patch)
tree4eba58acbff072ff079405d890b8da2c4f774d02 /boehm-gc
parentc5a1dccda45eaf8952ed4decfc88424ced909136 (diff)
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/ChangeLog9
-rw-r--r--boehm-gc/darwin_stop_world.c13
-rw-r--r--boehm-gc/include/private/gc_priv.h18
-rw-r--r--boehm-gc/os_dep.c11
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