inline asm and multi-alternative constraints
Richard Earnshaw
Richard.Earnshaw@foss.arm.com
Mon Nov 9 09:57:00 GMT 2015
On 07/11/15 09:23, Segher Boessenkool wrote:
> On Fri, Nov 06, 2015 at 11:50:40PM -0800, David Wohlferd wrote:
>>> The same goes for some constraints and almost all output modifiers.
>>
>> Are you suggesting more doc changes? Looking thru the pages you reference:
>>
>> - Starting with 'modifiers', "=+&" and (reluctantly) "%" seem reasonable
>> for inline asm. But both "#*" seem sketchy.
>
> Output modifiers, not constraint modifiers -- things like "%X0" in
> the output template. Many are only useful in the machine description,
> but some (like that 'X' for rs6000) are vital for asm as well.
>
They're not just useful, they're essential on AArch64 and ARM. They're
needed, for example, to get the 32/64-bit register sizing correct.
R.
>> - Under 'simple constraints', "mringX" all (more or less) make sense to
>> me. But "oV<>sp" are not things I can envision using.
>
> Some are more useful on some targets than on others, sure. But these
> generic constraints are extremely unlikely to ever get a change; this
> is not true for target constraints. If we want to delete (or change
> semantics of) some target constraint, and that constraint is documented,
> we have to fear the ire of the one or two users of that constraint.
>
>> - 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
>> https://gcc.gnu.org/ml/gcc/2008-03/msg01079.html).
>
> I think the manual (the "Simple Constraints" section) does describe it
> all, but it could be clearer. The PowerPC 'm' description does a good
> job of explaining things further (for that target).
>
>> 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?
>
> Almost everything can be used in asm as well, but many constraints etc.
> are much less useful there.
>
>> There are other minor changes I'd make on some of these pages. But
>> mostly they are not worth it unless I'm doing something else there too.
>> So if there's something here you think needs changing, let me know and
>> I'll take a crack at it.
>>
>> Other than that, I'll keep working my way thru the doc issues in the
>> inline-asm bugs. I've done what I can for 10396.
>
> Thanks again :-)
>
>
> Segher
>
More information about the Gcc
mailing list