This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: VAX sltu and sgeu patterns


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")

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]