predicates.md (tls_symbolic_operand): Declare as special predicate.
authorUros Bizjak <ubizjak@gmail.com>
Tue, 13 Mar 2012 15:49:06 +0000 (16:49 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 13 Mar 2012 15:49:06 +0000 (16:49 +0100)
* 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

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

index 19bd4ed062c6023caddab254f03b6fff85e58203..4c6c6ed4ec26d912c07bf787f18691abf017a78e 100644 (file)
@@ -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
index 890ea568c9cd1e7da21cfb0a6fed039c6648cc32..199f5fc65d4b09cc4962cdf8ece836b31fd0b5e7 100644 (file)
   [(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"))
   [(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 ""))
                     (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"))
 (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"
 (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"
   [(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" "")
   [(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]}"
 
 (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")
 (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"
 (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)
index 7e0e1effaa8d5c71d193ba8607be5e063ae481b6..4c766484ecf79060936f9396e9273d15fe7e5a72 100644 (file)
        (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 ()")))