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 .type __atomic_add,#function
14 __atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
19 bne,pn %icc, __atomic_add
20 membar #StoreLoad | #StoreStore
23 .size __atomic_add, .-__atomic_add
26 .type __atomic_sub,#function
27 __atomic_sub: /* %o0 = increment, %o1 = atomic_ptr */
32 bne,pn %icc, __atomic_sub
33 membar #StoreLoad | #StoreStore
36 .size __atomic_sub, .-__atomic_sub
39 .type __atomic64_add,#function
40 __atomic64_add: /* %o0 = increment, %o1 = atomic_ptr */
45 bne,pn %xcc, __atomic64_add
46 membar #StoreLoad | #StoreStore
49 .size __atomic64_add, .-__atomic64_add
52 .type __atomic64_sub,#function
53 __atomic64_sub: /* %o0 = increment, %o1 = atomic_ptr */
58 bne,pn %xcc, __atomic64_sub
59 membar #StoreLoad | #StoreStore
62 .size __atomic64_sub, .-__atomic64_sub