Rev 4068 | Rev 4383 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4068 | Rev 4369 | ||
|---|---|---|---|
| Line 769... | Line 769... | ||
| 769 | brnz %g3, 2f |
769 | brnz %g3, 2f |
| 770 | nop |
770 | nop |
| 771 | INLINE_SPILL_TO_WBUF %g3, %g4, %g7 |
771 | INLINE_SPILL_TO_WBUF %g3, %g4, %g7 |
| 772 | 772 | ||
| 773 | 2: |
773 | 2: |
| 774 | get_kstack_wbuf_ptr %g3, %g4 |
774 | set SCRATCHPAD_KSTACK, %g4 |
| 775 | ldx [%g4], %g6 |
775 | ldxa [%g4] ASI_SCRATCHPAD, %g6 |
| 776 | save %g6, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp |
776 | save %g6, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp |
| 777 | 777 | ||
| 778 | .if \is_syscall |
778 | .if \is_syscall |
| 779 | /* Copy arguments for the syscall to the new window. */ |
779 | /* Copy arguments for the syscall to the new window. */ |
| 780 | mov %i0, %o0 |
780 | mov %i0, %o0 |
| Line 821... | Line 821... | ||
| 821 | flush %g1 |
821 | flush %g1 |
| 822 | 822 | ||
| 823 | /* Restoring userspace windows: */ |
823 | /* Restoring userspace windows: */ |
| 824 | 824 | ||
| 825 | /* Save address of the userspace window buffer to the %g7 register. */ |
825 | /* Save address of the userspace window buffer to the %g7 register. */ |
| 826 | get_kstack_wbuf_ptr %g1, %g5 |
826 | set SCRATCHPAD_WBUF, %g5 |
| 827 | ldx [%g5 + 8], %g7 |
827 | ldxa [%g5] ASI_SCRATCHPAD, %g7 |
| 828 | 828 | ||
| 829 | rdpr %cwp, %g1 |
829 | rdpr %cwp, %g1 |
| 830 | rdpr %otherwin, %g2 |
830 | rdpr %otherwin, %g2 |
| 831 | 831 | ||
| 832 | /* |
832 | /* |
| Line 872... | Line 872... | ||
| 872 | ba 5b |
872 | ba 5b |
| 873 | inc %g4 |
873 | inc %g4 |
| 874 | 874 | ||
| 875 | 6: |
875 | 6: |
| 876 | /* Save changes of the address of the userspace window buffer. */ |
876 | /* Save changes of the address of the userspace window buffer. */ |
| 877 | stx %g7, [%g5 + 8] |
877 | stxa %g7, [%g5] ASI_SCRATCHPAD |
| 878 | 878 | ||
| 879 | /* |
879 | /* |
| 880 | * Switch back to the proper current window and adjust |
880 | * Switch back to the proper current window and adjust |
| 881 | * OTHERWIN, CANRESTORE, CANSAVE and CLEANWIN. |
881 | * OTHERWIN, CANRESTORE, CANSAVE and CLEANWIN. |
| 882 | */ |
882 | */ |