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