Index: /branches/ia32/level-0/X86/X8632/x8632-float.lisp
===================================================================
--- /branches/ia32/level-0/X86/X8632/x8632-float.lisp	(revision 7987)
+++ /branches/ia32/level-0/X86/X8632/x8632-float.lisp	(revision 7988)
@@ -260,7 +260,8 @@
 
 
-;;; Manipulate the MXCSR.  It's 32 bits wide, and we have to load and
-;;; store it through memory.  Use the scratch-mxcsr field in the TCR.
-;;; The upper half of the MXCSR is reserved (must be zero).
+;;; Manipulate the MXCSR.  It'll fit in a fixnum, but we have to
+;;; load and store it through memory.  On x8664, we can hide the
+;;; 32-bit MXCSR value in a fixnum on the stack; on a 32-bit x86,
+;;; we might need to use a scratch location in the TCR or something.
 
 ;;; Return the MXCSR as a fixnum
@@ -275,5 +276,5 @@
 ;;; so that only known control and status bits are written to.
 (defx86lapfunction %set-mxcsr ((val arg_z))
-  (unbox-fixnum arg_z imm0)
+  (unbox-fixnum val imm0)
   (andl ($ x86::mxcsr-write-mask) (% imm0))
   (movl (% imm0) (@ (% :rcontext) x8632::tcr.scratch-mxcsr))
