]> gitweb.factorcode.org Git - factor.git/blob - vm/os-macosx-ppc.h
d1ac388a42ec9eb36c04196cac63f57d55b913ce
[factor.git] / vm / os-macosx-ppc.h
1 typedef struct _F_STACK_FRAME {
2         struct _F_STACK_FRAME *previous;
3         CELL padding1;
4         CELL return_address;
5         CELL padding2;
6 } F_STACK_FRAME;
7
8 #define SIGSEGV_EXC_STATE_TYPE ppc_exception_state_t
9 #define SIGSEGV_EXC_STATE_FLAVOR PPC_EXCEPTION_STATE
10 #define SIGSEGV_EXC_STATE_COUNT PPC_EXCEPTION_STATE_COUNT
11 #define SIGSEGV_EXC_STATE_FAULT(exc_state) (exc_state).dar
12 #define SIGSEGV_THREAD_STATE_TYPE ppc_thread_state_t
13 #define SIGSEGV_THREAD_STATE_FLAVOR PPC_THREAD_STATE
14 #define SIGSEGV_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT
15 #define SIGSEGV_STACK_POINTER(thr_state) (thr_state).r1
16 #define SIGSEGV_THREAD_STATE_ARG(thr_state) (thr_state).r3
17 #define SIGSEGV_PROGRAM_COUNTER(thr_state) (thr_state).srr0
18
19 INLINE unsigned long fix_stack_ptr(unsigned long sp)
20 {
21           return sp;
22 }
23
24 INLINE void pass_arg0(SIGSEGV_THREAD_STATE_TYPE *thr_state, CELL arg)
25 {
26         SIGSEGV_THREAD_STATE_ARG(*thr_state) = arg;
27 }