podman

Форк
0
459 строк · 12.1 Кб
1
// Code generated by parse_opcodes -go; DO NOT EDIT.
2

3
package riscv
4

5
import "github.com/twitchyliquid64/golang-asm/obj"
6

7
type inst struct {
8
	opcode uint32
9
	funct3 uint32
10
	rs2    uint32
11
	csr    int64
12
	funct7 uint32
13
}
14

15
func encode(a obj.As) *inst {
16
	switch a {
17
	case ABEQ:
18
		return &inst{0x63, 0x0, 0x0, 0, 0x0}
19
	case ABNE:
20
		return &inst{0x63, 0x1, 0x0, 0, 0x0}
21
	case ABLT:
22
		return &inst{0x63, 0x4, 0x0, 0, 0x0}
23
	case ABGE:
24
		return &inst{0x63, 0x5, 0x0, 0, 0x0}
25
	case ABLTU:
26
		return &inst{0x63, 0x6, 0x0, 0, 0x0}
27
	case ABGEU:
28
		return &inst{0x63, 0x7, 0x0, 0, 0x0}
29
	case AJALR:
30
		return &inst{0x67, 0x0, 0x0, 0, 0x0}
31
	case AJAL:
32
		return &inst{0x6f, 0x0, 0x0, 0, 0x0}
33
	case ALUI:
34
		return &inst{0x37, 0x0, 0x0, 0, 0x0}
35
	case AAUIPC:
36
		return &inst{0x17, 0x0, 0x0, 0, 0x0}
37
	case AADDI:
38
		return &inst{0x13, 0x0, 0x0, 0, 0x0}
39
	case ASLLI:
40
		return &inst{0x13, 0x1, 0x0, 0, 0x0}
41
	case ASLTI:
42
		return &inst{0x13, 0x2, 0x0, 0, 0x0}
43
	case ASLTIU:
44
		return &inst{0x13, 0x3, 0x0, 0, 0x0}
45
	case AXORI:
46
		return &inst{0x13, 0x4, 0x0, 0, 0x0}
47
	case ASRLI:
48
		return &inst{0x13, 0x5, 0x0, 0, 0x0}
49
	case ASRAI:
50
		return &inst{0x13, 0x5, 0x0, 1024, 0x20}
51
	case AORI:
52
		return &inst{0x13, 0x6, 0x0, 0, 0x0}
53
	case AANDI:
54
		return &inst{0x13, 0x7, 0x0, 0, 0x0}
55
	case AADD:
56
		return &inst{0x33, 0x0, 0x0, 0, 0x0}
57
	case ASUB:
58
		return &inst{0x33, 0x0, 0x0, 1024, 0x20}
59
	case ASLL:
60
		return &inst{0x33, 0x1, 0x0, 0, 0x0}
61
	case ASLT:
62
		return &inst{0x33, 0x2, 0x0, 0, 0x0}
63
	case ASLTU:
64
		return &inst{0x33, 0x3, 0x0, 0, 0x0}
65
	case AXOR:
66
		return &inst{0x33, 0x4, 0x0, 0, 0x0}
67
	case ASRL:
68
		return &inst{0x33, 0x5, 0x0, 0, 0x0}
69
	case ASRA:
70
		return &inst{0x33, 0x5, 0x0, 1024, 0x20}
71
	case AOR:
72
		return &inst{0x33, 0x6, 0x0, 0, 0x0}
73
	case AAND:
74
		return &inst{0x33, 0x7, 0x0, 0, 0x0}
75
	case AADDIW:
76
		return &inst{0x1b, 0x0, 0x0, 0, 0x0}
77
	case ASLLIW:
78
		return &inst{0x1b, 0x1, 0x0, 0, 0x0}
79
	case ASRLIW:
80
		return &inst{0x1b, 0x5, 0x0, 0, 0x0}
81
	case ASRAIW:
82
		return &inst{0x1b, 0x5, 0x0, 1024, 0x20}
83
	case AADDW:
84
		return &inst{0x3b, 0x0, 0x0, 0, 0x0}
85
	case ASUBW:
86
		return &inst{0x3b, 0x0, 0x0, 1024, 0x20}
87
	case ASLLW:
88
		return &inst{0x3b, 0x1, 0x0, 0, 0x0}
89
	case ASRLW:
90
		return &inst{0x3b, 0x5, 0x0, 0, 0x0}
91
	case ASRAW:
92
		return &inst{0x3b, 0x5, 0x0, 1024, 0x20}
93
	case ALB:
94
		return &inst{0x3, 0x0, 0x0, 0, 0x0}
95
	case ALH:
96
		return &inst{0x3, 0x1, 0x0, 0, 0x0}
97
	case ALW:
98
		return &inst{0x3, 0x2, 0x0, 0, 0x0}
99
	case ALD:
100
		return &inst{0x3, 0x3, 0x0, 0, 0x0}
101
	case ALBU:
102
		return &inst{0x3, 0x4, 0x0, 0, 0x0}
103
	case ALHU:
104
		return &inst{0x3, 0x5, 0x0, 0, 0x0}
105
	case ALWU:
106
		return &inst{0x3, 0x6, 0x0, 0, 0x0}
107
	case ASB:
108
		return &inst{0x23, 0x0, 0x0, 0, 0x0}
109
	case ASH:
110
		return &inst{0x23, 0x1, 0x0, 0, 0x0}
111
	case ASW:
112
		return &inst{0x23, 0x2, 0x0, 0, 0x0}
113
	case ASD:
114
		return &inst{0x23, 0x3, 0x0, 0, 0x0}
115
	case AFENCE:
116
		return &inst{0xf, 0x0, 0x0, 0, 0x0}
117
	case AFENCEI:
118
		return &inst{0xf, 0x1, 0x0, 0, 0x0}
119
	case AMUL:
120
		return &inst{0x33, 0x0, 0x0, 32, 0x1}
121
	case AMULH:
122
		return &inst{0x33, 0x1, 0x0, 32, 0x1}
123
	case AMULHSU:
124
		return &inst{0x33, 0x2, 0x0, 32, 0x1}
125
	case AMULHU:
126
		return &inst{0x33, 0x3, 0x0, 32, 0x1}
127
	case ADIV:
128
		return &inst{0x33, 0x4, 0x0, 32, 0x1}
129
	case ADIVU:
130
		return &inst{0x33, 0x5, 0x0, 32, 0x1}
131
	case AREM:
132
		return &inst{0x33, 0x6, 0x0, 32, 0x1}
133
	case AREMU:
134
		return &inst{0x33, 0x7, 0x0, 32, 0x1}
135
	case AMULW:
136
		return &inst{0x3b, 0x0, 0x0, 32, 0x1}
137
	case ADIVW:
138
		return &inst{0x3b, 0x4, 0x0, 32, 0x1}
139
	case ADIVUW:
140
		return &inst{0x3b, 0x5, 0x0, 32, 0x1}
141
	case AREMW:
142
		return &inst{0x3b, 0x6, 0x0, 32, 0x1}
143
	case AREMUW:
144
		return &inst{0x3b, 0x7, 0x0, 32, 0x1}
145
	case AAMOADDW:
146
		return &inst{0x2f, 0x2, 0x0, 0, 0x0}
147
	case AAMOXORW:
148
		return &inst{0x2f, 0x2, 0x0, 512, 0x10}
149
	case AAMOORW:
150
		return &inst{0x2f, 0x2, 0x0, 1024, 0x20}
151
	case AAMOANDW:
152
		return &inst{0x2f, 0x2, 0x0, 1536, 0x30}
153
	case AAMOMINW:
154
		return &inst{0x2f, 0x2, 0x0, -2048, 0x40}
155
	case AAMOMAXW:
156
		return &inst{0x2f, 0x2, 0x0, -1536, 0x50}
157
	case AAMOMINUW:
158
		return &inst{0x2f, 0x2, 0x0, -1024, 0x60}
159
	case AAMOMAXUW:
160
		return &inst{0x2f, 0x2, 0x0, -512, 0x70}
161
	case AAMOSWAPW:
162
		return &inst{0x2f, 0x2, 0x0, 128, 0x4}
163
	case ALRW:
164
		return &inst{0x2f, 0x2, 0x0, 256, 0x8}
165
	case ASCW:
166
		return &inst{0x2f, 0x2, 0x0, 384, 0xc}
167
	case AAMOADDD:
168
		return &inst{0x2f, 0x3, 0x0, 0, 0x0}
169
	case AAMOXORD:
170
		return &inst{0x2f, 0x3, 0x0, 512, 0x10}
171
	case AAMOORD:
172
		return &inst{0x2f, 0x3, 0x0, 1024, 0x20}
173
	case AAMOANDD:
174
		return &inst{0x2f, 0x3, 0x0, 1536, 0x30}
175
	case AAMOMIND:
176
		return &inst{0x2f, 0x3, 0x0, -2048, 0x40}
177
	case AAMOMAXD:
178
		return &inst{0x2f, 0x3, 0x0, -1536, 0x50}
179
	case AAMOMINUD:
180
		return &inst{0x2f, 0x3, 0x0, -1024, 0x60}
181
	case AAMOMAXUD:
182
		return &inst{0x2f, 0x3, 0x0, -512, 0x70}
183
	case AAMOSWAPD:
184
		return &inst{0x2f, 0x3, 0x0, 128, 0x4}
185
	case ALRD:
186
		return &inst{0x2f, 0x3, 0x0, 256, 0x8}
187
	case ASCD:
188
		return &inst{0x2f, 0x3, 0x0, 384, 0xc}
189
	case AECALL:
190
		return &inst{0x73, 0x0, 0x0, 0, 0x0}
191
	case AEBREAK:
192
		return &inst{0x73, 0x0, 0x1, 1, 0x0}
193
	case AURET:
194
		return &inst{0x73, 0x0, 0x2, 2, 0x0}
195
	case ASRET:
196
		return &inst{0x73, 0x0, 0x2, 258, 0x8}
197
	case AMRET:
198
		return &inst{0x73, 0x0, 0x2, 770, 0x18}
199
	case ADRET:
200
		return &inst{0x73, 0x0, 0x12, 1970, 0x3d}
201
	case ASFENCEVMA:
202
		return &inst{0x73, 0x0, 0x0, 288, 0x9}
203
	case AWFI:
204
		return &inst{0x73, 0x0, 0x5, 261, 0x8}
205
	case ACSRRW:
206
		return &inst{0x73, 0x1, 0x0, 0, 0x0}
207
	case ACSRRS:
208
		return &inst{0x73, 0x2, 0x0, 0, 0x0}
209
	case ACSRRC:
210
		return &inst{0x73, 0x3, 0x0, 0, 0x0}
211
	case ACSRRWI:
212
		return &inst{0x73, 0x5, 0x0, 0, 0x0}
213
	case ACSRRSI:
214
		return &inst{0x73, 0x6, 0x0, 0, 0x0}
215
	case ACSRRCI:
216
		return &inst{0x73, 0x7, 0x0, 0, 0x0}
217
	case AHFENCEVVMA:
218
		return &inst{0x73, 0x0, 0x0, 544, 0x11}
219
	case AHFENCEGVMA:
220
		return &inst{0x73, 0x0, 0x0, 1568, 0x31}
221
	case AFADDS:
222
		return &inst{0x53, 0x0, 0x0, 0, 0x0}
223
	case AFSUBS:
224
		return &inst{0x53, 0x0, 0x0, 128, 0x4}
225
	case AFMULS:
226
		return &inst{0x53, 0x0, 0x0, 256, 0x8}
227
	case AFDIVS:
228
		return &inst{0x53, 0x0, 0x0, 384, 0xc}
229
	case AFSGNJS:
230
		return &inst{0x53, 0x0, 0x0, 512, 0x10}
231
	case AFSGNJNS:
232
		return &inst{0x53, 0x1, 0x0, 512, 0x10}
233
	case AFSGNJXS:
234
		return &inst{0x53, 0x2, 0x0, 512, 0x10}
235
	case AFMINS:
236
		return &inst{0x53, 0x0, 0x0, 640, 0x14}
237
	case AFMAXS:
238
		return &inst{0x53, 0x1, 0x0, 640, 0x14}
239
	case AFSQRTS:
240
		return &inst{0x53, 0x0, 0x0, 1408, 0x2c}
241
	case AFADDD:
242
		return &inst{0x53, 0x0, 0x0, 32, 0x1}
243
	case AFSUBD:
244
		return &inst{0x53, 0x0, 0x0, 160, 0x5}
245
	case AFMULD:
246
		return &inst{0x53, 0x0, 0x0, 288, 0x9}
247
	case AFDIVD:
248
		return &inst{0x53, 0x0, 0x0, 416, 0xd}
249
	case AFSGNJD:
250
		return &inst{0x53, 0x0, 0x0, 544, 0x11}
251
	case AFSGNJND:
252
		return &inst{0x53, 0x1, 0x0, 544, 0x11}
253
	case AFSGNJXD:
254
		return &inst{0x53, 0x2, 0x0, 544, 0x11}
255
	case AFMIND:
256
		return &inst{0x53, 0x0, 0x0, 672, 0x15}
257
	case AFMAXD:
258
		return &inst{0x53, 0x1, 0x0, 672, 0x15}
259
	case AFCVTSD:
260
		return &inst{0x53, 0x0, 0x1, 1025, 0x20}
261
	case AFCVTDS:
262
		return &inst{0x53, 0x0, 0x0, 1056, 0x21}
263
	case AFSQRTD:
264
		return &inst{0x53, 0x0, 0x0, 1440, 0x2d}
265
	case AFADDQ:
266
		return &inst{0x53, 0x0, 0x0, 96, 0x3}
267
	case AFSUBQ:
268
		return &inst{0x53, 0x0, 0x0, 224, 0x7}
269
	case AFMULQ:
270
		return &inst{0x53, 0x0, 0x0, 352, 0xb}
271
	case AFDIVQ:
272
		return &inst{0x53, 0x0, 0x0, 480, 0xf}
273
	case AFSGNJQ:
274
		return &inst{0x53, 0x0, 0x0, 608, 0x13}
275
	case AFSGNJNQ:
276
		return &inst{0x53, 0x1, 0x0, 608, 0x13}
277
	case AFSGNJXQ:
278
		return &inst{0x53, 0x2, 0x0, 608, 0x13}
279
	case AFMINQ:
280
		return &inst{0x53, 0x0, 0x0, 736, 0x17}
281
	case AFMAXQ:
282
		return &inst{0x53, 0x1, 0x0, 736, 0x17}
283
	case AFCVTSQ:
284
		return &inst{0x53, 0x0, 0x3, 1027, 0x20}
285
	case AFCVTQS:
286
		return &inst{0x53, 0x0, 0x0, 1120, 0x23}
287
	case AFCVTDQ:
288
		return &inst{0x53, 0x0, 0x3, 1059, 0x21}
289
	case AFCVTQD:
290
		return &inst{0x53, 0x0, 0x1, 1121, 0x23}
291
	case AFSQRTQ:
292
		return &inst{0x53, 0x0, 0x0, 1504, 0x2f}
293
	case AFLES:
294
		return &inst{0x53, 0x0, 0x0, -1536, 0x50}
295
	case AFLTS:
296
		return &inst{0x53, 0x1, 0x0, -1536, 0x50}
297
	case AFEQS:
298
		return &inst{0x53, 0x2, 0x0, -1536, 0x50}
299
	case AFLED:
300
		return &inst{0x53, 0x0, 0x0, -1504, 0x51}
301
	case AFLTD:
302
		return &inst{0x53, 0x1, 0x0, -1504, 0x51}
303
	case AFEQD:
304
		return &inst{0x53, 0x2, 0x0, -1504, 0x51}
305
	case AFLEQ:
306
		return &inst{0x53, 0x0, 0x0, -1440, 0x53}
307
	case AFLTQ:
308
		return &inst{0x53, 0x1, 0x0, -1440, 0x53}
309
	case AFEQQ:
310
		return &inst{0x53, 0x2, 0x0, -1440, 0x53}
311
	case AFCVTWS:
312
		return &inst{0x53, 0x0, 0x0, -1024, 0x60}
313
	case AFCVTWUS:
314
		return &inst{0x53, 0x0, 0x1, -1023, 0x60}
315
	case AFCVTLS:
316
		return &inst{0x53, 0x0, 0x2, -1022, 0x60}
317
	case AFCVTLUS:
318
		return &inst{0x53, 0x0, 0x3, -1021, 0x60}
319
	case AFMVXW:
320
		return &inst{0x53, 0x0, 0x0, -512, 0x70}
321
	case AFCLASSS:
322
		return &inst{0x53, 0x1, 0x0, -512, 0x70}
323
	case AFCVTWD:
324
		return &inst{0x53, 0x0, 0x0, -992, 0x61}
325
	case AFCVTWUD:
326
		return &inst{0x53, 0x0, 0x1, -991, 0x61}
327
	case AFCVTLD:
328
		return &inst{0x53, 0x0, 0x2, -990, 0x61}
329
	case AFCVTLUD:
330
		return &inst{0x53, 0x0, 0x3, -989, 0x61}
331
	case AFMVXD:
332
		return &inst{0x53, 0x0, 0x0, -480, 0x71}
333
	case AFCLASSD:
334
		return &inst{0x53, 0x1, 0x0, -480, 0x71}
335
	case AFCVTWQ:
336
		return &inst{0x53, 0x0, 0x0, -928, 0x63}
337
	case AFCVTWUQ:
338
		return &inst{0x53, 0x0, 0x1, -927, 0x63}
339
	case AFCVTLQ:
340
		return &inst{0x53, 0x0, 0x2, -926, 0x63}
341
	case AFCVTLUQ:
342
		return &inst{0x53, 0x0, 0x3, -925, 0x63}
343
	case AFMVXQ:
344
		return &inst{0x53, 0x0, 0x0, -416, 0x73}
345
	case AFCLASSQ:
346
		return &inst{0x53, 0x1, 0x0, -416, 0x73}
347
	case AFCVTSW:
348
		return &inst{0x53, 0x0, 0x0, -768, 0x68}
349
	case AFCVTSWU:
350
		return &inst{0x53, 0x0, 0x1, -767, 0x68}
351
	case AFCVTSL:
352
		return &inst{0x53, 0x0, 0x2, -766, 0x68}
353
	case AFCVTSLU:
354
		return &inst{0x53, 0x0, 0x3, -765, 0x68}
355
	case AFMVWX:
356
		return &inst{0x53, 0x0, 0x0, -256, 0x78}
357
	case AFCVTDW:
358
		return &inst{0x53, 0x0, 0x0, -736, 0x69}
359
	case AFCVTDWU:
360
		return &inst{0x53, 0x0, 0x1, -735, 0x69}
361
	case AFCVTDL:
362
		return &inst{0x53, 0x0, 0x2, -734, 0x69}
363
	case AFCVTDLU:
364
		return &inst{0x53, 0x0, 0x3, -733, 0x69}
365
	case AFMVDX:
366
		return &inst{0x53, 0x0, 0x0, -224, 0x79}
367
	case AFCVTQW:
368
		return &inst{0x53, 0x0, 0x0, -672, 0x6b}
369
	case AFCVTQWU:
370
		return &inst{0x53, 0x0, 0x1, -671, 0x6b}
371
	case AFCVTQL:
372
		return &inst{0x53, 0x0, 0x2, -670, 0x6b}
373
	case AFCVTQLU:
374
		return &inst{0x53, 0x0, 0x3, -669, 0x6b}
375
	case AFMVQX:
376
		return &inst{0x53, 0x0, 0x0, -160, 0x7b}
377
	case AFLW:
378
		return &inst{0x7, 0x2, 0x0, 0, 0x0}
379
	case AFLD:
380
		return &inst{0x7, 0x3, 0x0, 0, 0x0}
381
	case AFLQ:
382
		return &inst{0x7, 0x4, 0x0, 0, 0x0}
383
	case AFSW:
384
		return &inst{0x27, 0x2, 0x0, 0, 0x0}
385
	case AFSD:
386
		return &inst{0x27, 0x3, 0x0, 0, 0x0}
387
	case AFSQ:
388
		return &inst{0x27, 0x4, 0x0, 0, 0x0}
389
	case AFMADDS:
390
		return &inst{0x43, 0x0, 0x0, 0, 0x0}
391
	case AFMSUBS:
392
		return &inst{0x47, 0x0, 0x0, 0, 0x0}
393
	case AFNMSUBS:
394
		return &inst{0x4b, 0x0, 0x0, 0, 0x0}
395
	case AFNMADDS:
396
		return &inst{0x4f, 0x0, 0x0, 0, 0x0}
397
	case AFMADDD:
398
		return &inst{0x43, 0x0, 0x0, 32, 0x1}
399
	case AFMSUBD:
400
		return &inst{0x47, 0x0, 0x0, 32, 0x1}
401
	case AFNMSUBD:
402
		return &inst{0x4b, 0x0, 0x0, 32, 0x1}
403
	case AFNMADDD:
404
		return &inst{0x4f, 0x0, 0x0, 32, 0x1}
405
	case AFMADDQ:
406
		return &inst{0x43, 0x0, 0x0, 96, 0x3}
407
	case AFMSUBQ:
408
		return &inst{0x47, 0x0, 0x0, 96, 0x3}
409
	case AFNMSUBQ:
410
		return &inst{0x4b, 0x0, 0x0, 96, 0x3}
411
	case AFNMADDQ:
412
		return &inst{0x4f, 0x0, 0x0, 96, 0x3}
413
	case ASLLIRV32:
414
		return &inst{0x13, 0x1, 0x0, 0, 0x0}
415
	case ASRLIRV32:
416
		return &inst{0x13, 0x5, 0x0, 0, 0x0}
417
	case ASRAIRV32:
418
		return &inst{0x13, 0x5, 0x0, 1024, 0x20}
419
	case AFRFLAGS:
420
		return &inst{0x73, 0x2, 0x1, 1, 0x0}
421
	case AFSFLAGS:
422
		return &inst{0x73, 0x1, 0x1, 1, 0x0}
423
	case AFSFLAGSI:
424
		return &inst{0x73, 0x5, 0x1, 1, 0x0}
425
	case AFRRM:
426
		return &inst{0x73, 0x2, 0x2, 2, 0x0}
427
	case AFSRM:
428
		return &inst{0x73, 0x1, 0x2, 2, 0x0}
429
	case AFSRMI:
430
		return &inst{0x73, 0x5, 0x2, 2, 0x0}
431
	case AFSCSR:
432
		return &inst{0x73, 0x1, 0x3, 3, 0x0}
433
	case AFRCSR:
434
		return &inst{0x73, 0x2, 0x3, 3, 0x0}
435
	case ARDCYCLE:
436
		return &inst{0x73, 0x2, 0x0, -1024, 0x60}
437
	case ARDTIME:
438
		return &inst{0x73, 0x2, 0x1, -1023, 0x60}
439
	case ARDINSTRET:
440
		return &inst{0x73, 0x2, 0x2, -1022, 0x60}
441
	case ARDCYCLEH:
442
		return &inst{0x73, 0x2, 0x0, -896, 0x64}
443
	case ARDTIMEH:
444
		return &inst{0x73, 0x2, 0x1, -895, 0x64}
445
	case ARDINSTRETH:
446
		return &inst{0x73, 0x2, 0x2, -894, 0x64}
447
	case ASCALL:
448
		return &inst{0x73, 0x0, 0x0, 0, 0x0}
449
	case ASBREAK:
450
		return &inst{0x73, 0x0, 0x1, 1, 0x0}
451
	case AFMVXS:
452
		return &inst{0x53, 0x0, 0x0, -512, 0x70}
453
	case AFMVSX:
454
		return &inst{0x53, 0x0, 0x0, -256, 0x78}
455
	case AFENCETSO:
456
		return &inst{0xf, 0x0, 0x13, -1997, 0x41}
457
	}
458
	return nil
459
}
460

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.