aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2018-01-15 22:36:42 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2018-01-15 14:36:42 -0800
commit894c144ca2ebad231fcd9a42abaf2a12bb629142 (patch)
tree3ac1db3ff41609945cc926604b0722e43ec7bf00 /gcc
parent4a5a0497ba984382955babd44a4d63e0d91a3243 (diff)
downloadgcc-894c144ca2ebad231fcd9a42abaf2a12bb629142.zip
gcc-894c144ca2ebad231fcd9a42abaf2a12bb629142.tar.gz
gcc-894c144ca2ebad231fcd9a42abaf2a12bb629142.tar.bz2
i386: Rewrite indirect_branch_operand logic
* config/i386/predicates.md (indirect_branch_operand): Rewrite ix86_indirect_branch_register logic. From-SVN: r256715
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/predicates.md4
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f89575a..3e92ee9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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
ix86_indirect_branch_register check. Don't check
ix86_indirect_branch_register with GOT_memory_operand.
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md
index a502657..2f2393b 100644
--- a/gcc/config/i386/predicates.md
+++ b/gcc/config/i386/predicates.md
@@ -665,8 +665,8 @@
;; 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.