diff --git a/compiler/sparc/float.lisp b/compiler/sparc/float.lisp
index 779facbc3e28c781ff095fa86bfa5cb8e219637b..d07d70b9e49224c7d576049b5d1e14dab6b1f6ed 100644
--- a/compiler/sparc/float.lisp
+++ b/compiler/sparc/float.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/sparc/float.lisp,v 1.24 1998/07/24 17:22:37 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/float.lisp,v 1.25 1999/11/18 14:25:39 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -790,7 +790,10 @@
       (:single (inst fcmps x y))
       (:double (inst fcmpd x y))
       (:long (inst fcmpx x y)))
-    (inst nop)
+    ;; The SPARC V9 doesn't need an instruction between a
+    ;; floating-point compare and a floating-point branch.
+    (unless (backend-featurep :sparc-v9)
+      (inst nop))
     (inst fb (if not-p nope yep) target)
     (inst nop)))
 
diff --git a/compiler/sparc/insts.lisp b/compiler/sparc/insts.lisp
index 2e5f0339b20b4b1ff53850876dda17ad7760719a..5ca8b20474f76aa81669101bdc717454a1121934 100644
--- a/compiler/sparc/insts.lisp
+++ b/compiler/sparc/insts.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/sparc/insts.lisp,v 1.21 1999/08/13 15:57:25 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/insts.lisp,v 1.22 1999/11/18 14:25:40 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -898,7 +898,8 @@
       (reads src1)
       (reads src2)
       (writes :fsr))
-     (:delay 1)
+     ;; The Sparc V9 doesn't need a delay after a FP compare.
+     (:delay #-sparc-v9 1 #+sparc-v9 0)
      (:emitter (emit-format-3-fpop segment #b10 0 #b110101
 		(fp-reg-tn-encoding src1) ,opf (fp-reg-tn-encoding src2)))))
 
@@ -949,7 +950,8 @@
       (reads src1)
       (reads src2)
       (writes :fsr))
-     (:delay 1)
+     ;; The Sparc V9 doesn't need a delay after a FP compare.
+     (:delay #-sparc-v9 1 #+sparc-v9 0)
      (:emitter (emit-format-3-fpop segment #b10 0 #b110101
 		(fp-reg-tn-encoding src1) ,opf (fp-reg-tn-encoding src2)))))