Index: /trunk/source/lisp-kernel/x86-macros.s
===================================================================
--- /trunk/source/lisp-kernel/x86-macros.s	(revision 14628)
+++ /trunk/source/lisp-kernel/x86-macros.s	(revision 14629)
@@ -543,6 +543,7 @@
 
 define(`extract_subtag',`
-	__(movb misc_subtag_offset($1),$2)
-')
+	__(movzbl misc_subtag_offset($1),$2_l)
+')
+
 
 ifdef(`X8632',`
Index: /trunk/source/lisp-kernel/x86-spentry64.s
===================================================================
--- /trunk/source/lisp-kernel/x86-spentry64.s	(revision 14628)
+++ /trunk/source/lisp-kernel/x86-spentry64.s	(revision 14629)
@@ -3692,6 +3692,6 @@
 	__(cmpb %imm0_b,%imm1_b)
 	__(jne 2f)
-	__(extract_subtag(%arg_y,%imm0_b))
-	__(extract_subtag(%arg_z,%imm1_b))
+	__(extract_subtag(%arg_y,%imm0))
+	__(extract_subtag(%arg_z,%imm1))
 	__(cmpb %imm0_b,%imm1_b)
 	__(jne 2f)
@@ -3709,5 +3709,5 @@
 	__(cmpb $tag_misc,%imm0_b)
 	__(jnz 8f)
-	__(extract_subtag(%arg_z,%imm0_b))
+	__(extract_subtag(%arg_z,%imm0))
 	__(rcmpb(%imm0_b,$min_vector_subtag))
 	__(jb 8f)
@@ -4751,6 +4751,6 @@
 6:      __(addq arrayH.displacement(%arg_y),%arg_z)
         __(movq arrayH.data_vector(%arg_y),%arg_y)
-        __(extract_subtag(%arg_y,%imm1_b))
-        __(cmpb $subtag_vectorH,%imm1_b)
+        __(extract_subtag(%arg_y,%imm1))
+        __(cmpb $subtag_vectorH,%imm1_b) 
         __(ja C(misc_ref_common))
         __(jmp 6b)
@@ -4794,5 +4794,5 @@
 8:      __(addq arrayH.displacement(%arg_y),%arg_z)
         __(movq arrayH.data_vector(%arg_y),%arg_y)
-        __(extract_subtag(%arg_y,%imm1_b))
+        __(extract_subtag(%arg_y,%imm1))
         __(cmpb $subtag_vectorH,%imm1_b)
         __(ja C(misc_ref_common))
@@ -4830,5 +4830,5 @@
 6:      __(addq arrayH.displacement(%arg_x),%arg_y)
         __(movq arrayH.data_vector(%arg_x),%arg_x)
-        __(extract_subtag(%arg_x,%imm1_b))
+        __(extract_subtag(%arg_x,%imm1))
         __(cmpb $subtag_vectorH,%imm1_b)
         __(ja C(misc_set_common))
@@ -4873,5 +4873,5 @@
 8:      __(addq arrayH.displacement(%arg_x),%arg_y)
         __(movq arrayH.data_vector(%arg_x),%arg_x)
-        __(extract_subtag(%arg_x,%imm1_b))
+        __(extract_subtag(%arg_x,%imm1))
         __(cmpb $subtag_vectorH,%imm1_b)
         __(ja C(misc_set_common))
