_LOCK
__asm volatile(_LOCK " incl %0"
__asm volatile(_LOCK " incq %0"
__asm volatile(_LOCK " decl %0"
__asm volatile(_LOCK " decq %0"
__asm volatile(_LOCK " addl %1,%0"
__asm volatile(_LOCK " addq %1,%0"
__asm volatile(_LOCK " subl %1,%0"
__asm volatile(_LOCK " subq %1,%0"
__asm volatile(_LOCK " xaddl %0,%1"
__asm volatile(_LOCK " xaddq %0,%1"
__asm volatile(_LOCK " xaddl %0,%1"
__asm volatile(_LOCK " xaddq %0,%1"
__asm volatile(_LOCK " orl %1,%0" : "=m" (*ptr) : "ir" (bits));
__asm volatile(_LOCK " andl %1,%0" : "=m" (*ptr) : "ir" (~bits));
__asm volatile(_LOCK " orq %1,%0" : "=m" (*ptr) : "er" (bits));
__asm volatile(_LOCK " andq %1,%0" : "=m" (*ptr) : "er" (~bits));
__asm volatile(_LOCK " cmpxchgl %2, %1"
__asm volatile(_LOCK " cmpxchgq %2, %1"
__asm volatile(_LOCK " cmpxchgq %2, %1"
__asm volatile(_LOCK " incl %0"
__asm volatile(_LOCK " incl %0"
__asm volatile(_LOCK " decl %0"
__asm volatile(_LOCK " decl %0"
__asm volatile(_LOCK " addl %1,%0"
__asm volatile(_LOCK " addl %1,%0"
__asm volatile(_LOCK " subl %1,%0"
__asm volatile(_LOCK " subl %1,%0"
__asm volatile(_LOCK " xaddl %0,%1"
__asm volatile(_LOCK " xaddl %0,%1"
__asm volatile(_LOCK " xaddl %0,%1"
__asm volatile(_LOCK " xaddl %0,%1"
__asm__ volatile ("\n1:\t" _LOCK " cmpxchg8b (%1); jnz 1b" : "+A" (val) :
__asm volatile(_LOCK " orl %1,%0" : "=m" (*ptr) : "ir" (bits));
__asm volatile(_LOCK " andl %1,%0" : "=m" (*ptr) : "ir" (bits));
__asm volatile(_LOCK " cmpxchgl %2, %1"
__asm volatile(_LOCK " cmpxchgl %2, %1"
__asm volatile(_LOCK " cmpxchgl %2, %1"