Changeset 1433ecda in mainline for uspace/lib/c/arch/ia32/include/libarch
- Timestamp:
- 2018-04-04T15:42:37Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2c4e1cc
- Parents:
- 47b2d7e3
- Location:
- uspace/lib/c/arch/ia32/include/libarch
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/include/libarch/atomic.h
r47b2d7e3 r1433ecda 44 44 #ifdef __PCC__ 45 45 asm volatile ( 46 47 46 "lock incl %0\n" 47 : "+m" (val->count) 48 48 ); 49 49 #else 50 50 asm volatile ( 51 52 51 "lock incl %[count]\n" 52 : [count] "+m" (val->count) 53 53 ); 54 54 #endif … … 59 59 #ifdef __PCC__ 60 60 asm volatile ( 61 62 61 "lock decl %0\n" 62 : "+m" (val->count) 63 63 ); 64 64 #else 65 65 asm volatile ( 66 67 66 "lock decl %[count]\n" 67 : [count] "+m" (val->count) 68 68 ); 69 69 #endif … … 76 76 #ifdef __PCC__ 77 77 asm volatile ( 78 79 80 78 "lock xaddl %1, %0\n" 79 : "+m" (val->count), 80 "+r" (r) 81 81 ); 82 82 #else 83 83 asm volatile ( 84 85 86 84 "lock xaddl %[r], %[count]\n" 85 : [count] "+m" (val->count), 86 [r] "+r" (r) 87 87 ); 88 88 #endif … … 97 97 #ifdef __PCC__ 98 98 asm volatile ( 99 100 101 99 "lock xaddl %1, %0\n" 100 : "+m" (val->count), 101 "+r" (r) 102 102 ); 103 103 #else 104 104 asm volatile ( 105 106 107 105 "lock xaddl %[r], %[count]\n" 106 : [count] "+m" (val->count), 107 [r] "+r" (r) 108 108 ); 109 109 #endif -
uspace/lib/c/arch/ia32/include/libarch/ddi.h
r47b2d7e3 r1433ecda 44 44 45 45 asm volatile ( 46 47 48 46 "inb %w[port], %b[val]\n" 47 : [val] "=a" (val) 48 : [port] "d" (port) 49 49 ); 50 50 … … 60 60 61 61 asm volatile ( 62 63 64 62 "inw %w[port], %w[val]\n" 63 : [val] "=a" (val) 64 : [port] "d" (port) 65 65 ); 66 66 … … 76 76 77 77 asm volatile ( 78 79 80 78 "inl %w[port], %[val]\n" 79 : [val] "=a" (val) 80 : [port] "d" (port) 81 81 ); 82 82 … … 95 95 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 96 96 asm volatile ( 97 98 97 "outb %b[val], %w[port]\n" 98 :: [val] "a" (val), [port] "d" (port) 99 99 ); 100 100 } else … … 106 106 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 107 107 asm volatile ( 108 109 108 "outw %w[val], %w[port]\n" 109 :: [val] "a" (val), [port] "d" (port) 110 110 ); 111 111 } else … … 117 117 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 118 118 asm volatile ( 119 120 119 "outl %[val], %w[port]\n" 120 :: [val] "a" (val), [port] "d" (port) 121 121 ); 122 122 } else
Note:
See TracChangeset
for help on using the changeset viewer.