OSDN Git Service

* Jeff for Tege.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Mar 1993 22:02:05 +0000 (22:02 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Mar 1993 22:02:05 +0000 (22:02 +0000)
* pa.md (sminsi3, smaxsi3): Fix bug in last change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3932 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/pa/pa.md

index 1c4b9b5..4a7d78b 100644 (file)
   [(set_attr "type" "binary,binary")
    (set_attr "length" "2,3")])
 
-;; Signed/Unsigned minimum and maximum patterns.
+; Patterns for max and min.  (There is no need for an earlyclobber in the
+; last alternative since the middle alternative will match if op0 == op1.)
+
 (define_insn "sminsi3"
   [(set (match_operand:SI 0 "register_operand" "=r,r,r")
-       (smin:SI (match_operand:SI 1 "register_operand" "%r,0,0")
-                (match_operand:SI 2 "arith11_operand" "M,r,I")))]
+       (smin:SI (match_operand:SI 1 "register_operand" "%0,0,r")
+                (match_operand:SI 2 "arith11_operand" "r,I,M")))]
   ""
   "@
-  comclr,> %1,%2,%0\;copy %1,%0
   comclr,> %2,%0,0\;copy %2,%0
-  comiclr,> %2,%0,0\;ldi %2,%0"
+  comiclr,> %2,%0,0\;ldi %2,%0
+  comclr,> %1,%2,%0\;copy %1,%0"
 [(set_attr "type" "multi,multi,multi")
  (set_attr "length" "2,2,2")])
 
 
 (define_insn "smaxsi3"
   [(set (match_operand:SI 0 "register_operand" "=r,r,r")
-       (smax:SI (match_operand:SI 1 "register_operand" "%r,0,0")
-                (match_operand:SI 2 "arith11_operand" "M,r,I")))]
+       (smax:SI (match_operand:SI 1 "register_operand" "%0,0,r")
+                (match_operand:SI 2 "arith11_operand" "r,I,M")))]
   ""
   "@
-  comclr,< %1,%2,%0\;copy %1,%0
   comclr,< %2,%0,0\;copy %2,%0
-  comiclr,< %2,%0,0\;ldi %2,%0"
+  comiclr,< %2,%0,0\;ldi %2,%0
+  comclr,< %1,%2,%0\;copy %1,%0"
 [(set_attr "type" "multi,multi,multi")
  (set_attr "length" "2,2,2")])