Changeset 1b20da0 in mainline for kernel/arch/sparc64/src/trap/sun4v/trap_table.S
- Timestamp:
- 2018-02-28T17:52:03Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3061bc1
- Parents:
- df6ded8
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:26:03)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:52:03)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/trap/sun4v/trap_table.S
rdf6ded8 r1b20da0 67 67 mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2 68 68 clr %g5 69 PREEMPTIBLE_HANDLER exc_dispatch 69 PREEMPTIBLE_HANDLER exc_dispatch 70 70 71 71 /* TT = 0x09, TL = 0, instruction_access_mmu_miss */ … … 86 86 mov TT_IAE_UNAUTH_ACCESS, %g2 87 87 clr %g5 88 PREEMPTIBLE_HANDLER exc_dispatch 88 PREEMPTIBLE_HANDLER exc_dispatch 89 89 90 90 /* TT = 0x0c, TL = 0, IAE_nfo_page */ … … 93 93 mov TT_IAE_NFO_PAGE, %g2 94 94 clr %g5 95 PREEMPTIBLE_HANDLER exc_dispatch 95 PREEMPTIBLE_HANDLER exc_dispatch 96 96 97 97 /* TT = 0x10, TL = 0, illegal_instruction */ … … 100 100 mov TT_ILLEGAL_INSTRUCTION, %g2 101 101 clr %g5 102 PREEMPTIBLE_HANDLER exc_dispatch 102 PREEMPTIBLE_HANDLER exc_dispatch 103 103 104 104 /* TT = 0x11, TL = 0, privileged_opcode */ … … 107 107 mov TT_PRIVILEGED_OPCODE, %g2 108 108 clr %g5 109 PREEMPTIBLE_HANDLER exc_dispatch 109 PREEMPTIBLE_HANDLER exc_dispatch 110 110 111 111 /* TT = 0x12, TL = 0, unimplemented_LDD */ … … 114 114 mov TT_UNIMPLEMENTED_LDD, %g2 115 115 clr %g5 116 PREEMPTIBLE_HANDLER exc_dispatch 116 PREEMPTIBLE_HANDLER exc_dispatch 117 117 118 118 /* TT = 0x13, TL = 0, unimplemented_STD */ … … 121 121 mov TT_UNIMPLEMENTED_STD, %g2 122 122 clr %g5 123 PREEMPTIBLE_HANDLER exc_dispatch 123 PREEMPTIBLE_HANDLER exc_dispatch 124 124 125 125 /* TT = 0x14, TL = 0, DAE_invalid_asi */ … … 128 128 mov TT_DAE_INVALID_ASI, %g2 129 129 clr %g5 130 PREEMPTIBLE_HANDLER exc_dispatch 130 PREEMPTIBLE_HANDLER exc_dispatch 131 131 132 132 /* TT = 0x15, TL = 0, DAE_privilege_violation */ … … 135 135 mov TT_DAE_PRIVILEGE_VIOLATION, %g2 136 136 clr %g5 137 PREEMPTIBLE_HANDLER exc_dispatch 137 PREEMPTIBLE_HANDLER exc_dispatch 138 138 139 139 /* TT = 0x16, TL = 0, DAE_nc_page */ … … 142 142 mov TT_DAE_NC_PAGE, %g2 143 143 clr %g5 144 PREEMPTIBLE_HANDLER exc_dispatch 144 PREEMPTIBLE_HANDLER exc_dispatch 145 145 146 146 /* TT = 0x17, TL = 0, DAE_nfo_page */ … … 149 149 mov TT_DAE_NFO_PAGE, %g2 150 150 clr %g5 151 PREEMPTIBLE_HANDLER exc_dispatch 151 PREEMPTIBLE_HANDLER exc_dispatch 152 152 153 153 /* TT = 0x20, TL = 0, fb_disabled handler */ … … 156 156 mov TT_FP_DISABLED, %g2 157 157 clr %g5 158 PREEMPTIBLE_HANDLER exc_dispatch 158 PREEMPTIBLE_HANDLER exc_dispatch 159 159 160 160 /* TT = 0x21, TL = 0, fb_exception_ieee_754 handler */ … … 163 163 mov TT_FP_EXCEPTION_IEEE_754, %g2 164 164 clr %g5 165 PREEMPTIBLE_HANDLER exc_dispatch 165 PREEMPTIBLE_HANDLER exc_dispatch 166 166 167 167 /* TT = 0x22, TL = 0, fb_exception_other handler */ … … 170 170 mov TT_FP_EXCEPTION_OTHER, %g2 171 171 clr %g5 172 PREEMPTIBLE_HANDLER exc_dispatch 172 PREEMPTIBLE_HANDLER exc_dispatch 173 173 174 174 /* TT = 0x23, TL = 0, tag_overflow */ … … 177 177 mov TT_TAG_OVERFLOW, %g2 178 178 clr %g5 179 PREEMPTIBLE_HANDLER exc_dispatch 179 PREEMPTIBLE_HANDLER exc_dispatch 180 180 181 181 /* TT = 0x24, TL = 0, clean_window handler */ … … 189 189 mov TT_DIVISION_BY_ZERO, %g2 190 190 clr %g5 191 PREEMPTIBLE_HANDLER exc_dispatch 191 PREEMPTIBLE_HANDLER exc_dispatch 192 192 193 193 /* TT = 0x30, TL = 0, data_access_exception */ … … 197 197 mov TT_DATA_ACCESS_EXCEPTION, %g2 198 198 clr %g5 199 PREEMPTIBLE_HANDLER exc_dispatch 199 PREEMPTIBLE_HANDLER exc_dispatch 200 200 201 201 /* TT = 0x31, TL = 0, data_access_mmu_miss */ … … 209 209 mov TT_DATA_ACCESS_ERROR, %g2 210 210 clr %g5 211 PREEMPTIBLE_HANDLER exc_dispatch 211 PREEMPTIBLE_HANDLER exc_dispatch 212 212 213 213 /* TT = 0x34, TL = 0, mem_address_not_aligned */ … … 216 216 mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2 217 217 clr %g5 218 PREEMPTIBLE_HANDLER exc_dispatch 218 PREEMPTIBLE_HANDLER exc_dispatch 219 219 220 220 /* TT = 0x35, TL = 0, LDDF_mem_address_not_aligned */ … … 223 223 mov TT_LDDF_MEM_ADDRESS_NOT_ALIGNED, %g2 224 224 clr %g5 225 PREEMPTIBLE_HANDLER exc_dispatch 225 PREEMPTIBLE_HANDLER exc_dispatch 226 226 227 227 /* TT = 0x36, TL = 0, STDF_mem_address_not_aligned */ … … 230 230 mov TT_STDF_MEM_ADDRESS_NOT_ALIGNED, %g2 231 231 clr %g5 232 PREEMPTIBLE_HANDLER exc_dispatch 232 PREEMPTIBLE_HANDLER exc_dispatch 233 233 234 234 /* TT = 0x37, TL = 0, privileged_action */ … … 237 237 mov TT_PRIVILEGED_ACTION, %g2 238 238 clr %g5 239 PREEMPTIBLE_HANDLER exc_dispatch 239 PREEMPTIBLE_HANDLER exc_dispatch 240 240 241 241 /* TT = 0x38, TL = 0, LDQF_mem_address_not_aligned */ … … 244 244 mov TT_LDQF_MEM_ADDRESS_NOT_ALIGNED, %g2 245 245 clr %g5 246 PREEMPTIBLE_HANDLER exc_dispatch 246 PREEMPTIBLE_HANDLER exc_dispatch 247 247 248 248 /* TT = 0x39, TL = 0, STQF_mem_address_not_aligned */ … … 251 251 mov TT_STQF_MEM_ADDRESS_NOT_ALIGNED, %g2 252 252 clr %g5 253 PREEMPTIBLE_HANDLER exc_dispatch 253 PREEMPTIBLE_HANDLER exc_dispatch 254 254 255 255 /* TT = 0x41, TL = 0, interrupt_level_1 handler */ … … 378 378 mov TT_CPU_MONDO, %g2 379 379 clr %g5 380 PREEMPTIBLE_HANDLER exc_dispatch 380 PREEMPTIBLE_HANDLER exc_dispatch 381 381 382 382 /* TT = 0x80, TL = 0, spill_0_normal handler */ … … 437 437 mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2 438 438 clr %g5 439 PREEMPTIBLE_HANDLER exc_dispatch 439 PREEMPTIBLE_HANDLER exc_dispatch 440 440 441 441 /* TT = 0x09, TL > 0, instruction_access_mmu_miss */ … … 451 451 mov TT_INSTRUCTION_ACCESS_ERROR, %g2 452 452 clr %g5 453 PREEMPTIBLE_HANDLER exc_dispatch 453 PREEMPTIBLE_HANDLER exc_dispatch 454 454 455 455 /* TT = 0x0b, TL > 0, IAE_unauth_access */ … … 459 459 mov TT_IAE_UNAUTH_ACCESS, %g2 460 460 clr %g5 461 PREEMPTIBLE_HANDLER exc_dispatch 461 PREEMPTIBLE_HANDLER exc_dispatch 462 462 463 463 /* TT = 0x0c, TL > 0, IAE_nfo_page */ … … 467 467 mov TT_IAE_NFO_PAGE, %g2 468 468 clr %g5 469 PREEMPTIBLE_HANDLER exc_dispatch 469 PREEMPTIBLE_HANDLER exc_dispatch 470 470 471 471 /* TT = 0x10, TL > 0, illegal_instruction */ … … 475 475 mov TT_ILLEGAL_INSTRUCTION, %g2 476 476 clr %g5 477 PREEMPTIBLE_HANDLER exc_dispatch 477 PREEMPTIBLE_HANDLER exc_dispatch 478 478 479 479 /* TT = 0x14, TL > 0, DAE_invalid_asi */ … … 483 483 mov TT_DAE_INVALID_ASI, %g2 484 484 clr %g5 485 PREEMPTIBLE_HANDLER exc_dispatch 485 PREEMPTIBLE_HANDLER exc_dispatch 486 486 487 487 /* TT = 0x15, TL > 0, DAE_privilege_violation */ … … 491 491 mov TT_DAE_PRIVILEGE_VIOLATION, %g2 492 492 clr %g5 493 PREEMPTIBLE_HANDLER exc_dispatch 493 PREEMPTIBLE_HANDLER exc_dispatch 494 494 495 495 /* TT = 0x16, TL > 0, DAE_nc_page */ … … 499 499 mov TT_DAE_NC_PAGE, %g2 500 500 clr %g5 501 PREEMPTIBLE_HANDLER exc_dispatch 501 PREEMPTIBLE_HANDLER exc_dispatch 502 502 503 503 /* TT = 0x17, TL > 0, DAE_nfo_page */ … … 507 507 mov TT_DAE_NFO_PAGE, %g2 508 508 clr %g5 509 PREEMPTIBLE_HANDLER exc_dispatch 509 PREEMPTIBLE_HANDLER exc_dispatch 510 510 511 511 /* TT = 0x24, TL > 0, clean_window handler */ … … 520 520 mov TT_DIVISION_BY_ZERO, %g2 521 521 clr %g5 522 PREEMPTIBLE_HANDLER exc_dispatch 522 PREEMPTIBLE_HANDLER exc_dispatch 523 523 524 524 /* TT = 0x30, TL > 0, data_access_exception */ … … 528 528 mov TT_DATA_ACCESS_EXCEPTION, %g2 529 529 clr %g5 530 PREEMPTIBLE_HANDLER exc_dispatch 530 PREEMPTIBLE_HANDLER exc_dispatch 531 531 532 532 /* TT = 0x31, TL > 0, data_access_mmu_miss */ … … 541 541 mov TT_DATA_ACCESS_ERROR, %g2 542 542 clr %g5 543 PREEMPTIBLE_HANDLER exc_dispatch 543 PREEMPTIBLE_HANDLER exc_dispatch 544 544 545 545 /* TT = 0x34, TL > 0, mem_address_not_aligned */ … … 549 549 mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2 550 550 clr %g5 551 PREEMPTIBLE_HANDLER exc_dispatch 551 PREEMPTIBLE_HANDLER exc_dispatch 552 552 553 553 /* TT = 0x68, TL > 0, fast_data_access_MMU_miss */ … … 567 567 mov TT_CPU_MONDO, %g2 568 568 clr %g5 569 PREEMPTIBLE_HANDLER exc_dispatch 569 PREEMPTIBLE_HANDLER exc_dispatch 570 570 571 571 /* TT = 0x80, TL > 0, spill_0_normal handler */ … … 595 595 * Spills the window at CWP + 2 to the kernel stack. This macro is to be 596 596 * used before doing SAVE when the spill trap is undesirable. 597 * 597 * 598 598 * Parameters: 599 599 * tmpreg1 global register to be used for scratching purposes … … 608 608 609 609 ! spill to kernel stack 610 stx %l0, [%sp + STACK_BIAS + L0_OFFSET] 610 stx %l0, [%sp + STACK_BIAS + L0_OFFSET] 611 611 stx %l1, [%sp + STACK_BIAS + L1_OFFSET] 612 612 stx %l2, [%sp + STACK_BIAS + L2_OFFSET] … … 634 634 * Fill the window at CWP - 1 from the kernel stack. This macro is to be 635 635 * used before doing RESTORE when the fill trap is undesirable. 636 * 636 * 637 637 * Parameters: 638 638 * tmpreg1 global register to be used for scratching purposes … … 689 689 .else 690 690 ! store the syscall number on the stack as 7th argument 691 stx %g2, [%sp + STACK_BIAS + ISTATE_OFFSET_ARG6] 691 stx %g2, [%sp + STACK_BIAS + ISTATE_OFFSET_ARG6] 692 692 .endif 693 693 … … 859 859 * Spills the window at CWP + 2 to the userspace window buffer. This macro 860 860 * is to be used before doing SAVE when the spill trap is undesirable. 861 * 861 * 862 862 * Parameters: 863 863 * tmpreg1 global register to be used for scratching purposes … … 892 892 * trap is resolved. However, because we are in the wrong window from the 893 893 * perspective of the MMU trap, we need to synchronize CWP with CWP from TL=0. 894 */ 894 */ 895 895 .if NOT(\is_syscall) 896 896 rdpr %tstate, %g3 … … 927 927 .endif 928 928 929 mov VA_PRIMARY_CONTEXT_REG, %l0 929 mov VA_PRIMARY_CONTEXT_REG, %l0 930 930 stxa %g0, [%l0] ASI_PRIMARY_CONTEXT_REG 931 931 rd %pc, %l0
Note:
See TracChangeset
for help on using the changeset viewer.