Submitted By: Ryan Oliver <ryan at pha dot com dot au>
Date: 2007-02-14
Initial Package Version: 4.1.2
Origin: Jakub
Upstream Status: In GCC Trunk
Description: Fixed in GCC SVN Revision #110522
	* config/sparc/sparc.c (sparc_output_scratch_registers): Use
	#ignore instead of #scratch for %g7 .register directive.

diff -Naur gcc-4.1.2.orig/gcc/config/sparc/sparc.c gcc-4.1.2/gcc/config/sparc/sparc.c
--- gcc-4.1.2.orig/gcc/config/sparc/sparc.c	2006-04-14 00:02:43.000000000 -0700
+++ gcc-4.1.2/gcc/config/sparc/sparc.c	2007-02-14 08:00:08.000000000 -0800
@@ -3709,7 +3709,10 @@
 	  && ! sparc_hard_reg_printed [i])
 	{
 	  sparc_hard_reg_printed [i] = 1;
-	  fprintf (file, "\t.register\t%%g%d, #scratch\n", i);
+	  /* %g7 is used as TLS base register, use #ignore
+	     for it instead of #scratch.  */
+	  fprintf (file, "\t.register\t%%g%d, #%s\n", i,
+		   i == 7 ? "ignore" : "scratch");
 	}
       if (i == 3) i = 5;
     }
