1 #ifndef _MACHINE_INSTR_H
2 #define _MACHINE_INSTR_H
5 __attribute__ ((unused))
6 atomic_swap (volatile long *mem, long val)
8 __asm__ __volatile__ ("xchgl %2,%0"
9 : "=r" (val) : "0" (val), "m" (*mem));
13 static inline long int
14 __attribute__ ((unused))
15 compare_and_swap (volatile long int *p, long int oldval, long int newval)
19 __asm__ __volatile__ ("lock; cmpxchgl %2, %1"
20 : "=a" (ret), "=m" (*p)
21 : "r" (newval), "m" (*p), "0" (oldval));