Text file
src/runtime/preempt_arm64.s
1 // Code generated by mkpreempt.go; DO NOT EDIT.
2
3 #include "go_asm.h"
4 #include "textflag.h"
5
6 TEXT ·asyncPreempt(SB),NOSPLIT|NOFRAME,$0-0
7 MOVD R30, -240(RSP)
8 SUB $240, RSP
9 MOVD R29, -8(RSP)
10 SUB $8, RSP, R29
11 #ifdef GOOS_ios
12 MOVD R30, (RSP)
13 #endif
14 // Save GPs
15 STP (R0, R1), 8(RSP)
16 STP (R2, R3), 24(RSP)
17 STP (R4, R5), 40(RSP)
18 STP (R6, R7), 56(RSP)
19 STP (R8, R9), 72(RSP)
20 STP (R10, R11), 88(RSP)
21 STP (R12, R13), 104(RSP)
22 STP (R14, R15), 120(RSP)
23 STP (R16, R17), 136(RSP)
24 STP (R19, R20), 152(RSP)
25 STP (R21, R22), 168(RSP)
26 STP (R23, R24), 184(RSP)
27 STP (R25, R26), 200(RSP)
28 MOVD NZCV, R0
29 MOVD R0, 216(RSP)
30 MOVD FPSR, R0
31 MOVD R0, 224(RSP)
32 // Save extended register state to p.xRegs.scratch
33 MOVD g_m(g), R0
34 MOVD m_p(R0), R0
35 ADD $(p_xRegs+xRegPerP_scratch), R0, R0
36 VST1.P [V0.B16, V1.B16, V2.B16, V3.B16], 64(R0)
37 VST1.P [V4.B16, V5.B16, V6.B16, V7.B16], 64(R0)
38 VST1.P [V8.B16, V9.B16, V10.B16, V11.B16], 64(R0)
39 VST1.P [V12.B16, V13.B16, V14.B16, V15.B16], 64(R0)
40 VST1.P [V16.B16, V17.B16, V18.B16, V19.B16], 64(R0)
41 VST1.P [V20.B16, V21.B16, V22.B16, V23.B16], 64(R0)
42 VST1.P [V24.B16, V25.B16, V26.B16, V27.B16], 64(R0)
43 VST1.P [V28.B16, V29.B16, V30.B16, V31.B16], 64(R0)
44 CALL ·asyncPreempt2(SB)
45 // Restore non-GPs from *p.xRegs.cache
46 MOVD g_m(g), R0
47 MOVD m_p(R0), R0
48 MOVD (p_xRegs+xRegPerP_cache)(R0), R0
49 VLD1.P 64(R0), [V0.B16, V1.B16, V2.B16, V3.B16]
50 VLD1.P 64(R0), [V4.B16, V5.B16, V6.B16, V7.B16]
51 VLD1.P 64(R0), [V8.B16, V9.B16, V10.B16, V11.B16]
52 VLD1.P 64(R0), [V12.B16, V13.B16, V14.B16, V15.B16]
53 VLD1.P 64(R0), [V16.B16, V17.B16, V18.B16, V19.B16]
54 VLD1.P 64(R0), [V20.B16, V21.B16, V22.B16, V23.B16]
55 VLD1.P 64(R0), [V24.B16, V25.B16, V26.B16, V27.B16]
56 VLD1.P 64(R0), [V28.B16, V29.B16, V30.B16, V31.B16]
57 // Restore GPs
58 MOVD 224(RSP), R0
59 MOVD R0, FPSR
60 MOVD 216(RSP), R0
61 MOVD R0, NZCV
62 LDP 200(RSP), (R25, R26)
63 LDP 184(RSP), (R23, R24)
64 LDP 168(RSP), (R21, R22)
65 LDP 152(RSP), (R19, R20)
66 LDP 136(RSP), (R16, R17)
67 LDP 120(RSP), (R14, R15)
68 LDP 104(RSP), (R12, R13)
69 LDP 88(RSP), (R10, R11)
70 LDP 72(RSP), (R8, R9)
71 LDP 56(RSP), (R6, R7)
72 LDP 40(RSP), (R4, R5)
73 LDP 24(RSP), (R2, R3)
74 LDP 8(RSP), (R0, R1)
75 MOVD 240(RSP), R30
76 MOVD -8(RSP), R29
77 MOVD (RSP), R27
78 ADD $256, RSP
79 RET (R27)
80
View as plain text