Commit a1d3d84b by Uros Bizjak Committed by Uros Bizjak

Revert:

	2012-03-14  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (constant_call_address_operand): Declare
	as special predicate.  Update all uses.

From-SVN: r185376
parent 717a5c62
2012-03-14 Uros Bizjak <ubizjak@gmail.com>
Revert:
2012-03-14 Uros Bizjak <ubizjak@gmail.com>
* config/i386/predicates.md (constant_call_address_operand): Declare
as special predicate. Update all uses.
2012-03-13 Jakub Jelinek <jakub@redhat.com> 2012-03-13 Jakub Jelinek <jakub@redhat.com>
PR c/52577 PR c/52577
......
...@@ -500,7 +500,7 @@ ...@@ -500,7 +500,7 @@
(match_test "op == ix86_tls_module_base ()"))) (match_test "op == ix86_tls_module_base ()")))
;; Test for a pc-relative call operand ;; Test for a pc-relative call operand
(define_special_predicate "constant_call_address_operand" (define_predicate "constant_call_address_operand"
(match_code "symbol_ref") (match_code "symbol_ref")
{ {
if (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC) if (ix86_cmodel == CM_LARGE || ix86_cmodel == CM_LARGE_PIC)
...@@ -573,14 +573,16 @@ ...@@ -573,14 +573,16 @@
;; Test for a valid operand for a call instruction. ;; Test for a valid operand for a call instruction.
;; Allow constant call address operands in Pmode only. ;; Allow constant call address operands in Pmode only.
(define_special_predicate "call_insn_operand" (define_special_predicate "call_insn_operand"
(ior (match_operand 0 "constant_call_address_operand") (ior (match_test "constant_call_address_operand
(op, mode == VOIDmode ? mode : Pmode)")
(match_operand 0 "call_register_no_elim_operand") (match_operand 0 "call_register_no_elim_operand")
(and (not (match_test "TARGET_X32")) (and (not (match_test "TARGET_X32"))
(match_operand 0 "memory_operand")))) (match_operand 0 "memory_operand"))))
;; Similarly, but for tail calls, in which we cannot allow memory references. ;; Similarly, but for tail calls, in which we cannot allow memory references.
(define_special_predicate "sibcall_insn_operand" (define_special_predicate "sibcall_insn_operand"
(ior (match_operand 0 "constant_call_address_operand") (ior (match_test "constant_call_address_operand
(op, mode == VOIDmode ? mode : Pmode)")
(match_operand 0 "register_no_elim_operand"))) (match_operand 0 "register_no_elim_operand")))
;; Match exactly zero. ;; Match exactly zero.
......
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