Text file
src/runtime/preempt_mips64x.s
Documentation: runtime
1 // Code generated by mkpreempt.go; DO NOT EDIT.
2
3 //go:build mips64 || mips64le
4 // +build mips64 mips64le
5
6 #include "go_asm.h"
7 #include "textflag.h"
8
9 // Note: asyncPreempt doesn't use the internal ABI, but we must be able to inject calls to it from the signal handler, so Go code has to see the PC of this function literally.
10 TEXT ·asyncPreempt<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0
11 MOVV R31, -488(R29)
12 SUBV $488, R29
13 MOVV R1, 8(R29)
14 MOVV R2, 16(R29)
15 MOVV R3, 24(R29)
16 MOVV R4, 32(R29)
17 MOVV R5, 40(R29)
18 MOVV R6, 48(R29)
19 MOVV R7, 56(R29)
20 MOVV R8, 64(R29)
21 MOVV R9, 72(R29)
22 MOVV R10, 80(R29)
23 MOVV R11, 88(R29)
24 MOVV R12, 96(R29)
25 MOVV R13, 104(R29)
26 MOVV R14, 112(R29)
27 MOVV R15, 120(R29)
28 MOVV R16, 128(R29)
29 MOVV R17, 136(R29)
30 MOVV R18, 144(R29)
31 MOVV R19, 152(R29)
32 MOVV R20, 160(R29)
33 MOVV R21, 168(R29)
34 MOVV R22, 176(R29)
35 MOVV R24, 184(R29)
36 MOVV R25, 192(R29)
37 MOVV RSB, 200(R29)
38 MOVV HI, R1
39 MOVV R1, 208(R29)
40 MOVV LO, R1
41 MOVV R1, 216(R29)
42 #ifndef GOMIPS64_softfloat
43 MOVV FCR31, R1
44 MOVV R1, 224(R29)
45 MOVD F0, 232(R29)
46 MOVD F1, 240(R29)
47 MOVD F2, 248(R29)
48 MOVD F3, 256(R29)
49 MOVD F4, 264(R29)
50 MOVD F5, 272(R29)
51 MOVD F6, 280(R29)
52 MOVD F7, 288(R29)
53 MOVD F8, 296(R29)
54 MOVD F9, 304(R29)
55 MOVD F10, 312(R29)
56 MOVD F11, 320(R29)
57 MOVD F12, 328(R29)
58 MOVD F13, 336(R29)
59 MOVD F14, 344(R29)
60 MOVD F15, 352(R29)
61 MOVD F16, 360(R29)
62 MOVD F17, 368(R29)
63 MOVD F18, 376(R29)
64 MOVD F19, 384(R29)
65 MOVD F20, 392(R29)
66 MOVD F21, 400(R29)
67 MOVD F22, 408(R29)
68 MOVD F23, 416(R29)
69 MOVD F24, 424(R29)
70 MOVD F25, 432(R29)
71 MOVD F26, 440(R29)
72 MOVD F27, 448(R29)
73 MOVD F28, 456(R29)
74 MOVD F29, 464(R29)
75 MOVD F30, 472(R29)
76 MOVD F31, 480(R29)
77 #endif
78 CALL ·asyncPreempt2(SB)
79 #ifndef GOMIPS64_softfloat
80 MOVD 480(R29), F31
81 MOVD 472(R29), F30
82 MOVD 464(R29), F29
83 MOVD 456(R29), F28
84 MOVD 448(R29), F27
85 MOVD 440(R29), F26
86 MOVD 432(R29), F25
87 MOVD 424(R29), F24
88 MOVD 416(R29), F23
89 MOVD 408(R29), F22
90 MOVD 400(R29), F21
91 MOVD 392(R29), F20
92 MOVD 384(R29), F19
93 MOVD 376(R29), F18
94 MOVD 368(R29), F17
95 MOVD 360(R29), F16
96 MOVD 352(R29), F15
97 MOVD 344(R29), F14
98 MOVD 336(R29), F13
99 MOVD 328(R29), F12
100 MOVD 320(R29), F11
101 MOVD 312(R29), F10
102 MOVD 304(R29), F9
103 MOVD 296(R29), F8
104 MOVD 288(R29), F7
105 MOVD 280(R29), F6
106 MOVD 272(R29), F5
107 MOVD 264(R29), F4
108 MOVD 256(R29), F3
109 MOVD 248(R29), F2
110 MOVD 240(R29), F1
111 MOVD 232(R29), F0
112 MOVV 224(R29), R1
113 MOVV R1, FCR31
114 #endif
115 MOVV 216(R29), R1
116 MOVV R1, LO
117 MOVV 208(R29), R1
118 MOVV R1, HI
119 MOVV 200(R29), RSB
120 MOVV 192(R29), R25
121 MOVV 184(R29), R24
122 MOVV 176(R29), R22
123 MOVV 168(R29), R21
124 MOVV 160(R29), R20
125 MOVV 152(R29), R19
126 MOVV 144(R29), R18
127 MOVV 136(R29), R17
128 MOVV 128(R29), R16
129 MOVV 120(R29), R15
130 MOVV 112(R29), R14
131 MOVV 104(R29), R13
132 MOVV 96(R29), R12
133 MOVV 88(R29), R11
134 MOVV 80(R29), R10
135 MOVV 72(R29), R9
136 MOVV 64(R29), R8
137 MOVV 56(R29), R7
138 MOVV 48(R29), R6
139 MOVV 40(R29), R5
140 MOVV 32(R29), R4
141 MOVV 24(R29), R3
142 MOVV 16(R29), R2
143 MOVV 8(R29), R1
144 MOVV 488(R29), R31
145 MOVV (R29), R23
146 ADDV $496, R29
147 JMP (R23)
148
View as plain text