Changes in uspace/lib/c/arch/ia32/include/atomic.h [c8f70eb:63f8966] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/include/atomic.h
rc8f70eb r63f8966 42 42 static inline void atomic_inc(atomic_t *val) 43 43 { 44 #ifdef __PCC__45 asm volatile (46 "lock incl %0\n"47 : "+m" (val->count)48 );49 #else50 44 asm volatile ( 51 45 "lock incl %[count]\n" 52 46 : [count] "+m" (val->count) 53 47 ); 54 #endif55 48 } 56 49 57 50 static inline void atomic_dec(atomic_t *val) 58 51 { 59 #ifdef __PCC__60 asm volatile (61 "lock decl %0\n"62 : "+m" (val->count)63 );64 #else65 52 asm volatile ( 66 53 "lock decl %[count]\n" 67 54 : [count] "+m" (val->count) 68 55 ); 69 #endif70 56 } 71 57 … … 74 60 atomic_count_t r = 1; 75 61 76 #ifdef __PCC__77 asm volatile (78 "lock xaddl %1, %0\n"79 : "+m" (val->count),80 "+r" (r)81 );82 #else83 62 asm volatile ( 84 63 "lock xaddl %[r], %[count]\n" … … 86 65 [r] "+r" (r) 87 66 ); 88 #endif89 67 90 68 return r; … … 95 73 atomic_count_t r = -1; 96 74 97 #ifdef __PCC__98 asm volatile (99 "lock xaddl %1, %0\n"100 : "+m" (val->count),101 "+r" (r)102 );103 #else104 75 asm volatile ( 105 76 "lock xaddl %[r], %[count]\n" … … 107 78 [r] "+r" (r) 108 79 ); 109 #endif110 80 111 81 return r;
Note:
See TracChangeset
for help on using the changeset viewer.