mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-03 07:00:27 +08:00
* config/i386/i386.md (TLS patterns): Fix whitespace.
From-SVN: r173802
This commit is contained in:
parent
9e8d926edd
commit
f402985af4
@ -12355,10 +12355,11 @@
|
||||
|
||||
(define_insn "*tls_global_dynamic_32_gnu"
|
||||
[(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:SI 3 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_GD))
|
||||
(unspec:SI
|
||||
[(match_operand:SI 1 "register_operand" "b")
|
||||
(match_operand:SI 2 "tls_symbolic_operand" "")
|
||||
(match_operand:SI 3 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_GD))
|
||||
(clobber (match_scratch:SI 4 "=d"))
|
||||
(clobber (match_scratch:SI 5 "=c"))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
@ -12368,21 +12369,21 @@
|
||||
(set_attr "length" "12")])
|
||||
|
||||
(define_expand "tls_global_dynamic_32"
|
||||
[(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:SI 3 "constant_call_address_operand" "")]
|
||||
UNSPEC_TLS_GD))
|
||||
(clobber (match_scratch:SI 4 ""))
|
||||
(clobber (match_scratch:SI 5 ""))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
[(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:SI 3 "constant_call_address_operand" "")]
|
||||
UNSPEC_TLS_GD))
|
||||
(clobber (match_scratch:SI 4 ""))
|
||||
(clobber (match_scratch:SI 5 ""))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
|
||||
(define_insn "*tls_global_dynamic_64"
|
||||
[(set (match_operand:DI 0 "register_operand" "=a")
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 2 "constant_call_address_operand" "z"))
|
||||
(match_operand:DI 3 "" "")))
|
||||
(mem:QI (match_operand:DI 2 "constant_call_address_operand" "z"))
|
||||
(match_operand:DI 3 "" "")))
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLS_GD)]
|
||||
"TARGET_64BIT"
|
||||
@ -12391,18 +12392,20 @@
|
||||
(set_attr "length" "16")])
|
||||
|
||||
(define_expand "tls_global_dynamic_64"
|
||||
[(parallel [(set (match_operand:DI 0 "register_operand" "")
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 2 "constant_call_address_operand" ""))
|
||||
(const_int 0)))
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLS_GD)])])
|
||||
[(parallel
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 2 "constant_call_address_operand" ""))
|
||||
(const_int 0)))
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLS_GD)])])
|
||||
|
||||
(define_insn "*tls_local_dynamic_base_32_gnu"
|
||||
[(set (match_operand:SI 0 "register_operand" "=a")
|
||||
(unspec:SI [(match_operand:SI 1 "register_operand" "b")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_LD_BASE))
|
||||
(unspec:SI
|
||||
[(match_operand:SI 1 "register_operand" "b")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_LD_BASE))
|
||||
(clobber (match_scratch:SI 3 "=d"))
|
||||
(clobber (match_scratch:SI 4 "=c"))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
@ -12412,18 +12415,21 @@
|
||||
(set_attr "length" "11")])
|
||||
|
||||
(define_expand "tls_local_dynamic_base_32"
|
||||
[(parallel [(set (match_operand:SI 0 "register_operand" "")
|
||||
(unspec:SI [(match_operand:SI 1 "register_operand" "")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "")]
|
||||
UNSPEC_TLS_LD_BASE))
|
||||
(clobber (match_scratch:SI 3 ""))
|
||||
(clobber (match_scratch:SI 4 ""))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
[(parallel
|
||||
[(set (match_operand:SI 0 "register_operand" "")
|
||||
(unspec:SI
|
||||
[(match_operand:SI 1 "register_operand" "")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "")]
|
||||
UNSPEC_TLS_LD_BASE))
|
||||
(clobber (match_scratch:SI 3 ""))
|
||||
(clobber (match_scratch:SI 4 ""))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
|
||||
(define_insn "*tls_local_dynamic_base_64"
|
||||
[(set (match_operand:DI 0 "register_operand" "=a")
|
||||
(call:DI (mem:QI (match_operand:DI 1 "constant_call_address_operand" "z"))
|
||||
(match_operand:DI 2 "" "")))
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 1 "constant_call_address_operand" "z"))
|
||||
(match_operand:DI 2 "" "")))
|
||||
(unspec:DI [(const_int 0)] UNSPEC_TLS_LD_BASE)]
|
||||
"TARGET_64BIT"
|
||||
"lea{q}\t{%&@tlsld(%%rip), %%rdi|rdi, %&@tlsld[rip]}\;call\t%P1"
|
||||
@ -12431,40 +12437,43 @@
|
||||
(set_attr "length" "12")])
|
||||
|
||||
(define_expand "tls_local_dynamic_base_64"
|
||||
[(parallel [(set (match_operand:DI 0 "register_operand" "")
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 1 "constant_call_address_operand" ""))
|
||||
(const_int 0)))
|
||||
(unspec:DI [(const_int 0)] UNSPEC_TLS_LD_BASE)])])
|
||||
[(parallel
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
(call:DI
|
||||
(mem:QI (match_operand:DI 1 "constant_call_address_operand" ""))
|
||||
(const_int 0)))
|
||||
(unspec:DI [(const_int 0)] UNSPEC_TLS_LD_BASE)])])
|
||||
|
||||
;; Local dynamic of a single variable is a lose. Show combine how
|
||||
;; to convert that back to global dynamic.
|
||||
|
||||
(define_insn_and_split "*tls_local_dynamic_32_once"
|
||||
[(set (match_operand:SI 0 "register_operand" "=a")
|
||||
(plus:SI (unspec:SI [(match_operand:SI 1 "register_operand" "b")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_LD_BASE)
|
||||
(const:SI (unspec:SI
|
||||
[(match_operand:SI 3 "tls_symbolic_operand" "")]
|
||||
UNSPEC_DTPOFF))))
|
||||
(plus:SI
|
||||
(unspec:SI [(match_operand:SI 1 "register_operand" "b")
|
||||
(match_operand:SI 2 "constant_call_address_operand" "z")]
|
||||
UNSPEC_TLS_LD_BASE)
|
||||
(const:SI (unspec:SI
|
||||
[(match_operand:SI 3 "tls_symbolic_operand" "")]
|
||||
UNSPEC_DTPOFF))))
|
||||
(clobber (match_scratch:SI 4 "=d"))
|
||||
(clobber (match_scratch:SI 5 "=c"))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
""
|
||||
"#"
|
||||
""
|
||||
[(parallel [(set (match_dup 0)
|
||||
(unspec:SI [(match_dup 1) (match_dup 3) (match_dup 2)]
|
||||
UNSPEC_TLS_GD))
|
||||
(clobber (match_dup 4))
|
||||
(clobber (match_dup 5))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
[(parallel
|
||||
[(set (match_dup 0)
|
||||
(unspec:SI [(match_dup 1) (match_dup 3) (match_dup 2)]
|
||||
UNSPEC_TLS_GD))
|
||||
(clobber (match_dup 4))
|
||||
(clobber (match_dup 5))
|
||||
(clobber (reg:CC FLAGS_REG))])])
|
||||
|
||||
;; Segment register for the thread base ptr load
|
||||
(define_mode_attr tp_seg [(SI "gs") (DI "fs")])
|
||||
|
||||
;; Load and add the thread base pointer from %gs:0.
|
||||
;; Load and add the thread base pointer from %<tp_seg>:0.
|
||||
(define_insn "*load_tp_<mode>"
|
||||
[(set (match_operand:P 0 "register_operand" "=r")
|
||||
(unspec:P [(const_int 0)] UNSPEC_TP))]
|
||||
|
Loading…
x
Reference in New Issue
Block a user