|
@@ -47,7 +47,7 @@ do_fpdis:
|
|
ba,pt %xcc, etrap
|
|
ba,pt %xcc, etrap
|
|
109: or %g7, %lo(109b), %g7
|
|
109: or %g7, %lo(109b), %g7
|
|
add %g0, %g0, %g0
|
|
add %g0, %g0, %g0
|
|
- ba,a,pt %xcc, rtrap_clr_l6
|
|
|
|
|
|
+ ba,a,pt %xcc, rtrap
|
|
|
|
|
|
1: TRAP_LOAD_THREAD_REG(%g6, %g1)
|
|
1: TRAP_LOAD_THREAD_REG(%g6, %g1)
|
|
ldub [%g6 + TI_FPSAVED], %g5
|
|
ldub [%g6 + TI_FPSAVED], %g5
|
|
@@ -226,7 +226,7 @@ fp_other_bounce:
|
|
call do_fpother
|
|
call do_fpother
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl do_fpother_check_fitos
|
|
.globl do_fpother_check_fitos
|
|
.align 32
|
|
.align 32
|
|
@@ -489,7 +489,7 @@ utrap_trap: /* %g3=handler,%g4=level */
|
|
call bad_trap
|
|
call bad_trap
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
invoke_utrap:
|
|
invoke_utrap:
|
|
sllx %g3, 3, %g3
|
|
sllx %g3, 3, %g3
|
|
@@ -607,7 +607,7 @@ __spitfire_cee_trap_continue:
|
|
call spitfire_access_error
|
|
call spitfire_access_error
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
/* This is the trap handler entry point for ECC correctable
|
|
/* This is the trap handler entry point for ECC correctable
|
|
* errors. They are corrected, but we listen for the trap
|
|
* errors. They are corrected, but we listen for the trap
|
|
@@ -686,7 +686,7 @@ __spitfire_data_access_exception_tl1:
|
|
call spitfire_data_access_exception_tl1
|
|
call spitfire_data_access_exception_tl1
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
__spitfire_data_access_exception:
|
|
__spitfire_data_access_exception:
|
|
rdpr %pstate, %g4
|
|
rdpr %pstate, %g4
|
|
@@ -705,7 +705,7 @@ __spitfire_data_access_exception:
|
|
call spitfire_data_access_exception
|
|
call spitfire_data_access_exception
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl __spitfire_insn_access_exception
|
|
.globl __spitfire_insn_access_exception
|
|
.globl __spitfire_insn_access_exception_tl1
|
|
.globl __spitfire_insn_access_exception_tl1
|
|
@@ -725,7 +725,7 @@ __spitfire_insn_access_exception_tl1:
|
|
call spitfire_insn_access_exception_tl1
|
|
call spitfire_insn_access_exception_tl1
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
__spitfire_insn_access_exception:
|
|
__spitfire_insn_access_exception:
|
|
rdpr %pstate, %g4
|
|
rdpr %pstate, %g4
|
|
@@ -743,7 +743,7 @@ __spitfire_insn_access_exception:
|
|
call spitfire_insn_access_exception
|
|
call spitfire_insn_access_exception
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
/* These get patched into the trap table at boot time
|
|
/* These get patched into the trap table at boot time
|
|
* once we know we have a cheetah processor.
|
|
* once we know we have a cheetah processor.
|
|
@@ -937,7 +937,7 @@ do_dcpe_tl1_fatal:
|
|
call cheetah_plus_parity_error
|
|
call cheetah_plus_parity_error
|
|
add %sp, PTREGS_OFF, %o1
|
|
add %sp, PTREGS_OFF, %o1
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
do_icpe_tl1:
|
|
do_icpe_tl1:
|
|
rdpr %tl, %g1 ! Save original trap level
|
|
rdpr %tl, %g1 ! Save original trap level
|
|
@@ -979,7 +979,7 @@ do_icpe_tl1_fatal:
|
|
call cheetah_plus_parity_error
|
|
call cheetah_plus_parity_error
|
|
add %sp, PTREGS_OFF, %o1
|
|
add %sp, PTREGS_OFF, %o1
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
dcpe_icpe_tl1_common:
|
|
dcpe_icpe_tl1_common:
|
|
/* Flush D-cache, re-enable D/I caches in DCU and finally
|
|
/* Flush D-cache, re-enable D/I caches in DCU and finally
|
|
@@ -1281,7 +1281,7 @@ __do_privact:
|
|
call do_privact
|
|
call do_privact
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl do_mna
|
|
.globl do_mna
|
|
do_mna:
|
|
do_mna:
|
|
@@ -1308,7 +1308,7 @@ do_mna:
|
|
call mem_address_unaligned
|
|
call mem_address_unaligned
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl do_lddfmna
|
|
.globl do_lddfmna
|
|
do_lddfmna:
|
|
do_lddfmna:
|
|
@@ -1326,7 +1326,7 @@ do_lddfmna:
|
|
call handle_lddfmna
|
|
call handle_lddfmna
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl do_stdfmna
|
|
.globl do_stdfmna
|
|
do_stdfmna:
|
|
do_stdfmna:
|
|
@@ -1344,7 +1344,7 @@ do_stdfmna:
|
|
call handle_stdfmna
|
|
call handle_stdfmna
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
.globl breakpoint_trap
|
|
.globl breakpoint_trap
|
|
breakpoint_trap:
|
|
breakpoint_trap:
|
|
@@ -1424,13 +1424,13 @@ sys32_rt_sigreturn:
|
|
1: ldx [%curptr + TI_FLAGS], %l5
|
|
1: ldx [%curptr + TI_FLAGS], %l5
|
|
andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0
|
|
andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0
|
|
be,pt %icc, rtrap
|
|
be,pt %icc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
add %sp, PTREGS_OFF, %o0
|
|
add %sp, PTREGS_OFF, %o0
|
|
call syscall_trace
|
|
call syscall_trace
|
|
mov 1, %o1
|
|
mov 1, %o1
|
|
|
|
|
|
ba,pt %xcc, rtrap
|
|
ba,pt %xcc, rtrap
|
|
- clr %l6
|
|
|
|
|
|
+ nop
|
|
|
|
|
|
/* This is how fork() was meant to be done, 8 instruction entry.
|
|
/* This is how fork() was meant to be done, 8 instruction entry.
|
|
*
|
|
*
|
|
@@ -1559,7 +1559,7 @@ linux_sparc_syscall32:
|
|
|
|
|
|
/* Linux native system calls enter here... */
|
|
/* Linux native system calls enter here... */
|
|
.align 32
|
|
.align 32
|
|
- .globl linux_sparc_syscall, ret_sys_call
|
|
|
|
|
|
+ .globl linux_sparc_syscall
|
|
linux_sparc_syscall:
|
|
linux_sparc_syscall:
|
|
/* Direct access to user regs, much faster. */
|
|
/* Direct access to user regs, much faster. */
|
|
cmp %g1, NR_SYSCALLS ! IEU1 Group
|
|
cmp %g1, NR_SYSCALLS ! IEU1 Group
|
|
@@ -1605,7 +1605,7 @@ ret_sys_call:
|
|
bne,pn %icc, linux_syscall_trace2
|
|
bne,pn %icc, linux_syscall_trace2
|
|
add %l1, 0x4, %l2 ! npc = npc+4
|
|
add %l1, 0x4, %l2 ! npc = npc+4
|
|
stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC]
|
|
stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC]
|
|
- ba,pt %xcc, rtrap_clr_l6
|
|
|
|
|
|
+ ba,pt %xcc, rtrap
|
|
stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
|
|
stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
|
|
|
|
|
|
1:
|
|
1:
|
|
@@ -1616,7 +1616,6 @@ ret_sys_call:
|
|
sub %g0, %o0, %o0
|
|
sub %g0, %o0, %o0
|
|
or %g3, %g2, %g3
|
|
or %g3, %g2, %g3
|
|
stx %o0, [%sp + PTREGS_OFF + PT_V9_I0]
|
|
stx %o0, [%sp + PTREGS_OFF + PT_V9_I0]
|
|
- mov 1, %l6
|
|
|
|
stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]
|
|
stx %g3, [%sp + PTREGS_OFF + PT_V9_TSTATE]
|
|
bne,pn %icc, linux_syscall_trace2
|
|
bne,pn %icc, linux_syscall_trace2
|
|
add %l1, 0x4, %l2 ! npc = npc+4
|
|
add %l1, 0x4, %l2 ! npc = npc+4
|