diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-29 19:10:05 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-29 19:10:05 +0000 |
commit | 9d3a73bc8b9b1a4e4feb20fd83c181af3ec1d0c9 (patch) | |
tree | 43ee651def39140047801c7bcd44bbb6a4df5645 /gcc/config/vax/vax.md | |
parent | a336277c692cea90bb63fcf75ccbf01c3e1a3e9a (diff) | |
download | gcc-9d3a73bc8b9b1a4e4feb20fd83c181af3ec1d0c9.tar.gz |
* vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36044 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/vax/vax.md')
-rw-r--r-- | gcc/config/vax/vax.md | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/gcc/config/vax/vax.md b/gcc/config/vax/vax.md index e552bb0fa66..a6d0e6c85ab 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") |