Index: /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp
===================================================================
--- /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 8552)
+++ /trunk/source/compiler/X86/X8664/x8664-vinsns.lisp	(revision 8553)
@@ -2156,8 +2156,7 @@
 					    ())
   (btq (:%q bitnum) (:@ x8664::misc-data-offset (:%q bitvector)))
-  (setb (:%b bitnum))
-  (negb (:%b bitnum))
-  (andl (:$l x8664::fixnumone) (:%l bitnum))
-  (movl (:%l bitnum) (:%l dest)))                                        
+  (setc (:%b bitnum))
+  (movzbl (:%b bitnum) (:%l bitnum))
+  (imull (:$b x8664::fixnumone) (:%l bitnum) (:%l dest)))
                                                       
 (define-x8664-vinsn misc-ref-c-bit-fixnum (((dest :imm))
@@ -2167,8 +2166,7 @@
   (btq (:$ub (:apply logand 63 idx))
        (:@ (:apply + x8664::misc-data-offset (:apply ash (:apply ash idx -6) x8664::word-shift)) (:%q src)))
-  (setb (:%b temp))
-  (negb (:%b temp))
-  (andl (:$l x8664::fixnumone) (:%l temp))
-  (movl (:%l temp) (:%l dest)))
+  (setc (:%b temp))
+  (movzbl (:%b temp) (:%l temp))
+  (imull (:$b x8664::fixnumone) (:%l temp) (:%l dest)))
 
 (define-x8664-vinsn deref-macptr (((addr :address))
Index: /trunk/source/lisp-kernel/x86-spentry64.s
===================================================================
--- /trunk/source/lisp-kernel/x86-spentry64.s	(revision 8552)
+++ /trunk/source/lisp-kernel/x86-spentry64.s	(revision 8553)
@@ -560,7 +560,6 @@
 	__(btq %imm0,misc_data_offset(%arg_y))
 	__(setc %imm0_b)
-	__(negb %imm0_b)
-	__(andl $fixnum_one,%imm0_l)
-	__(movq %imm0,%arg_z)
+	__(movzbl %imm0_b,%imm0_l)
+	__(imull $fixnumone,%imm0_l,%arg_z_l)
 	__(ret)
 local_label(misc_ref_invalid):
