]> granicus.if.org Git - gc/commitdiff
2007-01-19 Andreas Tobler <a.tobler@schweiz.org>
authorandreast <andreast@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jan 2007 19:19:35 +0000 (19:19 +0000)
committerguest <ivmai@mail.ru>
Fri, 29 Jul 2011 06:54:27 +0000 (10:54 +0400)
* 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

ChangeLog
darwin_stop_world.c
include/private/gc_priv.h
os_dep.c

index 24b4d358084372e1b557214db38b60f6e5f86e19..74463dc03fdc5cb183fe9e8cb2345b5b8269ec97 100644 (file)
--- a/ChangeLog
+++ b/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
index 5ddb271646ee76972a2b68d99fc9da6c00389e5b..719b1b02d35ee474f7e4b0d9242c410fa59dc559 100644 (file)
 # 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;
index f72faf9922a861ae167703615ba06431c0c47fe5..41c75d3bb62c3e60df20b559ffc01ac0f854e2a8 100644 (file)
@@ -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
 /*********************************/
 /*                               */
index 30811055ab50e734d1ec8e05c82e1eb1caea7521..3f0f20e834cedda24483ba09fb3d93222b2497af 100644 (file)
--- a/os_dep.c
+++ b/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