diff options
Diffstat (limited to 'arch/x86/include/asm/atomic.h')
-rw-r--r-- | arch/x86/include/asm/atomic.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h index ce84388e540c..ea3d95275b43 100644 --- a/arch/x86/include/asm/atomic.h +++ b/arch/x86/include/asm/atomic.h | |||
@@ -82,7 +82,7 @@ static __always_inline void arch_atomic_sub(int i, atomic_t *v) | |||
82 | */ | 82 | */ |
83 | static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) | 83 | static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) |
84 | { | 84 | { |
85 | GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", e); | 85 | return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); |
86 | } | 86 | } |
87 | #define arch_atomic_sub_and_test arch_atomic_sub_and_test | 87 | #define arch_atomic_sub_and_test arch_atomic_sub_and_test |
88 | 88 | ||
@@ -122,7 +122,7 @@ static __always_inline void arch_atomic_dec(atomic_t *v) | |||
122 | */ | 122 | */ |
123 | static __always_inline bool arch_atomic_dec_and_test(atomic_t *v) | 123 | static __always_inline bool arch_atomic_dec_and_test(atomic_t *v) |
124 | { | 124 | { |
125 | GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", e); | 125 | return GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, e); |
126 | } | 126 | } |
127 | #define arch_atomic_dec_and_test arch_atomic_dec_and_test | 127 | #define arch_atomic_dec_and_test arch_atomic_dec_and_test |
128 | 128 | ||
@@ -136,7 +136,7 @@ static __always_inline bool arch_atomic_dec_and_test(atomic_t *v) | |||
136 | */ | 136 | */ |
137 | static __always_inline bool arch_atomic_inc_and_test(atomic_t *v) | 137 | static __always_inline bool arch_atomic_inc_and_test(atomic_t *v) |
138 | { | 138 | { |
139 | GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", e); | 139 | return GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, e); |
140 | } | 140 | } |
141 | #define arch_atomic_inc_and_test arch_atomic_inc_and_test | 141 | #define arch_atomic_inc_and_test arch_atomic_inc_and_test |
142 | 142 | ||
@@ -151,7 +151,7 @@ static __always_inline bool arch_atomic_inc_and_test(atomic_t *v) | |||
151 | */ | 151 | */ |
152 | static __always_inline bool arch_atomic_add_negative(int i, atomic_t *v) | 152 | static __always_inline bool arch_atomic_add_negative(int i, atomic_t *v) |
153 | { | 153 | { |
154 | GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", s); | 154 | return GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, s, "er", i); |
155 | } | 155 | } |
156 | #define arch_atomic_add_negative arch_atomic_add_negative | 156 | #define arch_atomic_add_negative arch_atomic_add_negative |
157 | 157 | ||