Coverage Report

Created: 2025-10-28 07:02

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