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 |