Ignore:
Timestamp:
2008-06-16T21:36:39Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9f491d7
Parents:
5336643
Message:

First argument to atomic functions is read-write (amd64).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/arch/amd64/include/atomic.h

    r5336643 rad2e39b  
    3939
    4040static 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));
    4242}
    4343
    4444static 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));
    4646}
    4747
     
    5353                "movq $1, %0\n"
    5454                "lock xaddq %0, %1\n"
    55                 : "=r" (r), "=m" (val->count)
     55                : "=r" (r), "+m" (val->count)
    5656        );
    5757
     
    6666                "movq $-1, %0\n"
    6767                "lock xaddq %0, %1\n"
    68                 : "=r" (r), "=m" (val->count)
     68                : "=r" (r), "+m" (val->count)
    6969        );
    7070       
     
    7272}
    7373
    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)
    7676
    7777#endif
Note: See TracChangeset for help on using the changeset viewer.