Rev 4296 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4296 | Rev 4420 | ||
---|---|---|---|
Line 339... | Line 339... | ||
339 | 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,\ |
339 | 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,\ |
340 | 127 |
340 | 127 |
341 | .org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE |
341 | .org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE |
342 | .global trap_instruction_\cur\()_tl0 |
342 | .global trap_instruction_\cur\()_tl0 |
343 | trap_instruction_\cur\()_tl0: |
343 | trap_instruction_\cur\()_tl0: |
344 | ba trap_instruction_handler |
344 | ba %xcc, trap_instruction_handler |
345 | mov \cur, %g2 |
345 | mov \cur, %g2 |
346 | .endr |
346 | .endr |
347 | 347 | ||
348 | /* |
348 | /* |
349 | * Handlers for TL>0. |
349 | * Handlers for TL>0. |
Line 478... | Line 478... | ||
478 | */ |
478 | */ |
479 | rdpr %tl, %g3 |
479 | rdpr %tl, %g3 |
480 | cmp %g3, 1 |
480 | cmp %g3, 1 |
481 | be %xcc, 1f |
481 | be %xcc, 1f |
482 | nop |
482 | nop |
483 | 0: ba 0b ! this is for debugging, if we ever get here |
483 | 0: ba %xcc, 0b ! this is for debugging, if we ever get here |
484 | nop ! it will be easy to find |
484 | nop ! it will be easy to find |
485 | 485 | ||
486 | 1: |
486 | 1: |
487 | .if NOT(\is_syscall) |
487 | .if NOT(\is_syscall) |
488 | rdpr %tstate, %g3 |
488 | rdpr %tstate, %g3 |
Line 543... | Line 543... | ||
543 | stxa %g0, [%l0] ASI_DMMU |
543 | stxa %g0, [%l0] ASI_DMMU |
544 | rd %pc, %l0 |
544 | rd %pc, %l0 |
545 | flush %l0 |
545 | flush %l0 |
546 | 546 | ||
547 | .if NOT(\is_syscall) |
547 | .if NOT(\is_syscall) |
548 | ba 1f |
548 | ba %xcc, 1f |
549 | nop |
549 | nop |
550 | 0: |
550 | 0: |
551 | save %sp, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp |
551 | save %sp, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp |
552 | 552 | ||
553 | /* |
553 | /* |
Line 772... | Line 772... | ||
772 | 772 | ||
773 | dec %g3 |
773 | dec %g3 |
774 | and %g3, NWINDOWS - 1, %g3 |
774 | and %g3, NWINDOWS - 1, %g3 |
775 | wrpr %g3, 0, %cwp ! switch to the preceeding window |
775 | wrpr %g3, 0, %cwp ! switch to the preceeding window |
776 | 776 | ||
777 | ba 0b |
777 | ba %xcc, 0b |
778 | inc %g4 |
778 | inc %g4 |
779 | 779 | ||
780 | 0: |
780 | 0: |
781 | /* |
781 | /* |
782 | * Switch back to the proper current window and adjust |
782 | * Switch back to the proper current window and adjust |