re PR target/47715 ([x32] TLS doesn't work)
PR target/47715 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. Update code sequence for TARGET_X32. (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check. (tls_dynamic_gnu2_64): Ditto. (*tls_dynamic_gnu2_lea_64): Ditto. (*tls_dynamic_gnu2_call_64): Ditto. (*tls_dynamic_gnu2_combine_64): Ditto. From-SVN: r176872
This commit is contained in:
parent
5e9627caa4
commit
f51c4a8aab
|
@ -1,3 +1,14 @@
|
|||
2011-07-28 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/47715
|
||||
* config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
|
||||
tls_symbolic_operand check. Update code sequence for TARGET_X32.
|
||||
(tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
|
||||
(tls_dynamic_gnu2_64): Ditto.
|
||||
(*tls_dynamic_gnu2_lea_64): Ditto.
|
||||
(*tls_dynamic_gnu2_call_64): Ditto.
|
||||
(*tls_dynamic_gnu2_combine_64): Ditto.
|
||||
|
||||
2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config.gcc: Set need_64bit_hwint to yes for x86 targets.
|
||||
|
@ -15,21 +26,20 @@
|
|||
|
||||
2011-07-28 Kai Tietz <ktietz@redhat.com>
|
||||
|
||||
* tree-vrp.c (simplify_stmt_using_ranges): Remove
|
||||
TRUTH_NOT_EXPR case.
|
||||
* tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
|
||||
(simplify_truth_ops_using_ranges): Likewise.
|
||||
(build_assert_expr_for): Likewise.
|
||||
(build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
|
||||
and handle BIT_NOT_EXPR for truth-operation.
|
||||
|
||||
2011-07-28 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
|
||||
PR target/49313
|
||||
Undo r176835 from trunk
|
||||
2011-07-27 Georg-Johann Lay
|
||||
|
||||
2011-07-28 Georg-Johann Lay <avr@gjlay.de>
|
||||
|
||||
|
||||
PR target/49687
|
||||
* config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
|
||||
Add _muluhisi3, _mulshisi3, _usmulhisi3.
|
||||
|
|
|
@ -12327,11 +12327,12 @@
|
|||
(call:DI
|
||||
(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:DI [(match_operand 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLS_GD)]
|
||||
"TARGET_64BIT"
|
||||
{
|
||||
fputs (ASM_BYTE "0x66\n", asm_out_file);
|
||||
if (!TARGET_X32)
|
||||
fputs (ASM_BYTE "0x66\n", asm_out_file);
|
||||
output_asm_insn
|
||||
("lea{q}\t{%a1@tlsgd(%%rip), %%rdi|rdi, %a1@tlsgd[rip]}", operands);
|
||||
fputs (ASM_SHORT "0x6666\n", asm_out_file);
|
||||
|
@ -12349,7 +12350,7 @@
|
|||
(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:DI [(match_operand 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLS_GD)])])
|
||||
|
||||
(define_insn "*tls_local_dynamic_base_32_gnu"
|
||||
|
@ -12502,7 +12503,7 @@
|
|||
ix86_tls_descriptor_calls_expanded_in_cfun = true;
|
||||
})
|
||||
|
||||
(define_insn "*tls_dynamic_lea_32"
|
||||
(define_insn "*tls_dynamic_gnu2_lea_32"
|
||||
[(set (match_operand:SI 0 "register_operand" "=r")
|
||||
(plus:SI (match_operand:SI 1 "register_operand" "b")
|
||||
(const:SI
|
||||
|
@ -12515,7 +12516,7 @@
|
|||
(set_attr "length" "6")
|
||||
(set_attr "length_address" "4")])
|
||||
|
||||
(define_insn "*tls_dynamic_call_32"
|
||||
(define_insn "*tls_dynamic_gnu2_call_32"
|
||||
[(set (match_operand:SI 0 "register_operand" "=a")
|
||||
(unspec:SI [(match_operand:SI 1 "tls_symbolic_operand" "")
|
||||
(match_operand:SI 2 "register_operand" "0")
|
||||
|
@ -12553,7 +12554,7 @@
|
|||
|
||||
(define_expand "tls_dynamic_gnu2_64"
|
||||
[(set (match_dup 2)
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
(unspec:DI [(match_operand 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLSDESC))
|
||||
(parallel
|
||||
[(set (match_operand:DI 0 "register_operand" "")
|
||||
|
@ -12566,9 +12567,9 @@
|
|||
ix86_tls_descriptor_calls_expanded_in_cfun = true;
|
||||
})
|
||||
|
||||
(define_insn "*tls_dynamic_lea_64"
|
||||
(define_insn "*tls_dynamic_gnu2_lea_64"
|
||||
[(set (match_operand:DI 0 "register_operand" "=r")
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
(unspec:DI [(match_operand 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_TLSDESC))]
|
||||
"TARGET_64BIT && TARGET_GNU2_TLS"
|
||||
"lea{q}\t{%a1@TLSDESC(%%rip), %0|%0, %a1@TLSDESC[rip]}"
|
||||
|
@ -12577,9 +12578,9 @@
|
|||
(set_attr "length" "7")
|
||||
(set_attr "length_address" "4")])
|
||||
|
||||
(define_insn "*tls_dynamic_call_64"
|
||||
(define_insn "*tls_dynamic_gnu2_call_64"
|
||||
[(set (match_operand:DI 0 "register_operand" "=a")
|
||||
(unspec:DI [(match_operand:DI 1 "tls_symbolic_operand" "")
|
||||
(unspec:DI [(match_operand 1 "tls_symbolic_operand" "")
|
||||
(match_operand:DI 2 "register_operand" "0")
|
||||
(reg:DI SP_REG)]
|
||||
UNSPEC_TLSDESC))
|
||||
|
@ -12598,7 +12599,7 @@
|
|||
(reg:DI SP_REG)]
|
||||
UNSPEC_TLSDESC)
|
||||
(const:DI (unspec:DI
|
||||
[(match_operand:DI 1 "tls_symbolic_operand" "")]
|
||||
[(match_operand 1 "tls_symbolic_operand" "")]
|
||||
UNSPEC_DTPOFF))))
|
||||
(clobber (reg:CC FLAGS_REG))]
|
||||
"TARGET_64BIT && TARGET_GNU2_TLS"
|
||||
|
|
Loading…
Reference in New Issue