Coverage Report

Created: 2025-12-05 06:11

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