Mercurial > hg > nginx
view src/os/unix/ngx_sunpro_amd64.il @ 6791:cb4a4e9bba8e
Perl: fixed optimization in SSI command handler.
As the pointer to the first argument was tested instead of the argument
itself, array of arguments was always created, even if there were no
arguments. Fix is to test args[0] instead of args.
Found by Coverity (CID 1356862).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 01 Nov 2016 20:39:21 +0300 |
parents | 2cd019520210 |
children |
line wrap: on
line source
/ / Copyright (C) Igor Sysoev / Copyright (C) Nginx, Inc. / / ngx_atomic_uint_t ngx_atomic_cmp_set(ngx_atomic_t *lock, / ngx_atomic_uint_t old, ngx_atomic_uint_t set); / / the arguments are passed in %rdi, %rsi, %rdx / the result is returned in the %rax .inline ngx_atomic_cmp_set,0 movq %rsi, %rax lock cmpxchgq %rdx, (%rdi) setz %al movzbq %al, %rax .end / ngx_atomic_int_t ngx_atomic_fetch_add(ngx_atomic_t *value, / ngx_atomic_int_t add); / / the arguments are passed in %rdi, %rsi / the result is returned in the %rax .inline ngx_atomic_fetch_add,0 movq %rsi, %rax lock xaddq %rax, (%rdi) .end / ngx_cpu_pause() / / the "rep; nop" is used instead of "pause" to avoid the "[ PAUSE ]" hardware / capability added by linker because Solaris/amd64 does not know about it: / / ld.so.1: nginx: fatal: hardware capability unsupported: 0x2000 [ PAUSE ] .inline ngx_cpu_pause,0 rep; nop .end