This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: other/7114: ICE building strcoll.op from glibc-2.2.5
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: amodra at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 17 Jul 2002 01:56:01 -0000
- Subject: Re: other/7114: ICE building strcoll.op from glibc-2.2.5
- Reply-to: Alan Modra <amodra at bigpond dot net dot au>
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