Coverage Report

Created: 2026-01-12 07:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/capstonenext/arch/RISCV/RISCVGenAsmWriter.inc
Line
Count
Source
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Assembly Writer Source Fragment                                            *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
/* Capstone Disassembly Engine */
10
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
11
12
#include <stdio.h>  // debug
13
#include <capstone/platform.h>
14
#include <assert.h>
15
16
17
/// printInstruction - This method is automatically generated by tablegen
18
/// from the instruction set description.
19
static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
20
71.9k
{
21
71.9k
#ifndef CAPSTONE_DIET
22
71.9k
  static const char AsmStrs[] = {
23
71.9k
  /* 0 */ 'l', 'l', 'a', 9, 0,
24
71.9k
  /* 5 */ 's', 'f', 'e', 'n', 'c', 'e', '.', 'v', 'm', 'a', 9, 0,
25
71.9k
  /* 17 */ 's', 'r', 'a', 9, 0,
26
71.9k
  /* 22 */ 'l', 'b', 9, 0,
27
71.9k
  /* 26 */ 's', 'b', 9, 0,
28
71.9k
  /* 30 */ 'c', '.', 's', 'u', 'b', 9, 0,
29
71.9k
  /* 37 */ 'a', 'u', 'i', 'p', 'c', 9, 0,
30
71.9k
  /* 44 */ 'c', 's', 'r', 'r', 'c', 9, 0,
31
71.9k
  /* 51 */ 'f', 's', 'u', 'b', '.', 'd', 9, 0,
32
71.9k
  /* 59 */ 'f', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
33
71.9k
  /* 68 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
34
71.9k
  /* 78 */ 's', 'c', '.', 'd', 9, 0,
35
71.9k
  /* 84 */ 'f', 'a', 'd', 'd', '.', 'd', 9, 0,
36
71.9k
  /* 92 */ 'f', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
37
71.9k
  /* 101 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
38
71.9k
  /* 111 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', 9, 0,
39
71.9k
  /* 121 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', 9, 0,
40
71.9k
  /* 131 */ 'f', 'l', 'e', '.', 'd', 9, 0,
41
71.9k
  /* 138 */ 'f', 's', 'g', 'n', 'j', '.', 'd', 9, 0,
42
71.9k
  /* 147 */ 'f', 'c', 'v', 't', '.', 'l', '.', 'd', 9, 0,
43
71.9k
  /* 157 */ 'f', 'm', 'u', 'l', '.', 'd', 9, 0,
44
71.9k
  /* 165 */ 'f', 'm', 'i', 'n', '.', 'd', 9, 0,
45
71.9k
  /* 173 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', 9, 0,
46
71.9k
  /* 183 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 'd', 9, 0,
47
71.9k
  /* 193 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', 9, 0,
48
71.9k
  /* 204 */ 'f', 'e', 'q', '.', 'd', 9, 0,
49
71.9k
  /* 211 */ 'l', 'r', '.', 'd', 9, 0,
50
71.9k
  /* 217 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', 9, 0,
51
71.9k
  /* 226 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', 9, 0,
52
71.9k
  /* 236 */ 'f', 'c', 'v', 't', '.', 's', '.', 'd', 9, 0,
53
71.9k
  /* 246 */ 'f', 'c', 'l', 'a', 's', 's', '.', 'd', 9, 0,
54
71.9k
  /* 256 */ 'f', 'l', 't', '.', 'd', 9, 0,
55
71.9k
  /* 263 */ 'f', 's', 'q', 'r', 't', '.', 'd', 9, 0,
56
71.9k
  /* 272 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 'd', 9, 0,
57
71.9k
  /* 283 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', 9, 0,
58
71.9k
  /* 294 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 'd', 9, 0,
59
71.9k
  /* 305 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', 9, 0,
60
71.9k
  /* 316 */ 'f', 'd', 'i', 'v', '.', 'd', 9, 0,
61
71.9k
  /* 324 */ 'f', 'c', 'v', 't', '.', 'w', '.', 'd', 9, 0,
62
71.9k
  /* 334 */ 'f', 'm', 'v', '.', 'x', '.', 'd', 9, 0,
63
71.9k
  /* 343 */ 'f', 'm', 'a', 'x', '.', 'd', 9, 0,
64
71.9k
  /* 351 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', 9, 0,
65
71.9k
  /* 361 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 'd', 9, 0,
66
71.9k
  /* 371 */ 'c', '.', 'a', 'd', 'd', 9, 0,
67
71.9k
  /* 378 */ 'c', '.', 'l', 'd', 9, 0,
68
71.9k
  /* 384 */ 'c', '.', 'f', 'l', 'd', 9, 0,
69
71.9k
  /* 391 */ 'c', '.', 'a', 'n', 'd', 9, 0,
70
71.9k
  /* 398 */ 'c', '.', 's', 'd', 9, 0,
71
71.9k
  /* 404 */ 'c', '.', 'f', 's', 'd', 9, 0,
72
71.9k
  /* 411 */ 'f', 'e', 'n', 'c', 'e', 9, 0,
73
71.9k
  /* 418 */ 'b', 'g', 'e', 9, 0,
74
71.9k
  /* 423 */ 'b', 'n', 'e', 9, 0,
75
71.9k
  /* 428 */ 'm', 'u', 'l', 'h', 9, 0,
76
71.9k
  /* 434 */ 's', 'h', 9, 0,
77
71.9k
  /* 438 */ 'f', 'e', 'n', 'c', 'e', '.', 'i', 9, 0,
78
71.9k
  /* 447 */ 'c', '.', 's', 'r', 'a', 'i', 9, 0,
79
71.9k
  /* 455 */ 'c', 's', 'r', 'r', 'c', 'i', 9, 0,
80
71.9k
  /* 463 */ 'c', '.', 'a', 'd', 'd', 'i', 9, 0,
81
71.9k
  /* 471 */ 'c', '.', 'a', 'n', 'd', 'i', 9, 0,
82
71.9k
  /* 479 */ 'w', 'f', 'i', 9, 0,
83
71.9k
  /* 484 */ 'c', '.', 'l', 'i', 9, 0,
84
71.9k
  /* 490 */ 'c', '.', 's', 'l', 'l', 'i', 9, 0,
85
71.9k
  /* 498 */ 'c', '.', 's', 'r', 'l', 'i', 9, 0,
86
71.9k
  /* 506 */ 'x', 'o', 'r', 'i', 9, 0,
87
71.9k
  /* 512 */ 'c', 's', 'r', 'r', 's', 'i', 9, 0,
88
71.9k
  /* 520 */ 's', 'l', 't', 'i', 9, 0,
89
71.9k
  /* 526 */ 'c', '.', 'l', 'u', 'i', 9, 0,
90
71.9k
  /* 533 */ 'c', 's', 'r', 'r', 'w', 'i', 9, 0,
91
71.9k
  /* 541 */ 'c', '.', 'j', 9, 0,
92
71.9k
  /* 546 */ 'c', '.', 'e', 'b', 'r', 'e', 'a', 'k', 9, 0,
93
71.9k
  /* 556 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 9, 0,
94
71.9k
  /* 566 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 9, 0,
95
71.9k
  /* 576 */ 'c', '.', 'j', 'a', 'l', 9, 0,
96
71.9k
  /* 583 */ 't', 'a', 'i', 'l', 9, 0,
97
71.9k
  /* 589 */ 'e', 'c', 'a', 'l', 'l', 9, 0,
98
71.9k
  /* 596 */ 's', 'l', 'l', 9, 0,
99
71.9k
  /* 601 */ 's', 'c', '.', 'd', '.', 'r', 'l', 9, 0,
100
71.9k
  /* 610 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
101
71.9k
  /* 623 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
102
71.9k
  /* 636 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'r', 'l', 9, 0,
103
71.9k
  /* 649 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'r', 'l', 9, 0,
104
71.9k
  /* 663 */ 'l', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
105
71.9k
  /* 672 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
106
71.9k
  /* 684 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
107
71.9k
  /* 697 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
108
71.9k
  /* 711 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
109
71.9k
  /* 725 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'r', 'l', 9, 0,
110
71.9k
  /* 738 */ 's', 'c', '.', 'w', '.', 'r', 'l', 9, 0,
111
71.9k
  /* 747 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
112
71.9k
  /* 760 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
113
71.9k
  /* 773 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'r', 'l', 9, 0,
114
71.9k
  /* 786 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'r', 'l', 9, 0,
115
71.9k
  /* 800 */ 'l', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
116
71.9k
  /* 809 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
117
71.9k
  /* 821 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
118
71.9k
  /* 834 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
119
71.9k
  /* 848 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
120
71.9k
  /* 862 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'r', 'l', 9, 0,
121
71.9k
  /* 875 */ 's', 'c', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
122
71.9k
  /* 886 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
123
71.9k
  /* 901 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
124
71.9k
  /* 916 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
125
71.9k
  /* 931 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
126
71.9k
  /* 947 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
127
71.9k
  /* 958 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
128
71.9k
  /* 972 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
129
71.9k
  /* 987 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
130
71.9k
  /* 1003 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
131
71.9k
  /* 1019 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
132
71.9k
  /* 1034 */ 's', 'c', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
133
71.9k
  /* 1045 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
134
71.9k
  /* 1060 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
135
71.9k
  /* 1075 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
136
71.9k
  /* 1090 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
137
71.9k
  /* 1106 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
138
71.9k
  /* 1117 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
139
71.9k
  /* 1131 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
140
71.9k
  /* 1146 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
141
71.9k
  /* 1162 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
142
71.9k
  /* 1178 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
143
71.9k
  /* 1193 */ 's', 'r', 'l', 9, 0,
144
71.9k
  /* 1198 */ 'm', 'u', 'l', 9, 0,
145
71.9k
  /* 1203 */ 'r', 'e', 'm', 9, 0,
146
71.9k
  /* 1208 */ 'c', '.', 'a', 'd', 'd', 'i', '4', 's', 'p', 'n', 9, 0,
147
71.9k
  /* 1220 */ 'f', 'e', 'n', 'c', 'e', '.', 't', 's', 'o', 9, 0,
148
71.9k
  /* 1231 */ 'c', '.', 'u', 'n', 'i', 'm', 'p', 9, 0,
149
71.9k
  /* 1240 */ 'c', '.', 'n', 'o', 'p', 9, 0,
150
71.9k
  /* 1247 */ 'c', '.', 'a', 'd', 'd', 'i', '1', '6', 's', 'p', 9, 0,
151
71.9k
  /* 1259 */ 'c', '.', 'l', 'd', 's', 'p', 9, 0,
152
71.9k
  /* 1267 */ 'c', '.', 'f', 'l', 'd', 's', 'p', 9, 0,
153
71.9k
  /* 1276 */ 'c', '.', 's', 'd', 's', 'p', 9, 0,
154
71.9k
  /* 1284 */ 'c', '.', 'f', 's', 'd', 's', 'p', 9, 0,
155
71.9k
  /* 1293 */ 'c', '.', 'l', 'w', 's', 'p', 9, 0,
156
71.9k
  /* 1301 */ 'c', '.', 'f', 'l', 'w', 's', 'p', 9, 0,
157
71.9k
  /* 1310 */ 'c', '.', 's', 'w', 's', 'p', 9, 0,
158
71.9k
  /* 1318 */ 'c', '.', 'f', 's', 'w', 's', 'p', 9, 0,
159
71.9k
  /* 1327 */ 's', 'c', '.', 'd', '.', 'a', 'q', 9, 0,
160
71.9k
  /* 1336 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
161
71.9k
  /* 1349 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
162
71.9k
  /* 1362 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 9, 0,
163
71.9k
  /* 1375 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 9, 0,
164
71.9k
  /* 1389 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
165
71.9k
  /* 1398 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
166
71.9k
  /* 1410 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
167
71.9k
  /* 1423 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
168
71.9k
  /* 1437 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
169
71.9k
  /* 1451 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 9, 0,
170
71.9k
  /* 1464 */ 's', 'c', '.', 'w', '.', 'a', 'q', 9, 0,
171
71.9k
  /* 1473 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
172
71.9k
  /* 1486 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
173
71.9k
  /* 1499 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 9, 0,
174
71.9k
  /* 1512 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 9, 0,
175
71.9k
  /* 1526 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
176
71.9k
  /* 1535 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
177
71.9k
  /* 1547 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
178
71.9k
  /* 1560 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
179
71.9k
  /* 1574 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
180
71.9k
  /* 1588 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 9, 0,
181
71.9k
  /* 1601 */ 'b', 'e', 'q', 9, 0,
182
71.9k
  /* 1606 */ 'c', '.', 'j', 'r', 9, 0,
183
71.9k
  /* 1612 */ 'c', '.', 'j', 'a', 'l', 'r', 9, 0,
184
71.9k
  /* 1620 */ 'c', '.', 'o', 'r', 9, 0,
185
71.9k
  /* 1626 */ 'c', '.', 'x', 'o', 'r', 9, 0,
186
71.9k
  /* 1633 */ 'f', 's', 'u', 'b', '.', 's', 9, 0,
187
71.9k
  /* 1641 */ 'f', 'm', 's', 'u', 'b', '.', 's', 9, 0,
188
71.9k
  /* 1650 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 's', 9, 0,
189
71.9k
  /* 1660 */ 'f', 'c', 'v', 't', '.', 'd', '.', 's', 9, 0,
190
71.9k
  /* 1670 */ 'f', 'a', 'd', 'd', '.', 's', 9, 0,
191
71.9k
  /* 1678 */ 'f', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
192
71.9k
  /* 1687 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
193
71.9k
  /* 1697 */ 'f', 'l', 'e', '.', 's', 9, 0,
194
71.9k
  /* 1704 */ 'f', 's', 'g', 'n', 'j', '.', 's', 9, 0,
195
71.9k
  /* 1713 */ 'f', 'c', 'v', 't', '.', 'l', '.', 's', 9, 0,
196
71.9k
  /* 1723 */ 'f', 'm', 'u', 'l', '.', 's', 9, 0,
197
71.9k
  /* 1731 */ 'f', 'm', 'i', 'n', '.', 's', 9, 0,
198
71.9k
  /* 1739 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 's', 9, 0,
199
71.9k
  /* 1749 */ 'f', 'e', 'q', '.', 's', 9, 0,
200
71.9k
  /* 1756 */ 'f', 'c', 'l', 'a', 's', 's', '.', 's', 9, 0,
201
71.9k
  /* 1766 */ 'f', 'l', 't', '.', 's', 9, 0,
202
71.9k
  /* 1773 */ 'f', 's', 'q', 'r', 't', '.', 's', 9, 0,
203
71.9k
  /* 1782 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 's', 9, 0,
204
71.9k
  /* 1793 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 's', 9, 0,
205
71.9k
  /* 1804 */ 'f', 'd', 'i', 'v', '.', 's', 9, 0,
206
71.9k
  /* 1812 */ 'f', 'c', 'v', 't', '.', 'w', '.', 's', 9, 0,
207
71.9k
  /* 1822 */ 'f', 'm', 'a', 'x', '.', 's', 9, 0,
208
71.9k
  /* 1830 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 's', 9, 0,
209
71.9k
  /* 1840 */ 'c', 's', 'r', 'r', 's', 9, 0,
210
71.9k
  /* 1847 */ 'm', 'r', 'e', 't', 9, 0,
211
71.9k
  /* 1853 */ 's', 'r', 'e', 't', 9, 0,
212
71.9k
  /* 1859 */ 'u', 'r', 'e', 't', 9, 0,
213
71.9k
  /* 1865 */ 'b', 'l', 't', 9, 0,
214
71.9k
  /* 1870 */ 's', 'l', 't', 9, 0,
215
71.9k
  /* 1875 */ 'l', 'b', 'u', 9, 0,
216
71.9k
  /* 1880 */ 'b', 'g', 'e', 'u', 9, 0,
217
71.9k
  /* 1886 */ 'm', 'u', 'l', 'h', 'u', 9, 0,
218
71.9k
  /* 1893 */ 's', 'l', 't', 'i', 'u', 9, 0,
219
71.9k
  /* 1900 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 'u', 9, 0,
220
71.9k
  /* 1911 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 'u', 9, 0,
221
71.9k
  /* 1922 */ 'r', 'e', 'm', 'u', 9, 0,
222
71.9k
  /* 1928 */ 'm', 'u', 'l', 'h', 's', 'u', 9, 0,
223
71.9k
  /* 1936 */ 'b', 'l', 't', 'u', 9, 0,
224
71.9k
  /* 1942 */ 's', 'l', 't', 'u', 9, 0,
225
71.9k
  /* 1948 */ 'd', 'i', 'v', 'u', 9, 0,
226
71.9k
  /* 1954 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 'u', 9, 0,
227
71.9k
  /* 1965 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 'u', 9, 0,
228
71.9k
  /* 1976 */ 'l', 'w', 'u', 9, 0,
229
71.9k
  /* 1981 */ 'd', 'i', 'v', 9, 0,
230
71.9k
  /* 1986 */ 'c', '.', 'm', 'v', 9, 0,
231
71.9k
  /* 1992 */ 's', 'c', '.', 'w', 9, 0,
232
71.9k
  /* 1998 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 9, 0,
233
71.9k
  /* 2008 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', 9, 0,
234
71.9k
  /* 2018 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', 9, 0,
235
71.9k
  /* 2028 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', 9, 0,
236
71.9k
  /* 2038 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', 9, 0,
237
71.9k
  /* 2049 */ 'l', 'r', '.', 'w', 9, 0,
238
71.9k
  /* 2055 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', 9, 0,
239
71.9k
  /* 2064 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', 9, 0,
240
71.9k
  /* 2074 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 9, 0,
241
71.9k
  /* 2084 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', 9, 0,
242
71.9k
  /* 2095 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', 9, 0,
243
71.9k
  /* 2106 */ 'f', 'm', 'v', '.', 'x', '.', 'w', 9, 0,
244
71.9k
  /* 2115 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', 9, 0,
245
71.9k
  /* 2125 */ 's', 'r', 'a', 'w', 9, 0,
246
71.9k
  /* 2131 */ 'c', '.', 's', 'u', 'b', 'w', 9, 0,
247
71.9k
  /* 2139 */ 'c', '.', 'a', 'd', 'd', 'w', 9, 0,
248
71.9k
  /* 2147 */ 's', 'r', 'a', 'i', 'w', 9, 0,
249
71.9k
  /* 2154 */ 'c', '.', 'a', 'd', 'd', 'i', 'w', 9, 0,
250
71.9k
  /* 2163 */ 's', 'l', 'l', 'i', 'w', 9, 0,
251
71.9k
  /* 2170 */ 's', 'r', 'l', 'i', 'w', 9, 0,
252
71.9k
  /* 2177 */ 'c', '.', 'l', 'w', 9, 0,
253
71.9k
  /* 2183 */ 'c', '.', 'f', 'l', 'w', 9, 0,
254
71.9k
  /* 2190 */ 's', 'l', 'l', 'w', 9, 0,
255
71.9k
  /* 2196 */ 's', 'r', 'l', 'w', 9, 0,
256
71.9k
  /* 2202 */ 'm', 'u', 'l', 'w', 9, 0,
257
71.9k
  /* 2208 */ 'r', 'e', 'm', 'w', 9, 0,
258
71.9k
  /* 2214 */ 'c', 's', 'r', 'r', 'w', 9, 0,
259
71.9k
  /* 2221 */ 'c', '.', 's', 'w', 9, 0,
260
71.9k
  /* 2227 */ 'c', '.', 'f', 's', 'w', 9, 0,
261
71.9k
  /* 2234 */ 'r', 'e', 'm', 'u', 'w', 9, 0,
262
71.9k
  /* 2241 */ 'd', 'i', 'v', 'u', 'w', 9, 0,
263
71.9k
  /* 2248 */ 'd', 'i', 'v', 'w', 9, 0,
264
71.9k
  /* 2254 */ 'f', 'm', 'v', '.', 'd', '.', 'x', 9, 0,
265
71.9k
  /* 2263 */ 'f', 'm', 'v', '.', 'w', '.', 'x', 9, 0,
266
71.9k
  /* 2272 */ 'c', '.', 'b', 'n', 'e', 'z', 9, 0,
267
71.9k
  /* 2280 */ 'c', '.', 'b', 'e', 'q', 'z', 9, 0,
268
71.9k
  /* 2288 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
269
71.9k
  /* 2319 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
270
71.9k
  /* 2343 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
271
71.9k
  /* 2368 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
272
71.9k
  /* 2391 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
273
71.9k
  /* 2414 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
274
71.9k
  /* 2436 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
275
71.9k
  /* 2449 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
276
71.9k
  /* 2456 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
277
71.9k
  /* 2466 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
278
71.9k
  /* 2476 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
279
71.9k
  /* 2491 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
280
71.9k
  };
281
71.9k
#endif
282
283
71.9k
  static const uint16_t OpInfo0[] = {
284
71.9k
    0U, // PHI
285
71.9k
    0U, // INLINEASM
286
71.9k
    0U, // INLINEASM_BR
287
71.9k
    0U, // CFI_INSTRUCTION
288
71.9k
    0U, // EH_LABEL
289
71.9k
    0U, // GC_LABEL
290
71.9k
    0U, // ANNOTATION_LABEL
291
71.9k
    0U, // KILL
292
71.9k
    0U, // EXTRACT_SUBREG
293
71.9k
    0U, // INSERT_SUBREG
294
71.9k
    0U, // IMPLICIT_DEF
295
71.9k
    0U, // SUBREG_TO_REG
296
71.9k
    0U, // COPY_TO_REGCLASS
297
71.9k
    2457U,  // DBG_VALUE
298
71.9k
    2467U,  // DBG_LABEL
299
71.9k
    0U, // REG_SEQUENCE
300
71.9k
    0U, // COPY
301
71.9k
    2450U,  // BUNDLE
302
71.9k
    2477U,  // LIFETIME_START
303
71.9k
    2437U,  // LIFETIME_END
304
71.9k
    0U, // STACKMAP
305
71.9k
    2492U,  // FENTRY_CALL
306
71.9k
    0U, // PATCHPOINT
307
71.9k
    0U, // LOAD_STACK_GUARD
308
71.9k
    0U, // STATEPOINT
309
71.9k
    0U, // LOCAL_ESCAPE
310
71.9k
    0U, // FAULTING_OP
311
71.9k
    0U, // PATCHABLE_OP
312
71.9k
    2369U,  // PATCHABLE_FUNCTION_ENTER
313
71.9k
    2289U,  // PATCHABLE_RET
314
71.9k
    2415U,  // PATCHABLE_FUNCTION_EXIT
315
71.9k
    2392U,  // PATCHABLE_TAIL_CALL
316
71.9k
    2344U,  // PATCHABLE_EVENT_CALL
317
71.9k
    2320U,  // PATCHABLE_TYPED_EVENT_CALL
318
71.9k
    0U, // ICALL_BRANCH_FUNNEL
319
71.9k
    0U, // G_ADD
320
71.9k
    0U, // G_SUB
321
71.9k
    0U, // G_MUL
322
71.9k
    0U, // G_SDIV
323
71.9k
    0U, // G_UDIV
324
71.9k
    0U, // G_SREM
325
71.9k
    0U, // G_UREM
326
71.9k
    0U, // G_AND
327
71.9k
    0U, // G_OR
328
71.9k
    0U, // G_XOR
329
71.9k
    0U, // G_IMPLICIT_DEF
330
71.9k
    0U, // G_PHI
331
71.9k
    0U, // G_FRAME_INDEX
332
71.9k
    0U, // G_GLOBAL_VALUE
333
71.9k
    0U, // G_EXTRACT
334
71.9k
    0U, // G_UNMERGE_VALUES
335
71.9k
    0U, // G_INSERT
336
71.9k
    0U, // G_MERGE_VALUES
337
71.9k
    0U, // G_BUILD_VECTOR
338
71.9k
    0U, // G_BUILD_VECTOR_TRUNC
339
71.9k
    0U, // G_CONCAT_VECTORS
340
71.9k
    0U, // G_PTRTOINT
341
71.9k
    0U, // G_INTTOPTR
342
71.9k
    0U, // G_BITCAST
343
71.9k
    0U, // G_INTRINSIC_TRUNC
344
71.9k
    0U, // G_INTRINSIC_ROUND
345
71.9k
    0U, // G_LOAD
346
71.9k
    0U, // G_SEXTLOAD
347
71.9k
    0U, // G_ZEXTLOAD
348
71.9k
    0U, // G_STORE
349
71.9k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
350
71.9k
    0U, // G_ATOMIC_CMPXCHG
351
71.9k
    0U, // G_ATOMICRMW_XCHG
352
71.9k
    0U, // G_ATOMICRMW_ADD
353
71.9k
    0U, // G_ATOMICRMW_SUB
354
71.9k
    0U, // G_ATOMICRMW_AND
355
71.9k
    0U, // G_ATOMICRMW_NAND
356
71.9k
    0U, // G_ATOMICRMW_OR
357
71.9k
    0U, // G_ATOMICRMW_XOR
358
71.9k
    0U, // G_ATOMICRMW_MAX
359
71.9k
    0U, // G_ATOMICRMW_MIN
360
71.9k
    0U, // G_ATOMICRMW_UMAX
361
71.9k
    0U, // G_ATOMICRMW_UMIN
362
71.9k
    0U, // G_BRCOND
363
71.9k
    0U, // G_BRINDIRECT
364
71.9k
    0U, // G_INTRINSIC
365
71.9k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
366
71.9k
    0U, // G_ANYEXT
367
71.9k
    0U, // G_TRUNC
368
71.9k
    0U, // G_CONSTANT
369
71.9k
    0U, // G_FCONSTANT
370
71.9k
    0U, // G_VASTART
371
71.9k
    0U, // G_VAARG
372
71.9k
    0U, // G_SEXT
373
71.9k
    0U, // G_ZEXT
374
71.9k
    0U, // G_SHL
375
71.9k
    0U, // G_LSHR
376
71.9k
    0U, // G_ASHR
377
71.9k
    0U, // G_ICMP
378
71.9k
    0U, // G_FCMP
379
71.9k
    0U, // G_SELECT
380
71.9k
    0U, // G_UADDO
381
71.9k
    0U, // G_UADDE
382
71.9k
    0U, // G_USUBO
383
71.9k
    0U, // G_USUBE
384
71.9k
    0U, // G_SADDO
385
71.9k
    0U, // G_SADDE
386
71.9k
    0U, // G_SSUBO
387
71.9k
    0U, // G_SSUBE
388
71.9k
    0U, // G_UMULO
389
71.9k
    0U, // G_SMULO
390
71.9k
    0U, // G_UMULH
391
71.9k
    0U, // G_SMULH
392
71.9k
    0U, // G_FADD
393
71.9k
    0U, // G_FSUB
394
71.9k
    0U, // G_FMUL
395
71.9k
    0U, // G_FMA
396
71.9k
    0U, // G_FDIV
397
71.9k
    0U, // G_FREM
398
71.9k
    0U, // G_FPOW
399
71.9k
    0U, // G_FEXP
400
71.9k
    0U, // G_FEXP2
401
71.9k
    0U, // G_FLOG
402
71.9k
    0U, // G_FLOG2
403
71.9k
    0U, // G_FLOG10
404
71.9k
    0U, // G_FNEG
405
71.9k
    0U, // G_FPEXT
406
71.9k
    0U, // G_FPTRUNC
407
71.9k
    0U, // G_FPTOSI
408
71.9k
    0U, // G_FPTOUI
409
71.9k
    0U, // G_SITOFP
410
71.9k
    0U, // G_UITOFP
411
71.9k
    0U, // G_FABS
412
71.9k
    0U, // G_FCANONICALIZE
413
71.9k
    0U, // G_GEP
414
71.9k
    0U, // G_PTR_MASK
415
71.9k
    0U, // G_BR
416
71.9k
    0U, // G_INSERT_VECTOR_ELT
417
71.9k
    0U, // G_EXTRACT_VECTOR_ELT
418
71.9k
    0U, // G_SHUFFLE_VECTOR
419
71.9k
    0U, // G_CTTZ
420
71.9k
    0U, // G_CTTZ_ZERO_UNDEF
421
71.9k
    0U, // G_CTLZ
422
71.9k
    0U, // G_CTLZ_ZERO_UNDEF
423
71.9k
    0U, // G_CTPOP
424
71.9k
    0U, // G_BSWAP
425
71.9k
    0U, // G_FCEIL
426
71.9k
    0U, // G_FCOS
427
71.9k
    0U, // G_FSIN
428
71.9k
    0U, // G_FSQRT
429
71.9k
    0U, // G_FFLOOR
430
71.9k
    0U, // G_ADDRSPACE_CAST
431
71.9k
    0U, // G_BLOCK_ADDR
432
71.9k
    4U, // ADJCALLSTACKDOWN
433
71.9k
    4U, // ADJCALLSTACKUP
434
71.9k
    4U, // BuildPairF64Pseudo
435
71.9k
    4U, // PseudoAtomicLoadNand32
436
71.9k
    4U, // PseudoAtomicLoadNand64
437
71.9k
    4U, // PseudoBR
438
71.9k
    4U, // PseudoBRIND
439
71.9k
    4687U,  // PseudoCALL
440
71.9k
    4U, // PseudoCALLIndirect
441
71.9k
    4U, // PseudoCmpXchg32
442
71.9k
    4U, // PseudoCmpXchg64
443
71.9k
    20482U, // PseudoLA
444
71.9k
    20967U, // PseudoLI
445
71.9k
    20481U, // PseudoLLA
446
71.9k
    4U, // PseudoMaskedAtomicLoadAdd32
447
71.9k
    4U, // PseudoMaskedAtomicLoadMax32
448
71.9k
    4U, // PseudoMaskedAtomicLoadMin32
449
71.9k
    4U, // PseudoMaskedAtomicLoadNand32
450
71.9k
    4U, // PseudoMaskedAtomicLoadSub32
451
71.9k
    4U, // PseudoMaskedAtomicLoadUMax32
452
71.9k
    4U, // PseudoMaskedAtomicLoadUMin32
453
71.9k
    4U, // PseudoMaskedAtomicSwap32
454
71.9k
    4U, // PseudoMaskedCmpXchg32
455
71.9k
    4U, // PseudoRET
456
71.9k
    4680U,  // PseudoTAIL
457
71.9k
    4U, // PseudoTAILIndirect
458
71.9k
    4U, // Select_FPR32_Using_CC_GPR
459
71.9k
    4U, // Select_FPR64_Using_CC_GPR
460
71.9k
    4U, // Select_GPR_Using_CC_GPR
461
71.9k
    4U, // SplitF64Pseudo
462
71.9k
    20854U, // ADD
463
71.9k
    20946U, // ADDI
464
71.9k
    22637U, // ADDIW
465
71.9k
    22622U, // ADDW
466
71.9k
    20592U, // AMOADD_D
467
71.9k
    21817U, // AMOADD_D_AQ
468
71.9k
    21367U, // AMOADD_D_AQ_RL
469
71.9k
    21091U, // AMOADD_D_RL
470
71.9k
    22489U, // AMOADD_W
471
71.9k
    21954U, // AMOADD_W_AQ
472
71.9k
    21526U, // AMOADD_W_AQ_RL
473
71.9k
    21228U, // AMOADD_W_RL
474
71.9k
    20602U, // AMOAND_D
475
71.9k
    21830U, // AMOAND_D_AQ
476
71.9k
    21382U, // AMOAND_D_AQ_RL
477
71.9k
    21104U, // AMOAND_D_RL
478
71.9k
    22499U, // AMOAND_W
479
71.9k
    21967U, // AMOAND_W_AQ
480
71.9k
    21541U, // AMOAND_W_AQ_RL
481
71.9k
    21241U, // AMOAND_W_RL
482
71.9k
    20786U, // AMOMAXU_D
483
71.9k
    21918U, // AMOMAXU_D_AQ
484
71.9k
    21484U, // AMOMAXU_D_AQ_RL
485
71.9k
    21192U, // AMOMAXU_D_RL
486
71.9k
    22576U, // AMOMAXU_W
487
71.9k
    22055U, // AMOMAXU_W_AQ
488
71.9k
    21643U, // AMOMAXU_W_AQ_RL
489
71.9k
    21329U, // AMOMAXU_W_RL
490
71.9k
    20832U, // AMOMAX_D
491
71.9k
    21932U, // AMOMAX_D_AQ
492
71.9k
    21500U, // AMOMAX_D_AQ_RL
493
71.9k
    21206U, // AMOMAX_D_RL
494
71.9k
    22596U, // AMOMAX_W
495
71.9k
    22069U, // AMOMAX_W_AQ
496
71.9k
    21659U, // AMOMAX_W_AQ_RL
497
71.9k
    21343U, // AMOMAX_W_RL
498
71.9k
    20764U, // AMOMINU_D
499
71.9k
    21904U, // AMOMINU_D_AQ
500
71.9k
    21468U, // AMOMINU_D_AQ_RL
501
71.9k
    21178U, // AMOMINU_D_RL
502
71.9k
    22565U, // AMOMINU_W
503
71.9k
    22041U, // AMOMINU_W_AQ
504
71.9k
    21627U, // AMOMINU_W_AQ_RL
505
71.9k
    21315U, // AMOMINU_W_RL
506
71.9k
    20654U, // AMOMIN_D
507
71.9k
    21843U, // AMOMIN_D_AQ
508
71.9k
    21397U, // AMOMIN_D_AQ_RL
509
71.9k
    21117U, // AMOMIN_D_RL
510
71.9k
    22509U, // AMOMIN_W
511
71.9k
    21980U, // AMOMIN_W_AQ
512
71.9k
    21556U, // AMOMIN_W_AQ_RL
513
71.9k
    21254U, // AMOMIN_W_RL
514
71.9k
    20698U, // AMOOR_D
515
71.9k
    21879U, // AMOOR_D_AQ
516
71.9k
    21439U, // AMOOR_D_AQ_RL
517
71.9k
    21153U, // AMOOR_D_RL
518
71.9k
    22536U, // AMOOR_W
519
71.9k
    22016U, // AMOOR_W_AQ
520
71.9k
    21598U, // AMOOR_W_AQ_RL
521
71.9k
    21290U, // AMOOR_W_RL
522
71.9k
    20674U, // AMOSWAP_D
523
71.9k
    21856U, // AMOSWAP_D_AQ
524
71.9k
    21412U, // AMOSWAP_D_AQ_RL
525
71.9k
    21130U, // AMOSWAP_D_RL
526
71.9k
    22519U, // AMOSWAP_W
527
71.9k
    21993U, // AMOSWAP_W_AQ
528
71.9k
    21571U, // AMOSWAP_W_AQ_RL
529
71.9k
    21267U, // AMOSWAP_W_RL
530
71.9k
    20707U, // AMOXOR_D
531
71.9k
    21891U, // AMOXOR_D_AQ
532
71.9k
    21453U, // AMOXOR_D_AQ_RL
533
71.9k
    21165U, // AMOXOR_D_RL
534
71.9k
    22545U, // AMOXOR_W
535
71.9k
    22028U, // AMOXOR_W_AQ
536
71.9k
    21612U, // AMOXOR_W_AQ_RL
537
71.9k
    21302U, // AMOXOR_W_RL
538
71.9k
    20874U, // AND
539
71.9k
    20954U, // ANDI
540
71.9k
    20518U, // AUIPC
541
71.9k
    22082U, // BEQ
542
71.9k
    20899U, // BGE
543
71.9k
    22361U, // BGEU
544
71.9k
    22346U, // BLT
545
71.9k
    22417U, // BLTU
546
71.9k
    20904U, // BNE
547
71.9k
    20525U, // CSRRC
548
71.9k
    20936U, // CSRRCI
549
71.9k
    22321U, // CSRRS
550
71.9k
    20993U, // CSRRSI
551
71.9k
    22695U, // CSRRW
552
71.9k
    21014U, // CSRRWI
553
71.9k
    8564U,  // C_ADD
554
71.9k
    8656U,  // C_ADDI
555
71.9k
    9440U,  // C_ADDI16SP
556
71.9k
    21689U, // C_ADDI4SPN
557
71.9k
    10347U, // C_ADDIW
558
71.9k
    10332U, // C_ADDW
559
71.9k
    8584U,  // C_AND
560
71.9k
    8664U,  // C_ANDI
561
71.9k
    22761U, // C_BEQZ
562
71.9k
    22753U, // C_BNEZ
563
71.9k
    547U, // C_EBREAK
564
71.9k
    20865U, // C_FLD
565
71.9k
    21748U, // C_FLDSP
566
71.9k
    22664U, // C_FLW
567
71.9k
    21782U, // C_FLWSP
568
71.9k
    20885U, // C_FSD
569
71.9k
    21765U, // C_FSDSP
570
71.9k
    22708U, // C_FSW
571
71.9k
    21799U, // C_FSWSP
572
71.9k
    4638U,  // C_J
573
71.9k
    4673U,  // C_JAL
574
71.9k
    5709U,  // C_JALR
575
71.9k
    5703U,  // C_JR
576
71.9k
    20859U, // C_LD
577
71.9k
    21740U, // C_LDSP
578
71.9k
    20965U, // C_LI
579
71.9k
    21007U, // C_LUI
580
71.9k
    22658U, // C_LW
581
71.9k
    21774U, // C_LWSP
582
71.9k
    22467U, // C_MV
583
71.9k
    1241U,  // C_NOP
584
71.9k
    9813U,  // C_OR
585
71.9k
    20879U, // C_SD
586
71.9k
    21757U, // C_SDSP
587
71.9k
    8683U,  // C_SLLI
588
71.9k
    8640U,  // C_SRAI
589
71.9k
    8691U,  // C_SRLI
590
71.9k
    8223U,  // C_SUB
591
71.9k
    10324U, // C_SUBW
592
71.9k
    22702U, // C_SW
593
71.9k
    21791U, // C_SWSP
594
71.9k
    1232U,  // C_UNIMP
595
71.9k
    9819U,  // C_XOR
596
71.9k
    22462U, // DIV
597
71.9k
    22429U, // DIVU
598
71.9k
    22722U, // DIVUW
599
71.9k
    22729U, // DIVW
600
71.9k
    549U, // EBREAK
601
71.9k
    590U, // ECALL
602
71.9k
    20565U, // FADD_D
603
71.9k
    22151U, // FADD_S
604
71.9k
    20727U, // FCLASS_D
605
71.9k
    22237U, // FCLASS_S
606
71.9k
    21037U, // FCVT_D_L
607
71.9k
    22381U, // FCVT_D_LU
608
71.9k
    22141U, // FCVT_D_S
609
71.9k
    22479U, // FCVT_D_W
610
71.9k
    22435U, // FCVT_D_WU
611
71.9k
    20753U, // FCVT_LU_D
612
71.9k
    22263U, // FCVT_LU_S
613
71.9k
    20628U, // FCVT_L_D
614
71.9k
    22194U, // FCVT_L_S
615
71.9k
    20717U, // FCVT_S_D
616
71.9k
    21047U, // FCVT_S_L
617
71.9k
    22392U, // FCVT_S_LU
618
71.9k
    22555U, // FCVT_S_W
619
71.9k
    22446U, // FCVT_S_WU
620
71.9k
    20775U, // FCVT_WU_D
621
71.9k
    22274U, // FCVT_WU_S
622
71.9k
    20805U, // FCVT_W_D
623
71.9k
    22293U, // FCVT_W_S
624
71.9k
    20797U, // FDIV_D
625
71.9k
    22285U, // FDIV_S
626
71.9k
    12700U, // FENCE
627
71.9k
    439U, // FENCE_I
628
71.9k
    1221U,  // FENCE_TSO
629
71.9k
    20685U, // FEQ_D
630
71.9k
    22230U, // FEQ_S
631
71.9k
    20867U, // FLD
632
71.9k
    20612U, // FLE_D
633
71.9k
    22178U, // FLE_S
634
71.9k
    20737U, // FLT_D
635
71.9k
    22247U, // FLT_S
636
71.9k
    22666U, // FLW
637
71.9k
    20573U, // FMADD_D
638
71.9k
    22159U, // FMADD_S
639
71.9k
    20824U, // FMAX_D
640
71.9k
    22303U, // FMAX_S
641
71.9k
    20646U, // FMIN_D
642
71.9k
    22212U, // FMIN_S
643
71.9k
    20540U, // FMSUB_D
644
71.9k
    22122U, // FMSUB_S
645
71.9k
    20638U, // FMUL_D
646
71.9k
    22204U, // FMUL_S
647
71.9k
    22735U, // FMV_D_X
648
71.9k
    22744U, // FMV_W_X
649
71.9k
    20815U, // FMV_X_D
650
71.9k
    22587U, // FMV_X_W
651
71.9k
    20582U, // FNMADD_D
652
71.9k
    22168U, // FNMADD_S
653
71.9k
    20549U, // FNMSUB_D
654
71.9k
    22131U, // FNMSUB_S
655
71.9k
    20887U, // FSD
656
71.9k
    20664U, // FSGNJN_D
657
71.9k
    22220U, // FSGNJN_S
658
71.9k
    20842U, // FSGNJX_D
659
71.9k
    22311U, // FSGNJX_S
660
71.9k
    20619U, // FSGNJ_D
661
71.9k
    22185U, // FSGNJ_S
662
71.9k
    20744U, // FSQRT_D
663
71.9k
    22254U, // FSQRT_S
664
71.9k
    20532U, // FSUB_D
665
71.9k
    22114U, // FSUB_S
666
71.9k
    22710U, // FSW
667
71.9k
    21059U, // JAL
668
71.9k
    22095U, // JALR
669
71.9k
    20503U, // LB
670
71.9k
    22356U, // LBU
671
71.9k
    20861U, // LD
672
71.9k
    20911U, // LH
673
71.9k
    22369U, // LHU
674
71.9k
    37076U, // LR_D
675
71.9k
    38254U, // LR_D_AQ
676
71.9k
    37812U, // LR_D_AQ_RL
677
71.9k
    37528U, // LR_D_RL
678
71.9k
    38914U, // LR_W
679
71.9k
    38391U, // LR_W_AQ
680
71.9k
    37971U, // LR_W_AQ_RL
681
71.9k
    37665U, // LR_W_RL
682
71.9k
    21009U, // LUI
683
71.9k
    22660U, // LW
684
71.9k
    22457U, // LWU
685
71.9k
    1848U,  // MRET
686
71.9k
    21679U, // MUL
687
71.9k
    20909U, // MULH
688
71.9k
    22409U, // MULHSU
689
71.9k
    22367U, // MULHU
690
71.9k
    22683U, // MULW
691
71.9k
    22103U, // OR
692
71.9k
    20988U, // ORI
693
71.9k
    21684U, // REM
694
71.9k
    22403U, // REMU
695
71.9k
    22715U, // REMUW
696
71.9k
    22689U, // REMW
697
71.9k
    20507U, // SB
698
71.9k
    20559U, // SC_D
699
71.9k
    21808U, // SC_D_AQ
700
71.9k
    21356U, // SC_D_AQ_RL
701
71.9k
    21082U, // SC_D_RL
702
71.9k
    22473U, // SC_W
703
71.9k
    21945U, // SC_W_AQ
704
71.9k
    21515U, // SC_W_AQ_RL
705
71.9k
    21219U, // SC_W_RL
706
71.9k
    20881U, // SD
707
71.9k
    20486U, // SFENCE_VMA
708
71.9k
    20915U, // SH
709
71.9k
    21077U, // SLL
710
71.9k
    20973U, // SLLI
711
71.9k
    22644U, // SLLIW
712
71.9k
    22671U, // SLLW
713
71.9k
    22351U, // SLT
714
71.9k
    21001U, // SLTI
715
71.9k
    22374U, // SLTIU
716
71.9k
    22423U, // SLTU
717
71.9k
    20498U, // SRA
718
71.9k
    20930U, // SRAI
719
71.9k
    22628U, // SRAIW
720
71.9k
    22606U, // SRAW
721
71.9k
    1854U,  // SRET
722
71.9k
    21674U, // SRL
723
71.9k
    20981U, // SRLI
724
71.9k
    22651U, // SRLIW
725
71.9k
    22677U, // SRLW
726
71.9k
    20513U, // SUB
727
71.9k
    22614U, // SUBW
728
71.9k
    22704U, // SW
729
71.9k
    1234U,  // UNIMP
730
71.9k
    1860U,  // URET
731
71.9k
    480U, // WFI
732
71.9k
    22109U, // XOR
733
71.9k
    20987U, // XORI
734
71.9k
  };
735
736
71.9k
  static const uint8_t OpInfo1[] = {
737
71.9k
    0U, // PHI
738
71.9k
    0U, // INLINEASM
739
71.9k
    0U, // INLINEASM_BR
740
71.9k
    0U, // CFI_INSTRUCTION
741
71.9k
    0U, // EH_LABEL
742
71.9k
    0U, // GC_LABEL
743
71.9k
    0U, // ANNOTATION_LABEL
744
71.9k
    0U, // KILL
745
71.9k
    0U, // EXTRACT_SUBREG
746
71.9k
    0U, // INSERT_SUBREG
747
71.9k
    0U, // IMPLICIT_DEF
748
71.9k
    0U, // SUBREG_TO_REG
749
71.9k
    0U, // COPY_TO_REGCLASS
750
71.9k
    0U, // DBG_VALUE
751
71.9k
    0U, // DBG_LABEL
752
71.9k
    0U, // REG_SEQUENCE
753
71.9k
    0U, // COPY
754
71.9k
    0U, // BUNDLE
755
71.9k
    0U, // LIFETIME_START
756
71.9k
    0U, // LIFETIME_END
757
71.9k
    0U, // STACKMAP
758
71.9k
    0U, // FENTRY_CALL
759
71.9k
    0U, // PATCHPOINT
760
71.9k
    0U, // LOAD_STACK_GUARD
761
71.9k
    0U, // STATEPOINT
762
71.9k
    0U, // LOCAL_ESCAPE
763
71.9k
    0U, // FAULTING_OP
764
71.9k
    0U, // PATCHABLE_OP
765
71.9k
    0U, // PATCHABLE_FUNCTION_ENTER
766
71.9k
    0U, // PATCHABLE_RET
767
71.9k
    0U, // PATCHABLE_FUNCTION_EXIT
768
71.9k
    0U, // PATCHABLE_TAIL_CALL
769
71.9k
    0U, // PATCHABLE_EVENT_CALL
770
71.9k
    0U, // PATCHABLE_TYPED_EVENT_CALL
771
71.9k
    0U, // ICALL_BRANCH_FUNNEL
772
71.9k
    0U, // G_ADD
773
71.9k
    0U, // G_SUB
774
71.9k
    0U, // G_MUL
775
71.9k
    0U, // G_SDIV
776
71.9k
    0U, // G_UDIV
777
71.9k
    0U, // G_SREM
778
71.9k
    0U, // G_UREM
779
71.9k
    0U, // G_AND
780
71.9k
    0U, // G_OR
781
71.9k
    0U, // G_XOR
782
71.9k
    0U, // G_IMPLICIT_DEF
783
71.9k
    0U, // G_PHI
784
71.9k
    0U, // G_FRAME_INDEX
785
71.9k
    0U, // G_GLOBAL_VALUE
786
71.9k
    0U, // G_EXTRACT
787
71.9k
    0U, // G_UNMERGE_VALUES
788
71.9k
    0U, // G_INSERT
789
71.9k
    0U, // G_MERGE_VALUES
790
71.9k
    0U, // G_BUILD_VECTOR
791
71.9k
    0U, // G_BUILD_VECTOR_TRUNC
792
71.9k
    0U, // G_CONCAT_VECTORS
793
71.9k
    0U, // G_PTRTOINT
794
71.9k
    0U, // G_INTTOPTR
795
71.9k
    0U, // G_BITCAST
796
71.9k
    0U, // G_INTRINSIC_TRUNC
797
71.9k
    0U, // G_INTRINSIC_ROUND
798
71.9k
    0U, // G_LOAD
799
71.9k
    0U, // G_SEXTLOAD
800
71.9k
    0U, // G_ZEXTLOAD
801
71.9k
    0U, // G_STORE
802
71.9k
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
803
71.9k
    0U, // G_ATOMIC_CMPXCHG
804
71.9k
    0U, // G_ATOMICRMW_XCHG
805
71.9k
    0U, // G_ATOMICRMW_ADD
806
71.9k
    0U, // G_ATOMICRMW_SUB
807
71.9k
    0U, // G_ATOMICRMW_AND
808
71.9k
    0U, // G_ATOMICRMW_NAND
809
71.9k
    0U, // G_ATOMICRMW_OR
810
71.9k
    0U, // G_ATOMICRMW_XOR
811
71.9k
    0U, // G_ATOMICRMW_MAX
812
71.9k
    0U, // G_ATOMICRMW_MIN
813
71.9k
    0U, // G_ATOMICRMW_UMAX
814
71.9k
    0U, // G_ATOMICRMW_UMIN
815
71.9k
    0U, // G_BRCOND
816
71.9k
    0U, // G_BRINDIRECT
817
71.9k
    0U, // G_INTRINSIC
818
71.9k
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
819
71.9k
    0U, // G_ANYEXT
820
71.9k
    0U, // G_TRUNC
821
71.9k
    0U, // G_CONSTANT
822
71.9k
    0U, // G_FCONSTANT
823
71.9k
    0U, // G_VASTART
824
71.9k
    0U, // G_VAARG
825
71.9k
    0U, // G_SEXT
826
71.9k
    0U, // G_ZEXT
827
71.9k
    0U, // G_SHL
828
71.9k
    0U, // G_LSHR
829
71.9k
    0U, // G_ASHR
830
71.9k
    0U, // G_ICMP
831
71.9k
    0U, // G_FCMP
832
71.9k
    0U, // G_SELECT
833
71.9k
    0U, // G_UADDO
834
71.9k
    0U, // G_UADDE
835
71.9k
    0U, // G_USUBO
836
71.9k
    0U, // G_USUBE
837
71.9k
    0U, // G_SADDO
838
71.9k
    0U, // G_SADDE
839
71.9k
    0U, // G_SSUBO
840
71.9k
    0U, // G_SSUBE
841
71.9k
    0U, // G_UMULO
842
71.9k
    0U, // G_SMULO
843
71.9k
    0U, // G_UMULH
844
71.9k
    0U, // G_SMULH
845
71.9k
    0U, // G_FADD
846
71.9k
    0U, // G_FSUB
847
71.9k
    0U, // G_FMUL
848
71.9k
    0U, // G_FMA
849
71.9k
    0U, // G_FDIV
850
71.9k
    0U, // G_FREM
851
71.9k
    0U, // G_FPOW
852
71.9k
    0U, // G_FEXP
853
71.9k
    0U, // G_FEXP2
854
71.9k
    0U, // G_FLOG
855
71.9k
    0U, // G_FLOG2
856
71.9k
    0U, // G_FLOG10
857
71.9k
    0U, // G_FNEG
858
71.9k
    0U, // G_FPEXT
859
71.9k
    0U, // G_FPTRUNC
860
71.9k
    0U, // G_FPTOSI
861
71.9k
    0U, // G_FPTOUI
862
71.9k
    0U, // G_SITOFP
863
71.9k
    0U, // G_UITOFP
864
71.9k
    0U, // G_FABS
865
71.9k
    0U, // G_FCANONICALIZE
866
71.9k
    0U, // G_GEP
867
71.9k
    0U, // G_PTR_MASK
868
71.9k
    0U, // G_BR
869
71.9k
    0U, // G_INSERT_VECTOR_ELT
870
71.9k
    0U, // G_EXTRACT_VECTOR_ELT
871
71.9k
    0U, // G_SHUFFLE_VECTOR
872
71.9k
    0U, // G_CTTZ
873
71.9k
    0U, // G_CTTZ_ZERO_UNDEF
874
71.9k
    0U, // G_CTLZ
875
71.9k
    0U, // G_CTLZ_ZERO_UNDEF
876
71.9k
    0U, // G_CTPOP
877
71.9k
    0U, // G_BSWAP
878
71.9k
    0U, // G_FCEIL
879
71.9k
    0U, // G_FCOS
880
71.9k
    0U, // G_FSIN
881
71.9k
    0U, // G_FSQRT
882
71.9k
    0U, // G_FFLOOR
883
71.9k
    0U, // G_ADDRSPACE_CAST
884
71.9k
    0U, // G_BLOCK_ADDR
885
71.9k
    0U, // ADJCALLSTACKDOWN
886
71.9k
    0U, // ADJCALLSTACKUP
887
71.9k
    0U, // BuildPairF64Pseudo
888
71.9k
    0U, // PseudoAtomicLoadNand32
889
71.9k
    0U, // PseudoAtomicLoadNand64
890
71.9k
    0U, // PseudoBR
891
71.9k
    0U, // PseudoBRIND
892
71.9k
    0U, // PseudoCALL
893
71.9k
    0U, // PseudoCALLIndirect
894
71.9k
    0U, // PseudoCmpXchg32
895
71.9k
    0U, // PseudoCmpXchg64
896
71.9k
    0U, // PseudoLA
897
71.9k
    0U, // PseudoLI
898
71.9k
    0U, // PseudoLLA
899
71.9k
    0U, // PseudoMaskedAtomicLoadAdd32
900
71.9k
    0U, // PseudoMaskedAtomicLoadMax32
901
71.9k
    0U, // PseudoMaskedAtomicLoadMin32
902
71.9k
    0U, // PseudoMaskedAtomicLoadNand32
903
71.9k
    0U, // PseudoMaskedAtomicLoadSub32
904
71.9k
    0U, // PseudoMaskedAtomicLoadUMax32
905
71.9k
    0U, // PseudoMaskedAtomicLoadUMin32
906
71.9k
    0U, // PseudoMaskedAtomicSwap32
907
71.9k
    0U, // PseudoMaskedCmpXchg32
908
71.9k
    0U, // PseudoRET
909
71.9k
    0U, // PseudoTAIL
910
71.9k
    0U, // PseudoTAILIndirect
911
71.9k
    0U, // Select_FPR32_Using_CC_GPR
912
71.9k
    0U, // Select_FPR64_Using_CC_GPR
913
71.9k
    0U, // Select_GPR_Using_CC_GPR
914
71.9k
    0U, // SplitF64Pseudo
915
71.9k
    4U, // ADD
916
71.9k
    4U, // ADDI
917
71.9k
    4U, // ADDIW
918
71.9k
    4U, // ADDW
919
71.9k
    9U, // AMOADD_D
920
71.9k
    9U, // AMOADD_D_AQ
921
71.9k
    9U, // AMOADD_D_AQ_RL
922
71.9k
    9U, // AMOADD_D_RL
923
71.9k
    9U, // AMOADD_W
924
71.9k
    9U, // AMOADD_W_AQ
925
71.9k
    9U, // AMOADD_W_AQ_RL
926
71.9k
    9U, // AMOADD_W_RL
927
71.9k
    9U, // AMOAND_D
928
71.9k
    9U, // AMOAND_D_AQ
929
71.9k
    9U, // AMOAND_D_AQ_RL
930
71.9k
    9U, // AMOAND_D_RL
931
71.9k
    9U, // AMOAND_W
932
71.9k
    9U, // AMOAND_W_AQ
933
71.9k
    9U, // AMOAND_W_AQ_RL
934
71.9k
    9U, // AMOAND_W_RL
935
71.9k
    9U, // AMOMAXU_D
936
71.9k
    9U, // AMOMAXU_D_AQ
937
71.9k
    9U, // AMOMAXU_D_AQ_RL
938
71.9k
    9U, // AMOMAXU_D_RL
939
71.9k
    9U, // AMOMAXU_W
940
71.9k
    9U, // AMOMAXU_W_AQ
941
71.9k
    9U, // AMOMAXU_W_AQ_RL
942
71.9k
    9U, // AMOMAXU_W_RL
943
71.9k
    9U, // AMOMAX_D
944
71.9k
    9U, // AMOMAX_D_AQ
945
71.9k
    9U, // AMOMAX_D_AQ_RL
946
71.9k
    9U, // AMOMAX_D_RL
947
71.9k
    9U, // AMOMAX_W
948
71.9k
    9U, // AMOMAX_W_AQ
949
71.9k
    9U, // AMOMAX_W_AQ_RL
950
71.9k
    9U, // AMOMAX_W_RL
951
71.9k
    9U, // AMOMINU_D
952
71.9k
    9U, // AMOMINU_D_AQ
953
71.9k
    9U, // AMOMINU_D_AQ_RL
954
71.9k
    9U, // AMOMINU_D_RL
955
71.9k
    9U, // AMOMINU_W
956
71.9k
    9U, // AMOMINU_W_AQ
957
71.9k
    9U, // AMOMINU_W_AQ_RL
958
71.9k
    9U, // AMOMINU_W_RL
959
71.9k
    9U, // AMOMIN_D
960
71.9k
    9U, // AMOMIN_D_AQ
961
71.9k
    9U, // AMOMIN_D_AQ_RL
962
71.9k
    9U, // AMOMIN_D_RL
963
71.9k
    9U, // AMOMIN_W
964
71.9k
    9U, // AMOMIN_W_AQ
965
71.9k
    9U, // AMOMIN_W_AQ_RL
966
71.9k
    9U, // AMOMIN_W_RL
967
71.9k
    9U, // AMOOR_D
968
71.9k
    9U, // AMOOR_D_AQ
969
71.9k
    9U, // AMOOR_D_AQ_RL
970
71.9k
    9U, // AMOOR_D_RL
971
71.9k
    9U, // AMOOR_W
972
71.9k
    9U, // AMOOR_W_AQ
973
71.9k
    9U, // AMOOR_W_AQ_RL
974
71.9k
    9U, // AMOOR_W_RL
975
71.9k
    9U, // AMOSWAP_D
976
71.9k
    9U, // AMOSWAP_D_AQ
977
71.9k
    9U, // AMOSWAP_D_AQ_RL
978
71.9k
    9U, // AMOSWAP_D_RL
979
71.9k
    9U, // AMOSWAP_W
980
71.9k
    9U, // AMOSWAP_W_AQ
981
71.9k
    9U, // AMOSWAP_W_AQ_RL
982
71.9k
    9U, // AMOSWAP_W_RL
983
71.9k
    9U, // AMOXOR_D
984
71.9k
    9U, // AMOXOR_D_AQ
985
71.9k
    9U, // AMOXOR_D_AQ_RL
986
71.9k
    9U, // AMOXOR_D_RL
987
71.9k
    9U, // AMOXOR_W
988
71.9k
    9U, // AMOXOR_W_AQ
989
71.9k
    9U, // AMOXOR_W_AQ_RL
990
71.9k
    9U, // AMOXOR_W_RL
991
71.9k
    4U, // AND
992
71.9k
    4U, // ANDI
993
71.9k
    0U, // AUIPC
994
71.9k
    4U, // BEQ
995
71.9k
    4U, // BGE
996
71.9k
    4U, // BGEU
997
71.9k
    4U, // BLT
998
71.9k
    4U, // BLTU
999
71.9k
    4U, // BNE
1000
71.9k
    2U, // CSRRC
1001
71.9k
    2U, // CSRRCI
1002
71.9k
    2U, // CSRRS
1003
71.9k
    2U, // CSRRSI
1004
71.9k
    2U, // CSRRW
1005
71.9k
    2U, // CSRRWI
1006
71.9k
    0U, // C_ADD
1007
71.9k
    0U, // C_ADDI
1008
71.9k
    0U, // C_ADDI16SP
1009
71.9k
    4U, // C_ADDI4SPN
1010
71.9k
    0U, // C_ADDIW
1011
71.9k
    0U, // C_ADDW
1012
71.9k
    0U, // C_AND
1013
71.9k
    0U, // C_ANDI
1014
71.9k
    0U, // C_BEQZ
1015
71.9k
    0U, // C_BNEZ
1016
71.9k
    0U, // C_EBREAK
1017
71.9k
    13U,  // C_FLD
1018
71.9k
    13U,  // C_FLDSP
1019
71.9k
    13U,  // C_FLW
1020
71.9k
    13U,  // C_FLWSP
1021
71.9k
    13U,  // C_FSD
1022
71.9k
    13U,  // C_FSDSP
1023
71.9k
    13U,  // C_FSW
1024
71.9k
    13U,  // C_FSWSP
1025
71.9k
    0U, // C_J
1026
71.9k
    0U, // C_JAL
1027
71.9k
    0U, // C_JALR
1028
71.9k
    0U, // C_JR
1029
71.9k
    13U,  // C_LD
1030
71.9k
    13U,  // C_LDSP
1031
71.9k
    0U, // C_LI
1032
71.9k
    0U, // C_LUI
1033
71.9k
    13U,  // C_LW
1034
71.9k
    13U,  // C_LWSP
1035
71.9k
    0U, // C_MV
1036
71.9k
    0U, // C_NOP
1037
71.9k
    0U, // C_OR
1038
71.9k
    13U,  // C_SD
1039
71.9k
    13U,  // C_SDSP
1040
71.9k
    0U, // C_SLLI
1041
71.9k
    0U, // C_SRAI
1042
71.9k
    0U, // C_SRLI
1043
71.9k
    0U, // C_SUB
1044
71.9k
    0U, // C_SUBW
1045
71.9k
    13U,  // C_SW
1046
71.9k
    13U,  // C_SWSP
1047
71.9k
    0U, // C_UNIMP
1048
71.9k
    0U, // C_XOR
1049
71.9k
    4U, // DIV
1050
71.9k
    4U, // DIVU
1051
71.9k
    4U, // DIVUW
1052
71.9k
    4U, // DIVW
1053
71.9k
    0U, // EBREAK
1054
71.9k
    0U, // ECALL
1055
71.9k
    36U,  // FADD_D
1056
71.9k
    36U,  // FADD_S
1057
71.9k
    0U, // FCLASS_D
1058
71.9k
    0U, // FCLASS_S
1059
71.9k
    20U,  // FCVT_D_L
1060
71.9k
    20U,  // FCVT_D_LU
1061
71.9k
    0U, // FCVT_D_S
1062
71.9k
    0U, // FCVT_D_W
1063
71.9k
    0U, // FCVT_D_WU
1064
71.9k
    20U,  // FCVT_LU_D
1065
71.9k
    20U,  // FCVT_LU_S
1066
71.9k
    20U,  // FCVT_L_D
1067
71.9k
    20U,  // FCVT_L_S
1068
71.9k
    20U,  // FCVT_S_D
1069
71.9k
    20U,  // FCVT_S_L
1070
71.9k
    20U,  // FCVT_S_LU
1071
71.9k
    20U,  // FCVT_S_W
1072
71.9k
    20U,  // FCVT_S_WU
1073
71.9k
    20U,  // FCVT_WU_D
1074
71.9k
    20U,  // FCVT_WU_S
1075
71.9k
    20U,  // FCVT_W_D
1076
71.9k
    20U,  // FCVT_W_S
1077
71.9k
    36U,  // FDIV_D
1078
71.9k
    36U,  // FDIV_S
1079
71.9k
    0U, // FENCE
1080
71.9k
    0U, // FENCE_I
1081
71.9k
    0U, // FENCE_TSO
1082
71.9k
    4U, // FEQ_D
1083
71.9k
    4U, // FEQ_S
1084
71.9k
    13U,  // FLD
1085
71.9k
    4U, // FLE_D
1086
71.9k
    4U, // FLE_S
1087
71.9k
    4U, // FLT_D
1088
71.9k
    4U, // FLT_S
1089
71.9k
    13U,  // FLW
1090
71.9k
    100U, // FMADD_D
1091
71.9k
    100U, // FMADD_S
1092
71.9k
    4U, // FMAX_D
1093
71.9k
    4U, // FMAX_S
1094
71.9k
    4U, // FMIN_D
1095
71.9k
    4U, // FMIN_S
1096
71.9k
    100U, // FMSUB_D
1097
71.9k
    100U, // FMSUB_S
1098
71.9k
    36U,  // FMUL_D
1099
71.9k
    36U,  // FMUL_S
1100
71.9k
    0U, // FMV_D_X
1101
71.9k
    0U, // FMV_W_X
1102
71.9k
    0U, // FMV_X_D
1103
71.9k
    0U, // FMV_X_W
1104
71.9k
    100U, // FNMADD_D
1105
71.9k
    100U, // FNMADD_S
1106
71.9k
    100U, // FNMSUB_D
1107
71.9k
    100U, // FNMSUB_S
1108
71.9k
    13U,  // FSD
1109
71.9k
    4U, // FSGNJN_D
1110
71.9k
    4U, // FSGNJN_S
1111
71.9k
    4U, // FSGNJX_D
1112
71.9k
    4U, // FSGNJX_S
1113
71.9k
    4U, // FSGNJ_D
1114
71.9k
    4U, // FSGNJ_S
1115
71.9k
    20U,  // FSQRT_D
1116
71.9k
    20U,  // FSQRT_S
1117
71.9k
    36U,  // FSUB_D
1118
71.9k
    36U,  // FSUB_S
1119
71.9k
    13U,  // FSW
1120
71.9k
    0U, // JAL
1121
71.9k
    4U, // JALR
1122
71.9k
    13U,  // LB
1123
71.9k
    13U,  // LBU
1124
71.9k
    13U,  // LD
1125
71.9k
    13U,  // LH
1126
71.9k
    13U,  // LHU
1127
71.9k
    0U, // LR_D
1128
71.9k
    0U, // LR_D_AQ
1129
71.9k
    0U, // LR_D_AQ_RL
1130
71.9k
    0U, // LR_D_RL
1131
71.9k
    0U, // LR_W
1132
71.9k
    0U, // LR_W_AQ
1133
71.9k
    0U, // LR_W_AQ_RL
1134
71.9k
    0U, // LR_W_RL
1135
71.9k
    0U, // LUI
1136
71.9k
    13U,  // LW
1137
71.9k
    13U,  // LWU
1138
71.9k
    0U, // MRET
1139
71.9k
    4U, // MUL
1140
71.9k
    4U, // MULH
1141
71.9k
    4U, // MULHSU
1142
71.9k
    4U, // MULHU
1143
71.9k
    4U, // MULW
1144
71.9k
    4U, // OR
1145
71.9k
    4U, // ORI
1146
71.9k
    4U, // REM
1147
71.9k
    4U, // REMU
1148
71.9k
    4U, // REMUW
1149
71.9k
    4U, // REMW
1150
71.9k
    13U,  // SB
1151
71.9k
    9U, // SC_D
1152
71.9k
    9U, // SC_D_AQ
1153
71.9k
    9U, // SC_D_AQ_RL
1154
71.9k
    9U, // SC_D_RL
1155
71.9k
    9U, // SC_W
1156
71.9k
    9U, // SC_W_AQ
1157
71.9k
    9U, // SC_W_AQ_RL
1158
71.9k
    9U, // SC_W_RL
1159
71.9k
    13U,  // SD
1160
71.9k
    0U, // SFENCE_VMA
1161
71.9k
    13U,  // SH
1162
71.9k
    4U, // SLL
1163
71.9k
    4U, // SLLI
1164
71.9k
    4U, // SLLIW
1165
71.9k
    4U, // SLLW
1166
71.9k
    4U, // SLT
1167
71.9k
    4U, // SLTI
1168
71.9k
    4U, // SLTIU
1169
71.9k
    4U, // SLTU
1170
71.9k
    4U, // SRA
1171
71.9k
    4U, // SRAI
1172
71.9k
    4U, // SRAIW
1173
71.9k
    4U, // SRAW
1174
71.9k
    0U, // SRET
1175
71.9k
    4U, // SRL
1176
71.9k
    4U, // SRLI
1177
71.9k
    4U, // SRLIW
1178
71.9k
    4U, // SRLW
1179
71.9k
    4U, // SUB
1180
71.9k
    4U, // SUBW
1181
71.9k
    13U,  // SW
1182
71.9k
    0U, // UNIMP
1183
71.9k
    0U, // URET
1184
71.9k
    0U, // WFI
1185
71.9k
    4U, // XOR
1186
71.9k
    4U, // XORI
1187
71.9k
  };
1188
1189
  // Emit the opcode for the instruction.
1190
71.9k
  uint32_t Bits = 0;
1191
71.9k
  Bits |= OpInfo0[MCInst_getOpcode(MI)] << 0;
1192
71.9k
  Bits |= OpInfo1[MCInst_getOpcode(MI)] << 16;
1193
71.9k
  CS_ASSERT(Bits != 0 && "Cannot print this instruction.");
1194
71.9k
#ifndef CAPSTONE_DIET
1195
71.9k
  SStream_concat0(O, AsmStrs+(Bits & 4095)-1);
1196
71.9k
#endif
1197
1198
1199
  // Fragment 0 encoded into 2 bits for 4 unique commands.
1200
71.9k
  switch ((uint32_t)((Bits >> 12) & 3)) {
1201
0
  default:
1202
0
    CS_ASSERT(0 && "Invalid command number.");
1203
0
    return;
1204
241
  case 0:
1205
    // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
1206
241
    return;
1207
0
    break;
1208
71.1k
  case 1:
1209
    // PseudoCALL, PseudoLA, PseudoLI, PseudoLLA, PseudoTAIL, ADD, ADDI, ADDI...
1210
71.1k
    printOperand(MI, 0, O);
1211
71.1k
    break;
1212
0
  case 2:
1213
    // C_ADD, C_ADDI, C_ADDI16SP, C_ADDIW, C_ADDW, C_AND, C_ANDI, C_OR, C_SLL...
1214
0
    printOperand(MI, 1, O);
1215
0
    SStream_concat0(O, ", ");
1216
0
    printOperand(MI, 2, O);
1217
0
    return;
1218
0
    break;
1219
550
  case 3:
1220
    // FENCE
1221
550
    printFenceArg(MI, 0, O);
1222
550
    SStream_concat0(O, ", ");
1223
550
    printFenceArg(MI, 1, O);
1224
550
    return;
1225
0
    break;
1226
71.9k
  }
1227
1228
1229
  // Fragment 1 encoded into 2 bits for 3 unique commands.
1230
71.1k
  switch ((uint32_t)((Bits >> 14) & 3)) {
1231
0
  default:
1232
0
    CS_ASSERT(0 && "Invalid command number.");
1233
0
    return;
1234
0
  case 0:
1235
    // PseudoCALL, PseudoTAIL, C_J, C_JAL, C_JALR, C_JR
1236
0
    return;
1237
0
    break;
1238
70.2k
  case 1:
1239
    // PseudoLA, PseudoLI, PseudoLLA, ADD, ADDI, ADDIW, ADDW, AMOADD_D, AMOAD...
1240
70.2k
    SStream_concat0(O, ", ");
1241
70.2k
    break;
1242
824
  case 2:
1243
    // LR_D, LR_D_AQ, LR_D_AQ_RL, LR_D_RL, LR_W, LR_W_AQ, LR_W_AQ_RL, LR_W_RL
1244
824
    SStream_concat0(O, ", (");
1245
824
    printOperand(MI, 1, O);
1246
824
    SStream_concat0(O, ")");
1247
824
    return;
1248
0
    break;
1249
71.1k
  }
1250
1251
1252
  // Fragment 2 encoded into 2 bits for 3 unique commands.
1253
70.2k
  switch ((uint32_t)((Bits >> 16) & 3)) {
1254
0
  default:
1255
0
    CS_ASSERT(0 && "Invalid command number.");
1256
0
    return;
1257
16.9k
  case 0:
1258
    // PseudoLA, PseudoLI, PseudoLLA, ADD, ADDI, ADDIW, ADDW, AND, ANDI, AUIP...
1259
16.9k
    printOperand(MI, 1, O);
1260
16.9k
    break;
1261
10.0k
  case 1:
1262
    // AMOADD_D, AMOADD_D_AQ, AMOADD_D_AQ_RL, AMOADD_D_RL, AMOADD_W, AMOADD_W...
1263
10.0k
    printOperand(MI, 2, O);
1264
10.0k
    break;
1265
43.2k
  case 2:
1266
    // CSRRC, CSRRCI, CSRRS, CSRRSI, CSRRW, CSRRWI
1267
43.2k
    printCSRSystemRegister(MI, 1, O);
1268
43.2k
    SStream_concat0(O, ", ");
1269
43.2k
    printOperand(MI, 2, O);
1270
43.2k
    return;
1271
0
    break;
1272
70.2k
  }
1273
1274
1275
  // Fragment 3 encoded into 2 bits for 4 unique commands.
1276
27.0k
  switch ((uint32_t)((Bits >> 18) & 3)) {
1277
0
  default:
1278
0
    CS_ASSERT(0 && "Invalid command number.");
1279
0
    return;
1280
1.48k
  case 0:
1281
    // PseudoLA, PseudoLI, PseudoLLA, AUIPC, C_BEQZ, C_BNEZ, C_LI, C_LUI, C_M...
1282
1.48k
    return;
1283
0
    break;
1284
15.4k
  case 1:
1285
    // ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT, BLTU, BNE, C_A...
1286
15.4k
    SStream_concat0(O, ", ");
1287
15.4k
    break;
1288
7.09k
  case 2:
1289
    // AMOADD_D, AMOADD_D_AQ, AMOADD_D_AQ_RL, AMOADD_D_RL, AMOADD_W, AMOADD_W...
1290
7.09k
    SStream_concat0(O, ", (");
1291
7.09k
    printOperand(MI, 1, O);
1292
7.09k
    SStream_concat0(O, ")");
1293
7.09k
    return;
1294
0
    break;
1295
2.99k
  case 3:
1296
    // C_FLD, C_FLDSP, C_FLW, C_FLWSP, C_FSD, C_FSDSP, C_FSW, C_FSWSP, C_LD, ...
1297
2.99k
    SStream_concat0(O, "(");
1298
2.99k
    printOperand(MI, 1, O);
1299
2.99k
    SStream_concat0(O, ")");
1300
2.99k
    return;
1301
0
    break;
1302
27.0k
  }
1303
1304
1305
  // Fragment 4 encoded into 1 bits for 2 unique commands.
1306
15.4k
  if ((Bits >> 20) & 1) {
1307
    // FCVT_D_L, FCVT_D_LU, FCVT_LU_D, FCVT_LU_S, FCVT_L_D, FCVT_L_S, FCVT_S_...
1308
5.70k
    printFRMArg(MI, 2, O);
1309
5.70k
    return;
1310
9.75k
  } else {
1311
    // ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT, BLTU, BNE, C_A...
1312
9.75k
    printOperand(MI, 2, O);
1313
9.75k
  }
1314
1315
1316
  // Fragment 5 encoded into 1 bits for 2 unique commands.
1317
9.75k
  if ((Bits >> 21) & 1) {
1318
    // FADD_D, FADD_S, FDIV_D, FDIV_S, FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FM...
1319
4.41k
    SStream_concat0(O, ", ");
1320
5.33k
  } else {
1321
    // ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT, BLTU, BNE, C_A...
1322
5.33k
    return;
1323
5.33k
  }
1324
1325
1326
  // Fragment 6 encoded into 1 bits for 2 unique commands.
1327
4.41k
  if ((Bits >> 22) & 1) {
1328
    // FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S, FNMSUB_D, FNMS...
1329
2.47k
    printOperand(MI, 3, O);
1330
2.47k
    SStream_concat0(O, ", ");
1331
2.47k
    printFRMArg(MI, 4, O);
1332
2.47k
    return;
1333
2.47k
  } else {
1334
    // FADD_D, FADD_S, FDIV_D, FDIV_S, FMUL_D, FMUL_S, FSUB_D, FSUB_S
1335
1.94k
    printFRMArg(MI, 3, O);
1336
1.94k
    return;
1337
1.94k
  }
1338
1339
4.41k
}
1340
1341
1342
/// getRegisterName - This method is automatically generated by tblgen
1343
/// from the register set description.  This returns the assembler name
1344
/// for the specified register.
1345
static const char *
1346
getRegisterName(unsigned RegNo, unsigned AltIdx)
1347
179k
{
1348
179k
  CS_ASSERT(RegNo && RegNo < 97 && "Invalid register number!");
1349
1350
179k
#ifndef CAPSTONE_DIET
1351
179k
  static const char AsmStrsABIRegAltName[] = {
1352
179k
  /* 0 */ 'f', 's', '1', '0', 0,
1353
179k
  /* 5 */ 'f', 't', '1', '0', 0,
1354
179k
  /* 10 */ 'f', 'a', '0', 0,
1355
179k
  /* 14 */ 'f', 's', '0', 0,
1356
179k
  /* 18 */ 'f', 't', '0', 0,
1357
179k
  /* 22 */ 'f', 's', '1', '1', 0,
1358
179k
  /* 27 */ 'f', 't', '1', '1', 0,
1359
179k
  /* 32 */ 'f', 'a', '1', 0,
1360
179k
  /* 36 */ 'f', 's', '1', 0,
1361
179k
  /* 40 */ 'f', 't', '1', 0,
1362
179k
  /* 44 */ 'f', 'a', '2', 0,
1363
179k
  /* 48 */ 'f', 's', '2', 0,
1364
179k
  /* 52 */ 'f', 't', '2', 0,
1365
179k
  /* 56 */ 'f', 'a', '3', 0,
1366
179k
  /* 60 */ 'f', 's', '3', 0,
1367
179k
  /* 64 */ 'f', 't', '3', 0,
1368
179k
  /* 68 */ 'f', 'a', '4', 0,
1369
179k
  /* 72 */ 'f', 's', '4', 0,
1370
179k
  /* 76 */ 'f', 't', '4', 0,
1371
179k
  /* 80 */ 'f', 'a', '5', 0,
1372
179k
  /* 84 */ 'f', 's', '5', 0,
1373
179k
  /* 88 */ 'f', 't', '5', 0,
1374
179k
  /* 92 */ 'f', 'a', '6', 0,
1375
179k
  /* 96 */ 'f', 's', '6', 0,
1376
179k
  /* 100 */ 'f', 't', '6', 0,
1377
179k
  /* 104 */ 'f', 'a', '7', 0,
1378
179k
  /* 108 */ 'f', 's', '7', 0,
1379
179k
  /* 112 */ 'f', 't', '7', 0,
1380
179k
  /* 116 */ 'f', 's', '8', 0,
1381
179k
  /* 120 */ 'f', 't', '8', 0,
1382
179k
  /* 124 */ 'f', 's', '9', 0,
1383
179k
  /* 128 */ 'f', 't', '9', 0,
1384
179k
  /* 132 */ 'r', 'a', 0,
1385
179k
  /* 135 */ 'z', 'e', 'r', 'o', 0,
1386
179k
  /* 140 */ 'g', 'p', 0,
1387
179k
  /* 143 */ 's', 'p', 0,
1388
179k
  /* 146 */ 't', 'p', 0,
1389
179k
  };
1390
1391
179k
  static const uint8_t RegAsmOffsetABIRegAltName[] = {
1392
179k
    135, 132, 143, 140, 146, 19, 41, 53, 15, 37, 11, 33, 45, 57, 
1393
179k
    69, 81, 93, 105, 49, 61, 73, 85, 97, 109, 117, 125, 1, 23, 
1394
179k
    65, 77, 89, 101, 18, 18, 40, 40, 52, 52, 64, 64, 76, 76, 
1395
179k
    88, 88, 100, 100, 112, 112, 14, 14, 36, 36, 10, 10, 32, 32, 
1396
179k
    44, 44, 56, 56, 68, 68, 80, 80, 92, 92, 104, 104, 48, 48, 
1397
179k
    60, 60, 72, 72, 84, 84, 96, 96, 108, 108, 116, 116, 124, 124, 
1398
179k
    0, 0, 22, 22, 120, 120, 128, 128, 5, 5, 27, 27, 
1399
179k
  };
1400
1401
179k
  static const char AsmStrsNoRegAltName[] = {
1402
179k
  /* 0 */ 'f', '1', '0', 0,
1403
179k
  /* 4 */ 'x', '1', '0', 0,
1404
179k
  /* 8 */ 'f', '2', '0', 0,
1405
179k
  /* 12 */ 'x', '2', '0', 0,
1406
179k
  /* 16 */ 'f', '3', '0', 0,
1407
179k
  /* 20 */ 'x', '3', '0', 0,
1408
179k
  /* 24 */ 'f', '0', 0,
1409
179k
  /* 27 */ 'x', '0', 0,
1410
179k
  /* 30 */ 'f', '1', '1', 0,
1411
179k
  /* 34 */ 'x', '1', '1', 0,
1412
179k
  /* 38 */ 'f', '2', '1', 0,
1413
179k
  /* 42 */ 'x', '2', '1', 0,
1414
179k
  /* 46 */ 'f', '3', '1', 0,
1415
179k
  /* 50 */ 'x', '3', '1', 0,
1416
179k
  /* 54 */ 'f', '1', 0,
1417
179k
  /* 57 */ 'x', '1', 0,
1418
179k
  /* 60 */ 'f', '1', '2', 0,
1419
179k
  /* 64 */ 'x', '1', '2', 0,
1420
179k
  /* 68 */ 'f', '2', '2', 0,
1421
179k
  /* 72 */ 'x', '2', '2', 0,
1422
179k
  /* 76 */ 'f', '2', 0,
1423
179k
  /* 79 */ 'x', '2', 0,
1424
179k
  /* 82 */ 'f', '1', '3', 0,
1425
179k
  /* 86 */ 'x', '1', '3', 0,
1426
179k
  /* 90 */ 'f', '2', '3', 0,
1427
179k
  /* 94 */ 'x', '2', '3', 0,
1428
179k
  /* 98 */ 'f', '3', 0,
1429
179k
  /* 101 */ 'x', '3', 0,
1430
179k
  /* 104 */ 'f', '1', '4', 0,
1431
179k
  /* 108 */ 'x', '1', '4', 0,
1432
179k
  /* 112 */ 'f', '2', '4', 0,
1433
179k
  /* 116 */ 'x', '2', '4', 0,
1434
179k
  /* 120 */ 'f', '4', 0,
1435
179k
  /* 123 */ 'x', '4', 0,
1436
179k
  /* 126 */ 'f', '1', '5', 0,
1437
179k
  /* 130 */ 'x', '1', '5', 0,
1438
179k
  /* 134 */ 'f', '2', '5', 0,
1439
179k
  /* 138 */ 'x', '2', '5', 0,
1440
179k
  /* 142 */ 'f', '5', 0,
1441
179k
  /* 145 */ 'x', '5', 0,
1442
179k
  /* 148 */ 'f', '1', '6', 0,
1443
179k
  /* 152 */ 'x', '1', '6', 0,
1444
179k
  /* 156 */ 'f', '2', '6', 0,
1445
179k
  /* 160 */ 'x', '2', '6', 0,
1446
179k
  /* 164 */ 'f', '6', 0,
1447
179k
  /* 167 */ 'x', '6', 0,
1448
179k
  /* 170 */ 'f', '1', '7', 0,
1449
179k
  /* 174 */ 'x', '1', '7', 0,
1450
179k
  /* 178 */ 'f', '2', '7', 0,
1451
179k
  /* 182 */ 'x', '2', '7', 0,
1452
179k
  /* 186 */ 'f', '7', 0,
1453
179k
  /* 189 */ 'x', '7', 0,
1454
179k
  /* 192 */ 'f', '1', '8', 0,
1455
179k
  /* 196 */ 'x', '1', '8', 0,
1456
179k
  /* 200 */ 'f', '2', '8', 0,
1457
179k
  /* 204 */ 'x', '2', '8', 0,
1458
179k
  /* 208 */ 'f', '8', 0,
1459
179k
  /* 211 */ 'x', '8', 0,
1460
179k
  /* 214 */ 'f', '1', '9', 0,
1461
179k
  /* 218 */ 'x', '1', '9', 0,
1462
179k
  /* 222 */ 'f', '2', '9', 0,
1463
179k
  /* 226 */ 'x', '2', '9', 0,
1464
179k
  /* 230 */ 'f', '9', 0,
1465
179k
  /* 233 */ 'x', '9', 0,
1466
179k
  };
1467
1468
179k
  static const uint8_t RegAsmOffsetNoRegAltName[] = {
1469
179k
    27, 57, 79, 101, 123, 145, 167, 189, 211, 233, 4, 34, 64, 86, 
1470
179k
    108, 130, 152, 174, 196, 218, 12, 42, 72, 94, 116, 138, 160, 182, 
1471
179k
    204, 226, 20, 50, 24, 24, 54, 54, 76, 76, 98, 98, 120, 120, 
1472
179k
    142, 142, 164, 164, 186, 186, 208, 208, 230, 230, 0, 0, 30, 30, 
1473
179k
    60, 60, 82, 82, 104, 104, 126, 126, 148, 148, 170, 170, 192, 192, 
1474
179k
    214, 214, 8, 8, 38, 38, 68, 68, 90, 90, 112, 112, 134, 134, 
1475
179k
    156, 156, 178, 178, 200, 200, 222, 222, 16, 16, 46, 46, 
1476
179k
  };
1477
1478
179k
  switch(AltIdx) {
1479
0
  default:
1480
0
    CS_ASSERT(0 && "Invalid register alt name index!");
1481
0
    return 0;
1482
179k
  case RISCV_ABIRegAltName:
1483
179k
    CS_ASSERT(*(AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1]) &&
1484
179k
           "Invalid alt name index for register!");
1485
179k
    return AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1];
