question regarding asm()
dtm@waterw.com
dtm@waterw.com
Thu Oct 9 09:26:00 GMT 1997
I do believe that you really can't do what you desire. You can
kinda fake it though, by saying what registers you want particular
variables to be in beforehand:
register int myvar asm("10"); // r10 on gcc for linux-ppc
-David
On Wed, 8 Oct 1997, Marc Lehmann wrote:
> Sorry to post this question again, but my last e-mail was definitely ignored,
> and the documentation still is wrong.... (And I still have no idea
> how, for example, kernel people are supposed to tell gcc NOT to
> use some registers in an asm that are used in an asm...)
>
> ----- Forwarded message from Marc Lehmann -----
>
> David Edelsohn wrote:
> > Clobber just means that GCC cannot make assumptions about the
> >register after the call, not before.
>
> That's what I expected, but the docs seems to sugest otherwise..
>
> >You explicitly use r9 and r10 in your pattern but never tell GCC. The
> >pattern should list r9 and r10 as
>
> It's not "my" pattern, it is taken as an example from the gcc info files, so
> the documentation is wrong and should be fixed.
>
> >inputs so that GCC knows not to touch them. In fact you should leave the
> >destinations as open register but make those required inputs so that GCC
> >fills them in during register allocation.
>
> The problem is that one cannot on all ports of gcc select
> specific registers as input (in that case, r9), but
> only register classes.
>
> How am I supposed to tell gcc that (say..) register r13 is NOT to be used as
> input in an asm when the target machine has no constraint specificly for
> r13? (on the x86 you have almost one class per reg, so that's not a problem,
> but this is not true for %ebp... there is NO way to tell gcc NOT to use %ebp
> as an input operand, or do I miss sth.?)
>
> -----==-
> ----==-- _
> ---==---(_)__ __ ____ __ Marc Lehmann
> --==---/ / _ \/ // /\ \/ / pcg@goof.com
> -=====/_/_//_/\_,_/ /_/\_\
> The choice of a GNU generation
>
> ----- End of forwarded message from Marc Lehmann -----
>
More information about the Gcc
mailing list