1 /* $Id: atomic.S,v 1.4 2001/11/18 00:12:56 davem Exp $
2 * atomic.S: These things are too big to do inline.
4 * Copyright (C) 1999 David S. Miller (davem@redhat.com)
13 __atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
18 bne,pn %icc, __atomic_add
19 membar #StoreLoad | #StoreStore
24 __atomic_sub: /* %o0 = increment, %o1 = atomic_ptr */
29 bne,pn %icc, __atomic_sub
30 membar #StoreLoad | #StoreStore
35 __atomic64_add: /* %o0 = increment, %o1 = atomic_ptr */
40 bne,pn %xcc, __atomic64_add
41 membar #StoreLoad | #StoreStore
46 __atomic64_sub: /* %o0 = increment, %o1 = atomic_ptr */
51 bne,pn %xcc, __atomic64_sub
52 membar #StoreLoad | #StoreStore