diff --git a/compiler/rt/mc68881.lisp b/compiler/rt/mc68881.lisp
index a7488bed942d021e1779fc2cb2820372fcff91d2..e32ed4694c5ec110fd1acc7e256c9d5bac7e7de7 100644
--- a/compiler/rt/mc68881.lisp
+++ b/compiler/rt/mc68881.lisp
@@ -440,13 +440,13 @@
 (define-vop (make-mc68881-double-float)
   (:args (hi-bits :scs (signed-reg))
 	 (lo-bits :scs (unsigned-reg)))
+  (:arg-types signed-num unsigned-num)
   (:results (res :scs (mc68881-double-reg)
 		 :load-if (not (sc-is res double-stack))))
-  (:temporary (:scs (double-stack)) temp)
-  (:arg-types signed-num unsigned-num)
   (:result-types mc68881-double-float)
-  (:temporary (:sc sap-reg) scratch)
-  (:temporary (:sc word-pointer-reg) addr)
+  (:temporary (:scs (double-stack)) temp)
+  (:temporary (:sc sap-reg :from (:eval 0)) scratch)
+  (:temporary (:sc word-pointer-reg :from (:eval 0)) addr)
   (:translate make-double-float)
   (:policy :fast-safe)
   (:vop-var vop)