diff --git a/include/arch/x86/atomic.h b/include/arch/x86/atomic.h index fee6c1a6..2437a860 100644 --- a/include/arch/x86/atomic.h +++ b/include/arch/x86/atomic.h @@ -59,7 +59,7 @@ static inline bool atomic_test_bit(unsigned int bit, volatile void *addr) { static inline bool atomic_test_and_set_bit(unsigned int bit, volatile void *addr) { bool status; - asm volatile("lock bts %[bit], %[addr];" + asm volatile("lock btsl %[bit], %[addr];" "setc %[status];" : [ status ] "=r"(status) : [ bit ] "Ir"(bit), [ addr ] "m"(*(uint8_t *) addr) @@ -71,7 +71,7 @@ static inline bool atomic_test_and_set_bit(unsigned int bit, volatile void *addr static inline bool atomic_test_and_reset_bit(unsigned int bit, volatile void *addr) { bool status; - asm volatile("lock btr %[bit], %[addr];" + asm volatile("lock btrl %[bit], %[addr];" "setc %[status];" : [ status ] "=r"(status) : [ bit ] "Ir"(bit), [ addr ] "m"(*(uint8_t *) addr)