[Openmcl-cvs-notifications] r14710 - in /trunk/source/level-0/X86: X8632/x8632-misc.lisp x86-misc.lisp

gb at clozure.com gb at clozure.com
Tue Apr 12 06:30:26 CDT 2011


Author: gb
Date: Tue Apr 12 06:30:25 2011
New Revision: 14710

Log:
%IVECTOR-FROM-MACPTR for X86{32,64}

Modified:
    trunk/source/level-0/X86/X8632/x8632-misc.lisp
    trunk/source/level-0/X86/x86-misc.lisp

Modified: trunk/source/level-0/X86/X8632/x8632-misc.lisp
=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/level-0/X86/X8632/x8632-misc.lisp (original)
+++ trunk/source/level-0/X86/X8632/x8632-misc.lisp Tue Apr 12 06:30:25 2011
@@ -665,6 +665,19 @@
   (movl (% imm0) (@ x8632::macptr.address (% ptr)))
   (single-value-return))
 =

+(defx8632lapfunction %ivector-from-macptr ((ptr arg_z))
+  (macptr-ptr ptr imm0)
+  (mark-as-imm temp0)
+  (let ((imm1 temp0))
+    (movl (% imm0) (% imm1))
+    (andl ($ target::node-size) (% imm1))
+    (xorl ($ target::node-size) (% imm1))
+    (addl ($ (- target::fulltag-misc target::node-size)) (% imm0))
+    (subl (% imm1) (% imm0))
+    (mark-as-node imm1))
+  (movl (% imm0) (% arg_z))
+  (single-value-return))
+
 ;;; Sadly, we have no NVRs on x8632.
 (defun get-saved-register-values ()
   (values))

Modified: trunk/source/level-0/X86/x86-misc.lisp
=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/level-0/X86/x86-misc.lisp (original)
+++ trunk/source/level-0/X86/x86-misc.lisp Tue Apr 12 06:30:25 2011
@@ -601,6 +601,11 @@
 (defx86lapfunction %vect-data-to-macptr ((vect arg_y) (ptr arg_z))
   (lea (@ x8664::misc-data-offset (% vect)) (% imm0))
   (movq (% imm0) (@ x8664::macptr.address (% ptr)))
+  (single-value-return))
+
+(defx86lapfunction %ivector-from-macptr ((ptr arg_z))
+  (macptr-ptr ptr imm0)
+  (lea (@ (- target::fulltag-misc target::node-size) (% imm0)) (% arg_z))
   (single-value-return))
 =

 (defx86lapfunction get-saved-register-values ()



More information about the Openmcl-cvs-notifications mailing list