Changeset 345ce2f in mainline for arch/ia32/include/atomic.h
- Timestamp:
- 2005-09-03T11:43:54Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4f0bba0
- Parents:
- be56c17
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/include/atomic.h
rbe56c17 r345ce2f 34 34 static inline void atomic_inc(volatile int *val) { 35 35 #ifdef __SMP__ 36 __asm__ volatile ("lock incl (%0)\n" : : "r" (val));36 __asm__ volatile ("lock incl %0\n" : "=m" (*val)); 37 37 #else 38 __asm__ volatile ("incl (%0)\n" : : "r" (val));38 __asm__ volatile ("incl %0\n" : "=m" (*val)); 39 39 #endif /* __SMP__ */ 40 40 } … … 42 42 static inline void atomic_dec(volatile int *val) { 43 43 #ifdef __SMP__ 44 __asm__ volatile ("lock decl (%0)\n" : : "r" (val));44 __asm__ volatile ("lock decl %0\n" : "=m" (*val)); 45 45 #else 46 __asm__ volatile ("decl (%0)\n" : : "r" (val));46 __asm__ volatile ("decl %0\n" : "=m" (*val)); 47 47 #endif /* __SMP__ */ 48 48 } … … 53 53 __asm__ volatile ( 54 54 "movl $1, %0\n" 55 "xchgl %0, (%1)\n" 56 : "=r" (v) 57 : "r" (val) 55 "xchgl %0, %1\n" 56 : "=r" (v),"=m" (*val) 58 57 ); 59 58
Note:
See TracChangeset
for help on using the changeset viewer.