sh.c (prepare_move_operands): Emit a use of r12 for non-PIC TLS_MODEL_INITIAL_EXEC...
authorKaz Kojima <kkojima@gcc.gnu.org>
Sat, 6 Nov 2004 13:58:21 +0000 (13:58 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Sat, 6 Nov 2004 13:58:21 +0000 (13:58 +0000)
* config/sh/sh.c (prepare_move_operands): Emit a use of r12
for non-PIC TLS_MODEL_INITIAL_EXEC case.

From-SVN: r90172

gcc/ChangeLog
gcc/config/sh/sh.c

index b0068e7176ef0c71508972519b5242714242f770..33c708b77918fdece2f51981599267d2469abc0b 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-06  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (prepare_move_operands): Emit a use of r12
+       for non-PIC TLS_MODEL_INITIAL_EXEC case.
+
 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
 
        * expmed.c: Fix a comment typo.
index f94c0b83357c5238bcc6293ba740b04d5f9908e0..cf8bb41fafc80d054c6e1f40cb381727123fa367 100644 (file)
@@ -1041,7 +1041,11 @@ prepare_move_operands (rtx operands[], enum machine_mode mode)
 
            case TLS_MODEL_INITIAL_EXEC:
              if (! flag_pic)
-               emit_insn (gen_GOTaddr2picreg ());
+               {
+                 emit_insn (gen_GOTaddr2picreg ());
+                 emit_insn (gen_rtx_USE (VOIDmode, gen_rtx_REG (SImode,
+                                                                PIC_REG)));
+               }
              tga_op1 = no_new_pseudos ? op0 : gen_reg_rtx (Pmode);
              tmp = gen_sym2GOTTPOFF (op1);
              emit_insn (gen_tls_initial_exec (tga_op1, tmp));