Annotation of embedaddon/nginx/src/os/unix/ngx_sunpro_sparc64.il, revision 1.1.1.1

1.1       misho       1: /
                      2: / Copyright (C) Igor Sysoev
                      3: / Copyright (C) Nginx, Inc.
                      4: /
                      5: 
                      6: 
                      7: /  "casa   [%o2] 0x80, %o1, %o0"  and
                      8: /  "casxa  [%o2] 0x80, %o1, %o0"  do the following:
                      9: /
                     10: /       if ([%o2] == %o1) {
                     11: /           swap(%o0, [%o2]);
                     12: /       } else {
                     13: /           %o0 = [%o2];
                     14: /       }
                     15: 
                     16: 
                     17: / ngx_atomic_uint_t ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old,
                     18: /      ngx_atomic_t *lock);
                     19: /
                     20: / the arguments are passed in the %o0, %o1, %o2
                     21: / the result is returned in the %o0
                     22: 
                     23:         .inline ngx_casa,0
                     24:         casa    [%o2] 0x80, %o1, %o0
                     25:         .end
                     26: 
                     27: 
                     28: / ngx_atomic_uint_t ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old,
                     29: /      ngx_atomic_t *lock);
                     30: /
                     31: / the arguments are passed in the %o0, %o1, %o2
                     32: / the result is returned in the %o0
                     33: 
                     34:         .inline ngx_casxa,0
                     35:         casxa   [%o2] 0x80, %o1, %o0
                     36:         .end

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>