specifier on operand in asm inline

David Daney ddaney@avtrex.com
Fri Oct 12 20:56:00 GMT 2007


Ian Lance Taylor wrote:
> mp <dofg@ya.ru> writes:
> 
>> Ian Lance Taylor <iant@.com> wrote:
>>> Mihail Platonov <dofg@.ru> writes:
>>>
>>>> what is the semantics of "r" specifier in subx operand (%r2)?
>>>> and what is the meaning of connection between this specifier and "J"
>>>> constraint?
>>>>     __asm__ __volatile__ (
>>>> ...
>>>>             "subx %r2,%3,%%g1\n\t"
>>>>            : "=&r" ((USItype)(r1)),
>>>>              "=&r" ((USItype)(r0))
>>>>            : "%rJ" ((USItype)(x3)),
>>>>              "rI" ((USItype)(y3)),
>>>> ...
>>> The 'r' constraint means that that operand must be a general register.
>>> The 'J' constraint means that it must be the integer zero.  Using both
>>> rJ and together means that the operand must be either a general
>>> register or the integer zero.
>> thanx for answer anyway, but it is the description of constraints.
>> i'm trying to find out info about ...
>> subx op1, op2, op3
>> ... about op1. why 'r' is there and so on.
> 
> That is the question I tried to answer.  So I don't know what you are
> asking.  What type of answer are you looking for?

Not being mp, I could only guess that the question might be:  What is 
the purpose of constraints?

Some documentation on constraints can be found here:

http://gcc.gnu.org/onlinedocs/gccint/Constraints.html#Constraints


David Daney



More information about the Gcc-help mailing list