aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc/lib/atomic_64.S44
1 files changed, 26 insertions, 18 deletions
diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
index 1c6a1bde5138..ce17c3094ba6 100644
--- a/arch/sparc/lib/atomic_64.S
+++ b/arch/sparc/lib/atomic_64.S
@@ -62,19 +62,23 @@ ENTRY(atomic_fetch_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
62ENDPROC(atomic_fetch_##op); \ 62ENDPROC(atomic_fetch_##op); \
63EXPORT_SYMBOL(atomic_fetch_##op); 63EXPORT_SYMBOL(atomic_fetch_##op);
64 64
65#define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op) ATOMIC_FETCH_OP(op) 65ATOMIC_OP(add)
66ATOMIC_OP_RETURN(add)
67ATOMIC_FETCH_OP(add)
66 68
67ATOMIC_OPS(add) 69ATOMIC_OP(sub)
68ATOMIC_OPS(sub) 70ATOMIC_OP_RETURN(sub)
71ATOMIC_FETCH_OP(sub)
69 72
70#undef ATOMIC_OPS 73ATOMIC_OP(and)
71#define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) 74ATOMIC_FETCH_OP(and)
72 75
73ATOMIC_OPS(and) 76ATOMIC_OP(or)
74ATOMIC_OPS(or) 77ATOMIC_FETCH_OP(or)
75ATOMIC_OPS(xor) 78
79ATOMIC_OP(xor)
80ATOMIC_FETCH_OP(xor)
76 81
77#undef ATOMIC_OPS
78#undef ATOMIC_FETCH_OP 82#undef ATOMIC_FETCH_OP
79#undef ATOMIC_OP_RETURN 83#undef ATOMIC_OP_RETURN
80#undef ATOMIC_OP 84#undef ATOMIC_OP
@@ -124,19 +128,23 @@ ENTRY(atomic64_fetch_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
124ENDPROC(atomic64_fetch_##op); \ 128ENDPROC(atomic64_fetch_##op); \
125EXPORT_SYMBOL(atomic64_fetch_##op); 129EXPORT_SYMBOL(atomic64_fetch_##op);
126 130
127#define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op) 131ATOMIC64_OP(add)
132ATOMIC64_OP_RETURN(add)
133ATOMIC64_FETCH_OP(add)
134
135ATOMIC64_OP(sub)
136ATOMIC64_OP_RETURN(sub)
137ATOMIC64_FETCH_OP(sub)
128 138
129ATOMIC64_OPS(add) 139ATOMIC64_OP(and)
130ATOMIC64_OPS(sub) 140ATOMIC64_FETCH_OP(and)
131 141
132#undef ATOMIC64_OPS 142ATOMIC64_OP(or)
133#define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op) 143ATOMIC64_FETCH_OP(or)
134 144
135ATOMIC64_OPS(and) 145ATOMIC64_OP(xor)
136ATOMIC64_OPS(or) 146ATOMIC64_FETCH_OP(xor)
137ATOMIC64_OPS(xor)
138 147
139#undef ATOMIC64_OPS
140#undef ATOMIC64_FETCH_OP 148#undef ATOMIC64_FETCH_OP
141#undef ATOMIC64_OP_RETURN 149#undef ATOMIC64_OP_RETURN
142#undef ATOMIC64_OP 150#undef ATOMIC64_OP