Mercurial > hg > nginx-quic
annotate src/os/unix/ngx_sunpro_x86.il @ 3165:7658e9c7e814
use parents around NGX_ATOMIC_T_LEN value
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 25 Sep 2009 20:25:47 +0000 |
parents | 7e02df612521 |
children | d620f497c50f |
rev | line source |
---|---|
561 | 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 / | |
2818
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
8 / the arguments are passed on stack (%esp), 4(%esp), 8(%esp) |
561 | 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 / | |
2818
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
24 / the arguments are passed on stack (%esp), 4(%esp) |
561 | 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 | |
1309 | 32 |
33 | |
34 / ngx_cpu_pause() | |
2818
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
35 / |
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
36 / the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware |
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
37 / capability added by linker because Solaris/i386 does not know about it: |
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
38 / |
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
39 / ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ] |
1309 | 40 |
41 .inline ngx_cpu_pause,0 | |
2818
7e02df612521
preserve Solaris binary hardware capabilities
Igor Sysoev <igor@sysoev.ru>
parents:
1309
diff
changeset
|
42 rep; nop |
1309 | 43 .end |