diff options
author | marius <marius@FreeBSD.org> | 2011-06-07 23:15:21 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2011-06-07 23:15:21 +0000 |
commit | d2f204966c11d08d0a3955cd9de7554ad364bf29 (patch) | |
tree | 26c7c8b96e8b42928f733f302d597314ea986961 | |
parent | c129cb6c4fa374e0cf38714d1eaa8c1ee9bd6b33 (diff) | |
download | FreeBSD-src-d2f204966c11d08d0a3955cd9de7554ad364bf29.zip FreeBSD-src-d2f204966c11d08d0a3955cd9de7554ad364bf29.tar.gz |
- For the case when tl1_align(_trap) is used to call rsf_fatal via
RSF_FATAL we need to switch to alternate globals for KSTACK_CHECK just
like tl1_data_excptn(_trap) does. This is more or less cosmetic because
in case RSF_FATAL is called we're already heading south.
- Correct an END().
- Read the window state from the correct register for a CATR().
-rw-r--r-- | sys/sparc64/sparc64/exception.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/sparc64/sparc64/exception.S b/sys/sparc64/sparc64/exception.S index 246f2c2..0b8a0fa 100644 --- a/sys/sparc64/sparc64/exception.S +++ b/sys/sparc64/sparc64/exception.S @@ -1280,6 +1280,7 @@ ENTRY(tl1_data_excptn_trap) END(tl1_data_excptn_trap) .macro tl1_align + wrpr %g0, PSTATE_ALT, %pstate ba,a %xcc, tl1_align_trap nop .align 32 @@ -1289,7 +1290,7 @@ ENTRY(tl1_align_trap) RESUME_SPILLFILL_ALIGN ba %xcc, tl1_sfsr_trap mov T_MEM_ADDRESS_NOT_ALIGNED | T_KERNEL, %g2 -END(tl1_data_excptn_trap) +END(tl1_align_trap) ENTRY(tl1_sfsr_trap) wr %g0, ASI_DMMU, %asi @@ -2702,7 +2703,7 @@ tl0_ret_fill_end: , %l0, %l1, %l2, 7, 8, 9) rdpr %pstate, %l1 stx %l1, [%l0 + KTR_PARM1] - stx %l5, [%l0 + KTR_PARM2] + stx %l6, [%l0 + KTR_PARM2] stx %sp, [%l0 + KTR_PARM3] 9: |