Changeset a35b458 in mainline for kernel/arch/ia64/include/arch/asm.h
- Timestamp:
- 2018-03-02T20:10:49Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/include/arch/asm.h
r3061bc1 ra35b458 51 51 return legacyio_virt_base + (((prt >> 2) << 12) | (prt & 0xfff)); 52 52 } 53 53 54 54 NO_TRACE static inline void pio_write_8(ioport8_t *port, uint8_t v) 55 55 { … … 58 58 else 59 59 *port = v; 60 60 61 61 asm volatile ( 62 62 "mf\n" … … 72 72 else 73 73 *port = v; 74 74 75 75 asm volatile ( 76 76 "mf\n" … … 86 86 else 87 87 *port = v; 88 88 89 89 asm volatile ( 90 90 "mf\n" … … 112 112 ::: "memory" 113 113 ); 114 114 115 115 return v; 116 116 } … … 134 134 ::: "memory" 135 135 ); 136 136 137 137 return v; 138 138 } … … 141 141 { 142 142 uint32_t v; 143 144 asm volatile ( 145 "mf\n" 146 ::: "memory" 147 ); 148 143 144 asm volatile ( 145 "mf\n" 146 ::: "memory" 147 ); 148 149 149 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) 150 150 v = *((ioport32_t *) p2a(port)); … … 169 169 { 170 170 uint64_t value; 171 171 172 172 asm volatile ( 173 173 "mov %[value] = r12" 174 174 : [value] "=r" (value) 175 175 ); 176 176 177 177 return (value & (~(STACK_SIZE / 2 - 1))); 178 178 } … … 186 186 { 187 187 uint64_t v; 188 188 189 189 asm volatile ( 190 190 "mov %[value] = psr\n" 191 191 : [value] "=r" (v) 192 192 ); 193 193 194 194 return v; 195 195 } … … 203 203 { 204 204 uint64_t v; 205 205 206 206 asm volatile ( 207 207 "mov %[value] = cr.iva\n" 208 208 : [value] "=r" (v) 209 209 ); 210 210 211 211 return v; 212 212 } … … 234 234 { 235 235 uint64_t v; 236 236 237 237 asm volatile ( 238 238 "mov %[value] = cr.ivr\n" 239 239 : [value] "=r" (v) 240 240 ); 241 241 242 242 return v; 243 243 } … … 246 246 { 247 247 uint64_t v; 248 248 249 249 asm volatile ( 250 250 "mov %[value] = cr64\n" 251 251 : [value] "=r" (v) 252 252 ); 253 253 254 254 return v; 255 255 } … … 276 276 { 277 277 uint64_t v; 278 278 279 279 asm volatile ( 280 280 "mov %[value] = ar.itc\n" 281 281 : [value] "=r" (v) 282 282 ); 283 283 284 284 return v; 285 285 } … … 306 306 { 307 307 uint64_t v; 308 308 309 309 asm volatile ( 310 310 "mov %[value] = cr.itm\n" 311 311 : [value] "=r" (v) 312 312 ); 313 313 314 314 return v; 315 315 } … … 323 323 { 324 324 uint64_t v; 325 325 326 326 asm volatile ( 327 327 "mov %[value] = cr.itv\n" 328 328 : [value] "=r" (v) 329 329 ); 330 330 331 331 return v; 332 332 } … … 366 366 { 367 367 uint64_t v; 368 368 369 369 asm volatile ( 370 370 "mov %[value] = cr.tpr\n" 371 371 : [value] "=r" (v) 372 372 ); 373 373 374 374 return v; 375 375 } … … 399 399 { 400 400 uint64_t v; 401 401 402 402 asm volatile ( 403 403 "mov %[value] = psr\n" … … 406 406 : [mask] "i" (PSR_I_MASK) 407 407 ); 408 408 409 409 return (ipl_t) v; 410 410 } … … 421 421 { 422 422 uint64_t v; 423 423 424 424 asm volatile ( 425 425 "mov %[value] = psr\n" … … 430 430 : [mask] "i" (PSR_I_MASK) 431 431 ); 432 432 433 433 return (ipl_t) v; 434 434 }
Note:
See TracChangeset
for help on using the changeset viewer.