Commit 974485d7 by Uros Bizjak

i386.c (legitimize_tls_address): Generate tls_initial_exec_64_sun only when !TARGET_X32.

	* config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
	Generate tls_initial_exec_64_sun only when !TARGET_X32.

From-SVN: r188022
parent 4bbbcbf6
2012-05-30 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
Generate tls_initial_exec_64_sun only when !TARGET_X32.
2012-05-30 Richard Guenther <rguenther@suse.de> 2012-05-30 Richard Guenther <rguenther@suse.de>
PR middle-end/53501 PR middle-end/53501
...@@ -178,14 +183,12 @@ ...@@ -178,14 +183,12 @@
assign_temp): Remove 'keep' argument. assign_temp): Remove 'keep' argument.
(mark_temp_addr_taken): Remove prototype. (mark_temp_addr_taken): Remove prototype.
* tree.h (expand_decl): Remove prototype. * tree.h (expand_decl): Remove prototype.
* function.c (struct temp_slot): Remove addr_taken and keep * function.c (struct temp_slot): Remove addr_taken and keep member.
member.
(assign_stack_temp_for_type) Don't initialize above, remove (assign_stack_temp_for_type) Don't initialize above, remove
keep argument. keep argument.
(assign_stack_temp, assign_temp): Remove keep argument. (assign_stack_temp, assign_temp): Remove keep argument.
(mark_temp_addr_taken): Remove. (mark_temp_addr_taken): Remove.
(preserve_temp_slots): Remove handling of addr_taken and keep (preserve_temp_slots): Remove handling of addr_taken and keep members.
members.
(free_temp_slots): Ditto. (free_temp_slots): Ditto.
* expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
dead code. dead code.
...@@ -415,8 +418,7 @@ ...@@ -415,8 +418,7 @@
PR middle-end/53510 PR middle-end/53510
* input.c (read_line): Use XRESIZEVEC instead of XNEWVEC * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
to avoid leaking memory. No need to handle memory allocation to avoid leaking memory. No need to handle memory allocation
failure. Double string_len on each reallocation instead of failure. Double string_len on each reallocation instead of adding 2.
adding 2.
* gcov.c (read_line): Likewise. * gcov.c (read_line): Likewise.
2012-05-29 Hans-Peter Nilsson <hp@axis.com> 2012-05-29 Hans-Peter Nilsson <hp@axis.com>
...@@ -435,8 +437,7 @@ ...@@ -435,8 +437,7 @@
2012-05-28 Hans-Peter Nilsson <hp@axis.com> 2012-05-28 Hans-Peter Nilsson <hp@axis.com>
* doc/md.texi (stack_protect_test): Remove negation of branch to * doc/md.texi (stack_protect_test): Remove negation of branch to label.
label.
(Standard Names): Fix typos in documentation of atomic patterns. (Standard Names): Fix typos in documentation of atomic patterns.
2012-05-27 Nathan Sidwell <nathan@acm.org> 2012-05-27 Nathan Sidwell <nathan@acm.org>
......
...@@ -12810,13 +12810,13 @@ legitimize_tls_address (rtx x, enum tls_model model, bool for_mov) ...@@ -12810,13 +12810,13 @@ legitimize_tls_address (rtx x, enum tls_model model, bool for_mov)
case TLS_MODEL_INITIAL_EXEC: case TLS_MODEL_INITIAL_EXEC:
if (TARGET_64BIT) if (TARGET_64BIT)
{ {
if (TARGET_SUN_TLS) if (TARGET_SUN_TLS && !TARGET_X32)
{ {
/* The Sun linker took the AMD64 TLS spec literally /* The Sun linker took the AMD64 TLS spec literally
and can only handle %rax as destination of the and can only handle %rax as destination of the
initial executable code sequence. */ initial executable code sequence. */
dest = gen_reg_rtx (Pmode); dest = gen_reg_rtx (DImode);
emit_insn (gen_tls_initial_exec_64_sun (dest, x)); emit_insn (gen_tls_initial_exec_64_sun (dest, x));
return dest; return dest;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment