This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: egcs-problem 1.0.2
- To: hjl at lucon dot org (H.J. Lu)
- Subject: Re: egcs-problem 1.0.2
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sun, 05 Apr 1998 13:22:36 -0600
- cc: egcs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <m0yLupl-00058JC@ocean.lucon.org>you write:
> >
> >
> > In message <m0yLuSz-00058iC@ocean.lucon.org>you write:
> > > > This is the "linux asm" problem that I haven't been able to look at
> > > > for the last month or so due to personal and company commitments.
> > > >
> > > > Basically there's a couple problems:
> > > >
> > > > * The linux x86 asm for strstr is totally bogus.
> > >
> > > Does the code below make sense?
> > Not sure what you're asking. If you want I can resend the analysis.
> > Basically the clobbers are bogus and the asm itself uses too many
> > registers to be safely compiled.
> >
>
> Why the clobbers are bogus? I changed one constraint from "g" to "m".
> It seems to work fine for me. As long as the asm statement specifies
> them as the clobbers and egcs doesn't use them inside the asm statement,
> how can number of registers used in the asm statement be a problem with
> egcs?
inputs and clobbers may not overlap. The way to do what they want to
do is via matching input/output with an earlyclobber.
Additionally operands may come from memory which is accessed via
reg+reg addressing modes which will cause the compiler to run out
of asms. This is the case even when the operand specifies a register
(it may need to be reloaded from a reg+reg address).
I've already discussed this at length with the Linux folks.
jeff