Ian Lance Taylor <iant@xxxxxxxxxx> wrote: > mp <dofg@xxxxx> 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? you gave the description of the constraints : "=&r" ((USItype)(r1)), "=&r" ((USItype)(r0)) : "%rJ" ((USItype)(x3)), "rI" ((USItype)(y3)), i am pointing to "subx %r2,%3,%%g1\n\t" more definitely, to %r2. operand of subx. 'r' here is also a constraint, telling compiler to use register? > > Ian mp