diff options
author | Greg Ungerer <gerg@uclinux.org> | 2011-07-04 01:30:55 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2011-07-24 21:20:41 -0400 |
commit | 35de674982aa13de98cf470c640895164017563e (patch) | |
tree | d4223dbd6880b9fcb04a4755e2daf63b97e389b4 /arch/m68k/include/asm | |
parent | f3c23a28ace0a42ea06b5860b3bd25f71fc14c89 (diff) |
m68k: fix some atomic operation asm address modes for ColdFire
The ColdFire processors have a much more limited set of addressing modes
that can be used for most instructions. A number of the atomic operations
have already been fixed to limit the addressing modes used with add and
sub instructions when building for ColdFire. But we missed a few.
Fix the remaining atomic operations to be clean for ColdFire processors.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68k/include/asm')
-rw-r--r-- | arch/m68k/include/asm/atomic.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h index 03ae3d14cd4a..307a573881ad 100644 --- a/arch/m68k/include/asm/atomic.h +++ b/arch/m68k/include/asm/atomic.h | |||
@@ -169,18 +169,18 @@ static inline int atomic_add_negative(int i, atomic_t *v) | |||
169 | char c; | 169 | char c; |
170 | __asm__ __volatile__("addl %2,%1; smi %0" | 170 | __asm__ __volatile__("addl %2,%1; smi %0" |
171 | : "=d" (c), "+m" (*v) | 171 | : "=d" (c), "+m" (*v) |
172 | : "id" (i)); | 172 | : ASM_DI (i)); |
173 | return c != 0; | 173 | return c != 0; |
174 | } | 174 | } |
175 | 175 | ||
176 | static inline void atomic_clear_mask(unsigned long mask, unsigned long *v) | 176 | static inline void atomic_clear_mask(unsigned long mask, unsigned long *v) |
177 | { | 177 | { |
178 | __asm__ __volatile__("andl %1,%0" : "+m" (*v) : "id" (~(mask))); | 178 | __asm__ __volatile__("andl %1,%0" : "+m" (*v) : ASM_DI (~(mask))); |
179 | } | 179 | } |
180 | 180 | ||
181 | static inline void atomic_set_mask(unsigned long mask, unsigned long *v) | 181 | static inline void atomic_set_mask(unsigned long mask, unsigned long *v) |
182 | { | 182 | { |
183 | __asm__ __volatile__("orl %1,%0" : "+m" (*v) : "id" (mask)); | 183 | __asm__ __volatile__("orl %1,%0" : "+m" (*v) : ASM_DI (mask)); |
184 | } | 184 | } |
185 | 185 | ||
186 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | 186 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) |