Commit 23369bef by Hans-Peter Nilsson Committed by Hans-Peter Nilsson

re PR target/19065 (Make CRIS libstdc++ asms autoincrement-safe)

	PR target/19065.
	* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
	not including (reg). Do not check for reg being CRIS_PC_REGNUM.
	(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
	* config/cris/cris.md: Tweak comments referring to Q.
 	("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
	("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
	("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
	("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
	("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
	Insert spaces in constraints to align alternatives vertically for
	readability.
	("cmphi"): Ditto.  Add separate alternative for operand 0 "Q>",
	operand 1: "M".

From-SVN: r95647
parent 5902435e
2005-02-28 Hans-Peter Nilsson <hp@axis.com>
PR target/19065.
* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
not including (reg). Do not check for reg being CRIS_PC_REGNUM.
(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
* config/cris/cris.md: Tweak comments referring to Q.
("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
Insert spaces in constraints to align alternatives vertically for
readability.
("cmphi"): Ditto. Add separate alternative for operand 0 "Q>",
operand 1: "M".
2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2005-02-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR rtl-optimization/17728 PR rtl-optimization/17728
......
...@@ -772,14 +772,14 @@ enum reg_class {NO_REGS, ALL_REGS, LIM_REG_CLASSES}; ...@@ -772,14 +772,14 @@ enum reg_class {NO_REGS, ALL_REGS, LIM_REG_CLASSES};
(C) == 'U' ? EXTRA_CONSTRAINT_U (X) : \ (C) == 'U' ? EXTRA_CONSTRAINT_U (X) : \
0) 0)
#define EXTRA_MEMORY_CONSTRAINT(X, STR) ((X) == 'Q')
#define EXTRA_CONSTRAINT_Q(X) \ #define EXTRA_CONSTRAINT_Q(X) \
( \ ( \
/* Slottable addressing modes: \ /* Just an indirect register (happens to also be \
A register? FIXME: Unnecessary. */ \ "all" slottable memory addressing modes not \
(BASE_P (X) && REGNO (X) != CRIS_PC_REGNUM) \ covered by other constraints, i.e. '>'). */ \
/* Indirect register: [reg]? */ \ GET_CODE (X) == MEM && BASE_P (XEXP (X, 0)) \
|| (GET_CODE (X) == MEM && BASE_P (XEXP (X, 0)) \
&& REGNO (XEXP (X, 0)) != CRIS_PC_REGNUM) \
) )
#define EXTRA_CONSTRAINT_R(X) \ #define EXTRA_CONSTRAINT_R(X) \
......
;; GCC machine description for CRIS cpu cores. ;; GCC machine description for CRIS cpu cores.
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
;; Contributed by Axis Communications. ;; Contributed by Axis Communications.
...@@ -91,9 +91,9 @@ ...@@ -91,9 +91,9 @@
;; mode, but that would need more attributes and hairier, more error ;; mode, but that would need more attributes and hairier, more error
;; prone code. ;; prone code.
;; ;;
;; There is an extra constraint, 'Q', which recognizes indirect reg, ;; There is an extra memory constraint, 'Q', which recognizes an indirect
;; except when the reg is pc. The constraints 'Q' and '>' together match ;; register. The constraints 'Q' and '>' together match all possible
;; all possible memory operands that are slottable. ;; memory operands that are slottable.
;; For other operands, you need to check if it has a valid "slottable" ;; For other operands, you need to check if it has a valid "slottable"
;; quick-immediate operand, where the particular signedness-variation ;; quick-immediate operand, where the particular signedness-variation
;; may match the constraints 'I' or 'J'.), and include it in the ;; may match the constraints 'I' or 'J'.), and include it in the
...@@ -268,8 +268,8 @@ ...@@ -268,8 +268,8 @@
(define_insn "cmpsi" (define_insn "cmpsi"
[(set (cc0) [(set (cc0)
(compare (compare
(match_operand:SI 0 "nonimmediate_operand" "r,r,r,r,Q>,Q>,r,r,m,m") (match_operand:SI 0 "nonimmediate_operand" "r,r,r, r,Q>,Q>,r,r,m,m")
(match_operand:SI 1 "general_operand" "I,r,Q>,M,M,r,P,g,M,r")))] (match_operand:SI 1 "general_operand" "I,r,Q>,M,M, r, P,g,M,r")))]
"" ""
"@ "@
cmpq %1,%0 cmpq %1,%0
...@@ -286,24 +286,25 @@ ...@@ -286,24 +286,25 @@
(define_insn "cmphi" (define_insn "cmphi"
[(set (cc0) [(set (cc0)
(compare (match_operand:HI 0 "nonimmediate_operand" "r,r,Q>,Q>,r,m,m") (compare (match_operand:HI 0 "nonimmediate_operand" "r,r, r,Q>,Q>,r,m,m")
(match_operand:HI 1 "general_operand" "r,Q>,M,r,g,M,r")))] (match_operand:HI 1 "general_operand" "r,Q>,M,M, r, g,M,r")))]
"" ""
"@ "@
cmp.w %1,%0 cmp.w %1,%0
cmp.w %1,%0 cmp.w %1,%0
test.w %0 test.w %0
test.w %0
cmp.w %0,%1 cmp.w %0,%1
cmp.w %1,%0 cmp.w %1,%0
test.w %0 test.w %0
cmp.w %0,%1" cmp.w %0,%1"
[(set_attr "slottable" "yes,yes,yes,yes,no,no,no")]) [(set_attr "slottable" "yes,yes,yes,yes,yes,no,no,no")])
(define_insn "cmpqi" (define_insn "cmpqi"
[(set (cc0) [(set (cc0)
(compare (compare
(match_operand:QI 0 "nonimmediate_operand" "r,r,r,Q>,Q>,r,m,m") (match_operand:QI 0 "nonimmediate_operand" "r,r, r,Q>,Q>,r,m,m")
(match_operand:QI 1 "general_operand" "r,Q>,M,M,r,g,M,r")))] (match_operand:QI 1 "general_operand" "r,Q>,M,M, r, g,M,r")))]
"" ""
"@ "@
cmp.b %1,%0 cmp.b %1,%0
...@@ -993,11 +994,11 @@ ...@@ -993,11 +994,11 @@
(define_insn "*movsi_internal" (define_insn "*movsi_internal"
[(set [(set
(match_operand:SI 0 "nonimmediate_operand" "=r,r,r,Q>,r,Q>,g,r,r,r,g") (match_operand:SI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,g,r,r,r,g")
(match_operand:SI 1 (match_operand:SI 1
;; FIXME: We want to put S last, but apparently g matches S. ;; FIXME: We want to put S last, but apparently g matches S.
;; It's a bug: an S is not a general_operand and shouldn't match g. ;; It's a bug: an S is not a general_operand and shouldn't match g.
"cris_general_operand_or_gotless_symbol" "r,Q>,M,M,I,r,M,n,!S,g,r"))] "cris_general_operand_or_gotless_symbol" "r,Q>,M,M, I,r, M,n,!S,g,r"))]
"" ""
"* "*
{ {
...@@ -1206,8 +1207,8 @@ ...@@ -1206,8 +1207,8 @@
(define_insn "movhi" (define_insn "movhi"
[(set [(set
(match_operand:HI 0 "nonimmediate_operand" "=r,r,r,Q>,r,Q>,r,r,r,g,g,r") (match_operand:HI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,r,r,r,g,g,r")
(match_operand:HI 1 "general_operand" "r,Q>,M,M,I,r,L,O,n,M,r,g"))] (match_operand:HI 1 "general_operand" "r,Q>,M,M, I,r, L,O,n,M,r,g"))]
"" ""
"* "*
{ {
...@@ -1249,8 +1250,8 @@ ...@@ -1249,8 +1250,8 @@
(define_insn "movstricthi" (define_insn "movstricthi"
[(set [(set
(strict_low_part (strict_low_part
(match_operand:HI 0 "nonimmediate_operand" "+r,r,r,Q>,Q>,g,r,g")) (match_operand:HI 0 "nonimmediate_operand" "+r,r, r,Q>,Q>,g,r,g"))
(match_operand:HI 1 "general_operand" "r,Q>,M,M,r,M,g,r"))] (match_operand:HI 1 "general_operand" "r,Q>,M,M, r, M,g,r"))]
"" ""
"@ "@
move.w %1,%0 move.w %1,%0
...@@ -1264,8 +1265,8 @@ ...@@ -1264,8 +1265,8 @@
[(set_attr "slottable" "yes,yes,yes,yes,yes,no,no,no")]) [(set_attr "slottable" "yes,yes,yes,yes,yes,no,no,no")])
(define_insn "movqi" (define_insn "movqi"
[(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r,r,Q>,r,g,g,r,r") [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,r,g,g,r,r")
(match_operand:QI 1 "general_operand" "r,r,Q>,M,M,I,M,r,O,g"))] (match_operand:QI 1 "general_operand" "r,r, Q>,M,M, I,M,r,O,g"))]
"" ""
"@ "@
move.b %1,%0 move.b %1,%0
...@@ -1286,8 +1287,8 @@ ...@@ -1286,8 +1287,8 @@
(define_insn "movstrictqi" (define_insn "movstrictqi"
[(set (strict_low_part [(set (strict_low_part
(match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r,r,Q>,g,g,r")) (match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r, r,Q>,g,g,r"))
(match_operand:QI 1 "general_operand" "r,r,Q>,M,M,M,r,g"))] (match_operand:QI 1 "general_operand" "r,r, Q>,M,M, M,r,g"))]
"" ""
"@ "@
move.b %1,%0 move.b %1,%0
...@@ -1306,8 +1307,8 @@ ...@@ -1306,8 +1307,8 @@
;; It will use clear, so we know ALL types of immediate 0 never change cc. ;; It will use clear, so we know ALL types of immediate 0 never change cc.
(define_insn "movsf" (define_insn "movsf"
[(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r,r,Q>,g,g,r") [(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,g,g,r")
(match_operand:SF 1 "general_operand" "r,r,Q>,G,G,G,r,g"))] (match_operand:SF 1 "general_operand" "r,r, Q>,G,G, G,r,g"))]
"" ""
"@ "@
move.d %1,%0 move.d %1,%0
...@@ -1720,10 +1721,10 @@ ...@@ -1720,10 +1721,10 @@
add.d %M2,%M1,%M0\;ax\;add.d %H2,%H1,%H0") add.d %M2,%M1,%M0\;ax\;add.d %H2,%H1,%H0")
(define_insn "addsi3" (define_insn "addsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r") [(set (match_operand:SI 0 "register_operand" "=r,r, r,r,r,r,r, r")
(plus:SI (plus:SI
(match_operand:SI 1 "register_operand" "%0,0,0,0,0,0,r,r") (match_operand:SI 1 "register_operand" "%0,0, 0,0,0,0,r, r")
(match_operand:SI 2 "general_operand" "r,Q>,J,N,n,g,!To,0")))] (match_operand:SI 2 "general_operand" "r,Q>,J,N,n,g,!To,0")))]
;; The last constraint is due to that after reload, the '%' is not ;; The last constraint is due to that after reload, the '%' is not
;; honored, and canonicalization doesn't care about keeping the same ;; honored, and canonicalization doesn't care about keeping the same
...@@ -1773,9 +1774,9 @@ ...@@ -1773,9 +1774,9 @@
[(set_attr "slottable" "yes,yes,yes,yes,no,no,no,yes")]) [(set_attr "slottable" "yes,yes,yes,yes,no,no,no,yes")])
(define_insn "addhi3" (define_insn "addhi3"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r")
(plus:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,r") (plus:HI (match_operand:HI 1 "register_operand" "%0,0, 0,0,0,r")
(match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))] (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
"" ""
"@ "@
add.w %2,%0 add.w %2,%0
...@@ -1788,9 +1789,9 @@ ...@@ -1788,9 +1789,9 @@
(set_attr "cc" "normal,normal,clobber,clobber,normal,normal")]) (set_attr "cc" "normal,normal,clobber,clobber,normal,normal")])
(define_insn "addqi3" (define_insn "addqi3"
[(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r,r") [(set (match_operand:QI 0 "register_operand" "=r,r, r,r,r,r,r")
(plus:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,0,r") (plus:QI (match_operand:QI 1 "register_operand" "%0,0, 0,0,0,0,r")
(match_operand:QI 2 "general_operand" "r,Q>,J,N,O,g,!To")))] (match_operand:QI 2 "general_operand" "r,Q>,J,N,O,g,!To")))]
"" ""
"@ "@
add.b %2,%0 add.b %2,%0
...@@ -1824,10 +1825,10 @@ ...@@ -1824,10 +1825,10 @@
sub.d %M2,%M1,%M0\;ax\;sub.d %H2,%H1,%H0") sub.d %M2,%M1,%M0\;ax\;sub.d %H2,%H1,%H0")
(define_insn "subsi3" (define_insn "subsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r") [(set (match_operand:SI 0 "register_operand" "=r,r, r,r,r,r,r,r")
(minus:SI (minus:SI
(match_operand:SI 1 "register_operand" "0,0,0,0,0,0,0,r") (match_operand:SI 1 "register_operand" "0,0, 0,0,0,0,0,r")
(match_operand:SI 2 "general_operand" "r,Q>,J,N,P,n,g,!To")))] (match_operand:SI 2 "general_operand" "r,Q>,J,N,P,n,g,!To")))]
"" ""
;; This does not do the optimal: "addu.w 65535,r0" when %2 is negative. ;; This does not do the optimal: "addu.w 65535,r0" when %2 is negative.
...@@ -1845,9 +1846,9 @@ ...@@ -1845,9 +1846,9 @@
[(set_attr "slottable" "yes,yes,yes,yes,no,no,no,no")]) [(set_attr "slottable" "yes,yes,yes,yes,no,no,no,no")])
(define_insn "subhi3" (define_insn "subhi3"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r")
(minus:HI (match_operand:HI 1 "register_operand" "0,0,0,0,0,r") (minus:HI (match_operand:HI 1 "register_operand" "0,0, 0,0,0,r")
(match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))] (match_operand:HI 2 "general_operand" "r,Q>,J,N,g,!To")))]
"" ""
"@ "@
sub.w %2,%0 sub.w %2,%0
...@@ -1860,9 +1861,9 @@ ...@@ -1860,9 +1861,9 @@
(set_attr "cc" "normal,normal,clobber,clobber,normal,normal")]) (set_attr "cc" "normal,normal,clobber,clobber,normal,normal")])
(define_insn "subqi3" (define_insn "subqi3"
[(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:QI 0 "register_operand" "=r,r, r,r,r,r")
(minus:QI (match_operand:QI 1 "register_operand" "0,0,0,0,0,r") (minus:QI (match_operand:QI 1 "register_operand" "0,0, 0,0,0,r")
(match_operand:QI 2 "general_operand" "r,Q>,J,N,g,!To")))] (match_operand:QI 2 "general_operand" "r,Q>,J,N,g,!To")))]
"" ""
"@ "@
sub.b %2,%0 sub.b %2,%0
...@@ -2734,9 +2735,9 @@ ...@@ -2734,9 +2735,9 @@
;; improved reload pass. ;; improved reload pass.
(define_insn "*expanded_andsi" (define_insn "*expanded_andsi"
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r") [(set (match_operand:SI 0 "register_operand" "=r,r,r, r,r")
(and:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,r") (and:SI (match_operand:SI 1 "register_operand" "%0,0,0, 0,r")
(match_operand:SI 2 "general_operand" "I,r,Q>,g,!To")))] (match_operand:SI 2 "general_operand" "I,r,Q>,g,!To")))]
"" ""
"@ "@
andq %2,%0 andq %2,%0
...@@ -2810,9 +2811,9 @@ ...@@ -2810,9 +2811,9 @@
;; Catch-all andhi3 pattern. ;; Catch-all andhi3 pattern.
(define_insn "*expanded_andhi" (define_insn "*expanded_andhi"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") [(set (match_operand:HI 0 "register_operand" "=r,r,r, r,r,r,r")
(and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,0,r") (and:HI (match_operand:HI 1 "register_operand" "%0,0,0, 0,0,0,r")
(match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))] (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
;; Sidenote: the tightening from "general_operand" to ;; Sidenote: the tightening from "general_operand" to
;; "register_operand" for operand 1 actually increased the register ;; "register_operand" for operand 1 actually increased the register
...@@ -2835,9 +2836,9 @@ ...@@ -2835,9 +2836,9 @@
(define_insn "*andhi_lowpart" (define_insn "*andhi_lowpart"
[(set (strict_low_part [(set (strict_low_part
(match_operand:HI 0 "register_operand" "=r,r,r,r,r,r")) (match_operand:HI 0 "register_operand" "=r,r, r,r,r,r"))
(and:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,r") (and:HI (match_operand:HI 1 "register_operand" "%0,0, 0,0,0,r")
(match_operand:HI 2 "general_operand" "r,Q>,L,O,g,!To")))] (match_operand:HI 2 "general_operand" "r,Q>,L,O,g,!To")))]
"" ""
"@ "@
and.w %2,%0 and.w %2,%0
...@@ -2850,9 +2851,9 @@ ...@@ -2850,9 +2851,9 @@
(set_attr "cc" "normal,normal,normal,clobber,normal,normal")]) (set_attr "cc" "normal,normal,normal,clobber,normal,normal")])
(define_insn "andqi3" (define_insn "andqi3"
[(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:QI 0 "register_operand" "=r,r,r, r,r,r")
(and:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,r") (and:QI (match_operand:QI 1 "register_operand" "%0,0,0, 0,0,r")
(match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))] (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
"" ""
"@ "@
andq %2,%0 andq %2,%0
...@@ -2866,9 +2867,9 @@ ...@@ -2866,9 +2867,9 @@
(define_insn "*andqi_lowpart" (define_insn "*andqi_lowpart"
[(set (strict_low_part [(set (strict_low_part
(match_operand:QI 0 "register_operand" "=r,r,r,r,r")) (match_operand:QI 0 "register_operand" "=r,r, r,r,r"))
(and:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,r") (and:QI (match_operand:QI 1 "register_operand" "%0,0, 0,0,r")
(match_operand:QI 2 "general_operand" "r,Q>,O,g,!To")))] (match_operand:QI 2 "general_operand" "r,Q>,O,g,!To")))]
"" ""
"@ "@
and.b %2,%0 and.b %2,%0
...@@ -2887,9 +2888,9 @@ ...@@ -2887,9 +2888,9 @@
;; with andsi3. ;; with andsi3.
(define_insn "iorsi3" (define_insn "iorsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:SI 0 "register_operand" "=r,r,r, r,r,r")
(ior:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,0,r") (ior:SI (match_operand:SI 1 "register_operand" "%0,0,0, 0,0,r")
(match_operand:SI 2 "general_operand" "I,r,Q>,n,g,!To")))] (match_operand:SI 2 "general_operand" "I, r,Q>,n,g,!To")))]
"" ""
"@ "@
orq %2,%0 orq %2,%0
...@@ -2902,9 +2903,9 @@ ...@@ -2902,9 +2903,9 @@
(set_attr "cc" "normal,normal,normal,clobber,normal,normal")]) (set_attr "cc" "normal,normal,normal,clobber,normal,normal")])
(define_insn "iorhi3" (define_insn "iorhi3"
[(set (match_operand:HI 0 "register_operand" "=r,r,r,r,r,r,r") [(set (match_operand:HI 0 "register_operand" "=r,r,r, r,r,r,r")
(ior:HI (match_operand:HI 1 "register_operand" "%0,0,0,0,0,0,r") (ior:HI (match_operand:HI 1 "register_operand" "%0,0,0, 0,0,0,r")
(match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))] (match_operand:HI 2 "general_operand" "I,r,Q>,L,O,g,!To")))]
"" ""
"@ "@
orq %2,%0 orq %2,%0
...@@ -2918,9 +2919,9 @@ ...@@ -2918,9 +2919,9 @@
(set_attr "cc" "clobber,normal,normal,normal,clobber,normal,normal")]) (set_attr "cc" "clobber,normal,normal,normal,clobber,normal,normal")])
(define_insn "iorqi3" (define_insn "iorqi3"
[(set (match_operand:QI 0 "register_operand" "=r,r,r,r,r,r") [(set (match_operand:QI 0 "register_operand" "=r,r,r, r,r,r")
(ior:QI (match_operand:QI 1 "register_operand" "%0,0,0,0,0,r") (ior:QI (match_operand:QI 1 "register_operand" "%0,0,0, 0,0,r")
(match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))] (match_operand:QI 2 "general_operand" "I,r,Q>,O,g,!To")))]
"" ""
"@ "@
orq %2,%0 orq %2,%0
...@@ -3340,9 +3341,9 @@ ...@@ -3340,9 +3341,9 @@
;; normal code too. ;; normal code too.
(define_insn "uminsi3" (define_insn "uminsi3"
[(set (match_operand:SI 0 "register_operand" "=r,r,r,r") [(set (match_operand:SI 0 "register_operand" "=r,r, r,r")
(umin:SI (match_operand:SI 1 "register_operand" "%0,0,0,r") (umin:SI (match_operand:SI 1 "register_operand" "%0,0, 0,r")
(match_operand:SI 2 "general_operand" "r,Q>,g,!STo")))] (match_operand:SI 2 "general_operand" "r,Q>,g,!STo")))]
"" ""
"* "*
{ {
...@@ -3858,7 +3859,7 @@ ...@@ -3858,7 +3859,7 @@
}") }")
;; Accept *anything* as operand 1. Accept operands for operand 0 in ;; Accept *anything* as operand 1. Accept operands for operand 0 in
;; order of preference (Q includes r, but r is shorter, faster) ;; order of preference.
(define_insn "*expanded_call" (define_insn "*expanded_call"
[(call (mem:QI (match_operand:SI [(call (mem:QI (match_operand:SI
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment