Changes in uspace/lib/c/arch/amd64/include/atomic.h [c8f70eb:63f8966] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/amd64/include/atomic.h
rc8f70eb r63f8966 44 44 static inline void atomic_inc(atomic_t *val) 45 45 { 46 #ifdef __PCC__47 asm volatile (48 "lock incq %0\n"49 : "+m" (val->count)50 );51 #else52 46 asm volatile ( 53 47 "lock incq %[count]\n" 54 48 : [count] "+m" (val->count) 55 49 ); 56 #endif57 50 } 58 51 59 52 static inline void atomic_dec(atomic_t *val) 60 53 { 61 #ifdef __PCC__62 asm volatile (63 "lock decq %0\n"64 : "+m" (val->count)65 );66 #else67 54 asm volatile ( 68 55 "lock decq %[count]\n" 69 56 : [count] "+m" (val->count) 70 57 ); 71 #endif72 58 } 73 59 … … 76 62 atomic_count_t r = 1; 77 63 78 #ifdef __PCC__79 asm volatile (80 "lock xaddq %1, %0\n"81 : "+m" (val->count),82 "+r" (r)83 );84 #else85 64 asm volatile ( 86 65 "lock xaddq %[r], %[count]\n" … … 88 67 [r] "+r" (r) 89 68 ); 90 #endif91 69 92 70 return r; … … 97 75 atomic_count_t r = -1; 98 76 99 #ifdef __PCC__100 asm volatile (101 "lock xaddq %1, %0\n"102 : "+m" (val->count),103 "+r" (r)104 );105 #else106 77 asm volatile ( 107 78 "lock xaddq %[r], %[count]\n" … … 109 80 [r] "+r" (r) 110 81 ); 111 #endif112 82 113 83 return r;
Note:
See TracChangeset
for help on using the changeset viewer.