Index: /trunk/ccl/level-1/x86-trap-support.lisp
===================================================================
--- /trunk/ccl/level-1/x86-trap-support.lisp	(revision 5030)
+++ /trunk/ccl/level-1/x86-trap-support.lisp	(revision 5031)
@@ -26,4 +26,5 @@
   (defconstant gp-regs-offset (+ (get-field-offset :ucontext.uc_mcontext)
                                  (get-field-offset :mcontext_t.gregs)))
+  (defmacro xp-gp-regs (xp) xp)
   (defconstant flags-register-offset #$REG_EFL)
   (defparameter *encoded-gpr-to-indexed-gpr*
@@ -49,4 +50,5 @@
 (progn
   (defconstant gp-regs-offset (get-field-offset :ucontext_t.uc_mcontext))
+  (defmacro xp-gp-regs (xp) xp)
   (defconstant flags-register-offset 22)
   (defparameter *encoded-gpr-to-indexed-gpr*
@@ -78,6 +80,8 @@
                      (:ss :x86_thread_state64_t)
                      (:fs :x86_float_state64_t)))))
-  (defconstant gp-regs-offset (+ (get-field-offset :ucontext64.uc_mcontext64)
-                                 (get-field-offset :mcontext64.ss)))
+  (defconstant gp-regs-offset 0)
+  (defmacro xp-gp-regs (xp)
+    `(pref (pref ,xp :ucontext64.uc_mcontext64) :mcontext64.ss))
+
   (defconstant flags-register-offset 17)
   (defparameter *encoded-gpr-to-indexed-gpr*
@@ -101,7 +105,7 @@
 
 (defun indexed-gpr-lisp (xp igpr)
-  (%get-object xp (+ gp-regs-offset (ash igpr x8664::word-shift))))
+  (%get-object (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift))))
 (defun (setf indexed-gpr-lisp) (new xp igpr)
-  (%set-object xp (+ gp-regs-offset (ash igpr x8664::word-shift)) new))
+  (%set-object (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift)) new))
 (defun encoded-gpr-lisp (xp gpr)
   (indexed-gpr-lisp xp (aref *encoded-gpr-to-indexed-gpr* gpr)))
@@ -109,8 +113,8 @@
   (setf (indexed-gpr-lisp xp (aref *encoded-gpr-to-indexed-gpr* gpr)) new))
 (defun indexed-gpr-integer (xp igpr)
-  (%get-signed-long-long xp (+ gp-regs-offset (ash igpr x8664::word-shift))))
+  (%get-signed-long-long (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift))))
 (defun (setf indexed-gpr-integer) (new xp igpr)
   (setf
-   (%get-signed-long-long xp (+ gp-regs-offset (ash igpr x8664::word-shift)))
+   (%get-signed-long-long (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift)))
    new))
 (defun encoded-gpr-integer (xp gpr)
@@ -119,9 +123,9 @@
   (setf (indexed-gpr-integer xp (aref *encoded-gpr-to-indexed-gpr* gpr)) new))
 (defun indexed-gpr-macptr (xp igpr)
-  (%get-ptr xp (+ gp-regs-offset (ash igpr x8664::word-shift))))
+  (%get-ptr (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift))))
 (defun (setf indexed-gpr-macptr) (new xp igpr)
-  (setf (%get-ptr xp (+ gp-regs-offset (ash igpr x8664::word-shift))) new))
+  (setf (%get-ptr (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift))) new))
 (defun indexed-gpr-macptr (xp igpr)
-  (%get-ptr xp (+ gp-regs-offset (ash igpr x8664::word-shift))))
+  (%get-ptr (xp-gp-regs xp) (+ gp-regs-offset (ash igpr x8664::word-shift))))
 (defun encoded-gpr-macptr (xp gpr)
   (indexed-gpr-macptr xp (aref *encoded-gpr-to-indexed-gpr* gpr)))
@@ -129,5 +133,5 @@
   (setf (indexed-gpr-macptr xp (aref *encoded-gpr-to-indexed-gpr* gpr)) new))
 (defun xp-flags-register (xp)
-  (%get-signed-long-long xp (+ gp-regs-offset (ash flags-register-offset x8664::fixnumshift))))
+  (%get-signed-long-long (xp-gp-regs xp) (+ gp-regs-offset (ash flags-register-offset x8664::fixnumshift))))
   
 