1486
0
  case RISCV_NoRegAltName:
1487
0
    CS_ASSERT(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
1488
0
           "Invalid alt name index for register!");
1489
0
    return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
1490
179k
  }
1491
#else
1492
  return NULL;
1493
#endif
1494
179k
}
1495
1496
#ifdef PRINT_ALIAS_INSTR
1497
#undef PRINT_ALIAS_INSTR
1498
1499
static bool RISCVInstPrinterValidateMCOperand(MCOperand *MCOp,
1500
                  unsigned PredicateIndex);
1501
1502
static bool printAliasInstr(MCInst *MI, SStream * OS, void *info)
1503
215k
{
1504
215k
  MCRegisterInfo *MRI = (MCRegisterInfo *) info;
1505
215k
  const char *AsmString;
1506
215k
  unsigned I = 0;
1507
215k
#define ASMSTRING_CONTAIN_SIZE 64
1508
215k
  unsigned AsmStringLen = 0;
1509
215k
  char tmpString_[ASMSTRING_CONTAIN_SIZE];
1510
215k
  char *tmpString = tmpString_;
1511
215k
  switch (MCInst_getOpcode(MI)) {
1512
18.3k
  default: return false;
1513
1.88k
  case RISCV_ADDI:
1514
1.88k
    if (MCInst_getNumOperands(MI) == 3 &&
1515
1.88k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1516
1.49k
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
1517
1.29k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1518
1.29k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
1519
      // (ADDI X0, X0, 0)
1520
593
      AsmString = "nop";
1521
593
      break;
1522
593
    }
1523
1.29k
    if (MCInst_getNumOperands(MI) == 3 &&
1524
1.29k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1525
1.29k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1526
1.29k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1527
1.29k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1528
1.29k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1529
1.29k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
1530
      // (ADDI GPR:$rd, GPR:$rs, 0)
1531
152
      AsmString = "mv $\x01, $\x02";
1532
152
      break;
1533
152
    }
1534
1.13k
    return false;
1535
578
  case RISCV_ADDIW:
1536
578
    if (MCInst_getNumOperands(MI) == 3 &&
1537
578
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1538
578
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1539
578
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1540
578
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1541
578
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1542
578
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
1543
      // (ADDIW GPR:$rd, GPR:$rs, 0)
1544
143
      AsmString = "sext.w $\x01, $\x02";
1545
143
      break;
1546
143
    }
1547
435
    return false;
1548
475
  case RISCV_BEQ:
1549
475
    if (MCInst_getNumOperands(MI) == 3 &&
1550
475
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1551
475
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1552
475
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
1553
192
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1554
      // (BEQ GPR:$rs, X0, simm13_lsb0:$offset)
1555
192
      AsmString = "beqz $\x01, $\x03";
1556
192
      break;
1557
192
    }
1558
283
    return false;
1559
1.18k
  case RISCV_BGE:
1560
1.18k
    if (MCInst_getNumOperands(MI) == 3 &&
1561
1.18k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1562
329
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1563
329
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1564
329
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1565
      // (BGE X0, GPR:$rs, simm13_lsb0:$offset)
1566
329
      AsmString = "blez $\x02, $\x03";
1567
329
      break;
1568
329
    }
1569
853
    if (MCInst_getNumOperands(MI) == 3 &&
1570
853
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1571
853
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1572
853
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
1573
363
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1574
      // (BGE GPR:$rs, X0, simm13_lsb0:$offset)
1575
363
      AsmString = "bgez $\x01, $\x03";
1576
363
      break;
1577
363
    }
1578
490
    return false;
1579
746
  case RISCV_BLT:
1580
746
    if (MCInst_getNumOperands(MI) == 3 &&
1581
746
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1582
746
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1583
746
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
1584
265
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1585
      // (BLT GPR:$rs, X0, simm13_lsb0:$offset)
1586
265
      AsmString = "bltz $\x01, $\x03";
1587
265
      break;
1588
265
    }
1589
481
    if (MCInst_getNumOperands(MI) == 3 &&
1590
481
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1591
132
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1592
132
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1593
132
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1594
      // (BLT X0, GPR:$rs, simm13_lsb0:$offset)
1595
132
      AsmString = "bgtz $\x02, $\x03";
1596
132
      break;
1597
132
    }
1598
349
    return false;
1599
486
  case RISCV_BNE:
1600
486
    if (MCInst_getNumOperands(MI) == 3 &&
1601
486
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1602
486
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1603
486
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
1604
119
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 2), 1)) {
1605
      // (BNE GPR:$rs, X0, simm13_lsb0:$offset)
1606
119
      AsmString = "bnez $\x01, $\x03";
1607
119
      break;
1608
119
    }
