Messages in this thread | | | From | "H. Peter Anvin" <> | Subject | Re: Atomic operations | Date | 3 Jun 2002 12:49:36 -0700 |
| |
Followup to: <3CFBB7DB.831BE453@didntduck.org> By author: Brian Gerst <bgerst@didntduck.org> In newsgroup: linux.dev.kernel > > int atomic_xadd(int i, atomic_t *v) > { > int ret; > __asm__(LOCK "xaddl %1,%0" > : "=m" (v->counter), "=r" (ret) > : "0" (v->counter), "1" (i)); > return ret; > } > > This one only works on 486+, but there are practically no real 386 SMP > systems. >
<slaps forehead>
Boy do I feel dumb now.
The only nitpick is that it's probably better coded as:
int atomic_xadd(int i, atomic_t *v) { asm volatile(LOCK "xaddl %1,%0" : "+m" (v->counter), "+r" (i)); return i; } -- <hpa@transmeta.com> at work, <hpa@zytor.com> in private! "Unix gives you enough rope to shoot yourself in the foot." http://www.zytor.com/~hpa/puzzle.txt <amsp@zytor.com> - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |