1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifdef CONFIG_KGDB 3 .globl arch_kgdb_breakpoint 4 .type arch_kgdb_breakpoint,#function 5arch_kgdb_breakpoint: 6 ta 0x72 7 retl 8 nop 9 .size arch_kgdb_breakpoint,.-arch_kgdb_breakpoint 10#endif 11 12 .type __do_privact,#function 13__do_privact: 14 mov TLB_SFSR, %g3 15 stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit 16 membar #Sync 17 sethi %hi(109f), %g7 18 ba,pt %xcc, etrap 19109: or %g7, %lo(109b), %g7 20 call do_privact 21 add %sp, PTREGS_OFF, %o0 22 ba,a,pt %xcc, rtrap 23 .size __do_privact,.-__do_privact 24 25 .type do_mna,#function 26do_mna: 27 rdpr %tl, %g3 28 cmp %g3, 1 29 30 /* Setup %g4/%g5 now as they are used in the 31 * winfixup code. 32 */ 33 mov TLB_SFSR, %g3 34 mov DMMU_SFAR, %g4 35 ldxa [%g4] ASI_DMMU, %g4 36 ldxa [%g3] ASI_DMMU, %g5 37 stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit 38 membar #Sync 39 bgu,pn %icc, winfix_mna 40 rdpr %tpc, %g3 41 421: sethi %hi(109f), %g7 43 ba,pt %xcc, etrap 44109: or %g7, %lo(109b), %g7 45 mov %l4, %o1 46 mov %l5, %o2 47 call mem_address_unaligned 48 add %sp, PTREGS_OFF, %o0 49 ba,a,pt %xcc, rtrap 50 .size do_mna,.-do_mna 51 52 .type do_lddfmna,#function 53do_lddfmna: 54 sethi %hi(109f), %g7 55 mov TLB_SFSR, %g4 56 ldxa [%g4] ASI_DMMU, %g5 57 stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit 58 membar #Sync 59 mov DMMU_SFAR, %g4 60 ldxa [%g4] ASI_DMMU, %g4 61 ba,pt %xcc, etrap 62109: or %g7, %lo(109b), %g7 63 mov %l4, %o1 64 mov %l5, %o2 65 call handle_lddfmna 66 add %sp, PTREGS_OFF, %o0 67 ba,a,pt %xcc, rtrap 68 .size do_lddfmna,.-do_lddfmna 69 70 .type do_stdfmna,#function 71do_stdfmna: 72 sethi %hi(109f), %g7 73 mov TLB_SFSR, %g4 74 ldxa [%g4] ASI_DMMU, %g5 75 stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit 76 membar #Sync 77 mov DMMU_SFAR, %g4 78 ldxa [%g4] ASI_DMMU, %g4 79 ba,pt %xcc, etrap 80109: or %g7, %lo(109b), %g7 81 mov %l4, %o1 82 mov %l5, %o2 83 call handle_stdfmna 84 add %sp, PTREGS_OFF, %o0 85 ba,a,pt %xcc, rtrap 86 nop 87 .size do_stdfmna,.-do_stdfmna 88 89 .type breakpoint_trap,#function 90breakpoint_trap: 91 call sparc_breakpoint 92 add %sp, PTREGS_OFF, %o0 93 ba,pt %xcc, rtrap 94 nop 95 .size breakpoint_trap,.-breakpoint_trap 96