1609
367
    return false;
1610
17.6k
  case RISCV_CSRRC:
1611
17.6k
    if (MCInst_getNumOperands(MI) == 3 &&
1612
17.6k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1613
2.50k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1614
2.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1615
      // (CSRRC X0, csr_sysreg:$csr, GPR:$rs)
1616
2.50k
      AsmString = "csrc $\xFF\x02\x01, $\x03";
1617
2.50k
      break;
1618
2.50k
    }
1619
15.1k
    return false;
1620
20.4k
  case RISCV_CSRRCI:
1621
20.4k
    if (MCInst_getNumOperands(MI) == 3 &&
1622
20.4k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0) {
1623
      // (CSRRCI X0, csr_sysreg:$csr, uimm5:$imm)
1624
2.08k
      AsmString = "csrci $\xFF\x02\x01, $\x03";
1625
2.08k
      break;
1626
2.08k
    }
1627
18.3k
    return false;
1628
36.6k
  case RISCV_CSRRS:
1629
36.6k
    if (MCInst_getNumOperands(MI) == 3 &&
1630
36.6k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1631
36.6k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1632
36.6k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1633
36.6k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3 &&
1634
750
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1635
      // (CSRRS GPR:$rd, 3, X0)
1636
179
      AsmString = "frcsr $\x01";
1637
179
      break;
1638
179
    }
