inline asm and multi-alternative constraints
David Wohlferd
dw@LimeGreenSocks.com
Wed Nov 11 09:24:00 GMT 2015
On 11/9/2015 2:03 AM, Richard Earnshaw wrote:
> On 09/11/15 09:57, Richard Earnshaw wrote:
>> 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.
>>
> On the other hand, we have %S on ARM which cannot ever be used from
> inline assembler: it matches the result of a match_operator rule with
> complex internal structure that could never be generated from user code.
>
> R.
I don't know enough about ARM to be comfortable making a change here
myself. But dropping this out of the docs is simple enough. All you
need to do is wrap it with
@ifset INTERNALS
@end ifset
Then it will still show up in the Machine Description section, but not
the users' guide.
dw
More information about the Gcc
mailing list