Rev 1883 | Rev 1916 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1883 | Rev 1915 | ||
|---|---|---|---|
| Line 744... | Line 744... | ||
| 744 | * the kernel stack of THREAD locked in DTLB. |
744 | * the kernel stack of THREAD locked in DTLB. |
| 745 | */ |
745 | */ |
| 746 | stx %g1, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TSTATE] |
746 | stx %g1, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TSTATE] |
| 747 | stx %g2, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC] |
747 | stx %g2, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC] |
| 748 | stx %g3, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC] |
748 | stx %g3, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC] |
| - | 749 | ||
| - | 750 | /* |
|
| - | 751 | * Save the Y register. |
|
| - | 752 | * This register is deprecated according to SPARC V9 specification |
|
| - | 753 | * and is only present for backward compatibility with previous |
|
| - | 754 | * versions of the SPARC architecture. |
|
| - | 755 | * Surprisingly, gcc makes use of this register without a notice. |
|
| - | 756 | */ |
|
| - | 757 | rd %y, %g4 |
|
| - | 758 | stx %g4, [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_Y] |
|
| 749 | 759 | ||
| 750 | wrpr %g0, 0, %tl |
760 | wrpr %g0, 0, %tl |
| 751 | wrpr %g0, PSTATE_PRIV_BIT | PSTATE_PEF_BIT, %pstate |
761 | wrpr %g0, PSTATE_PRIV_BIT | PSTATE_PEF_BIT, %pstate |
| 752 | SAVE_GLOBALS |
762 | SAVE_GLOBALS |
| 753 | 763 | ||
| Line 775... | Line 785... | ||
| 775 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TSTATE], %g1 |
785 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TSTATE], %g1 |
| 776 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC], %g2 |
786 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TPC], %g2 |
| 777 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC], %g3 |
787 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_TNPC], %g3 |
| 778 | 788 | ||
| 779 | /* |
789 | /* |
| - | 790 | * Restore Y. |
|
| - | 791 | */ |
|
| - | 792 | ldx [%sp + PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE + STACK_BIAS + SAVED_Y], %g4 |
|
| - | 793 | wr %g4, %y |
|
| - | 794 | ||
| - | 795 | /* |
|
| 780 | * Copy PSTATE.PEF to the in-register copy of TSTATE. |
796 | * Copy PSTATE.PEF to the in-register copy of TSTATE. |
| 781 | */ |
797 | */ |
| 782 | and %l1, PSTATE_PEF_BIT, %l1 |
798 | and %l1, PSTATE_PEF_BIT, %l1 |
| 783 | sllx %l1, TSTATE_PSTATE_SHIFT, %l1 |
799 | sllx %l1, TSTATE_PSTATE_SHIFT, %l1 |
| 784 | sethi %hi(TSTATE_PEF_BIT), %g4 |
800 | sethi %hi(TSTATE_PEF_BIT), %g4 |