mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.0 KiB
95 lines
2.0 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
#ifdef CONFIG_KGDB |
|
.globl arch_kgdb_breakpoint |
|
.type arch_kgdb_breakpoint,#function |
|
arch_kgdb_breakpoint: |
|
ta 0x72 |
|
retl |
|
nop |
|
.size arch_kgdb_breakpoint,.-arch_kgdb_breakpoint |
|
#endif |
|
|
|
.type __do_privact,#function |
|
__do_privact: |
|
mov TLB_SFSR, %g3 |
|
stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit |
|
membar #Sync |
|
sethi %hi(109f), %g7 |
|
ba,pt %xcc, etrap |
|
109: or %g7, %lo(109b), %g7 |
|
call do_privact |
|
add %sp, PTREGS_OFF, %o0 |
|
ba,a,pt %xcc, rtrap |
|
.size __do_privact,.-__do_privact |
|
|
|
.type do_mna,#function |
|
do_mna: |
|
rdpr %tl, %g3 |
|
cmp %g3, 1 |
|
|
|
/* Setup %g4/%g5 now as they are used in the |
|
* winfixup code. |
|
*/ |
|
mov TLB_SFSR, %g3 |
|
mov DMMU_SFAR, %g4 |
|
ldxa [%g4] ASI_DMMU, %g4 |
|
ldxa [%g3] ASI_DMMU, %g5 |
|
stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit |
|
membar #Sync |
|
bgu,pn %icc, winfix_mna |
|
rdpr %tpc, %g3 |
|
|
|
1: sethi %hi(109f), %g7 |
|
ba,pt %xcc, etrap |
|
109: or %g7, %lo(109b), %g7 |
|
mov %l4, %o1 |
|
mov %l5, %o2 |
|
call mem_address_unaligned |
|
add %sp, PTREGS_OFF, %o0 |
|
ba,a,pt %xcc, rtrap |
|
.size do_mna,.-do_mna |
|
|
|
.type do_lddfmna,#function |
|
do_lddfmna: |
|
sethi %hi(109f), %g7 |
|
mov TLB_SFSR, %g4 |
|
ldxa [%g4] ASI_DMMU, %g5 |
|
stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit |
|
membar #Sync |
|
mov DMMU_SFAR, %g4 |
|
ldxa [%g4] ASI_DMMU, %g4 |
|
ba,pt %xcc, etrap |
|
109: or %g7, %lo(109b), %g7 |
|
mov %l4, %o1 |
|
mov %l5, %o2 |
|
call handle_lddfmna |
|
add %sp, PTREGS_OFF, %o0 |
|
ba,a,pt %xcc, rtrap |
|
.size do_lddfmna,.-do_lddfmna |
|
|
|
.type do_stdfmna,#function |
|
do_stdfmna: |
|
sethi %hi(109f), %g7 |
|
mov TLB_SFSR, %g4 |
|
ldxa [%g4] ASI_DMMU, %g5 |
|
stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit |
|
membar #Sync |
|
mov DMMU_SFAR, %g4 |
|
ldxa [%g4] ASI_DMMU, %g4 |
|
ba,pt %xcc, etrap |
|
109: or %g7, %lo(109b), %g7 |
|
mov %l4, %o1 |
|
mov %l5, %o2 |
|
call handle_stdfmna |
|
add %sp, PTREGS_OFF, %o0 |
|
ba,a,pt %xcc, rtrap |
|
nop |
|
.size do_stdfmna,.-do_stdfmna |
|
|
|
.type breakpoint_trap,#function |
|
breakpoint_trap: |
|
call sparc_breakpoint |
|
add %sp, PTREGS_OFF, %o0 |
|
ba,pt %xcc, rtrap |
|
nop |
|
.size breakpoint_trap,.-breakpoint_trap
|
|
|