aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ. David Anglin <dave@hiauly1.hia.nrc.ca>2000-08-29 19:10:05 +0000
committerJeff Law <law@gcc.gnu.org>2000-08-29 13:10:05 -0600
commit76f941a84733b761b149f527c5c6a2ebc7e024ed (patch)
tree43ee651def39140047801c7bcd44bbb6a4df5645 /gcc
parent2c8f0515bbed378f1e87e1b52e2913d058cbed16 (diff)
downloadgcc-76f941a84733b761b149f527c5c6a2ebc7e024ed.zip
gcc-76f941a84733b761b149f527c5c6a2ebc7e024ed.tar.gz
gcc-76f941a84733b761b149f527c5c6a2ebc7e024ed.tar.bz2
* vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
From-SVN: r36044
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/vax/vax.md30
2 files changed, 10 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6e84eb6..0a91a6c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md
index e552bb0..a6d0e6c 100644
--- a/gcc/config/vax/vax.md
+++ b/gcc/config/vax/vax.md
@@ -122,31 +122,13 @@
""
"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")
(define_insn "movdf"
[(set (match_operand:DF 0 "general_operand" "=g,g")