rpms/gcc/devel gcc41-rh184446.patch,1.1,1.2

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Mar 10 01:03:27 UTC 2006


Author: aoliva

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv4227

Modified Files:
	gcc41-rh184446.patch 
Log Message:
* Thu Mar  9 2006 Alexandre Oliva <aoliva at redhat.com> 4.1.0-3 (2nd try)
- make ppc32 TLS PIC code sequences compatible with secure plt (#184446)
  (Richard Henderson and myself)


gcc41-rh184446.patch:
 rs6000.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: gcc41-rh184446.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-rh184446.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc41-rh184446.patch	9 Mar 2006 23:09:49 -0000	1.1
+++ gcc41-rh184446.patch	10 Mar 2006 01:03:09 -0000	1.2
@@ -1,44 +1,13 @@
-for gcc/ChangeLog
-from  Richard Henderson  <rth at redhat.com>, Alexandre Oliva  <aoliva at redhat.com>
-
-	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
-	secure-plt load sequence to compute the GOT address for -fPIC
-	-msecure-plt.
-
 Index: gcc/config/rs6000/rs6000.c
 ===================================================================
 --- gcc/config/rs6000/rs6000.c.orig	2006-03-09 20:02:13.000000000 -0300
-+++ gcc/config/rs6000/rs6000.c	2006-03-09 20:02:31.000000000 -0300
-@@ -3094,10 +3094,28 @@ rs6000_legitimize_tls_address (rtx addr,
- 		  tmp3 = gen_reg_rtx (Pmode);
- 		  mem = gen_const_mem (Pmode, tmp1);
- 
--		  first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
--		  emit_move_insn (tmp1, tempLR);
--		  emit_move_insn (tmp2, mem);
--		  emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
-+		  if (TARGET_SECURE_PLT)
-+		    {
-+		      char buf[30];
-+		      rtx l;
-+
-+		      ASM_GENERATE_INTERNAL_LABEL (buf, "LCF",
-+						   rs6000_pic_labelno++);
-+		      l = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
-+
-+		      first = emit_insn (gen_load_toc_v4_PIC_1 (tempLR, l));
-+		      emit_move_insn (tmp1, tempLR);
-+		      emit_insn (gen_load_toc_v4_PIC_3b (tmp2, tmp1, gsym, l));
-+		      emit_insn (gen_load_toc_v4_PIC_3c (tmp3, tmp2, gsym, l));
-+		    }
-+		  else
-+		    {
-+		      first = emit_insn (gen_load_toc_v4_PIC_1b (tempLR, gsym));
-+		      emit_move_insn (tmp1, tempLR);
-+		      emit_move_insn (tmp2, mem);
-+		      emit_insn (gen_addsi3 (tmp3, tmp1, tmp2));
-+		    }
-+
- 		  last = emit_move_insn (got, tmp3);
- 		  REG_NOTES (last) = gen_rtx_EXPR_LIST (REG_EQUAL, gsym,
- 							REG_NOTES (last));
++++ gcc/config/rs6000/rs6000.c	2006-03-09 22:00:43.000000000 -0300
+@@ -3081,7 +3081,7 @@ rs6000_legitimize_tls_address (rtx addr,
+ 	    {
+ 	      rtx gsym = rs6000_got_sym ();
+ 	      got = gen_reg_rtx (Pmode);
+-	      if (flag_pic == 0)
++	      if (flag_pic == 0 || (flag_pic && TARGET_SECURE_PLT))
+ 		rs6000_emit_move (got, gsym, Pmode);
+ 	      else
+ 		{




More information about the fedora-cvs-commits mailing list