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: matching constraints in asm operands question


>> which seems to work, but I'm really concerned about the manuals
>> warning of the input and output operads being in seperate places.
>>
>> Which form is correct?
>
>static __inline__ void atomic_inc(atomic_t *v)
>{
>	__asm__ __volatile__("addql #1,%0" : "+m" (*v));
>}
>
>Works just fine, every where I know of.  It is the same as you last
>example also.

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?

-- 
Peter Barada
peter@the-baradas.com


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