inline asm and multi-alternative constraints

Sandra Loosemore sandra@codesourcery.com
Mon Nov 2 23:43:00 GMT 2015


On 11/02/2015 04:06 PM, Jeff Law wrote:
> On 10/30/2015 09:09 PM, David Wohlferd wrote:
>>
>> I have updated the non-md text with (most of) the changes I think it
>> needs (attached).  These changes are pleasantly minor, mostly just
>> adding some example text and a bit of formatting.
>>
>> However.  Trying to actually use the information on this page is turning
>> up some problems.
> I think the fundamental problem here is we ought not be exposing those
> modifiers to the user.  They're inherently tied to the details of the
> register allocation and reloading passes.

This is what I'm thinking as well.  Why would a user even need 
multi-alternative constraints in inline asm?  An insn template might be 
instantiated in many different contexts and need to deal with different 
flavors of operands, but inline asm code is generally unique and the 
programmer writing it knows very well what the operands are supposed to 
be (this one is a register, that one is an address, etc).

Choosing the most efficient form of a logical-or instruction is hardly a 
good motivating example, either -- nobody writes inline asm to do that. 
  I'm under the impression that the primary uses of inline asm are 
either to access machine instructions not exposed by builtins, or to 
provide a block of highly tuned code replacing all/most of a C function 
body.

-Sandra



More information about the Gcc mailing list