File nvl425800.patch of Package gcc43

Backport from FSF mainline:

        2008-07-30  Alan Modra  <amodra@bigpond.net.au>
	PR target/36955
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
	a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c	(revision 140235)
+++ gcc/config/rs6000/rs6000.c	(working copy)
@@ -3842,6 +3842,8 @@ rs6000_legitimize_tls_address (rtx addr,
 	  insn = emit_call_insn (insn);
 	  CONST_OR_PURE_CALL_P (insn) = 1;
 	  use_reg (&CALL_INSN_FUNCTION_USAGE (insn), r3);
+	  if (DEFAULT_ABI == ABI_V4 && TARGET_SECURE_PLT && flag_pic)
+	    use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
 	  insn = get_insns ();
 	  end_sequence ();
 	  emit_libcall_block (insn, dest, r3, addr);
@@ -3860,6 +3862,8 @@ rs6000_legitimize_tls_address (rtx addr,
 	  insn = emit_call_insn (insn);
 	  CONST_OR_PURE_CALL_P (insn) = 1;
 	  use_reg (&CALL_INSN_FUNCTION_USAGE (insn), r3);
+	  if (DEFAULT_ABI == ABI_V4 && TARGET_SECURE_PLT && flag_pic)
+	    use_reg (&CALL_INSN_FUNCTION_USAGE (insn), pic_offset_table_rtx);
 	  insn = get_insns ();
 	  end_sequence ();
 	  tmp1 = gen_reg_rtx (Pmode);
openSUSE Build Service is sponsored by