Ignore:
File:
1 edited

Legend:

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

    rc8f70eb r63f8966  
    4444static inline void atomic_inc(atomic_t *val)
    4545{
    46 #ifdef __PCC__
    47         asm volatile (
    48                 "lock incq %0\n"
    49                 : "+m" (val->count)
    50         );
    51 #else
    5246        asm volatile (
    5347                "lock incq %[count]\n"
    5448                : [count] "+m" (val->count)
    5549        );
    56 #endif
    5750}
    5851
    5952static inline void atomic_dec(atomic_t *val)
    6053{
    61 #ifdef __PCC__
    62         asm volatile (
    63                 "lock decq %0\n"
    64                 : "+m" (val->count)
    65         );
    66 #else
    6754        asm volatile (
    6855                "lock decq %[count]\n"
    6956                : [count] "+m" (val->count)
    7057        );
    71 #endif
    7258}
    7359
     
    7662        atomic_count_t r = 1;
    7763       
    78 #ifdef __PCC__
    79         asm volatile (
    80                 "lock xaddq %1, %0\n"
    81                 : "+m" (val->count),
    82                   "+r" (r)
    83         );
    84 #else
    8564        asm volatile (
    8665                "lock xaddq %[r], %[count]\n"
     
    8867                  [r] "+r" (r)
    8968        );
    90 #endif
    9169       
    9270        return r;
     
    9775        atomic_count_t r = -1;
    9876       
    99 #ifdef __PCC__
    100         asm volatile (
    101                 "lock xaddq %1, %0\n"
    102                 : "+m" (val->count),
    103                   "+r" (r)
    104         );
    105 #else
    10677        asm volatile (
    10778                "lock xaddq %[r], %[count]\n"
     
    10980                  [r] "+r" (r)
    11081        );
    111 #endif
    11282       
    11383        return r;
Note: See TracChangeset for help on using the changeset viewer.