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
/* SPDX-License-Identifier: GPL-2.0 */
   .globl        utrap_trap
   .type        utrap_trap,#function
utrap_trap:        /* %g3=handler,%g4=level */
   TRAP_LOAD_THREAD_REG(%g6, %g1)
   ldx        [%g6 + TI_UTRAPS], %g1
   brnz,pt        %g1, invoke_utrap
    nop
 
   ba,pt        %xcc, etrap
    rd        %pc, %g7
   mov        %l4, %o1
        call        bad_trap
    add        %sp, PTREGS_OFF, %o0
   ba,a,pt        %xcc, rtrap
 
invoke_utrap:
   sllx        %g3, 3, %g3
   ldx        [%g1 + %g3], %g1
   save        %sp, -128, %sp
   rdpr        %tstate, %l6
   rdpr        %cwp, %l7
   andn        %l6, TSTATE_CWP, %l6
   wrpr        %l6, %l7, %tstate
   rdpr        %tpc, %l6
   rdpr        %tnpc, %l7
   wrpr        %g1, 0, %tnpc
   done
   .size        utrap_trap,.-utrap_trap