|
@@ -23,21 +23,13 @@
|
|
|
|
|
|
#define atomic_set(v, i) (((v)->counter) = (i))
|
|
|
|
|
|
-#ifdef CONFIG_ISA_ARCV2
|
|
|
-#define PREFETCHW " prefetchw [%1] \n"
|
|
|
-#else
|
|
|
-#define PREFETCHW
|
|
|
-#endif
|
|
|
-
|
|
|
#define ATOMIC_OP(op, c_op, asm_op) \
|
|
|
static inline void atomic_##op(int i, atomic_t *v) \
|
|
|
{ \
|
|
|
unsigned int temp; \
|
|
|
\
|
|
|
__asm__ __volatile__( \
|
|
|
- "1: \n" \
|
|
|
- PREFETCHW \
|
|
|
- " llock %0, [%1] \n" \
|
|
|
+ "1: llock %0, [%1] \n" \
|
|
|
" " #asm_op " %0, %0, %2 \n" \
|
|
|
" scond %0, [%1] \n" \
|
|
|
" bnz 1b \n" \
|
|
@@ -58,9 +50,7 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
|
|
|
smp_mb(); \
|
|
|
\
|
|
|
__asm__ __volatile__( \
|
|
|
- "1: \n" \
|
|
|
- PREFETCHW \
|
|
|
- " llock %0, [%1] \n" \
|
|
|
+ "1: llock %0, [%1] \n" \
|
|
|
" " #asm_op " %0, %0, %2 \n" \
|
|
|
" scond %0, [%1] \n" \
|
|
|
" bnz 1b \n" \
|