Changeset ad2e39b in mainline for uspace/lib/libc/arch/amd64/include/atomic.h
- Timestamp:
- 2008-06-16T21:36:39Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9f491d7
- Parents:
- 5336643
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/arch/amd64/include/atomic.h
r5336643 rad2e39b 39 39 40 40 static inline void atomic_inc(atomic_t *val) { 41 asm volatile ("lock incq %0\n" : " =m" (val->count));41 asm volatile ("lock incq %0\n" : "+m" (val->count)); 42 42 } 43 43 44 44 static inline void atomic_dec(atomic_t *val) { 45 asm volatile ("lock decq %0\n" : " =m" (val->count));45 asm volatile ("lock decq %0\n" : "+m" (val->count)); 46 46 } 47 47 … … 53 53 "movq $1, %0\n" 54 54 "lock xaddq %0, %1\n" 55 : "=r" (r), " =m" (val->count)55 : "=r" (r), "+m" (val->count) 56 56 ); 57 57 … … 66 66 "movq $-1, %0\n" 67 67 "lock xaddq %0, %1\n" 68 : "=r" (r), " =m" (val->count)68 : "=r" (r), "+m" (val->count) 69 69 ); 70 70 … … 72 72 } 73 73 74 #define atomic_preinc(val) (atomic_postinc(val) +1)75 #define atomic_predec(val) (atomic_postdec(val) -1)74 #define atomic_preinc(val) (atomic_postinc(val) + 1) 75 #define atomic_predec(val) (atomic_postdec(val) - 1) 76 76 77 77 #endif
Note:
See TracChangeset
for help on using the changeset viewer.