[ColdFire 53/63] Static chain fixes

Andrew Pinski pinskia@physics.uc.edu
Wed Jan 10 21:54:00 GMT 2007


> 
> On Wed, 2007-01-10 at 21:32 +0000, Paul Brook wrote:
> > > > 	* config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
> > > > 	(INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
> > > > 	(__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
> > > > 	* config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
> > > > 	(M68K_STATIC_CHAIN_REG_NAME): Likewise.
> > > > 	* config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
> > > >
> > > > gcc/testsuite/
> > > > 200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
> > > >
> > > > 	* gcc.c-torture/execute/nestfunc-7.c: New.
> > >
> > > Isn't this an ABI change?  If so it needs to be documented at the least
> > > so that users of the m68k elf port aren't caught by surprise.
> > 
> > I thought STATIC_CHAIN_REGNUM was an internal implementation detail.
> > It's a private interface between the trampoline and the nested function, and 
> > never escapes to the outside world.
> Doesn't the caller need to tell the callee where to find stacked
> variables?  It seems to me the caller and callee need to agree on
> that location.

Yes they have to agree but the only place which uses static chain are for
nested functions and nested functions are always local to the TU.

-- Pinski



More information about the Gcc-patches mailing list