X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-darwin-os.h;h=4ad51e35e75f9c5c1d53843e10a5f48a4e59073b;hb=2529c316d05494f2bcdeccf98c3a6298ecd08d7d;hp=aa2710c8a50a757b62c8198f1f268c976a0b3463;hpb=584bfdc4e1093e43e4eb328a418b012745935a29;p=sbcl.git diff --git a/src/runtime/x86-darwin-os.h b/src/runtime/x86-darwin-os.h index aa2710c..4ad51e3 100644 --- a/src/runtime/x86-darwin-os.h +++ b/src/runtime/x86-darwin-os.h @@ -16,7 +16,55 @@ static inline os_context_t *arch_os_get_context(void **void_context) void set_data_desc_size(data_desc_t* desc, unsigned long size); void set_data_desc_addr(data_desc_t* desc, void* addr); -#define CONTEXT_ADDR_FROM_STEM(stem) &context->uc_mcontext->ss.stem #define DARWIN_FIX_CONTEXT(context) +/* As of XCode 3.0, the field names for the thread state have changed + * and now are prepended with __. Use some #define hackery to deal + * with this. MAC_OS_X_VERSION_10_5 seems to be a good test to see if + * we need the new style field names. + */ +#if MAC_OS_X_VERSION_10_5 + +#define CONTEXT_ADDR_FROM_STEM(stem) &context->uc_mcontext->__ss.__##stem +#define EIP __eip +#define ESP __esp +#define EBP __ebp +#define EAX __eax +#define EBX __ebx +#define ECX __ecx +#define EDX __edx +#define ESI __esi +#define EDI __edi +#define EFLAGS __eflags +#define CS __cs +#define DS __ds +#define ES __es +#define FS __fs +#define SS __ss +#define GS __gs + +#else + +#define CONTEXT_ADDR_FROM_STEM(stem) &context->uc_mcontext->ss.stem +#define EIP eip +#define ESP esp +#define EBP ebp +#define EAX eax +#define EBX ebx +#define ECX ecx +#define EDX edx +#define ESI esi +#define EDI edi +#define EFLAGS eflags +#define CS cs +#define DS ds +#define ES es +#define FS fs +#define SS ss +#define GS gs + +#endif /* MAC_OS_X_VERSION_10_5 */ + + + #endif /* _X86_DARWIN_OS_H */