Commit 308e51aa by Uros Bizjak

predicates.md (pic_symbolic_operand): Remove predicate.

	* config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
	* config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
	predicate in "type" attribute calculation.
	(*addsi_1_zext): Ditto.
	(*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
	(*addsi_2_zext): Ditto.
	(*add<mode>_3): Ditto.
	(*addsi_3_zext): Ditto.
	(*add<mode>_5): Ditto.

From-SVN: r160252
parent f3cf730b
...@@ -6118,10 +6118,6 @@ ...@@ -6118,10 +6118,6 @@
(const_string "lea") (const_string "lea")
(eq_attr "alternative" "3") (eq_attr "alternative" "3")
(const_string "lea") (const_string "lea")
; Current assemblers are broken and do not allow @GOTOFF in
; ought but a memory context.
(match_operand:SWI48 2 "pic_symbolic_operand" "")
(const_string "lea")
(match_operand:SWI48 2 "incdec_operand" "") (match_operand:SWI48 2 "incdec_operand" "")
(const_string "incdec") (const_string "incdec")
] ]
...@@ -6172,10 +6168,6 @@ ...@@ -6172,10 +6168,6 @@
[(set (attr "type") [(set (attr "type")
(cond [(eq_attr "alternative" "1") (cond [(eq_attr "alternative" "1")
(const_string "lea") (const_string "lea")
; Current assemblers are broken and do not allow @GOTOFF in
; ought but a memory context.
(match_operand:SI 2 "pic_symbolic_operand" "")
(const_string "lea")
(match_operand:SI 2 "incdec_operand" "") (match_operand:SI 2 "incdec_operand" "")
(const_string "incdec") (const_string "incdec")
] ]
...@@ -6410,10 +6402,7 @@ ...@@ -6410,10 +6402,7 @@
(set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm") (set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm")
(plus:SWI48 (match_dup 1) (match_dup 2)))] (plus:SWI48 (match_dup 1) (match_dup 2)))]
"ix86_match_ccmode (insn, CCGOCmode) "ix86_match_ccmode (insn, CCGOCmode)
&& ix86_binary_operator_ok (PLUS, <MODE>mode, operands) && ix86_binary_operator_ok (PLUS, <MODE>mode, operands)"
/* Current assemblers are broken and do not allow @GOTOFF in
ought but a memory context. */
&& ! pic_symbolic_operand (operands[2], VOIDmode)"
{ {
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
...@@ -6458,10 +6447,7 @@ ...@@ -6458,10 +6447,7 @@
(set (match_operand:DI 0 "register_operand" "=r") (set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))] (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode) "TARGET_64BIT && ix86_match_ccmode (insn, CCGOCmode)
&& ix86_binary_operator_ok (PLUS, SImode, operands) && ix86_binary_operator_ok (PLUS, SImode, operands)"
/* Current assemblers are broken and do not allow @GOTOFF in
ought but a memory context. */
&& ! pic_symbolic_operand (operands[2], VOIDmode)"
{ {
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
...@@ -6576,10 +6562,7 @@ ...@@ -6576,10 +6562,7 @@
(match_operand:SWI48 1 "nonimmediate_operand" "%0"))) (match_operand:SWI48 1 "nonimmediate_operand" "%0")))
(clobber (match_scratch:SWI48 0 "=r"))] (clobber (match_scratch:SWI48 0 "=r"))]
"ix86_match_ccmode (insn, CCZmode) "ix86_match_ccmode (insn, CCZmode)
&& !(MEM_P (operands[1]) && MEM_P (operands[2])) && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
/* Current assemblers are broken and do not allow @GOTOFF in
ought but a memory context. */
&& ! pic_symbolic_operand (operands[2], VOIDmode)"
{ {
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
...@@ -6623,10 +6606,7 @@ ...@@ -6623,10 +6606,7 @@
(set (match_operand:DI 0 "register_operand" "=r") (set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))] (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
"TARGET_64BIT && ix86_match_ccmode (insn, CCZmode) "TARGET_64BIT && ix86_match_ccmode (insn, CCZmode)
&& ix86_binary_operator_ok (PLUS, SImode, operands) && ix86_binary_operator_ok (PLUS, SImode, operands)"
/* Current assemblers are broken and do not allow @GOTOFF in
ought but a memory context. */
&& ! pic_symbolic_operand (operands[2], VOIDmode)"
{ {
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
...@@ -6907,10 +6887,7 @@ ...@@ -6907,10 +6887,7 @@
(const_int 0))) (const_int 0)))
(clobber (match_scratch:SWI48 0 "=r"))] (clobber (match_scratch:SWI48 0 "=r"))]
"ix86_match_ccmode (insn, CCGOCmode) "ix86_match_ccmode (insn, CCGOCmode)
&& !(MEM_P (operands[1]) && MEM_P (operands[2])) && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
/* Current assemblers are broken and do not allow @GOTOFF in
ought but a memory context. */
&& ! pic_symbolic_operand (operands[2], VOIDmode)"
{ {
switch (get_attr_type (insn)) switch (get_attr_type (insn))
{ {
......
...@@ -420,36 +420,6 @@ ...@@ -420,36 +420,6 @@
} }
}) })
;; Return true if the operand contains a @GOT or @GOTOFF reference.
(define_predicate "pic_symbolic_operand"
(match_code "const")
{
op = XEXP (op, 0);
if (TARGET_64BIT)
{
if (GET_CODE (op) == UNSPEC
&& XINT (op, 1) == UNSPEC_GOTPCREL)
return 1;
if (GET_CODE (op) == PLUS
&& GET_CODE (XEXP (op, 0)) == UNSPEC
&& XINT (XEXP (op, 0), 1) == UNSPEC_GOTPCREL)
return 1;
}
else
{
if (GET_CODE (op) == UNSPEC)
return 1;
if (GET_CODE (op) != PLUS
|| !CONST_INT_P (XEXP (op, 1)))
return 0;
op = XEXP (op, 0);
if (GET_CODE (op) == UNSPEC
&& XINT (op, 1) != UNSPEC_MACHOPIC_OFFSET)
return 1;
}
return 0;
})
;; Return true if OP is a symbolic operand that resolves locally. ;; Return true if OP is a symbolic operand that resolves locally.
(define_predicate "local_symbolic_operand" (define_predicate "local_symbolic_operand"
(match_code "const,label_ref,symbol_ref") (match_code "const,label_ref,symbol_ref")
......
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