Index: /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp
===================================================================
--- /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp	(revision 8255)
+++ /branches/ia32/compiler/X86/X8632/x8632-vinsns.lisp	(revision 8256)
@@ -274,7 +274,5 @@
 (define-x8632-vinsn default-optionals (()
                                        ((n :u16const))
-                                       ((temp :u32)))
-  ;; xxx temp will probably be eax (which is nargs, too), so preserve it.
-  (pushl (:%l x8632::nargs.l))
+                                       ((temp :imm)))
   (rcmpw (:%w x8632::nargs) (:$w (:apply ash n x8632::word-shift)))
   (movw (:%w x8632::nargs) (:%w temp))
@@ -285,6 +283,5 @@
   (cmpw (:$w (:apply ash n x8632::word-shift)) (:%w temp))
   (jne :loop)
-  :done
-  (popl (:%l x8632::nargs.l)))
+  :done)
 
 (define-x8632-vinsn save-lisp-context-no-stack-args (()
