0001
0002 #ifdef CONFIG_KGDB
0003 .globl arch_kgdb_breakpoint
0004 .type arch_kgdb_breakpoint,#function
0005 arch_kgdb_breakpoint:
0006 ta 0x72
0007 retl
0008 nop
0009 .size arch_kgdb_breakpoint,.-arch_kgdb_breakpoint
0010 #endif
0011
0012 .type __do_privact,#function
0013 __do_privact:
0014 mov TLB_SFSR, %g3
0015 stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit
0016 membar #Sync
0017 sethi %hi(109f), %g7
0018 ba,pt %xcc, etrap
0019 109: or %g7, %lo(109b), %g7
0020 call do_privact
0021 add %sp, PTREGS_OFF, %o0
0022 ba,a,pt %xcc, rtrap
0023 .size __do_privact,.-__do_privact
0024
0025 .type do_mna,#function
0026 do_mna:
0027 rdpr %tl, %g3
0028 cmp %g3, 1
0029
0030
0031
0032
0033 mov TLB_SFSR, %g3
0034 mov DMMU_SFAR, %g4
0035 ldxa [%g4] ASI_DMMU, %g4
0036 ldxa [%g3] ASI_DMMU, %g5
0037 stxa %g0, [%g3] ASI_DMMU ! Clear FaultValid bit
0038 membar #Sync
0039 bgu,pn %icc, winfix_mna
0040 rdpr %tpc, %g3
0041
0042 1: sethi %hi(109f), %g7
0043 ba,pt %xcc, etrap
0044 109: or %g7, %lo(109b), %g7
0045 mov %l4, %o1
0046 mov %l5, %o2
0047 call mem_address_unaligned
0048 add %sp, PTREGS_OFF, %o0
0049 ba,a,pt %xcc, rtrap
0050 .size do_mna,.-do_mna
0051
0052 .type do_lddfmna,#function
0053 do_lddfmna:
0054 sethi %hi(109f), %g7
0055 mov TLB_SFSR, %g4
0056 ldxa [%g4] ASI_DMMU, %g5
0057 stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit
0058 membar #Sync
0059 mov DMMU_SFAR, %g4
0060 ldxa [%g4] ASI_DMMU, %g4
0061 ba,pt %xcc, etrap
0062 109: or %g7, %lo(109b), %g7
0063 mov %l4, %o1
0064 mov %l5, %o2
0065 call handle_lddfmna
0066 add %sp, PTREGS_OFF, %o0
0067 ba,a,pt %xcc, rtrap
0068 .size do_lddfmna,.-do_lddfmna
0069
0070 .type do_stdfmna,#function
0071 do_stdfmna:
0072 sethi %hi(109f), %g7
0073 mov TLB_SFSR, %g4
0074 ldxa [%g4] ASI_DMMU, %g5
0075 stxa %g0, [%g4] ASI_DMMU ! Clear FaultValid bit
0076 membar #Sync
0077 mov DMMU_SFAR, %g4
0078 ldxa [%g4] ASI_DMMU, %g4
0079 ba,pt %xcc, etrap
0080 109: or %g7, %lo(109b), %g7
0081 mov %l4, %o1
0082 mov %l5, %o2
0083 call handle_stdfmna
0084 add %sp, PTREGS_OFF, %o0
0085 ba,a,pt %xcc, rtrap
0086 nop
0087 .size do_stdfmna,.-do_stdfmna
0088
0089 .type breakpoint_trap,#function
0090 breakpoint_trap:
0091 call sparc_breakpoint
0092 add %sp, PTREGS_OFF, %o0
0093 ba,pt %xcc, rtrap
0094 nop
0095 .size breakpoint_trap,.-breakpoint_trap