fix extension
[nginx.git] / nginx / src / os / unix / ngx_sunpro_x86.il
1 /
2 / Copyright (C) Igor Sysoev
3 /
4
5 / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock,
6 /     ngx_atomic_uint_t old, ngx_atomic_uint_t set);
7 /
8 / the arguments are passed on the stack (%esp), 4(%esp), 8(%esp)
9
10         .inline ngx_atomic_cmp_set,0
11         movl      (%esp), %ecx
12         movl      4(%esp), %eax
13         movl      8(%esp), %edx
14         lock
15         cmpxchgl  %edx, (%ecx)
16         setz      %al
17         movzbl    %al, %eax
18         .end
19
20
21 / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value,
22 /     ngx_atomic_int_t add);
23 /
24 / the arguments are passed on the stack (%esp), 4(%esp)
25
26         .inline ngx_atomic_fetch_add,0
27         movl      (%esp), %ecx
28         movl      4(%esp), %eax
29         lock
30         xaddl     %eax, (%ecx)
31         .end
32
33
34 / ngx_cpu_pause()
35
36        .inline ngx_cpu_pause,0
37        pause
38        .end