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)))))