hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/* 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