This is the mail archive of the gcc-help@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]
Other format: [Raw text]

Re: clobbering input args in inline asm


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.


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