Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Molaro <lupus@oddwiz.org>2006-02-09 18:22:31 +0300
committerPaolo Molaro <lupus@oddwiz.org>2006-02-09 18:22:31 +0300
commitea6ba824965cb2b714030ca9072cc226cdfbe1c1 (patch)
tree15c15227d62654fe177a83a3b688ce0cc7fbf7f6 /libgc/os_dep.c
parenta60c6407fbeba77766e0daa1f1f62a6c12b96f05 (diff)
Thu Feb 9 16:20:55 CET 2006 Paolo Molaro <lupus@ximian.com>
* os_dep.c, include/private/gcconfig.h, darwin_stop_world.c: OSX/x86 support, mostly from Geoff Norton <gnorton@customerdna.com>. svn path=/trunk/mono/; revision=56707
Diffstat (limited to 'libgc/os_dep.c')
-rw-r--r--libgc/os_dep.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libgc/os_dep.c b/libgc/os_dep.c
index d7beb58dd9b..ef80a9d093e 100644
--- a/libgc/os_dep.c
+++ b/libgc/os_dep.c
@@ -3819,6 +3819,10 @@ catch_exception_raise(
mach_msg_type_number_t exc_state_count = PPC_EXCEPTION_STATE64_COUNT;
ppc_exception_state64_t exc_state;
# endif
+# elif defined(I386)
+ thread_state_flavor_t flavor = i386_EXCEPTION_STATE;
+ mach_msg_type_number_t exc_state_count = i386_EXCEPTION_STATE_COUNT;
+ i386_exception_state_t exc_state;
# else
# error FIXME for non-ppc darwin
# endif
@@ -3850,7 +3854,13 @@ catch_exception_raise(
}
/* This is the address that caused the fault */
+#if defined(POWERPC)
addr = (char*) exc_state.dar;
+#elif defined (I386)
+ addr = (char*) exc_state.faultvaddr;
+#else
+# error FIXME for non POWERPC/I386
+#endif
if((HDR(addr)) == 0) {
/* Ugh... just like the SIGBUS problem above, it seems we get a bogus