annotate src/os/unix/ngx_sunpro_x86.il @ 391:1d9bef53cd8e

Range filter: late_ranges functionality. Add one more filtering point after postpone filter. This allows to serve range capable replies with subrequests. It's not as efficient as range filtering for static data (i.e. doesn't save us from reading data from disk if some filter needs them in memory), but it may save some network bandwidth for us and for our users.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 21 Jul 2008 05:33:01 +0400
parents 95183808f549
children 829f9a66a659
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
110
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1 /
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2 / Copyright (C) Igor Sysoev
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 /
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5 / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock,
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6 / ngx_atomic_uint_t old, ngx_atomic_uint_t set);
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 /
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8 / the arguments are passed on the stack (%esp), 4(%esp), 8(%esp)
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10 .inline ngx_atomic_cmp_set,0
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
11 movl (%esp), %ecx
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
12 movl 4(%esp), %eax
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
13 movl 8(%esp), %edx
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
14 lock
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
15 cmpxchgl %edx, (%ecx)
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
16 setz %al
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
17 movzbl %al, %eax
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
18 .end
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
19
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
20
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
21 / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value,
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
22 / ngx_atomic_int_t add);
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
23 /
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
24 / the arguments are passed on the stack (%esp), 4(%esp)
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
25
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
26 .inline ngx_atomic_fetch_add,0
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
27 movl (%esp), %ecx
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
28 movl 4(%esp), %eax
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
29 lock
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
30 xaddl %eax, (%ecx)
dad2fe8ecf08 nginx 0.3.2
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
31 .end
320
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
32
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
33
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
34 / ngx_cpu_pause()
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
35
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
36 .inline ngx_cpu_pause,0
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
37 pause
95183808f549 nginx 0.6.4
Igor Sysoev <http://sysoev.ru>
parents: 110
diff changeset
38 .end