clobbering input args in inline asm

Andrew Haley aph@redhat.com
Tue May 2 19:53:00 GMT 2006


Stas Sergeev writes:
 > Hi.
 > 
 > Andrew Haley wrote:
 > >> doesn't work", but rather "what does the "0" mean, when
 > >> put in the clobber list?"
 > > It means nothing.
 > Well, the real reason why I wrote the message, was
 > that I suspected the bug. When I put "0" in clobber, gcc
 > eats it *unless* I have "a" in input list - then it complains.
 > Any other register class in input with "0" in clobber seem to
 > be accepted without a complain.
 > That looked very suspicious, but of course I couldn't fill up
 > the bug entry without knowing what exactly "0" means in the
 > clobber list. Now if it means *nothing*, then the bug is definitely
 > not there. I just wanted to be sure. :)

The real thing going on here is that gcc exposes some of its internal
structures in extended asm.  That's what all this clobber stuff is,
register constraints, and so on.  It's all part of gcc's machine
description.

If you *really* want to know how RTL templates in the machine
description are formed, see 13.4, RTL Template, in gccint.info.  This
will tell you about the different forms a clobber can take.  And then
you'll see what's really going on.  This might be more than you really
want to know.  :-)

Andrew.



More information about the Gcc-help mailing list