os_dep.c (defined(MPROTECT_VDB) && defined(DARWIN)): Moved recently added defines to include/private/gc_priv.h

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.

From-SVN: r120977
This commit is contained in:
Andreas Tobler 2007-01-19 19:19:35 +00:00 committed by Andreas Tobler
parent 67e47f30d0
commit d88c64564e
4 changed files with 26 additions and 25 deletions

View File

@ -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

View File

@ -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;

View 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
/*********************************/
/* */

View File

@ -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