diff options
author | Sandro Tolaini <tolaini@libero.it> | 2006-09-22 01:47:30 +0200 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2006-09-21 23:47:30 +0000 |
commit | de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5 (patch) | |
tree | a59b18d3ecba84a151dd5bfc21322ecb5bb4fd21 /boehm-gc/os_dep.c | |
parent | b76d34e959674bb91653ca0fc86cdf9a4dabf075 (diff) | |
download | gcc-de7a014db379cbfc0c7cf8f6d2bddc9e19f688e5.tar.gz |
os_dep.c: Port to Darwin/i386
2006-09-21 Sandro Tolaini <tolaini@libero.it>
* os_dep.c: Port to Darwin/i386
* darwin_stop_world.c: Likewise
* include/private/gcconfig.h: Likewise
From-SVN: r117126
Diffstat (limited to 'boehm-gc/os_dep.c')
-rw-r--r-- | boehm-gc/os_dep.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c index 13692d9bcd6..98ab6be5356 100644 --- a/boehm-gc/os_dep.c +++ b/boehm-gc/os_dep.c @@ -3802,6 +3802,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 @@ -3833,7 +3837,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 |