diff --git a/compiler/float-tran.lisp b/compiler/float-tran.lisp
index 77a2b1ad0f4af978381351ff902e8fb085299f58..64ddee487d64f46b32a6676d8495cfabfa3074c8 100644
--- a/compiler/float-tran.lisp
+++ b/compiler/float-tran.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.87 2002/03/14 21:30:51 toy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/float-tran.lisp,v 1.88 2003/04/23 20:05:05 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -275,11 +275,15 @@
   `(integer 0 (,(ash 1 vm:double-float-digits))))
 
 (defknown decode-single-float (single-float)
-  (values single-float single-float-exponent (single-float -1f0 1f0))
+  (values (single-float 0.5f0 (1f0))
+	  single-float-exponent
+	  (member -1f0 1f0))
   (movable foldable flushable))
 
 (defknown decode-double-float (double-float)
-  (values double-float double-float-exponent (double-float -1d0 1d0))
+  (values (double-float 0.5d0 (1d0))
+	  double-float-exponent
+	  (member -1d0 1d0))
   (movable foldable flushable))
 
 (defknown integer-decode-single-float (single-float)
diff --git a/compiler/fndb.lisp b/compiler/fndb.lisp
index bf0d02f1925d56ff74351e93d8d8785b36c134c9..06385e5ce932f322fddbb296a3d6383c6735079c 100644
--- a/compiler/fndb.lisp
+++ b/compiler/fndb.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/fndb.lisp,v 1.110 2003/04/23 18:08:49 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/fndb.lisp,v 1.111 2003/04/23 20:05:05 toy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -301,7 +301,10 @@
   (real &optional real) (values float real)
   (movable foldable flushable explicit-check))
 
-(defknown decode-float (float) (values float float-exponent float)
+(defknown decode-float (float)
+  (values (float 0.5d0 (1d0))
+	  float-exponent
+	  (member 1f0 -1f0 -1d0 1d0))
   (movable foldable flushable explicit-check))
 (defknown scale-float (float float-exponent) float
   (movable foldable flushable explicit-check))