1 .text 2 3 .align 4,0x90 4 .globl q_atomic_test_and_set_int 5q_atomic_test_and_set_int: 6 movl 4(%esp),%ecx 7 movl 8(%esp),%eax 8 movl 12(%esp),%edx 9 lock 10 cmpxchgl %edx,(%ecx) 11 mov $0,%eax 12 sete %al 13 ret 14 .align 4,0x90 15 .type q_atomic_test_and_set_int,@function 16 .size q_atomic_test_and_set_int,.-q_atomic_test_and_set_int 17 18 .align 4,0x90 19 .globl q_atomic_test_and_set_ptr 20q_atomic_test_and_set_ptr: 21 movl 4(%esp),%ecx 22 movl 8(%esp),%eax 23 movl 12(%esp),%edx 24 lock 25 cmpxchgl %edx,(%ecx) 26 mov $0,%eax 27 sete %al 28 ret 29 .align 4,0x90 30 .type q_atomic_test_and_set_ptr,@function 31 .size q_atomic_test_and_set_ptr,.-q_atomic_test_and_set_ptr 32 33 .align 4,0x90 34 .globl q_atomic_increment 35q_atomic_increment: 36 movl 4(%esp), %ecx 37 lock 38 incl (%ecx) 39 mov $0,%eax 40 setne %al 41 ret 42 .align 4,0x90 43 .type q_atomic_increment,@function 44 .size q_atomic_increment,.-q_atomic_increment 45 46 .align 4,0x90 47 .globl q_atomic_decrement 48q_atomic_decrement: 49 movl 4(%esp), %ecx 50 lock 51 decl (%ecx) 52 mov $0,%eax 53 setne %al 54 ret 55 .align 4,0x90 56 .type q_atomic_decrement,@function 57 .size q_atomic_decrement,.-q_atomic_decrement 58 59 .align 4,0x90 60 .globl q_atomic_set_int 61q_atomic_set_int: 62 mov 4(%esp),%ecx 63 mov 8(%esp),%eax 64 xchgl %eax,(%ecx) 65 ret 66 .align 4,0x90 67 .type q_atomic_set_int,@function 68 .size q_atomic_set_int,.-q_atomic_set_int 69 70 .align 4,0x90 71 .globl q_atomic_set_ptr 72q_atomic_set_ptr: 73 mov 4(%esp),%ecx 74 mov 8(%esp),%eax 75 xchgl %eax,(%ecx) 76 ret 77 .align 4,0x90 78 .type q_atomic_set_ptr,@function 79 .size q_atomic_set_ptr,.-q_atomic_set_ptr 80 81 .align 4,0x90 82 .globl q_atomic_fetch_and_add_int 83q_atomic_fetch_and_add_int: 84 mov 4(%esp),%ecx 85 mov 8(%esp),%eax 86 lock 87 xadd %eax,(%ecx) 88 ret 89 .align 4,0x90 90 .type q_atomic_fetch_and_add_int,@function 91 .size q_atomic_fetch_and_add_int,.-q_atomic_fetch_and_add_int 92 93 .align 4,0x90 94 .globl q_atomic_fetch_and_add_ptr 95q_atomic_fetch_and_add_ptr: 96 mov 4(%esp),%ecx 97 mov 8(%esp),%eax 98 lock 99 xadd %eax,(%ecx) 100 ret 101 .align 4,0x90 102 .type q_atomic_fetch_and_add_ptr,@function 103 .size q_atomic_fetch_and_add_ptr,.-q_atomic_fetch_and_add_ptr 104