diff --git a/Factor.app/Contents/MacOS/factor b/Factor.app/Contents/MacOS/factor new file mode 100755 index 0000000000..a6838b42a3 Binary files /dev/null and b/Factor.app/Contents/MacOS/factor differ diff --git a/vm/asm.h b/vm/asm.h index dc8e0a8dd1..ff2178a88e 100644 --- a/vm/asm.h +++ b/vm/asm.h @@ -1,8 +1,13 @@ -#if defined( __APPLE__) || (defined(WINDOWS) && !defined(__arm__)) +#if defined(__APPLE__) || (defined(WINDOWS) && !defined(__arm__)) #define MANGLE(sym) _##sym - #define XX @ #else #define MANGLE(sym) sym +#endif + +/* Apple's PPC assembler is out of date? */ +#if defined(__APPLE__) && defined(FACTOR_PPC) + #define XX @ +#else #define XX ; #endif diff --git a/vm/os-macosx-ppc.h b/vm/os-macosx-ppc.h index da757b28ad..6cc9bd5dac 100644 --- a/vm/os-macosx-ppc.h +++ b/vm/os-macosx-ppc.h @@ -46,6 +46,3 @@ typedef struct _F_STACK_FRAME { #define MACH_STACK_POINTER(thr_state) (thr_state)->r1 #define MACH_PROGRAM_COUNTER(thr_state) (thr_state)->srr0 #endif - -#define UAP_PROGRAM_COUNTER(ucontext) \ - MACH_PROGRAM_COUNTER(&(((ucontext_t *)(ucontext))->uc_mcontext->ss)) diff --git a/vm/os-macosx-x86.h b/vm/os-macosx-x86.h index 75a1a8cfe0..81ae617dfc 100644 --- a/vm/os-macosx-x86.h +++ b/vm/os-macosx-x86.h @@ -6,23 +6,11 @@ #define MACH_THREAD_STATE_COUNT i386_THREAD_STATE_COUNT #if __DARWIN_UNIX03 - #define MACH_EXC_STATE_FAULT(exc_state) (exc_state).__faultvaddr - #define MACH_STACK_POINTER(thr_state) (thr_state).__esp - #define MACH_PROGRAM_COUNTER(thr_state) (thr_state).__eip + #define MACH_EXC_STATE_FAULT(exc_state) (exc_state)->__faultvaddr + #define MACH_STACK_POINTER(thr_state) (thr_state)->__esp + #define MACH_PROGRAM_COUNTER(thr_state) (thr_state)->__eip #else - #define MACH_EXC_STATE_FAULT(exc_state) (exc_state).faultvaddr - #define MACH_STACK_POINTER(thr_state) (thr_state).esp - #define MACH_PROGRAM_COUNTER(thr_state) (thr_state).eip + #define MACH_EXC_STATE_FAULT(exc_state) (exc_state)->faultvaddr + #define MACH_STACK_POINTER(thr_state) (thr_state)->esp + #define MACH_PROGRAM_COUNTER(thr_state) (thr_state)->eip #endif - -/* Adjust stack pointer so we can push an arg */ -INLINE unsigned long fix_stack_ptr(unsigned long sp) -{ - return sp - (sp & 0xf); -} - -INLINE void pass_arg0(MACH_THREAD_STATE_TYPE *thr_state, CELL arg) -{ - *(CELL *)MACH_STACK_POINTER(*thr_state) = arg; - MACH_STACK_POINTER(*thr_state) -= CELLS; -} diff --git a/vm/os-macosx.h b/vm/os-macosx.h index abd0bf5305..dfe53f9a19 100644 --- a/vm/os-macosx.h +++ b/vm/os-macosx.h @@ -11,3 +11,6 @@ const char *vm_executable_path(void); const char *default_image_path(void); DLLEXPORT void c_to_factor_toplevel(CELL quot); + +#define UAP_PROGRAM_COUNTER(ucontext) \ + MACH_PROGRAM_COUNTER(&(((ucontext_t *)(ucontext))->uc_mcontext->ss))