Submitted By: Ryan Oliver 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; }