[Openmcl-cvs-notifications] r10096 - /trunk/source/lisp-kernel/x86-exceptions.h

rme at clozure.com rme at clozure.com
Fri Jul 18 15:34:21 EDT 2008


Author: rme
Date: Fri Jul 18 15:34:21 2008
New Revision: 10096

Log:
Conditionalize for Darwin/x8632.

Modified:
    trunk/source/lisp-kernel/x86-exceptions.h

Modified: trunk/source/lisp-kernel/x86-exceptions.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-exceptions.h (original)
+++ trunk/source/lisp-kernel/x86-exceptions.h Fri Jul 18 15:34:21 2008
@@ -37,6 +37,14 @@
 #define xpPC(x) (xpGPR(x,Iip))
 #define xpFPRvector(x) ((natural *)(&(UC_MCONTEXT(x)->__fs.__fpu_xmm0)))
 #define xpMMXreg(x,n)  (xpFPRvector(x)[n])
+#else /* X8632 */
+#define xpGPRvector(x) ((natural *)(&((x)->uc_mcontext->__ss.__eax)))
+#define xpGPR(x,gprno) (xpGPRvector(x)[gprno])
+#define set_xpGPR(x,gpr,new) xpGPR((x),(gpr)) =3D (natural)(new)
+#define xpPC(x) (xpGPR(x,Iip))
+#define xpFPRvector(x) ((natural *)(&((x)->uc_mcontext->__fs.__fpu_xmm0)))
+/* are you ready for this? */
+#define xpMMXreg(x,n) *((natural *)&((&((x)->uc_mcontext->__fs.__fpu_stmm0=
))[n]))
 #endif
 #include <mach/mach.h>
 #include <mach/mach_error.h>
@@ -184,3 +192,12 @@
 =

 extern natural get_mxcsr();
 extern void set_mxcsr(natural);
+
+#ifdef X8632
+/* The 32-bit immediate value in the instruction
+ * "(mov ($ 0x12345678) (% fn))" at a tagged return address
+ * refers to the associated function.
+ */
+#define RECOVER_FN_OPCODE 0xbf
+#define RECOVER_FN_LENGTH 5
+#endif



More information about the Openmcl-cvs-notifications mailing list