* vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
authorJ. David Anglin <dave@hiauly1.hia.nrc.ca>
Tue, 29 Aug 2000 19:10:05 +0000 (19:10 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 29 Aug 2000 19:10:05 +0000 (13:10 -0600)
From-SVN: r36044

gcc/ChangeLog
gcc/config/vax/vax.md

index 6e84eb6df51fcdf365dcb27228c7712b5d3429b5..0a91a6cf2f1e7d9c472ec6f909b44f06a56e1fc0 100644 (file)
@@ -1,3 +1,7 @@
+2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
+
 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
 
        * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
index e552bb0fa66f3f3850f33174aad460542e81cfe2..a6d0e6c85ab81fbf8329ac22cac3f130a63525dc 100644 (file)
   ""
   "bitb %0,%1")
 
-;; The vax has no sltu or sgeu patterns, but does have two-operand
-;; add/subtract with carry.  This is still better than the alternative.
-;; Since the cc0-using insn cannot be separated from the cc0-setting insn,
-;; and the two are created independently, we can't just use a define_expand
-;; to try to optimize this.  (The "movl" and "clrl" insns alter the cc0
-;; flags, but leave the carry flag alone, but that can't easily be expressed.)
-;;
-;; Several two-operator combinations could be added to make slightly more
-;; optimal code, but they'd have to cover all combinations of plus and minus
-;; using match_dup.  If you want to do this, I'd suggest changing the "sgeu"
-;; pattern to something like (minus (const_int 1) (ltu ...)), so fewer
-;; patterns need to be recognized.
-;; -- Ken Raeburn (Raeburn@Watch.COM) 24 August 1991.
-
-(define_insn "sltu"
-  [(set (match_operand:SI 0 "general_operand" "=ro")
-       (ltu (cc0) (const_int 0)))]
-  ""
-  "clrl %0\;adwc $0,%0")
+;; The vax has no sCOND insns.  It does have add/subtract with carry
+;; which could be used to implement the sltu and sgeu patterns.  However,
+;; to do this properly requires a complete rewrite of the compare insns
+;; to keep them together with the sltu/sgeu insns until after the
+;; reload pass is complete.  The previous implementation didn't do this
+;; and has been deleted.
 
-(define_insn "sgeu"
-  [(set (match_operand:SI 0 "general_operand" "=ro")
-       (geu (cc0) (const_int 0)))]
-  ""
-  "movl $1,%0\;sbwc $0,%0")
 \f
 (define_insn "movdf"
   [(set (match_operand:DF 0 "general_operand" "=g,g")