1639
36.4k
    if (MCInst_getNumOperands(MI) == 3 &&
1640
36.4k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1641
36.4k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1642
36.4k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1643
36.4k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 2 &&
1644
833
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1645
      // (CSRRS GPR:$rd, 2, X0)
1646
273
      AsmString = "frrm $\x01";
1647
273
      break;
1648
273
    }
1649
36.2k
    if (MCInst_getNumOperands(MI) == 3 &&
1650
36.2k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1651
36.2k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1652
36.2k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1653
36.2k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 1 &&
1654
368
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1655
      // (CSRRS GPR:$rd, 1, X0)
1656
88
      AsmString = "frflags $\x01";
1657
88
      break;
1658
88
    }
1659
36.1k
    if (MCInst_getNumOperands(MI) == 3 &&
1660
36.1k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1661
36.1k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1662
36.1k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1663
36.1k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3074 &&
1664
521
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1665
      // (CSRRS GPR:$rd, 3074, X0)
1666
286
      AsmString = "rdinstret $\x01";
1667
286
      break;
1668
286
    }
1669
35.8k
    if (MCInst_getNumOperands(MI) == 3 &&
1670
35.8k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1671
35.8k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1672
35.8k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1673
35.8k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3072 &&
1674
2.43k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1675
      // (CSRRS GPR:$rd, 3072, X0)
1676
1.40k
      AsmString = "rdcycle $\x01";
1677
1.40k
      break;
1678
1.40k
    }
