Index: /branches/ia32/compiler/X86/x86-lapmacros.lisp
===================================================================
--- /branches/ia32/compiler/X86/x86-lapmacros.lisp	(revision 8367)
+++ /branches/ia32/compiler/X86/x86-lapmacros.lisp	(revision 8368)
@@ -31,6 +31,6 @@
 (defx86lapmacro set-nargs (n)
   (if (eql n 0)
-    `(xorw (% nargs) (% nargs))
-    `(movw ($ ',n) (% nargs))))
+    `(xorl (% nargs) (% nargs))
+    `(movl ($ ',n) (% nargs))))
 
 (defx86lapmacro check-nargs (min &optional (max min))
@@ -383,5 +383,6 @@
      (:x8632
       `(progn
-	 (movzwl (% nargs) (% imm0))
+	 ;; nargs *is* imm0
+	 (movl (% nargs) (% temp1))
 	 (subl ($ (* $numx8632argregs x8632::node-size)) (% imm0))
 	 (jle ,push)
@@ -392,8 +393,9 @@
 	 ,push
 	 (save-simple-frame)
-	 ,done))
+	 ,done
+	 (movl (% temp1) (% nargs))))
      (:x8664
       `(progn
-	 (movzwl (% nargs) (%l imm0))
+	 (movl (% nargs) (%l imm0))
 	 (subq ($ (* $numx8664argregs x8664::node-size)) (% imm0))
 	 (jle ,push)
@@ -548,7 +550,7 @@
      (:x8632
       `(progn
-	 (testw (% nargs) (% nargs))
+	 (testl (% nargs) (% nargs))
 	 (je ,done)
-	 (cmpw ($ '1) (% nargs))
+	 (cmpl ($ '1) (% nargs))
 	 (je ,z)
 	 (push (% arg_y))
@@ -558,7 +560,7 @@
      (:x8664
       `(progn
-	 (testw (% nargs) (% nargs))
+	 (testl (% nargs) (% nargs))
 	 (je ,done)
-	 (cmpw ($ '2) (% nargs))
+	 (cmpl ($ '2) (% nargs))
 	 (je ,yz)
 	 (jb ,z)
