Something
public text v1 · immutable
".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;"
);
".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;"
);