blob: bdeef612507375fbd2fb47a0a48f79a76c04c10f [file] [log] [blame] [raw]
/
/ Copyright (C) Igor Sysoev
/ Copyright (C) Nginx, Inc.
/
/ "casa [%o2] 0x80, %o1, %o0" and
/ "casxa [%o2] 0x80, %o1, %o0" do the following:
/
/ if ([%o2] == %o1) {
/ swap(%o0, [%o2]);
/ } else {
/ %o0 = [%o2];
/ }
/ ngx_atomic_uint_t ngx_casa(ngx_atomic_uint_t set, ngx_atomic_uint_t old,
/ ngx_atomic_t *lock);
/
/ the arguments are passed in the %o0, %o1, %o2
/ the result is returned in the %o0
.inline ngx_casa,0
casa [%o2] 0x80, %o1, %o0
.end
/ ngx_atomic_uint_t ngx_casxa(ngx_atomic_uint_t set, ngx_atomic_uint_t old,
/ ngx_atomic_t *lock);
/
/ the arguments are passed in the %o0, %o1, %o2
/ the result is returned in the %o0
.inline ngx_casxa,0
casxa [%o2] 0x80, %o1, %o0
.end