Ignore:
File:
1 edited

Legend:

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

    rc8f70eb r63f8966  
    4242static inline void atomic_inc(atomic_t *val)
    4343{
    44 #ifdef __PCC__
    45         asm volatile (
    46                 "lock incl %0\n"
    47                 : "+m" (val->count)
    48         );
    49 #else
    5044        asm volatile (
    5145                "lock incl %[count]\n"
    5246                : [count] "+m" (val->count)
    5347        );
    54 #endif
    5548}
    5649
    5750static inline void atomic_dec(atomic_t *val)
    5851{
    59 #ifdef __PCC__
    60         asm volatile (
    61                 "lock decl %0\n"
    62                 : "+m" (val->count)
    63         );
    64 #else
    6552        asm volatile (
    6653                "lock decl %[count]\n"
    6754                : [count] "+m" (val->count)
    6855        );
    69 #endif
    7056}
    7157
     
    7460        atomic_count_t r = 1;
    7561       
    76 #ifdef __PCC__
    77         asm volatile (
    78                 "lock xaddl %1, %0\n"
    79                 : "+m" (val->count),
    80                   "+r" (r)
    81         );
    82 #else
    8362        asm volatile (
    8463                "lock xaddl %[r], %[count]\n"
     
    8665                  [r] "+r" (r)
    8766        );
    88 #endif
    8967       
    9068        return r;
     
    9573        atomic_count_t r = -1;
    9674       
    97 #ifdef __PCC__
    98         asm volatile (
    99                 "lock xaddl %1, %0\n"
    100                 : "+m" (val->count),
    101                   "+r" (r)
    102         );
    103 #else
    10475        asm volatile (
    10576                "lock xaddl %[r], %[count]\n"
     
    10778                  [r] "+r" (r)
    10879        );
    109 #endif
    11080       
    11181        return r;
Note: See TracChangeset for help on using the changeset viewer.