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




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


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