i386: Rewrite indirect_branch_operand logic
authorH.J. Lu <hongjiu.lu@intel.com>
Mon, 15 Jan 2018 22:36:42 +0000 (22:36 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Mon, 15 Jan 2018 22:36:42 +0000 (14:36 -0800)
* config/i386/predicates.md (indirect_branch_operand): Rewrite
ix86_indirect_branch_register logic.

From-SVN: r256715

gcc/ChangeLog
gcc/config/i386/predicates.md

index f89575a4c8481233aaf12adf107453d50b4f69d5..3e92ee9aaa50cc79924980dd5902c9610b9364e0 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/predicates.md (indirect_branch_operand): Rewrite
+       ix86_indirect_branch_register logic.
+
 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/constraints.md (Bs): Update
index a502657f9e30ec659ac4d39858a2c8816dc2f910..2f2393b9e3ecb13c4b1961911eaf7262e9e4a75e 100644 (file)
 ;; Test for a valid operand for indirect branch.
 (define_predicate "indirect_branch_operand"
   (ior (match_operand 0 "register_operand")
-       (and (not (match_test "TARGET_X32
-                             || ix86_indirect_branch_register"))
+       (and (not (match_test "ix86_indirect_branch_register"))
+           (not (match_test "TARGET_X32"))
            (match_operand 0 "memory_operand"))))
 
 ;; Return true if OP is a memory operands that can be used in sibcalls.