1679
34.4k
    if (MCInst_getNumOperands(MI) == 3 &&
1680
34.4k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1681
34.4k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1682
34.4k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1683
34.4k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3073 &&
1684
1.06k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1685
      // (CSRRS GPR:$rd, 3073, X0)
1686
282
      AsmString = "rdtime $\x01";
1687
282
      break;
1688
282
    }
1689
34.1k
    if (MCInst_getNumOperands(MI) == 3 &&
1690
34.1k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1691
34.1k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1692
34.1k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1693
34.1k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3202 &&
1694
1.54k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1695
      // (CSRRS GPR:$rd, 3202, X0)
1696
490
      AsmString = "rdinstreth $\x01";
1697
490
      break;
1698
490
    }
1699
33.6k
    if (MCInst_getNumOperands(MI) == 3 &&
1700
33.6k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1701
33.6k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1702
33.6k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1703
33.6k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3200 &&
1704
471
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1705
      // (CSRRS GPR:$rd, 3200, X0)
1706
180
      AsmString = "rdcycleh $\x01";
1707
180
      break;
1708
180
    }
1709
33.4k
    if (MCInst_getNumOperands(MI) == 3 &&
1710
33.4k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1711
33.4k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1712
33.4k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1713
33.4k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3201 &&
1714
525
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1715
      // (CSRRS GPR:$rd, 3201, X0)
1716
273
      AsmString = "rdtimeh $\x01";
1717
273
      break;
1718
273
    }
