Index: /trunk/ccl/lisp-kernel/lisptypes.h
===================================================================
--- /trunk/ccl/lisp-kernel/lisptypes.h	(revision 5281)
+++ /trunk/ccl/lisp-kernel/lisptypes.h	(revision 5282)
@@ -85,11 +85,26 @@
 #ifndef _STRUCT_MCONTEXT64 /* A guess at what'll be defined when this is fixed */
 struct mcontext64 {
-	x86_exception_state64_t	es;
-	x86_thread_state64_t 	ss;	
-	x86_float_state64_t	fs;
+	x86_exception_state64_t	__es;
+	x86_thread_state64_t 	__ss;	
+	x86_float_state64_t	__fs;
 };
-#endif /* _STRUCT_MCONTEXT64 */
+
+typedef struct mcontext64 *MCONTEXT_T;
+typedef ucontext64_t ExceptionInformation;
+#define UC_MCONTEXT(UC) UC->uc_mcontext64
+#define __rax rax
+#define __fpu_mxcsr fpu_mxcsr
+#define __rsp rsp
+#define __faultvaddr faultvaddr
+#define __rip rip
+#define __rsi rsi
+#define __rdi rdi
+#define __rdx rdx
+#define __rcx rcx
+#else
+typedef mcontext_t MCONTEXT_T;
 typedef ucontext_t ExceptionInformation;
 #define UC_MCONTEXT(UC) UC->uc_mcontext
+#endif /* _STRUCT_MCONTEXT64 */
 #endif /* X86_64 */
 #endif /* #ifdef DARWIN */
Index: /trunk/ccl/lisp-kernel/x86-exceptions.c
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 5281)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.c	(revision 5282)
@@ -619,10 +619,5 @@
 {
   if (info->si_code == EXC_I386_SSEEXTERR) {
-#ifdef _STRUCT_MCONTEXT64
     uint32_t mxcsr = UC_MCONTEXT(xp)->__fs.__fpu_mxcsr;
-#else
-    uint32_t mxcsr = UC_MCONTEXT(xp)->fs.fpu_mxcsr;
-#endif
-
 
     decode_vector_fp_exception(info, mxcsr);
@@ -895,10 +890,10 @@
 #ifdef DARWIN
 LispObj *
-copy_darwin_mcontext(mcontext_t context, 
+copy_darwin_mcontext(MCONTEXT_T context, 
                      LispObj *current, 
-                     mcontext_t *out)
-{
-  mcontext_t dest = ((mcontext_t)current)-1;
-  dest = (mcontext_t) (((LispObj)dest) & ~15);
+                     MCONTEXT_T *out)
+{
+  MCONTEXT_T dest = ((MCONTEXT_T)current)-1;
+  dest = (MCONTEXT_T) (((LispObj)dest) & ~15);
 
   *dest = *context;
@@ -1068,5 +1063,5 @@
 #endif
 #ifdef DARWIN
-  mcontext_t mcontextp = NULL;
+  MCONTEXT_T mcontextp = NULL;
 #endif
   siginfo_t *info_copy = NULL;
@@ -1160,5 +1155,5 @@
 #endif
 #ifdef DARWIN
-  mcontext_t mcontextp = NULL;
+  MCONTEXT_T mcontextp = NULL;
 #endif
 
@@ -1720,5 +1715,5 @@
   kern_return_t kret;
 #if WORD_SIZE == 64
-  mcontext_t mc = UC_MCONTEXT(pseudosigcontext);
+  MCONTEXT_T mc = UC_MCONTEXT(pseudosigcontext);
 #else
   struct mcontext * mc = UC_MCONTEXT(pseudosigcontext);
@@ -1798,5 +1793,5 @@
   ExceptionInformation *pseudosigcontext;
 #ifdef X8664
-  mcontext_t mc;
+  MCONTEXT_T mc;
 #else
   struct mcontext *mc;
@@ -1816,5 +1811,5 @@
   stackp = TRUNC_DOWN(stackp, sizeof(*mc), C_STK_ALIGN);
 #ifdef X8664
-  mc = (mcontext_t) ptr_from_lispobj(stackp);
+  mc = (MCONTEXT_T) ptr_from_lispobj(stackp);
 #else
   mc = (struct mcontext *) ptr_from_lispobj(stackp);
Index: /trunk/ccl/lisp-kernel/x86-exceptions.h
===================================================================
--- /trunk/ccl/lisp-kernel/x86-exceptions.h	(revision 5281)
+++ /trunk/ccl/lisp-kernel/x86-exceptions.h	(revision 5282)
@@ -31,17 +31,9 @@
 #define DarwinSigReturn(context) syscall(SYS_sigreturn,context)
 #ifdef X8664
-#ifdef _STRUCT_MCONTEXT64
 #define xpGPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__ss.__rax)))
-#else
-#define xpGPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->ss.rax)))
-#endif
 #define xpGPR(x,gprno) (xpGPRvector(x)[gprno])
 #define set_xpGPR(x,gpr,new) xpGPR((x),(gpr)) = (natural)(new)
 #define xpPC(x) (xpGPR(x,Iip))
-#ifdef _STRUCT_MCONTEXT64
 #define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__fs.__fpu_stmm0)))
-#else
-#define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->fs.fp_stmm0)))
-#endif
 #define xpMMXreg(x,n)  (xpFPRvector(x)[gprno])
 #endif
