Index: /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp
===================================================================
--- /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp	(revision 9461)
+++ /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp	(revision 9462)
@@ -3556,5 +3556,8 @@
                                         ((src :address)
                                          (offset :lisp))
-                                        ((temp :u32)))
+                                        ((temp :lisp)))
+  ;; (mark-as-imm temp)
+  (btrl (:$ub (:apply %hard-regspec-value temp))
+	(:@ (:%seg :rcontext) x8632::tcr.node-regs-mask))
   (movl (:%l offset) (:%l temp))
   (shrl (:$ub (+ 5 x8632::fixnumshift)) (:%l temp))
@@ -3566,5 +3569,9 @@
   (movl (:$l x8632::fixnumone) (:%l temp))
   (leal (:@ (- x8632::fixnumone) (:%l temp)) (:%l dest))
-  (cmovbl (:%l temp) (:%l dest)))
+  (cmovbl (:%l temp) (:%l dest))
+  ;; (mark-as-node temp)
+  (xorl (:%l temp) (:%l temp))
+  (btsl (:$ub (:apply %hard-regspec-value temp))
+	(:@ (:%seg :rcontext) x8632::tcr.node-regs-mask)))
 
 (define-x8632-subprim-call-vinsn (progvsave) .SPprogvsave)
Index: /branches/ia32/compiler/X86/x862.lisp
===================================================================
--- /branches/ia32/compiler/X86/x862.lisp	(revision 9461)
+++ /branches/ia32/compiler/X86/x862.lisp	(revision 9462)
@@ -7916,6 +7916,5 @@
           (x862-two-targeted-reg-forms seg ptr src-reg offset ($ *x862-arg-z*))
           (if (node-reg-p vreg)
-	    (with-additional-imm-reg (*x862-arg-z*)
-	      (! mem-ref-bit-fixnum vreg src-reg ($ *x862-arg-z*)))
+	    (! mem-ref-bit-fixnum vreg src-reg ($ *x862-arg-z*))
 	    (with-imm-target ()           ;OK if src-reg & dest overlap
 		(dest :u8)
