Commit 13ecc9e0 by Kaz Kojima

sh.c (prepare_move_operands): Use emit_call_insn when the TLS address is…

sh.c (prepare_move_operands): Use emit_call_insn when the TLS address is generated by a function call.

	* config/sh/sh.c (prepare_move_operands): Use emit_call_insn
	when the TLS address is generated by a function call.
	* config/sh/sh.md (tls_global_dynamic): Use a call expression.
	(tls_local_dynamic): Likewise.

From-SVN: r80450
parent cb07f7bb
2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.c (prepare_move_operands): Use emit_call_insn
when the TLS address is generated by a function call.
* config/sh/sh.md (tls_global_dynamic): Use a call expression.
(tls_local_dynamic): Likewise.
2004-04-05 Andrew Pinski <pinskia@physics.uc.edu> 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
* tree.c (reconstruct_complex_type): Use TYPE_READONLY * tree.c (reconstruct_complex_type): Use TYPE_READONLY
......
...@@ -944,13 +944,13 @@ prepare_move_operands (rtx operands[], enum machine_mode mode) ...@@ -944,13 +944,13 @@ prepare_move_operands (rtx operands[], enum machine_mode mode)
{ {
case TLS_MODEL_GLOBAL_DYNAMIC: case TLS_MODEL_GLOBAL_DYNAMIC:
tga_ret = gen_rtx_REG (Pmode, R0_REG); tga_ret = gen_rtx_REG (Pmode, R0_REG);
emit_insn (gen_tls_global_dynamic (tga_ret, op1)); emit_call_insn (gen_tls_global_dynamic (tga_ret, op1));
op1 = tga_ret; op1 = tga_ret;
break; break;
case TLS_MODEL_LOCAL_DYNAMIC: case TLS_MODEL_LOCAL_DYNAMIC:
tga_ret = gen_rtx_REG (Pmode, R0_REG); tga_ret = gen_rtx_REG (Pmode, R0_REG);
emit_insn (gen_tls_local_dynamic (tga_ret, op1)); emit_call_insn (gen_tls_local_dynamic (tga_ret, op1));
tmp = gen_reg_rtx (Pmode); tmp = gen_reg_rtx (Pmode);
emit_move_insn (tmp, tga_ret); emit_move_insn (tmp, tga_ret);
......
...@@ -6863,8 +6863,9 @@ ...@@ -6863,8 +6863,9 @@
(define_insn "tls_global_dynamic" (define_insn "tls_global_dynamic"
[(set (match_operand:SI 0 "register_operand" "=&z") [(set (match_operand:SI 0 "register_operand" "=&z")
(unspec:SI [(match_operand:SI 1 "" "")] (call (unspec:SI [(match_operand:SI 1 "" "")]
UNSPEC_TLSGD)) UNSPEC_TLSGD)
(const_int 0)))
(use (reg:PSI FPSCR_REG)) (use (reg:PSI FPSCR_REG))
(use (reg:SI PIC_REG)) (use (reg:SI PIC_REG))
(clobber (reg:SI PR_REG)) (clobber (reg:SI PR_REG))
...@@ -6891,8 +6892,9 @@ mov.l\\t1f,r4\\n\\ ...@@ -6891,8 +6892,9 @@ mov.l\\t1f,r4\\n\\
(define_insn "tls_local_dynamic" (define_insn "tls_local_dynamic"
[(set (match_operand:SI 0 "register_operand" "=&z") [(set (match_operand:SI 0 "register_operand" "=&z")
(unspec:SI [(match_operand:SI 1 "" "")] (call (unspec:SI [(match_operand:SI 1 "" "")]
UNSPEC_TLSLDM)) UNSPEC_TLSLDM)
(const_int 0)))
(use (reg:PSI FPSCR_REG)) (use (reg:PSI FPSCR_REG))
(use (reg:SI PIC_REG)) (use (reg:SI PIC_REG))
(clobber (reg:SI PR_REG)) (clobber (reg:SI PR_REG))
......
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