aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/preempt_riscv64.s
blob: d4f9cc277f4b62b27a8c33002fb587c53795bd43 (plain)
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Code generated by mkpreempt.go; DO NOT EDIT.

#include "go_asm.h"
#include "textflag.h"

// 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.
TEXT ·asyncPreempt<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0
	MOV X1, -472(X2)
	ADD $-472, X2
	MOV X3, 8(X2)
	MOV X5, 16(X2)
	MOV X6, 24(X2)
	MOV X7, 32(X2)
	MOV X8, 40(X2)
	MOV X9, 48(X2)
	MOV X10, 56(X2)
	MOV X11, 64(X2)
	MOV X12, 72(X2)
	MOV X13, 80(X2)
	MOV X14, 88(X2)
	MOV X15, 96(X2)
	MOV X16, 104(X2)
	MOV X17, 112(X2)
	MOV X18, 120(X2)
	MOV X19, 128(X2)
	MOV X20, 136(X2)
	MOV X21, 144(X2)
	MOV X22, 152(X2)
	MOV X23, 160(X2)
	MOV X24, 168(X2)
	MOV X25, 176(X2)
	MOV X26, 184(X2)
	MOV X28, 192(X2)
	MOV X29, 200(X2)
	MOV X30, 208(X2)
	MOVD F0, 216(X2)
	MOVD F1, 224(X2)
	MOVD F2, 232(X2)
	MOVD F3, 240(X2)
	MOVD F4, 248(X2)
	MOVD F5, 256(X2)
	MOVD F6, 264(X2)
	MOVD F7, 272(X2)
	MOVD F8, 280(X2)
	MOVD F9, 288(X2)
	MOVD F10, 296(X2)
	MOVD F11, 304(X2)
	MOVD F12, 312(X2)
	MOVD F13, 320(X2)
	MOVD F14, 328(X2)
	MOVD F15, 336(X2)
	MOVD F16, 344(X2)
	MOVD F17, 352(X2)
	MOVD F18, 360(X2)
	MOVD F19, 368(X2)
	MOVD F20, 376(X2)
	MOVD F21, 384(X2)
	MOVD F22, 392(X2)
	MOVD F23, 400(X2)
	MOVD F24, 408(X2)
	MOVD F25, 416(X2)
	MOVD F26, 424(X2)
	MOVD F27, 432(X2)
	MOVD F28, 440(X2)
	MOVD F29, 448(X2)
	MOVD F30, 456(X2)
	MOVD F31, 464(X2)
	CALL ·asyncPreempt2(SB)
	MOVD 464(X2), F31
	MOVD 456(X2), F30
	MOVD 448(X2), F29
	MOVD 440(X2), F28
	MOVD 432(X2), F27
	MOVD 424(X2), F26
	MOVD 416(X2), F25
	MOVD 408(X2), F24
	MOVD 400(X2), F23
	MOVD 392(X2), F22
	MOVD 384(X2), F21
	MOVD 376(X2), F20
	MOVD 368(X2), F19
	MOVD 360(X2), F18
	MOVD 352(X2), F17
	MOVD 344(X2), F16
	MOVD 336(X2), F15
	MOVD 328(X2), F14
	MOVD 320(X2), F13
	MOVD 312(X2), F12
	MOVD 304(X2), F11
	MOVD 296(X2), F10
	MOVD 288(X2), F9
	MOVD 280(X2), F8
	MOVD 272(X2), F7
	MOVD 264(X2), F6
	MOVD 256(X2), F5
	MOVD 248(X2), F4
	MOVD 240(X2), F3
	MOVD 232(X2), F2
	MOVD 224(X2), F1
	MOVD 216(X2), F0
	MOV 208(X2), X30
	MOV 200(X2), X29
	MOV 192(X2), X28
	MOV 184(X2), X26
	MOV 176(X2), X25
	MOV 168(X2), X24
	MOV 160(X2), X23
	MOV 152(X2), X22
	MOV 144(X2), X21
	MOV 136(X2), X20
	MOV 128(X2), X19
	MOV 120(X2), X18
	MOV 112(X2), X17
	MOV 104(X2), X16
	MOV 96(X2), X15
	MOV 88(X2), X14
	MOV 80(X2), X13
	MOV 72(X2), X12
	MOV 64(X2), X11
	MOV 56(X2), X10
	MOV 48(X2), X9
	MOV 40(X2), X8
	MOV 32(X2), X7
	MOV 24(X2), X6
	MOV 16(X2), X5
	MOV 8(X2), X3
	MOV 472(X2), X1
	MOV (X2), X31
	ADD $480, X2
	JMP (X31)