diff --git a/vm/os-macosx-x86.h b/vm/os-macosx-x86.h index fa40595027..2daf2cbc94 100644 --- a/vm/os-macosx-x86.h +++ b/vm/os-macosx-x86.h @@ -1,7 +1,7 @@ #define SIGSEGV_EXC_STATE_TYPE i386_exception_state_t #define SIGSEGV_EXC_STATE_FLAVOR i386_EXCEPTION_STATE #define SIGSEGV_EXC_STATE_COUNT i386_EXCEPTION_STATE_COUNT -#define SIGSEGV_EXC_STATE_FAULT(exc_state) (exc_state).dar +#define SIGSEGV_EXC_STATE_FAULT(exc_state) (exc_state).faultvaddr #define SIGSEGV_THREAD_STATE_TYPE i386_thread_state_t #define SIGSEGV_THREAD_STATE_FLAVOR i386_THREAD_STATE #define SIGSEGV_THREAD_STATE_COUNT i386_THREAD_STATE_COUNT @@ -18,6 +18,6 @@ INLINE unsigned long fix_stack_ptr(unsigned long sp) INLINE void pass_arg0(SIGSEGV_THREAD_STATE_TYPE *thr_state, CELL arg) { - put(SIGSEGV_STACK_POINTER(thr_state),arg); - SIGSEGV_STACK_POINTER(thr_state) -= CELLS; + *(CELL *)thr_state->esp = arg; + thr_state->esp -= CELLS; }