Index: /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp
===================================================================
--- /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 14456)
+++ /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 14457)
@@ -959,15 +959,16 @@
 (define-x8664-vinsn cons (((dest :lisp))
                           ((car :lisp)
-                           (cdr :lisp)))
+                           (cdr :lisp))
+			  ((allocptr (:lisp #.x8664::allocptr))))
   (subq (:$b (- x8664::cons.size x8664::fulltag-cons)) (:rcontext x8664::tcr.save-allocptr))
-  (movq (:rcontext x8664::tcr.save-allocptr) (:%q x8664::allocptr))
-  (rcmpq (:%q x8664::allocptr) (:rcontext x8664::tcr.save-allocbase))
+  (movq (:rcontext x8664::tcr.save-allocptr) (:%q allocptr))
+  (rcmpq (:%q allocptr) (:rcontext x8664::tcr.save-allocbase))
   (:byte #x77) (:byte #x02) ;(ja :no-trap)
   (uuo-alloc)
   :no-trap
   (andb (:$b (lognot x8664::fulltagmask)) (:rcontext x8664::tcr.save-allocptr))
-  (movq (:%q car) (:@ x8664::cons.car (:%q x8664::allocptr)))
-  (movq (:%q cdr) (:@ x8664::cons.cdr (:%q x8664::allocptr)))
-  (movq (:%q x8664::allocptr) (:%q dest)))
+  (movq (:%q car) (:@ x8664::cons.car (:%q allocptr)))
+  (movq (:%q cdr) (:@ x8664::cons.cdr (:%q allocptr)))
+  (movq (:%q allocptr) (:%q dest)))
 
 (define-x8664-vinsn unbox-u8 (((dest :u8))
