This is the mail archive of the gcc@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]

Re: Anyone knows about a testcase which was fixed by Wed Dec 24 18:05:13 1997 SPARC change?


On Thu, Oct 05, 2000 at 11:53:06PM -0700, Richard Henderson wrote:
> On Fri, Oct 06, 2000 at 02:06:18AM -0400, Jakub Jelinek wrote:
> > I cannot think of any, nor can DaveM. If noone comes with
> > explanation why %l7 might get clobbered, I'll submit a patch
> > to remove this shortly.
> 
> How about -mflat?  That's about all I can think of.

I don't think -mflat should make any problems either,
gcc info sais on nonlocal_goto_receiver:

     This pattern, if defined, contains code needed at the target of a
     nonlocal goto after the code already generated by GNU CC.  You
     will not normally need to define this pattern.  A typical reason
     why you might need this pattern is if some value, such as a
     pointer to a global table, must be restored when the frame pointer
     is restored.  Note that a nonlocal goto only occurs within a
     unit-of-translation, so a global table pointer that is shared by
     all functions of a given module need not be restored.  There are
     no arguments.

so all functions which it might get through should be within one translation
unit, so everything is -fpic/-fPIC meaning that %l7 will either remain
untouched or will be reloaded to the same value. Otherwise it would not work
on i386 and other platforms either.
It just means that folks like jh will have to be careful when trying to
implement -fpic optimizations to unfix the pic register for functions which
don't need it (at least Jan told me he wants to implement something like
that on i386 to use %ebx).
I've looked at -mflat -fpic output and I really think nonlocal_goto_receiver
can be killed...

	Jakub

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