1719
33.2k
    if (MCInst_getNumOperands(MI) == 3 &&
1720
33.2k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1721
33.2k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1722
33.2k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
1723
      // (CSRRS GPR:$rd, csr_sysreg:$csr, X0)
1724
5.44k
      AsmString = "csrr $\x01, $\xFF\x02\x01";
1725
5.44k
      break;
1726
5.44k
    }
1727
27.7k
    if (MCInst_getNumOperands(MI) == 3 &&
1728
27.7k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1729
4.41k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1730
4.41k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1731
      // (CSRRS X0, csr_sysreg:$csr, GPR:$rs)
1732
4.41k
      AsmString = "csrs $\xFF\x02\x01, $\x03";
1733
4.41k
      break;
1734
4.41k
    }
1735
23.3k
    return false;
1736
16.0k
  case RISCV_CSRRSI:
1737
16.0k
    if (MCInst_getNumOperands(MI) == 3 &&
1738
16.0k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0) {
1739
      // (CSRRSI X0, csr_sysreg:$csr, uimm5:$imm)
1740
1.05k
      AsmString = "csrsi $\xFF\x02\x01, $\x03";
1741
1.05k
      break;
1742
1.05k
    }
1743
14.9k
    return false;
1744
26.1k
  case RISCV_CSRRW:
1745
26.1k
    if (MCInst_getNumOperands(MI) == 3 &&
1746
26.1k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1747
4.40k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1748
4.40k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3 &&
1749
1.23k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1750
1.23k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1751
      // (CSRRW X0, 3, GPR:$rs)
1752
1.23k
      AsmString = "fscsr $\x03";
1753
1.23k
      break;
1754
1.23k
    }
1755
24.9k
    if (MCInst_getNumOperands(MI) == 3 &&
1756
24.9k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1757
3.16k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1758
3.16k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 2 &&
1759
358
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1760
358
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1761
      // (CSRRW X0, 2, GPR:$rs)
1762
358
      AsmString = "fsrm $\x03";
1763
358
      break;
1764
358
    }
1765
24.5k
    if (MCInst_getNumOperands(MI) == 3 &&
1766
24.5k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1767
2.80k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1768
2.80k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 1 &&
1769
196
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1770
196
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1771
      // (CSRRW X0, 1, GPR:$rs)
1772
196
      AsmString = "fsflags $\x03";
1773
196
      break;
1774
196
    }
1775
24.3k
    if (MCInst_getNumOperands(MI) == 3 &&
1776
24.3k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1777
2.61k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1778
2.61k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1779
      // (CSRRW X0, csr_sysreg:$csr, GPR:$rs)
1780
2.61k
      AsmString = "csrw $\xFF\x02\x01, $\x03";
1781
2.61k
      break;
1782
2.61k
    }
