aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2012-03-13 16:49:06 +0100
committerUros Bizjak <uros@gcc.gnu.org>2012-03-13 16:49:06 +0100
commit62a1c0416faf365a7d1fc9c31e009d784ef832f2 (patch)
tree2ff95070376f792d1528966b88c04b3b7e796ae5 /gcc
parent7e9e7e6cea34514a3ad75afb99484d5d07937747 (diff)
downloadgcc-62a1c0416faf365a7d1fc9c31e009d784ef832f2.zip
gcc-62a1c0416faf365a7d1fc9c31e009d784ef832f2.tar.gz
gcc-62a1c0416faf365a7d1fc9c31e009d784ef832f2.tar.bz2
predicates.md (tls_symbolic_operand): Declare as special predicate.
* config/i386/predicates.md (tls_symbolic_operand): Declare as special predicate. (tls_modbase_operand): Ditto. * config/i386/i386.md: Remove mode from tls_symbolic_operand and tls_modbase_operand predicates. From-SVN: r185341
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/i386/i386.md22
-rw-r--r--gcc/config/i386/predicates.md4
3 files changed, 21 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 19bd4ed0..4c6c6ed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2012-03-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/predicates.md (tls_symbolic_operand): Declare as
+ special predicate.
+ (tls_modbase_operand): Ditto.
+ * config/i386/i386.md: Remove mode from tls_symbolic_operand and
+ tls_modbase_operand predicates.
+
2012-03-13 Martin Jambor <mjambor@suse.cz>
* expr.c (expand_assignment): Handle misaligned scalar writes to
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 890ea56..199f5fc 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -12591,7 +12591,7 @@
[(set (match_operand:SI 0 "register_operand" "=a")
(unspec:SI
[(match_operand:SI 1 "register_operand" "b")
- (match_operand:SI 2 "tls_symbolic_operand" "")
+ (match_operand 2 "tls_symbolic_operand" "")
(match_operand:SI 3 "constant_call_address_operand" "z")]
UNSPEC_TLS_GD))
(clobber (match_scratch:SI 4 "=d"))
@@ -12616,7 +12616,7 @@
[(parallel
[(set (match_operand:SI 0 "register_operand" "")
(unspec:SI [(match_operand:SI 2 "register_operand" "")
- (match_operand:SI 1 "tls_symbolic_operand" "")
+ (match_operand 1 "tls_symbolic_operand" "")
(match_operand:SI 3 "constant_call_address_operand" "")]
UNSPEC_TLS_GD))
(clobber (match_scratch:SI 4 ""))
@@ -12727,7 +12727,7 @@
(match_operand:SI 2 "constant_call_address_operand" "z")]
UNSPEC_TLS_LD_BASE)
(const:SI (unspec:SI
- [(match_operand:SI 3 "tls_symbolic_operand" "")]
+ [(match_operand 3 "tls_symbolic_operand" "")]
UNSPEC_DTPOFF))))
(clobber (match_scratch:SI 4 "=d"))
(clobber (match_scratch:SI 5 "=c"))
@@ -12825,7 +12825,7 @@
(define_insn "tls_initial_exec_64_sun"
[(set (match_operand:DI 0 "register_operand" "=a")
(unspec:DI
- [(match_operand:DI 1 "tls_symbolic_operand" "")]
+ [(match_operand 1 "tls_symbolic_operand" "")]
UNSPEC_TLS_IE_SUN))
(clobber (reg:CC FLAGS_REG))]
"TARGET_64BIT && TARGET_SUN_TLS"
@@ -12847,7 +12847,7 @@
(define_insn "tls_initial_exec_x32"
[(set (match_operand:SI 0 "register_operand" "=r")
(unspec:SI
- [(match_operand:SI 1 "tls_symbolic_operand" "")]
+ [(match_operand 1 "tls_symbolic_operand" "")]
UNSPEC_TLS_IE_X32))
(clobber (reg:CC FLAGS_REG))]
"TARGET_X32"
@@ -12864,7 +12864,7 @@
[(set (match_dup 3)
(plus:SI (match_operand:SI 2 "register_operand" "")
(const:SI
- (unspec:SI [(match_operand:SI 1 "tls_symbolic_operand" "")]
+ (unspec:SI [(match_operand 1 "tls_symbolic_operand" "")]
UNSPEC_TLSDESC))))
(parallel
[(set (match_operand:SI 0 "register_operand" "")
@@ -12882,7 +12882,7 @@
[(set (match_operand:SI 0 "register_operand" "=r")
(plus:SI (match_operand:SI 1 "register_operand" "b")
(const:SI
- (unspec:SI [(match_operand:SI 2 "tls_symbolic_operand" "")]
+ (unspec:SI [(match_operand 2 "tls_symbolic_operand" "")]
UNSPEC_TLSDESC))))]
"!TARGET_64BIT && TARGET_GNU2_TLS"
"lea{l}\t{%E2@TLSDESC(%1), %0|%0, %E2@TLSDESC[%1]}"
@@ -12893,7 +12893,7 @@
(define_insn "*tls_dynamic_gnu2_call_32"
[(set (match_operand:SI 0 "register_operand" "=a")
- (unspec:SI [(match_operand:SI 1 "tls_symbolic_operand" "")
+ (unspec:SI [(match_operand 1 "tls_symbolic_operand" "")
(match_operand:SI 2 "register_operand" "0")
;; we have to make sure %ebx still points to the GOT
(match_operand:SI 3 "register_operand" "b")
@@ -12909,13 +12909,13 @@
(define_insn_and_split "*tls_dynamic_gnu2_combine_32"
[(set (match_operand:SI 0 "register_operand" "=&a")
(plus:SI
- (unspec:SI [(match_operand:SI 3 "tls_modbase_operand" "")
+ (unspec:SI [(match_operand 3 "tls_modbase_operand" "")
(match_operand:SI 4 "" "")
(match_operand:SI 2 "register_operand" "b")
(reg:SI SP_REG)]
UNSPEC_TLSDESC)
(const:SI (unspec:SI
- [(match_operand:SI 1 "tls_symbolic_operand" "")]
+ [(match_operand 1 "tls_symbolic_operand" "")]
UNSPEC_DTPOFF))))
(clobber (reg:CC FLAGS_REG))]
"!TARGET_64BIT && TARGET_GNU2_TLS"
@@ -12969,7 +12969,7 @@
(define_insn_and_split "*tls_dynamic_gnu2_combine_64"
[(set (match_operand:DI 0 "register_operand" "=&a")
(plus:DI
- (unspec:DI [(match_operand:DI 2 "tls_modbase_operand" "")
+ (unspec:DI [(match_operand 2 "tls_modbase_operand" "")
(match_operand:DI 3 "" "")
(reg:DI SP_REG)]
UNSPEC_TLSDESC)
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md
index 7e0e1ef..4c76648 100644
--- a/gcc/config/i386/predicates.md
+++ b/gcc/config/i386/predicates.md
@@ -491,11 +491,11 @@
(match_operand 0 "local_symbolic_operand")))
;; Test for various thread-local symbols.
-(define_predicate "tls_symbolic_operand"
+(define_special_predicate "tls_symbolic_operand"
(and (match_code "symbol_ref")
(match_test "SYMBOL_REF_TLS_MODEL (op)")))
-(define_predicate "tls_modbase_operand"
+(define_special_predicate "tls_modbase_operand"
(and (match_code "symbol_ref")
(match_test "op == ix86_tls_module_base ()")))