>> Ugh, in the hopes of simplifying the example, I made it somewhat trivial...
>>
>> static __inline__ void atomic_add(atomic_t *v, int i)
>> {
>> __asm__ __volatile__("addl %2,%0" : "=m" (*v) : "m" (*v), "d" (i));
>> }
>>
>> Is that correct? And if so, then isn't the documentation wrong?
>
>This is correct, as is a version using "+m" (*v) : "d"(i),
>though of course the %2 gets moved to %1 in that case.
If I try:
static __inline__ void atomic_add(atomic_t *v, int i)
{
__asm__ __volatile__("addl %1,%0" : "+m" (*v) : "d" (i));
}
Then the compiler complains with:
/asm/atomic.h:33: warning: read-write constraint does not allow a register
So is the warning wrong?
--
Peter Barada
[EMAIL PROTECTED]