* vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
From-SVN: r36044
This commit is contained in:
parent
2c8f0515bb
commit
76f941a847
@ -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,
|
||||
|
@ -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.
|
||||
;; 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 "sltu"
|
||||
[(set (match_operand:SI 0 "general_operand" "=ro")
|
||||
(ltu (cc0) (const_int 0)))]
|
||||
""
|
||||
"clrl %0\;adwc $0,%0")
|
||||
|
||||
(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")
|
||||
|
Loading…
Reference in New Issue
Block a user