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: egcs-problem 1.0.2



  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


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