1783
21.7k
    if (MCInst_getNumOperands(MI) == 3 &&
1784
21.7k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1785
21.7k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1786
21.7k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1787
21.7k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 3 &&
1788
183
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1789
183
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1790
      // (CSRRW GPR:$rd, 3, GPR:$rs)
1791
183
      AsmString = "fscsr $\x01, $\x03";
1792
183
      break;
1793
183
    }
1794
21.5k
    if (MCInst_getNumOperands(MI) == 3 &&
1795
21.5k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1796
21.5k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1797
21.5k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1798
21.5k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 2 &&
1799
589
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1800
589
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1801
      // (CSRRW GPR:$rd, 2, GPR:$rs)
1802
589
      AsmString = "fsrm $\x01, $\x03";
1803
589
      break;
1804
589
    }
1805
20.9k
    if (MCInst_getNumOperands(MI) == 3 &&
1806
20.9k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1807
20.9k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1808
20.9k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1809
20.9k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 1 &&
1810
987
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1811
987
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
1812
      // (CSRRW GPR:$rd, 1, GPR:$rs)
1813
987
      AsmString = "fsflags $\x01, $\x03";
1814
987
      break;
1815
987
    }
1816
19.9k
    return false;
1817
16.2k
  case RISCV_CSRRWI:
1818
16.2k
    if (MCInst_getNumOperands(MI) == 3 &&
1819
16.2k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1820
3.90k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1821
3.90k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 2) {
1822
      // (CSRRWI X0, 2, uimm5:$imm)
1823
340
      AsmString = "fsrmi $\x03";
1824
340
      break;
1825
340
    }
1826
15.9k
    if (MCInst_getNumOperands(MI) == 3 &&
1827
15.9k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
1828
3.56k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1829
3.56k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 1) {
1830
      // (CSRRWI X0, 1, uimm5:$imm)
1831
646
      AsmString = "fsflagsi $\x03";
1832
646
      break;
1833
646
    }
1834
15.2k
    if (MCInst_getNumOperands(MI) == 3 &&
1835
15.2k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0) {
1836
      // (CSRRWI X0, csr_sysreg:$csr, uimm5:$imm)
1837
2.92k
      AsmString = "csrwi $\xFF\x02\x01, $\x03";
1838
2.92k
      break;
1839
2.92k
    }
1840
12.3k
    if (MCInst_getNumOperands(MI) == 3 &&
1841
12.3k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1842
12.3k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1843
12.3k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1844
12.3k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 2) {
1845
      // (CSRRWI GPR:$rd, 2, uimm5:$imm)
1846
427
      AsmString = "fsrmi $\x01, $\x03";
1847
427
      break;
1848
427
    }
1849
11.9k
    if (MCInst_getNumOperands(MI) == 3 &&
1850
11.9k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1851
11.9k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1852
11.9k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
1853
11.9k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 1) {
1854
      // (CSRRWI GPR:$rd, 1, uimm5:$imm)
1855
548
      AsmString = "fsflagsi $\x01, $\x03";
1856
548
      break;
1857
548
    }
1858
11.3k
    return false;
1859
2.34k
  case RISCV_FADD_D:
1860
2.34k
    if (MCInst_getNumOperands(MI) == 4 &&
1861
2.34k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1862
2.34k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1863
2.34k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1864
2.34k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1865
2.34k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1866
2.34k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
1867
2.34k
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
1868
2.34k
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
1869
      // (FADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 })
1870
1.61k
      AsmString = "fadd.d $\x01, $\x02, $\x03";
1871
1.61k
      break;
1872
1.61k
    }
1873
730
    return false;
1874
1.50k
  case RISCV_FADD_S:
1875
1.50k
    if (MCInst_getNumOperands(MI) == 4 &&
1876
1.50k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1877
1.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1878
1.50k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1879
1.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1880
1.50k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
1881
1.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
1882
1.50k
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
1883
1.50k
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
1884
      // (FADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 })
1885
228
      AsmString = "fadd.s $\x01, $\x02, $\x03";
1886
228
      break;
1887
228
    }
1888
1.27k
    return false;
1889
1.99k
  case RISCV_FCVT_D_L:
1890
1.99k
    if (MCInst_getNumOperands(MI) == 3 &&
1891
1.99k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1892
1.99k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1893
1.99k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1894
1.99k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1895
1.99k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1896
1.99k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1897
      // (FCVT_D_L FPR64:$rd, GPR:$rs1, { 1, 1, 1 })
1898
965
      AsmString = "fcvt.d.l $\x01, $\x02";
1899
965
      break;
1900
965
    }
1901
1.03k
    return false;
1902
1.32k
  case RISCV_FCVT_D_LU:
1903
1.32k
    if (MCInst_getNumOperands(MI) == 3 &&
1904
1.32k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1905
1.32k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1906
1.32k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1907
1.32k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1908
1.32k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1909
1.32k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1910
      // (FCVT_D_LU FPR64:$rd, GPR:$rs1, { 1, 1, 1 })
1911
859
      AsmString = "fcvt.d.lu $\x01, $\x02";
1912
859
      break;
1913
859
    }
1914
463
    return false;
1915
1.41k
  case RISCV_FCVT_LU_D:
1916
1.41k
    if (MCInst_getNumOperands(MI) == 3 &&
1917
1.41k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1918
1.41k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1919
1.41k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1920
1.41k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1921
1.41k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1922
1.41k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1923
      // (FCVT_LU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 })
1924
767
      AsmString = "fcvt.lu.d $\x01, $\x02";
1925
767
      break;
1926
767
    }
1927
647
    return false;
1928
2.86k
  case RISCV_FCVT_LU_S:
1929
2.86k
    if (MCInst_getNumOperands(MI) == 3 &&
1930
2.86k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1931
2.86k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1932
2.86k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1933
2.86k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1934
2.86k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1935
2.86k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1936
      // (FCVT_LU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 })
1937
1.28k
      AsmString = "fcvt.lu.s $\x01, $\x02";
1938
1.28k
      break;
1939
1.28k
    }
1940
1.57k
    return false;
1941
1.47k
  case RISCV_FCVT_L_D:
1942
1.47k
    if (MCInst_getNumOperands(MI) == 3 &&
1943
1.47k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1944
1.47k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1945
1.47k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1946
1.47k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1947
1.47k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1948
1.47k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1949
      // (FCVT_L_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 })
1950
526
      AsmString = "fcvt.l.d $\x01, $\x02";
1951
526
      break;
1952
526
    }
1953
945
    return false;
1954
1.50k
  case RISCV_FCVT_L_S:
1955
1.50k
    if (MCInst_getNumOperands(MI) == 3 &&
1956
1.50k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1957
1.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1958
1.50k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1959
1.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1960
1.50k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1961
1.50k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1962
      // (FCVT_L_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 })
1963
374
      AsmString = "fcvt.l.s $\x01, $\x02";
1964
374
      break;
1965
374
    }
1966
1.13k
    return false;
1967
1.09k
  case RISCV_FCVT_S_D:
1968
1.09k
    if (MCInst_getNumOperands(MI) == 3 &&
1969
1.09k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1970
1.09k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1971
1.09k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1972
1.09k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1973
1.09k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1974
1.09k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1975
      // (FCVT_S_D FPR32:$rd, FPR64:$rs1, { 1, 1, 1 })
1976
350
      AsmString = "fcvt.s.d $\x01, $\x02";
1977
350
      break;
1978
350
    }
1979
742
    return false;
1980
1.72k
  case RISCV_FCVT_S_L:
1981
1.72k
    if (MCInst_getNumOperands(MI) == 3 &&
1982
1.72k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1983
1.72k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1984
1.72k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1985
1.72k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1986
1.72k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
1987
1.72k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
1988
      // (FCVT_S_L FPR32:$rd, GPR:$rs1, { 1, 1, 1 })
1989
920
      AsmString = "fcvt.s.l $\x01, $\x02";
1990
920
      break;
1991
920
    }
1992
800
    return false;
1993
998
  case RISCV_FCVT_S_LU:
1994
998
    if (MCInst_getNumOperands(MI) == 3 &&
1995
998
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
1996
998
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
1997
998
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
1998
998
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
1999
998
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2000
998
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2001
      // (FCVT_S_LU FPR32:$rd, GPR:$rs1, { 1, 1, 1 })
2002
575
      AsmString = "fcvt.s.lu $\x01, $\x02";
2003
575
      break;
2004
575
    }
2005
423
    return false;
2006
796
  case RISCV_FCVT_S_W:
2007
796
    if (MCInst_getNumOperands(MI) == 3 &&
2008
796
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2009
796
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2010
796
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2011
796
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2012
796
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2013
796
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2014
      // (FCVT_S_W FPR32:$rd, GPR:$rs1, { 1, 1, 1 })
2015
569
      AsmString = "fcvt.s.w $\x01, $\x02";
2016
569
      break;
2017
569
    }
2018
227
    return false;
2019
788
  case RISCV_FCVT_S_WU:
2020
788
    if (MCInst_getNumOperands(MI) == 3 &&
2021
788
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2022
788
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2023
788
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2024
788
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2025
788
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2026
788
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2027
      // (FCVT_S_WU FPR32:$rd, GPR:$rs1, { 1, 1, 1 })
2028
390
      AsmString = "fcvt.s.wu $\x01, $\x02";
2029
390
      break;
2030
390
    }
2031
398
    return false;
2032
739
  case RISCV_FCVT_WU_D:
2033
739
    if (MCInst_getNumOperands(MI) == 3 &&
2034
739
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2035
739
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2036
739
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2037
739
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2038
739
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2039
739
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2040
      // (FCVT_WU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 })
2041
71
      AsmString = "fcvt.wu.d $\x01, $\x02";
2042
71
      break;
2043
71
    }
2044
668
    return false;
2045
1.97k
  case RISCV_FCVT_WU_S:
2046
1.97k
    if (MCInst_getNumOperands(MI) == 3 &&
2047
1.97k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2048
1.97k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2049
1.97k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2050
1.97k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2051
1.97k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2052
1.97k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2053
      // (FCVT_WU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 })
2054
1.09k
      AsmString = "fcvt.wu.s $\x01, $\x02";
2055
1.09k
      break;
2056
1.09k
    }
2057
882
    return false;
2058
979
  case RISCV_FCVT_W_D:
2059
979
    if (MCInst_getNumOperands(MI) == 3 &&
2060
979
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2061
979
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2062
979
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2063
979
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2064
979
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2065
979
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2066
      // (FCVT_W_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 })
2067
866
      AsmString = "fcvt.w.d $\x01, $\x02";
2068
866
      break;
2069
866
    }
2070
113
    return false;
2071
1.02k
  case RISCV_FCVT_W_S:
2072
1.02k
    if (MCInst_getNumOperands(MI) == 3 &&
2073
1.02k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2074
1.02k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2075
1.02k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2076
1.02k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2077
1.02k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2078
1.02k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2079
      // (FCVT_W_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 })
2080
472
      AsmString = "fcvt.w.s $\x01, $\x02";
2081
472
      break;
2082
472
    }
2083
548
    return false;
2084
364
  case RISCV_FDIV_D:
2085
364
    if (MCInst_getNumOperands(MI) == 4 &&
2086
364
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2087
364
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2088
364
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2089
364
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2090
364
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2091
364
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2092
364
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2093
364
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2094
      // (FDIV_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 })
2095
112
      AsmString = "fdiv.d $\x01, $\x02, $\x03";
2096
112
      break;
2097
112
    }
2098
252
    return false;
2099
1.32k
  case RISCV_FDIV_S:
2100
1.32k
    if (MCInst_getNumOperands(MI) == 4 &&
2101
1.32k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2102
1.32k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2103
1.32k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2104
1.32k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2105
1.32k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2106
1.32k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2107
1.32k
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2108
1.32k
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2109
      // (FDIV_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 })
2110
876
      AsmString = "fdiv.s $\x01, $\x02, $\x03";
2111
876
      break;
2112
876
    }
2113
446
    return false;
2114
2.18k
  case RISCV_FENCE:
2115
2.18k
    if (MCInst_getNumOperands(MI) == 2 &&
2116
2.18k
        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
2117
2.18k
        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 15 &&
2118
1.07k
        MCOperand_isImm(MCInst_getOperand(MI, 1)) &&
2119
1.07k
        MCOperand_getImm(MCInst_getOperand(MI, 1)) == 15) {
2120
      // (FENCE 15, 15)
2121
122
      AsmString = "fence";
2122
122
      break;
2123
122
    }
2124
2.06k
    return false;
2125
967
  case RISCV_FMADD_D:
2126
967
    if (MCInst_getNumOperands(MI) == 5 &&
2127
967
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2128
967
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2129
967
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2130
967
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2131
967
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2132
967
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2133
967
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2134
967
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2135
967
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2136
967
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2137
      // (FMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 })
2138
229
      AsmString = "fmadd.d $\x01, $\x02, $\x03, $\x04";
2139
229
      break;
2140
229
    }
2141
738
    return false;
2142
785
  case RISCV_FMADD_S:
2143
785
    if (MCInst_getNumOperands(MI) == 5 &&
2144
785
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2145
785
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2146
785
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2147
785
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2148
785
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2149
785
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2150
785
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2151
785
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2152
785
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2153
785
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2154
      // (FMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 })
2155
386
      AsmString = "fmadd.s $\x01, $\x02, $\x03, $\x04";
2156
386
      break;
2157
386
    }
2158
399
    return false;
2159
1.74k
  case RISCV_FMSUB_D:
2160
1.74k
    if (MCInst_getNumOperands(MI) == 5 &&
2161
1.74k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2162
1.74k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2163
1.74k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2164
1.74k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2165
1.74k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2166
1.74k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2167
1.74k
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2168
1.74k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2169
1.74k
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2170
1.74k
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2171
      // (FMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 })
2172
413
      AsmString = "fmsub.d $\x01, $\x02, $\x03, $\x04";
2173
413
      break;
2174
413
    }
2175
1.33k
    return false;
2176
538
  case RISCV_FMSUB_S:
2177
538
    if (MCInst_getNumOperands(MI) == 5 &&
2178
538
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2179
538
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2180
538
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2181
538
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2182
538
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2183
538
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2184
538
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2185
538
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2186
538
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2187
538
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2188
      // (FMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 })
2189
136
      AsmString = "fmsub.s $\x01, $\x02, $\x03, $\x04";
2190
136
      break;
2191
136
    }
2192
402
    return false;
2193
277
  case RISCV_FMUL_D:
2194
277
    if (MCInst_getNumOperands(MI) == 4 &&
2195
277
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2196
277
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2197
277
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2198
277
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2199
277
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2200
277
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2201
277
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2202
277
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2203
      // (FMUL_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 })
2204
104
      AsmString = "fmul.d $\x01, $\x02, $\x03";
2205
104
      break;
2206
104
    }
2207
173
    return false;
2208
950
  case RISCV_FMUL_S:
2209
950
    if (MCInst_getNumOperands(MI) == 4 &&
2210
950
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2211
950
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2212
950
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2213
950
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2214
950
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2215
950
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2216
950
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2217
950
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2218
      // (FMUL_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 })
2219
538
      AsmString = "fmul.s $\x01, $\x02, $\x03";
2220
538
      break;
2221
538
    }
2222
412
    return false;
2223
429
  case RISCV_FNMADD_D:
2224
429
    if (MCInst_getNumOperands(MI) == 5 &&
2225
429
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2226
429
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2227
429
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2228
429
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2229
429
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2230
429
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2231
429
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2232
429
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2233
429
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2234
429
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2235
      // (FNMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 })
2236
139
      AsmString = "fnmadd.d $\x01, $\x02, $\x03, $\x04";
2237
139
      break;
2238
139
    }
2239
290
    return false;
2240
1.12k
  case RISCV_FNMADD_S:
2241
1.12k
    if (MCInst_getNumOperands(MI) == 5 &&
2242
1.12k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2243
1.12k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2244
1.12k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2245
1.12k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2246
1.12k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2247
1.12k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2248
1.12k
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2249
1.12k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2250
1.12k
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2251
1.12k
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2252
      // (FNMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 })
2253
543
      AsmString = "fnmadd.s $\x01, $\x02, $\x03, $\x04";
2254
543
      break;
2255
543
    }
