This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: VAX sltu and sgeu patterns
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: VAX sltu and sgeu patterns
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Thu, 17 Aug 2000 16:20:42 -0400 (EDT)
The following patch fixes the reload problem which arises from statements
such as `f(a<b);'. Other issues have prevented a full bootstrap test,
although I hope to complete one soon.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2000-08-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
* vax.md (sltu, sgeu): Change operand type to register_operand to
prevent memory input reloads.
--- vax.md.orig Sun Feb 27 20:41:06 2000
+++ vax.md Tue Aug 1 16:48:27 2000
@@ -136,14 +136,17 @@
;; patterns need to be recognized.
;; -- Ken Raeburn (Raeburn@Watch.COM) 24 August 1991.
+;; These only beat the default alternative for register operands. In
+;; addition, general operands can cause problems in the reload pass if
+;; an input reload is generated.
(define_insn "sltu"
- [(set (match_operand:SI 0 "general_operand" "=ro")
+ [(set (match_operand:SI 0 "register_operand" "=r")
(ltu (cc0) (const_int 0)))]
""
"clrl %0\;adwc $0,%0")
(define_insn "sgeu"
- [(set (match_operand:SI 0 "general_operand" "=ro")
+ [(set (match_operand:SI 0 "register_operand" "=r")
(geu (cc0) (const_int 0)))]
""
"movl $1,%0\;sbwc $0,%0")