Changeset 3bacee1 in mainline for kernel/arch/sparc64/include
- Timestamp:
- 2018-04-12T16:27:17Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3cf22f9
- Parents:
- 76d0981d
- git-author:
- Jiri Svoboda <jiri@…> (2018-04-11 19:25:33)
- git-committer:
- Jiri Svoboda <jiri@…> (2018-04-12 16:27:17)
- File:
-
- 1 edited
-
kernel/arch/sparc64/include/arch/asm.h (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/arch/asm.h
r76d0981d r3bacee1 93 93 94 94 asm volatile ( 95 "rdpr %%pstate, %[v]\n"96 : [v] "=r" (v)95 "rdpr %%pstate, %[v]\n" 96 : [v] "=r" (v) 97 97 ); 98 98 … … 108 108 { 109 109 asm volatile ( 110 "wrpr %[v], %[zero], %%pstate\n"111 :: [v] "r" (v),112 [zero] "i" (0)110 "wrpr %[v], %[zero], %%pstate\n" 111 :: [v] "r" (v), 112 [zero] "i" (0) 113 113 ); 114 114 } … … 124 124 125 125 asm volatile ( 126 "rd %%tick_cmpr, %[v]\n"127 : [v] "=r" (v)126 "rd %%tick_cmpr, %[v]\n" 127 : [v] "=r" (v) 128 128 ); 129 129 … … 139 139 { 140 140 asm volatile ( 141 "wr %[v], %[zero], %%tick_cmpr\n"142 :: [v] "r" (v),143 [zero] "i" (0)141 "wr %[v], %[zero], %%tick_cmpr\n" 142 :: [v] "r" (v), 143 [zero] "i" (0) 144 144 ); 145 145 } … … 155 155 156 156 asm volatile ( 157 "rd %%asr25, %[v]\n"158 : [v] "=r" (v)157 "rd %%asr25, %[v]\n" 158 : [v] "=r" (v) 159 159 ); 160 160 … … 170 170 { 171 171 asm volatile ( 172 "wr %[v], %[zero], %%asr25\n"173 :: [v] "r" (v),174 [zero] "i" (0)172 "wr %[v], %[zero], %%asr25\n" 173 :: [v] "r" (v), 174 [zero] "i" (0) 175 175 ); 176 176 } … … 186 186 187 187 asm volatile ( 188 "rdpr %%tick, %[v]\n"189 : [v] "=r" (v)188 "rdpr %%tick, %[v]\n" 189 : [v] "=r" (v) 190 190 ); 191 191 … … 201 201 { 202 202 asm volatile ( 203 "wrpr %[v], %[zero], %%tick\n"204 :: [v] "r" (v),205 [zero] "i" (0)203 "wrpr %[v], %[zero], %%tick\n" 204 :: [v] "r" (v), 205 [zero] "i" (0) 206 206 ); 207 207 } … … 217 217 218 218 asm volatile ( 219 "rd %%fprs, %[v]\n"220 : [v] "=r" (v)219 "rd %%fprs, %[v]\n" 220 : [v] "=r" (v) 221 221 ); 222 222 … … 232 232 { 233 233 asm volatile ( 234 "wr %[v], %[zero], %%fprs\n"235 :: [v] "r" (v),236 [zero] "i" (0)234 "wr %[v], %[zero], %%fprs\n" 235 :: [v] "r" (v), 236 [zero] "i" (0) 237 237 ); 238 238 } … … 248 248 249 249 asm volatile ( 250 "rd %%softint, %[v]\n"251 : [v] "=r" (v)250 "rd %%softint, %[v]\n" 251 : [v] "=r" (v) 252 252 ); 253 253 … … 263 263 { 264 264 asm volatile ( 265 "wr %[v], %[zero], %%softint\n"266 :: [v] "r" (v),267 [zero] "i" (0)265 "wr %[v], %[zero], %%softint\n" 266 :: [v] "r" (v), 267 [zero] "i" (0) 268 268 ); 269 269 } … … 279 279 { 280 280 asm volatile ( 281 "wr %[v], %[zero], %%clear_softint\n"282 :: [v] "r" (v),283 [zero] "i" (0)281 "wr %[v], %[zero], %%clear_softint\n" 282 :: [v] "r" (v), 283 [zero] "i" (0) 284 284 ); 285 285 } … … 295 295 { 296 296 asm volatile ( 297 "wr %[v], %[zero], %%set_softint\n"298 :: [v] "r" (v),299 [zero] "i" (0)297 "wr %[v], %[zero], %%set_softint\n" 298 :: [v] "r" (v), 299 [zero] "i" (0) 300 300 ); 301 301 } … … 309 309 * 310 310 */ 311 NO_TRACE static inline ipl_t interrupts_enable(void) { 311 NO_TRACE static inline ipl_t interrupts_enable(void) 312 { 312 313 pstate_reg_t pstate; 313 314 uint64_t value = pstate_read(); … … 328 329 * 329 330 */ 330 NO_TRACE static inline ipl_t interrupts_disable(void) { 331 NO_TRACE static inline ipl_t interrupts_disable(void) 332 { 331 333 pstate_reg_t pstate; 332 334 uint64_t value = pstate_read(); … … 346 348 * 347 349 */ 348 NO_TRACE static inline void interrupts_restore(ipl_t ipl) { 350 NO_TRACE static inline void interrupts_restore(ipl_t ipl) 351 { 349 352 pstate_reg_t pstate; 350 353 … … 361 364 * 362 365 */ 363 NO_TRACE static inline ipl_t interrupts_read(void) { 366 NO_TRACE static inline ipl_t interrupts_read(void) 367 { 364 368 return (ipl_t) pstate_read(); 365 369 } … … 390 394 391 395 asm volatile ( 392 "add %%sp, %[stack_bias], %[unbiased_sp]\n"393 : [unbiased_sp] "=r" (unbiased_sp)394 : [stack_bias] "i" (STACK_BIAS)396 "add %%sp, %[stack_bias], %[unbiased_sp]\n" 397 : [unbiased_sp] "=r" (unbiased_sp) 398 : [stack_bias] "i" (STACK_BIAS) 395 399 ); 396 400 … … 408 412 409 413 asm volatile ( 410 "rdpr %%ver, %[v]\n"411 : [v] "=r" (v)414 "rdpr %%ver, %[v]\n" 415 : [v] "=r" (v) 412 416 ); 413 417 … … 425 429 426 430 asm volatile ( 427 "rdpr %%tpc, %[v]\n"428 : [v] "=r" (v)431 "rdpr %%tpc, %[v]\n" 432 : [v] "=r" (v) 429 433 ); 430 434 … … 442 446 443 447 asm volatile ( 444 "rdpr %%tl, %[v]\n"445 : [v] "=r" (v)448 "rdpr %%tl, %[v]\n" 449 : [v] "=r" (v) 446 450 ); 447 451 … … 459 463 460 464 asm volatile ( 461 "rdpr %%tba, %[v]\n"462 : [v] "=r" (v)465 "rdpr %%tba, %[v]\n" 466 : [v] "=r" (v) 463 467 ); 464 468 … … 474 478 { 475 479 asm volatile ( 476 "wrpr %[v], %[zero], %%tba\n"477 :: [v] "r" (v),478 [zero] "i" (0)480 "wrpr %[v], %[zero], %%tba\n" 481 :: [v] "r" (v), 482 [zero] "i" (0) 479 483 ); 480 484 } … … 494 498 495 499 asm volatile ( 496 "ldxa [%[va]] %[asi], %[v]\n"497 : [v] "=r" (v)498 : [va] "r" (va),499 [asi] "i" ((unsigned int) asi)500 "ldxa [%[va]] %[asi], %[v]\n" 501 : [v] "=r" (v) 502 : [va] "r" (va), 503 [asi] "i" ((unsigned int) asi) 500 504 ); 501 505 … … 513 517 { 514 518 asm volatile ( 515 "stxa %[v], [%[va]] %[asi]\n"516 :: [v] "r" (v),517 [va] "r" (va),518 [asi] "i" ((unsigned int) asi)519 : "memory"519 "stxa %[v], [%[va]] %[asi]\n" 520 :: [v] "r" (v), 521 [va] "r" (va), 522 [asi] "i" ((unsigned int) asi) 523 : "memory" 520 524 ); 521 525 }
Note:
See TracChangeset
for help on using the changeset viewer.