2256
585
    return false;
2257
670
  case RISCV_FNMSUB_D:
2258
670
    if (MCInst_getNumOperands(MI) == 5 &&
2259
670
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2260
670
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2261
670
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2262
670
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2263
670
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2264
670
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2265
670
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2266
670
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2267
670
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2268
670
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2269
      // (FNMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 })
2270
269
      AsmString = "fnmsub.d $\x01, $\x02, $\x03, $\x04";
2271
269
      break;
2272
269
    }
2273
401
    return false;
2274
799
  case RISCV_FNMSUB_S:
2275
799
    if (MCInst_getNumOperands(MI) == 5 &&
2276
799
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2277
799
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2278
799
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2279
799
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2280
799
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2281
799
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2282
799
        MCOperand_isReg(MCInst_getOperand(MI, 3)) &&
2283
799
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 3))) &&
2284
799
        MCOperand_isImm(MCInst_getOperand(MI, 4)) &&
2285
799
        MCOperand_getImm(MCInst_getOperand(MI, 4)) == 7) {
2286
      // (FNMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 })
2287
317
      AsmString = "fnmsub.s $\x01, $\x02, $\x03, $\x04";
2288
317
      break;
2289
317
    }
2290
482
    return false;
2291
579
  case RISCV_FSGNJN_D:
2292
579
    if (MCInst_getNumOperands(MI) == 3 &&
2293
579
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2294
579
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2295
579
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2296
579
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2297
579
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2298
579
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2299
      // (FSGNJN_D FPR64:$rd, FPR64:$rs, FPR64:$rs)
2300
135
      AsmString = "fneg.d $\x01, $\x02";
2301
135
      break;
2302
135
    }
2303
444
    return false;
2304
1.22k
  case RISCV_FSGNJN_S:
2305
1.22k
    if (MCInst_getNumOperands(MI) == 3 &&
2306
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2307
1.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2308
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2309
1.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2310
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2311
1.22k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2312
      // (FSGNJN_S FPR32:$rd, FPR32:$rs, FPR32:$rs)
2313
834
      AsmString = "fneg.s $\x01, $\x02";
2314
834
      break;
2315
834
    }
2316
386
    return false;
2317
235
  case RISCV_FSGNJX_D:
2318
235
    if (MCInst_getNumOperands(MI) == 3 &&
2319
235
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2320
235
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2321
235
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2322
235
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2323
235
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2324
235
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2325
      // (FSGNJX_D FPR64:$rd, FPR64:$rs, FPR64:$rs)
2326
105
      AsmString = "fabs.d $\x01, $\x02";
2327
105
      break;
2328
105
    }
2329
130
    return false;
2330
2.22k
  case RISCV_FSGNJX_S:
2331
2.22k
    if (MCInst_getNumOperands(MI) == 3 &&
2332
2.22k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2333
2.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2334
2.22k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2335
2.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2336
2.22k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2337
2.22k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2338
      // (FSGNJX_S FPR32:$rd, FPR32:$rs, FPR32:$rs)
2339
582
      AsmString = "fabs.s $\x01, $\x02";
2340
582
      break;
2341
582
    }
2342
1.63k
    return false;
2343
1.22k
  case RISCV_FSGNJ_D:
2344
1.22k
    if (MCInst_getNumOperands(MI) == 3 &&
2345
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2346
1.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2347
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2348
1.22k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2349
1.22k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2350
1.22k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2351
      // (FSGNJ_D FPR64:$rd, FPR64:$rs, FPR64:$rs)
2352
214
      AsmString = "fmv.d $\x01, $\x02";
2353
214
      break;
2354
214
    }
2355
1.00k
    return false;
2356
2.50k
  case RISCV_FSGNJ_S:
2357
2.50k
    if (MCInst_getNumOperands(MI) == 3 &&
2358
2.50k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2359
2.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2360
2.50k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2361
2.50k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2362
2.50k
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2363
2.50k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == MCOperand_getReg(MCInst_getOperand(MI, 1))) {
2364
      // (FSGNJ_S FPR32:$rd, FPR32:$rs, FPR32:$rs)
2365
1.96k
      AsmString = "fmv.s $\x01, $\x02";
2366
1.96k
      break;
2367
1.96k
    }
2368
534
    return false;
2369
2.04k
  case RISCV_FSQRT_D:
2370
2.04k
    if (MCInst_getNumOperands(MI) == 3 &&
2371
2.04k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2372
2.04k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2373
2.04k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2374
2.04k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2375
2.04k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2376
2.04k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2377
      // (FSQRT_D FPR64:$rd, FPR64:$rs1, { 1, 1, 1 })
2378
1.13k
      AsmString = "fsqrt.d $\x01, $\x02";
2379
1.13k
      break;
2380
1.13k
    }
2381
904
    return false;
2382
1.53k
  case RISCV_FSQRT_S:
2383
1.53k
    if (MCInst_getNumOperands(MI) == 3 &&
2384
1.53k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2385
1.53k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2386
1.53k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2387
1.53k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2388
1.53k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2389
1.53k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 7) {
2390
      // (FSQRT_S FPR32:$rd, FPR32:$rs1, { 1, 1, 1 })
2391
586
      AsmString = "fsqrt.s $\x01, $\x02";
2392
586
      break;
2393
586
    }
2394
949
    return false;
2395
741
  case RISCV_FSUB_D:
2396
741
    if (MCInst_getNumOperands(MI) == 4 &&
2397
741
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2398
741
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2399
741
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2400
741
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2401
741
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2402
741
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR64RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2403
741
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2404
741
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2405
      // (FSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 })
2406
392
      AsmString = "fsub.d $\x01, $\x02, $\x03";
2407
392
      break;
2408
392
    }
2409
349
    return false;
2410
484
  case RISCV_FSUB_S:
2411
484
    if (MCInst_getNumOperands(MI) == 4 &&
2412
484
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2413
484
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2414
484
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2415
484
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2416
484
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2417
484
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_FPR32RegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2))) &&
2418
484
        MCOperand_isImm(MCInst_getOperand(MI, 3)) &&
2419
484
        MCOperand_getImm(MCInst_getOperand(MI, 3)) == 7) {
2420
      // (FSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 })
2421
376
      AsmString = "fsub.s $\x01, $\x02, $\x03";
2422
376
      break;
2423
376
    }
2424
108
    return false;
2425
1.43k
  case RISCV_JAL:
2426
1.43k
    if (MCInst_getNumOperands(MI) == 2 &&
2427
1.43k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
2428
322
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 1), 2)) {
2429
      // (JAL X0, simm21_lsb0_jal:$offset)
2430
322
      AsmString = "j $\x02";
2431
322
      break;
2432
322
    }
2433
1.10k
    if (MCInst_getNumOperands(MI) == 2 &&
2434
1.10k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X1 &&
2435
141
        RISCVInstPrinterValidateMCOperand(MCInst_getOperand(MI, 1), 2)) {
2436
      // (JAL X1, simm21_lsb0_jal:$offset)
2437
141
      AsmString = "jal $\x02";
2438
141
      break;
2439
141
    }
2440
967
    return false;
2441
1.80k
  case RISCV_JALR:
2442
1.80k
    if (MCInst_getNumOperands(MI) == 3 &&
2443
1.80k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
2444
1.51k
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X1 &&
2445
681
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2446
681
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
2447
      // (JALR X0, X1, 0)
2448
368
      AsmString = "ret";
2449
368
      break;
2450
368
    }
2451
1.43k
    if (MCInst_getNumOperands(MI) == 3 &&
2452
1.43k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
2453
1.14k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2454
1.14k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2455
1.14k
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2456
1.14k
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
2457
      // (JALR X0, GPR:$rs, 0)
2458
170
      AsmString = "jr $\x02";
2459
170
      break;
2460
170
    }
2461
1.26k
    if (MCInst_getNumOperands(MI) == 3 &&
2462
1.26k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X1 &&
2463
215
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2464
215
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2465
215
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2466
215
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 0) {
2467
      // (JALR X1, GPR:$rs, 0)
2468
54
      AsmString = "jalr $\x02";
2469
54
      break;
2470
54
    }
2471
1.21k
    return false;
2472
2.14k
  case RISCV_SFENCE_VMA:
2473
2.14k
    if (MCInst_getNumOperands(MI) == 2 &&
2474
2.14k
        MCOperand_getReg(MCInst_getOperand(MI, 0)) == RISCV_X0 &&
2475
1.36k
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0) {
2476
      // (SFENCE_VMA X0, X0)
2477
945
      AsmString = "sfence.vma";
2478
945
      break;
2479
945
    }
2480
1.19k
    if (MCInst_getNumOperands(MI) == 2 &&
2481
1.19k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2482
1.19k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2483
1.19k
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0) {
2484
      // (SFENCE_VMA GPR:$rs, X0)
2485
405
      AsmString = "sfence.vma $\x01";
2486
405
      break;
2487
405
    }
2488
793
    return false;
2489
2.11k
  case RISCV_SLT:
2490
2.11k
    if (MCInst_getNumOperands(MI) == 3 &&
2491
2.11k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2492
2.11k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2493
2.11k
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2494
2.11k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2495
2.11k
        MCOperand_getReg(MCInst_getOperand(MI, 2)) == RISCV_X0) {
2496
      // (SLT GPR:$rd, GPR:$rs, X0)
2497
707
      AsmString = "sltz $\x01, $\x02";
2498
707
      break;
2499
707
    }
2500
1.40k
    if (MCInst_getNumOperands(MI) == 3 &&
2501
1.40k
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2502
1.40k
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2503
1.40k
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
2504
922
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2505
922
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
2506
      // (SLT GPR:$rd, X0, GPR:$rs)
2507
922
      AsmString = "sgtz $\x01, $\x03";
2508
922
      break;
2509
922
    }
2510
481
    return false;
2511
451
  case RISCV_SLTIU:
2512
451
    if (MCInst_getNumOperands(MI) == 3 &&
2513
451
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2514
451
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2515
451
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2516
451
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2517
451
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2518
451
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == 1) {
2519
      // (SLTIU GPR:$rd, GPR:$rs, 1)
2520
136
      AsmString = "seqz $\x01, $\x02";
2521
136
      break;
2522
136
    }
2523
315
    return false;
2524
482
  case RISCV_SLTU:
2525
482
    if (MCInst_getNumOperands(MI) == 3 &&
2526
482
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2527
482
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2528
482
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
2529
392
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2530
392
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
2531
      // (SLTU GPR:$rd, X0, GPR:$rs)
2532
392
      AsmString = "snez $\x01, $\x03";
2533
392
      break;
2534
392
    }
2535
90
    return false;
2536
197
  case RISCV_SUB:
2537
197
    if (MCInst_getNumOperands(MI) == 3 &&
2538
197
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2539
197
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2540
197
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
2541
101
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2542
101
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
2543
      // (SUB GPR:$rd, X0, GPR:$rs)
2544
101
      AsmString = "neg $\x01, $\x03";
2545
101
      break;
2546
101
    }
2547
96
    return false;
2548
170
  case RISCV_SUBW:
2549
170
    if (MCInst_getNumOperands(MI) == 3 &&
2550
170
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2551
170
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2552
170
        MCOperand_getReg(MCInst_getOperand(MI, 1)) == RISCV_X0 &&
2553
102
        MCOperand_isReg(MCInst_getOperand(MI, 2)) &&
2554
102
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 2)))) {
2555
      // (SUBW GPR:$rd, X0, GPR:$rs)
2556
102
      AsmString = "negw $\x01, $\x03";
2557
102
      break;
2558
102
    }
2559
68
    return false;
2560
680
  case RISCV_XORI:
2561
680
    if (MCInst_getNumOperands(MI) == 3 &&
2562
680
        MCOperand_isReg(MCInst_getOperand(MI, 0)) &&
2563
680
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 0))) &&
2564
680
        MCOperand_isReg(MCInst_getOperand(MI, 1)) &&
2565
680
        MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, RISCV_GPRRegClassID), MCOperand_getReg(MCInst_getOperand(MI, 1))) &&
2566
680
        MCOperand_isImm(MCInst_getOperand(MI, 2)) &&
2567
680
        MCOperand_getImm(MCInst_getOperand(MI, 2)) == -1) {
2568
      // (XORI GPR:$rd, GPR:$rs, -1)
2569
273
      AsmString = "not $\x01, $\x02";
2570
273
      break;
2571
273
    }
2572
407
    return false;
2573
215k
  }
2574
2575
59.7k
  AsmStringLen = strlen(AsmString);
2576
59.7k
  if (ASMSTRING_CONTAIN_SIZE - 1 < AsmStringLen)
2577
0
    tmpString = cs_strdup(AsmString);
2578
59.7k
  else
2579
59.7k
    tmpString = memcpy(tmpString, AsmString, 1 + AsmStringLen);
2580
2581
405k
  while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
2582
347k
         AsmString[I] != '$' && AsmString[I] != '\0')
2583
345k
    ++I;
2584
59.7k
  tmpString[I] = 0;
2585
59.7k
  SStream_concat0(OS, tmpString);
2586
59.7k
  if (ASMSTRING_CONTAIN_SIZE - 1 < AsmStringLen)
2587
    /* Free the possible cs_strdup() memory. PR#1424. */
2588
0
    cs_mem_free(tmpString);
2589
59.7k
#undef ASMSTRING_CONTAIN_SIZE
2590
2591
59.7k
  if (AsmString[I] != '\0') {
2592
57.7k
    if (AsmString[I] == ' ' || AsmString[I] == '\t') {
2593
57.7k
      SStream_concat0(OS, " ");
2594
57.7k
      ++I;
2595
57.7k
    }
2596
236k
    do {
2597
236k
      if (AsmString[I] == '$') {
2598
117k
        ++I;
2599
117k
        if (AsmString[I] == (char)0xff) {
2600
21.0k
          ++I;
2601
21.0k
          int OpIdx = AsmString[I++] - 1;
2602
21.0k
          int PrintMethodIdx = AsmString[I++] - 1;
2603
21.0k
          printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS);
2604
21.0k
        } else
2605
96.2k
          printOperand(MI, (unsigned)(AsmString[I++]) - 1, OS);
2606
119k
      } else {
2607
119k
        SStream_concat1(OS, AsmString[I++]);
2608
119k
      }
2609
236k
    } while (AsmString[I] != '\0');
2610
57.7k
  }
2611
2612
59.7k
  return true;
2613
215k
}
2614
2615
static void printCustomAliasOperand(
2616
         MCInst *MI, unsigned OpIdx,
2617
         unsigned PrintMethodIdx,
2618
21.0k
         SStream *OS) {
2619
21.0k
  switch (PrintMethodIdx) {
2620
0
  default:
2621
0
    CS_ASSERT(0 && "Unknown PrintMethod kind");
2622
0
    break;
2623
21.0k
  case 0:
2624
21.0k
    printCSRSystemRegister(MI, OpIdx, OS);
2625
21.0k
    break;
2626
21.0k
  }
2627
21.0k
}
2628
2629
static bool RISCVInstPrinterValidateMCOperand(MCOperand *MCOp,
2630
1.86k
                  unsigned PredicateIndex) {
2631
  // TODO: need some constant untils operate the MCOperand,
2632
  // but current CAPSTONE doesn't have.
2633
  // So, We just return true
2634
1.86k
  return true;
2635
2636
#if 0
2637
  switch (PredicateIndex) {
2638
  default:
2639
    llvm_unreachable("Unknown MCOperandPredicate kind");
2640
    break;
2641
  case 1: {
2642
2643
    int64_t Imm;
2644
    if (MCOp.evaluateAsConstantImm(Imm))
2645
      return isShiftedInt<12, 1>(Imm);
2646
    return MCOp.isBareSymbolRef();
2647
  
2648
    }
2649
  case 2: {
2650
2651
    int64_t Imm;
2652
    if (MCOp.evaluateAsConstantImm(Imm))
2653
      return isShiftedInt<20, 1>(Imm);
2654
    return MCOp.isBareSymbolRef();
2655
  
2656
    }
2657
  }
2658
#endif
2659
1.86k
}
2660
2661
#endif // PRINT_ALIAS_INSTR