This is the mail archive of the 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: inline asm and multi-alternative constraints

On 11/07/2015 12:50 AM, David Wohlferd wrote:

- Starting with 'modifiers', "=+&" and (reluctantly) "%" seem reasonable
for inline asm.  But both "#*" seem sketchy.
Right. =+& are no-brainer yes, as are the constants 0-9. % is probably OK as well.

#* are similar to !? in that they are inherently tied into the register class preferencing implementation and documenting them would be inadvisable.

- Under 'simple constraints', "mringX" all (more or less) make sense to
me.  But "oV<>sp" are not things I can envision using.
The various offsettables (oV), pre/post increment (<>), address (p) make sense I'm not sure about (s).

- The 'machine constraints' for i386 (the only machine I know) all seem
reasonable.  However for platforms that support autoincrement
(powerpc?), apparently using "m" needs more docs (per

Are these the things to which you are referring?  I've always assumed
the parts that seem obscure here were due to my i386-centric view of the
world.  Are some of them actually md-only?
A few may be md-only, but generally folks have found that getting access to the target's constraints to be useful in asms. I was hesitant to document them initially because it made it much easier for someone to setup a situation where the compiler couldn't generate correct code. Those issues have (mostly) been fixed through the years.


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