".balign 8\n" ".globl mutex_lock\n" "mutex_lock:\n" "mov 4(%esp), %eax;" "1:" "bt $0, (%eax);" "jc 1b;" "2:" "lock; bts $0, (%eax);" // atomic test for bit 0 "jc 1b;" "ret;" );