This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: other/7114: ICE building strcoll.op from glibc-2.2.5


The following reply was made to PR other/7114; it has been noted by GNATS.

From: Alan Modra <amodra@bigpond.net.au>
To: Geoff Keating <geoffk@redhat.com>
Cc: d.mueller@elsoft.ch, gcc-gnats@gcc.gnu.org, gcc-patches@gcc.gnu.org,
  dje@watson.ibm.com
Subject: Re: other/7114: ICE building strcoll.op from glibc-2.2.5
Date: Wed, 17 Jul 2002 11:17:39 +0930

 On Tue, Jul 16, 2002 at 10:48:14AM -0700, Geoff Keating wrote:
 > The profiling function isn't allowed to clobber r30.  It never has
 > been, so this should be no surprise.
 
 I'm not quite sure what to make of this response.  We're talking about
 this code from rs6000.c:10479
 
       if (current_function_needs_context)
 	asm_fprintf (file, "\tmr %s,%s\n",
 		     reg_names[30], reg_names[STATIC_CHAIN_REGNUM]);
       fprintf (file, "\tbl %s\n", RS6000_MCOUNT);
       if (current_function_needs_context)
 	asm_fprintf (file, "\tmr %s,%s\n",
 		     reg_names[STATIC_CHAIN_REGNUM], reg_names[30]);
 
 This is currently emitted _before_ the prologue in the nested function,
 thus trashes r30.  I was considering the idea of adding a clobber of
 r30 to CALL_INSN_FUNCTION_USAGE when calling a nested function.  That's
 a workable solution, but means you need to zap r30 on all calls via
 function pointers too.
 
 -- 
 Alan Modra
 IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]