Coverage Report

Created: 2018-09-19 20:53

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-build/lib/Target/Sparc/SparcGenAsmWriter.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* Assembly Writer Source Fragment                                            *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
/// printInstruction - This method is automatically generated by tablegen
10
/// from the instruction set description.
11
0
void SparcInstPrinter::printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O) {
12
0
  static const char AsmStrs[] = {
13
0
  /* 0 */ 'r', 'd', 32, '%', 'w', 'i', 'm', ',', 32, 0,
14
0
  /* 10 */ 'r', 'd', 32, '%', 't', 'b', 'r', ',', 32, 0,
15
0
  /* 20 */ 'r', 'd', 32, '%', 'p', 's', 'r', ',', 32, 0,
16
0
  /* 30 */ 'f', 's', 'r', 'c', '1', 32, 0,
17
0
  /* 37 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 32, 0,
18
0
  /* 47 */ 'f', 'n', 'o', 't', '1', 32, 0,
19
0
  /* 54 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 32, 0,
20
0
  /* 63 */ 'f', 's', 'r', 'a', '3', '2', 32, 0,
21
0
  /* 71 */ 'f', 'p', 's', 'u', 'b', '3', '2', 32, 0,
22
0
  /* 80 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 32, 0,
23
0
  /* 89 */ 'e', 'd', 'g', 'e', '3', '2', 32, 0,
24
0
  /* 97 */ 'f', 'c', 'm', 'p', 'l', 'e', '3', '2', 32, 0,
25
0
  /* 107 */ 'f', 'c', 'm', 'p', 'n', 'e', '3', '2', 32, 0,
26
0
  /* 117 */ 'f', 'p', 'a', 'c', 'k', '3', '2', 32, 0,
27
0
  /* 126 */ 'c', 'm', 'a', 's', 'k', '3', '2', 32, 0,
28
0
  /* 135 */ 'f', 's', 'l', 'l', '3', '2', 32, 0,
29
0
  /* 143 */ 'f', 's', 'r', 'l', '3', '2', 32, 0,
30
0
  /* 151 */ 'f', 'c', 'm', 'p', 'e', 'q', '3', '2', 32, 0,
31
0
  /* 161 */ 'f', 's', 'l', 'a', 's', '3', '2', 32, 0,
32
0
  /* 170 */ 'f', 'c', 'm', 'p', 'g', 't', '3', '2', 32, 0,
33
0
  /* 180 */ 'a', 'r', 'r', 'a', 'y', '3', '2', 32, 0,
34
0
  /* 189 */ 'f', 's', 'r', 'c', '2', 32, 0,
35
0
  /* 196 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 32, 0,
36
0
  /* 206 */ 'f', 'n', 'o', 't', '2', 32, 0,
37
0
  /* 213 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 32, 0,
38
0
  /* 222 */ 'f', 'p', 'a', 'd', 'd', '6', '4', 32, 0,
39
0
  /* 231 */ 'f', 's', 'r', 'a', '1', '6', 32, 0,
40
0
  /* 239 */ 'f', 'p', 's', 'u', 'b', '1', '6', 32, 0,
41
0
  /* 248 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 32, 0,
42
0
  /* 257 */ 'e', 'd', 'g', 'e', '1', '6', 32, 0,
43
0
  /* 265 */ 'f', 'c', 'm', 'p', 'l', 'e', '1', '6', 32, 0,
44
0
  /* 275 */ 'f', 'c', 'm', 'p', 'n', 'e', '1', '6', 32, 0,
45
0
  /* 285 */ 'f', 'p', 'a', 'c', 'k', '1', '6', 32, 0,
46
0
  /* 294 */ 'c', 'm', 'a', 's', 'k', '1', '6', 32, 0,
47
0
  /* 303 */ 'f', 's', 'l', 'l', '1', '6', 32, 0,
48
0
  /* 311 */ 'f', 's', 'r', 'l', '1', '6', 32, 0,
49
0
  /* 319 */ 'f', 'c', 'h', 'k', 's', 'm', '1', '6', 32, 0,
50
0
  /* 329 */ 'f', 'm', 'e', 'a', 'n', '1', '6', 32, 0,
51
0
  /* 338 */ 'f', 'c', 'm', 'p', 'e', 'q', '1', '6', 32, 0,
52
0
  /* 348 */ 'f', 's', 'l', 'a', 's', '1', '6', 32, 0,
53
0
  /* 357 */ 'f', 'c', 'm', 'p', 'g', 't', '1', '6', 32, 0,
54
0
  /* 367 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 32, 0,
55
0
  /* 377 */ 'f', 'm', 'u', 'l', 'd', '8', 'u', 'l', 'x', '1', '6', 32, 0,
56
0
  /* 390 */ 'f', 'm', 'u', 'l', '8', 'u', 'l', 'x', '1', '6', 32, 0,
57
0
  /* 402 */ 'f', 'm', 'u', 'l', 'd', '8', 's', 'u', 'x', '1', '6', 32, 0,
58
0
  /* 415 */ 'f', 'm', 'u', 'l', '8', 's', 'u', 'x', '1', '6', 32, 0,
59
0
  /* 427 */ 'a', 'r', 'r', 'a', 'y', '1', '6', 32, 0,
60
0
  /* 436 */ 'e', 'd', 'g', 'e', '8', 32, 0,
61
0
  /* 443 */ 'c', 'm', 'a', 's', 'k', '8', 32, 0,
62
0
  /* 451 */ 'a', 'r', 'r', 'a', 'y', '8', 32, 0,
63
0
  /* 459 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
64
0
  /* 478 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
65
0
  /* 495 */ 'f', 'p', 's', 'u', 'b', '3', '2', 'S', 32, 0,
66
0
  /* 505 */ 'f', 'p', 's', 'u', 'b', '1', '6', 'S', 32, 0,
67
0
  /* 515 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', 32, 0,
68
0
  /* 524 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', 32, 0,
69
0
  /* 533 */ 'b', 'r', 'g', 'z', ',', 'a', 32, 0,
70
0
  /* 541 */ 'b', 'r', 'l', 'z', ',', 'a', 32, 0,
71
0
  /* 549 */ 'b', 'r', 'n', 'z', ',', 'a', 32, 0,
72
0
  /* 557 */ 'b', 'r', 'z', ',', 'a', 32, 0,
73
0
  /* 564 */ 's', 't', 'b', 'a', 32, 0,
74
0
  /* 570 */ 's', 't', 'd', 'a', 32, 0,
75
0
  /* 576 */ 's', 't', 'h', 'a', 32, 0,
76
0
  /* 582 */ 's', 't', 'q', 'a', 32, 0,
77
0
  /* 588 */ 's', 'r', 'a', 32, 0,
78
0
  /* 593 */ 'f', 'a', 'l', 'i', 'g', 'n', 'd', 'a', 't', 'a', 32, 0,
79
0
  /* 605 */ 's', 't', 'a', 32, 0,
80
0
  /* 610 */ 's', 't', 'b', 32, 0,
81
0
  /* 615 */ 's', 'u', 'b', 32, 0,
82
0
  /* 620 */ 's', 'm', 'a', 'c', 32, 0,
83
0
  /* 626 */ 'u', 'm', 'a', 'c', 32, 0,
84
0
  /* 632 */ 't', 's', 'u', 'b', 'c', 'c', 32, 0,
85
0
  /* 640 */ 'a', 'd', 'd', 'x', 'c', 'c', 'c', 32, 0,
86
0
  /* 649 */ 't', 'a', 'd', 'd', 'c', 'c', 32, 0,
87
0
  /* 657 */ 'a', 'n', 'd', 'c', 'c', 32, 0,
88
0
  /* 664 */ 's', 'm', 'u', 'l', 'c', 'c', 32, 0,
89
0
  /* 672 */ 'u', 'm', 'u', 'l', 'c', 'c', 32, 0,
90
0
  /* 680 */ 'a', 'n', 'd', 'n', 'c', 'c', 32, 0,
91
0
  /* 688 */ 'o', 'r', 'n', 'c', 'c', 32, 0,
92
0
  /* 695 */ 'x', 'n', 'o', 'r', 'c', 'c', 32, 0,
93
0
  /* 703 */ 'x', 'o', 'r', 'c', 'c', 32, 0,
94
0
  /* 710 */ 'm', 'u', 'l', 's', 'c', 'c', 32, 0,
95
0
  /* 718 */ 's', 'd', 'i', 'v', 'c', 'c', 32, 0,
96
0
  /* 726 */ 'u', 'd', 'i', 'v', 'c', 'c', 32, 0,
97
0
  /* 734 */ 's', 'u', 'b', 'x', 'c', 'c', 32, 0,
98
0
  /* 742 */ 'a', 'd', 'd', 'x', 'c', 'c', 32, 0,
99
0
  /* 750 */ 'p', 'o', 'p', 'c', 32, 0,
100
0
  /* 756 */ 'a', 'd', 'd', 'x', 'c', 32, 0,
101
0
  /* 763 */ 'f', 's', 'u', 'b', 'd', 32, 0,
102
0
  /* 770 */ 'f', 'h', 's', 'u', 'b', 'd', 32, 0,
103
0
  /* 778 */ 'a', 'd', 'd', 32, 0,
104
0
  /* 783 */ 'f', 'a', 'd', 'd', 'd', 32, 0,
105
0
  /* 790 */ 'f', 'h', 'a', 'd', 'd', 'd', 32, 0,
106
0
  /* 798 */ 'f', 'n', 'h', 'a', 'd', 'd', 'd', 32, 0,
107
0
  /* 807 */ 'f', 'n', 'a', 'd', 'd', 'd', 32, 0,
108
0
  /* 815 */ 'f', 'c', 'm', 'p', 'e', 'd', 32, 0,
109
0
  /* 823 */ 'f', 'n', 'e', 'g', 'd', 32, 0,
110
0
  /* 830 */ 'f', 'm', 'u', 'l', 'd', 32, 0,
111
0
  /* 837 */ 'f', 's', 'm', 'u', 'l', 'd', 32, 0,
112
0
  /* 845 */ 'f', 'a', 'n', 'd', 32, 0,
113
0
  /* 851 */ 'f', 'n', 'a', 'n', 'd', 32, 0,
114
0
  /* 858 */ 'f', 'e', 'x', 'p', 'a', 'n', 'd', 32, 0,
115
0
  /* 867 */ 'f', 'i', 't', 'o', 'd', 32, 0,
116
0
  /* 874 */ 'f', 'q', 't', 'o', 'd', 32, 0,
117
0
  /* 881 */ 'f', 's', 't', 'o', 'd', 32, 0,
118
0
  /* 888 */ 'f', 'x', 't', 'o', 'd', 32, 0,
119
0
  /* 895 */ 'f', 'c', 'm', 'p', 'd', 32, 0,
120
0
  /* 902 */ 'f', 'l', 'c', 'm', 'p', 'd', 32, 0,
121
0
  /* 910 */ 'r', 'd', 32, 0,
122
0
  /* 914 */ 'f', 'a', 'b', 's', 'd', 32, 0,
123
0
  /* 921 */ 'f', 's', 'q', 'r', 't', 'd', 32, 0,
124
0
  /* 929 */ 's', 't', 'd', 32, 0,
125
0
  /* 934 */ 'f', 'd', 'i', 'v', 'd', 32, 0,
126
0
  /* 941 */ 'f', 'm', 'o', 'v', 'd', 32, 0,
127
0
  /* 948 */ 'f', 'p', 'm', 'e', 'r', 'g', 'e', 32, 0,
128
0
  /* 957 */ 'b', 's', 'h', 'u', 'f', 'f', 'l', 'e', 32, 0,
129
0
  /* 967 */ 'f', 'o', 'n', 'e', 32, 0,
130
0
  /* 973 */ 'r', 'e', 's', 't', 'o', 'r', 'e', 32, 0,
131
0
  /* 982 */ 's', 'a', 'v', 'e', 32, 0,
132
0
  /* 988 */ 'f', 'l', 'u', 's', 'h', 32, 0,
133
0
  /* 995 */ 's', 't', 'h', 32, 0,
134
0
  /* 1000 */ 's', 'e', 't', 'h', 'i', 32, 0,
135
0
  /* 1007 */ 'u', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
136
0
  /* 1016 */ 'x', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
137
0
  /* 1025 */ 'f', 'd', 't', 'o', 'i', 32, 0,
138
0
  /* 1032 */ 'f', 'q', 't', 'o', 'i', 32, 0,
139
0
  /* 1039 */ 'f', 's', 't', 'o', 'i', 32, 0,
140
0
  /* 1046 */ 'b', 'm', 'a', 's', 'k', 32, 0,
141
0
  /* 1053 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 32, 0,
142
0
  /* 1062 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 32, 0,
143
0
  /* 1071 */ 'e', 'd', 'g', 'e', '8', 'l', 32, 0,
144
0
  /* 1079 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'l', 32, 0,
145
0
  /* 1091 */ 'c', 'a', 'l', 'l', 32, 0,
146
0
  /* 1097 */ 's', 'l', 'l', 32, 0,
147
0
  /* 1102 */ 'j', 'm', 'p', 'l', 32, 0,
148
0
  /* 1108 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 'l', 32, 0,
149
0
  /* 1120 */ 's', 'r', 'l', 32, 0,
150
0
  /* 1125 */ 's', 'm', 'u', 'l', 32, 0,
151
0
  /* 1131 */ 'u', 'm', 'u', 'l', 32, 0,
152
0
  /* 1137 */ 'e', 'd', 'g', 'e', '3', '2', 'n', 32, 0,
153
0
  /* 1146 */ 'e', 'd', 'g', 'e', '1', '6', 'n', 32, 0,
154
0
  /* 1155 */ 'e', 'd', 'g', 'e', '8', 'n', 32, 0,
155
0
  /* 1163 */ 'a', 'n', 'd', 'n', 32, 0,
156
0
  /* 1169 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 'n', 32, 0,
157
0
  /* 1179 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 'n', 32, 0,
158
0
  /* 1189 */ 'e', 'd', 'g', 'e', '8', 'l', 'n', 32, 0,
159
0
  /* 1198 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
160
0
  /* 1210 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
161
0
  /* 1222 */ 'b', 'r', 'g', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
162
0
  /* 1233 */ 'b', 'r', 'l', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
163
0
  /* 1244 */ 'b', 'r', 'n', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
164
0
  /* 1255 */ 'b', 'r', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
165
0
  /* 1265 */ 'b', 'r', 'g', 'e', 'z', ',', 'p', 'n', 32, 0,
166
0
  /* 1275 */ 'b', 'r', 'l', 'e', 'z', ',', 'p', 'n', 32, 0,
167
0
  /* 1285 */ 'b', 'r', 'g', 'z', ',', 'p', 'n', 32, 0,
168
0
  /* 1294 */ 'b', 'r', 'l', 'z', ',', 'p', 'n', 32, 0,
169
0
  /* 1303 */ 'b', 'r', 'n', 'z', ',', 'p', 'n', 32, 0,
170
0
  /* 1312 */ 'b', 'r', 'z', ',', 'p', 'n', 32, 0,
171
0
  /* 1320 */ 'o', 'r', 'n', 32, 0,
172
0
  /* 1325 */ 'p', 'd', 'i', 's', 't', 'n', 32, 0,
173
0
  /* 1333 */ 'f', 'z', 'e', 'r', 'o', 32, 0,
174
0
  /* 1340 */ 'c', 'm', 'p', 32, 0,
175
0
  /* 1345 */ 'u', 'n', 'i', 'm', 'p', 32, 0,
176
0
  /* 1352 */ 'j', 'm', 'p', 32, 0,
177
0
  /* 1357 */ 'f', 's', 'u', 'b', 'q', 32, 0,
178
0
  /* 1364 */ 'f', 'a', 'd', 'd', 'q', 32, 0,
179
0
  /* 1371 */ 'f', 'c', 'm', 'p', 'e', 'q', 32, 0,
180
0
  /* 1379 */ 'f', 'n', 'e', 'g', 'q', 32, 0,
181
0
  /* 1386 */ 'f', 'd', 'm', 'u', 'l', 'q', 32, 0,
182
0
  /* 1394 */ 'f', 'm', 'u', 'l', 'q', 32, 0,
183
0
  /* 1401 */ 'f', 'd', 't', 'o', 'q', 32, 0,
184
0
  /* 1408 */ 'f', 'i', 't', 'o', 'q', 32, 0,
185
0
  /* 1415 */ 'f', 's', 't', 'o', 'q', 32, 0,
186
0
  /* 1422 */ 'f', 'x', 't', 'o', 'q', 32, 0,
187
0
  /* 1429 */ 'f', 'c', 'm', 'p', 'q', 32, 0,
188
0
  /* 1436 */ 'f', 'a', 'b', 's', 'q', 32, 0,
189
0
  /* 1443 */ 'f', 's', 'q', 'r', 't', 'q', 32, 0,
190
0
  /* 1451 */ 's', 't', 'q', 32, 0,
191
0
  /* 1456 */ 'f', 'd', 'i', 'v', 'q', 32, 0,
192
0
  /* 1463 */ 'f', 'm', 'o', 'v', 'q', 32, 0,
193
0
  /* 1470 */ 'm', 'e', 'm', 'b', 'a', 'r', 32, 0,
194
0
  /* 1478 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 32, 0,
195
0
  /* 1489 */ 'f', 'o', 'r', 32, 0,
196
0
  /* 1494 */ 'f', 'n', 'o', 'r', 32, 0,
197
0
  /* 1500 */ 'f', 'x', 'n', 'o', 'r', 32, 0,
198
0
  /* 1507 */ 'f', 'x', 'o', 'r', 32, 0,
199
0
  /* 1513 */ 'r', 'd', 'p', 'r', 32, 0,
200
0
  /* 1519 */ 'w', 'r', 'p', 'r', 32, 0,
201
0
  /* 1525 */ 'w', 'r', 32, 0,
202
0
  /* 1529 */ 'f', 's', 'r', 'c', '1', 's', 32, 0,
203
0
  /* 1537 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 's', 32, 0,
204
0
  /* 1548 */ 'f', 'n', 'o', 't', '1', 's', 32, 0,
205
0
  /* 1556 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 's', 32, 0,
206
0
  /* 1566 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 's', 32, 0,
207
0
  /* 1576 */ 'f', 's', 'r', 'c', '2', 's', 32, 0,
208
0
  /* 1584 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 's', 32, 0,
209
0
  /* 1595 */ 'f', 'n', 'o', 't', '2', 's', 32, 0,
210
0
  /* 1603 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 's', 32, 0,
211
0
  /* 1613 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 's', 32, 0,
212
0
  /* 1623 */ 'f', 's', 'u', 'b', 's', 32, 0,
213
0
  /* 1630 */ 'f', 'h', 's', 'u', 'b', 's', 32, 0,
214
0
  /* 1638 */ 'f', 'a', 'd', 'd', 's', 32, 0,
215
0
  /* 1645 */ 'f', 'h', 'a', 'd', 'd', 's', 32, 0,
216
0
  /* 1653 */ 'f', 'n', 'h', 'a', 'd', 'd', 's', 32, 0,
217
0
  /* 1662 */ 'f', 'n', 'a', 'd', 'd', 's', 32, 0,
218
0
  /* 1670 */ 'f', 'a', 'n', 'd', 's', 32, 0,
219
0
  /* 1677 */ 'f', 'n', 'a', 'n', 'd', 's', 32, 0,
220
0
  /* 1685 */ 'f', 'o', 'n', 'e', 's', 32, 0,
221
0
  /* 1692 */ 'f', 'c', 'm', 'p', 'e', 's', 32, 0,
222
0
  /* 1700 */ 'f', 'n', 'e', 'g', 's', 32, 0,
223
0
  /* 1707 */ 'f', 'm', 'u', 'l', 's', 32, 0,
224
0
  /* 1714 */ 'f', 'z', 'e', 'r', 'o', 's', 32, 0,
225
0
  /* 1722 */ 'f', 'd', 't', 'o', 's', 32, 0,
226
0
  /* 1729 */ 'f', 'i', 't', 'o', 's', 32, 0,
227
0
  /* 1736 */ 'f', 'q', 't', 'o', 's', 32, 0,
228
0
  /* 1743 */ 'f', 'x', 't', 'o', 's', 32, 0,
229
0
  /* 1750 */ 'f', 'c', 'm', 'p', 's', 32, 0,
230
0
  /* 1757 */ 'f', 'l', 'c', 'm', 'p', 's', 32, 0,
231
0
  /* 1765 */ 'f', 'o', 'r', 's', 32, 0,
232
0
  /* 1771 */ 'f', 'n', 'o', 'r', 's', 32, 0,
233
0
  /* 1778 */ 'f', 'x', 'n', 'o', 'r', 's', 32, 0,
234
0
  /* 1786 */ 'f', 'x', 'o', 'r', 's', 32, 0,
235
0
  /* 1793 */ 'f', 'a', 'b', 's', 's', 32, 0,
236
0
  /* 1800 */ 'f', 's', 'q', 'r', 't', 's', 32, 0,
237
0
  /* 1808 */ 'f', 'd', 'i', 'v', 's', 32, 0,
238
0
  /* 1815 */ 'f', 'm', 'o', 'v', 's', 32, 0,
239
0
  /* 1822 */ 's', 'e', 't', 32, 0,
240
0
  /* 1827 */ 'l', 'z', 'c', 'n', 't', 32, 0,
241
0
  /* 1834 */ 'p', 'd', 'i', 's', 't', 32, 0,
242
0
  /* 1841 */ 'r', 'e', 't', 't', 32, 0,
243
0
  /* 1847 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'u', 32, 0,
244
0
  /* 1859 */ 's', 'd', 'i', 'v', 32, 0,
245
0
  /* 1865 */ 'u', 'd', 'i', 'v', 32, 0,
246
0
  /* 1871 */ 't', 's', 'u', 'b', 'c', 'c', 't', 'v', 32, 0,
247
0
  /* 1881 */ 't', 'a', 'd', 'd', 'c', 'c', 't', 'v', 32, 0,
248
0
  /* 1891 */ 'm', 'o', 'v', 's', 't', 'o', 's', 'w', 32, 0,
249
0
  /* 1901 */ 'm', 'o', 'v', 's', 't', 'o', 'u', 'w', 32, 0,
250
0
  /* 1911 */ 's', 'r', 'a', 'x', 32, 0,
251
0
  /* 1917 */ 's', 'u', 'b', 'x', 32, 0,
252
0
  /* 1923 */ 'a', 'd', 'd', 'x', 32, 0,
253
0
  /* 1929 */ 'f', 'p', 'a', 'c', 'k', 'f', 'i', 'x', 32, 0,
254
0
  /* 1939 */ 's', 'l', 'l', 'x', 32, 0,
255
0
  /* 1945 */ 's', 'r', 'l', 'x', 32, 0,
256
0
  /* 1951 */ 'x', 'm', 'u', 'l', 'x', 32, 0,
257
0
  /* 1958 */ 'f', 'd', 't', 'o', 'x', 32, 0,
258
0
  /* 1965 */ 'm', 'o', 'v', 'd', 't', 'o', 'x', 32, 0,
259
0
  /* 1974 */ 'f', 'q', 't', 'o', 'x', 32, 0,
260
0
  /* 1981 */ 'f', 's', 't', 'o', 'x', 32, 0,
261
0
  /* 1988 */ 's', 't', 'x', 32, 0,
262
0
  /* 1993 */ 's', 'd', 'i', 'v', 'x', 32, 0,
263
0
  /* 2000 */ 'u', 'd', 'i', 'v', 'x', 32, 0,
264
0
  /* 2007 */ 'f', 'm', 'o', 'v', 'r', 'd', 'z', 32, 0,
265
0
  /* 2016 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'e', 'z', 32, 0,
266
0
  /* 2027 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'e', 'z', 32, 0,
267
0
  /* 2038 */ 'b', 'r', 'g', 'e', 'z', 32, 0,
268
0
  /* 2045 */ 'm', 'o', 'v', 'r', 'g', 'e', 'z', 32, 0,
269
0
  /* 2054 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'e', 'z', 32, 0,
270
0
  /* 2065 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'e', 'z', 32, 0,
271
0
  /* 2076 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'e', 'z', 32, 0,
272
0
  /* 2087 */ 'b', 'r', 'l', 'e', 'z', 32, 0,
273
0
  /* 2094 */ 'm', 'o', 'v', 'r', 'l', 'e', 'z', 32, 0,
274
0
  /* 2103 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'e', 'z', 32, 0,
275
0
  /* 2114 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'z', 32, 0,
276
0
  /* 2124 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'z', 32, 0,
277
0
  /* 2134 */ 'b', 'r', 'g', 'z', 32, 0,
278
0
  /* 2140 */ 'm', 'o', 'v', 'r', 'g', 'z', 32, 0,
279
0
  /* 2148 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'z', 32, 0,
280
0
  /* 2158 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'z', 32, 0,
281
0
  /* 2168 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'z', 32, 0,
282
0
  /* 2178 */ 'b', 'r', 'l', 'z', 32, 0,
283
0
  /* 2184 */ 'm', 'o', 'v', 'r', 'l', 'z', 32, 0,
284
0
  /* 2192 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'z', 32, 0,
285
0
  /* 2202 */ 'f', 'm', 'o', 'v', 'r', 'd', 'n', 'z', 32, 0,
286
0
  /* 2212 */ 'f', 'm', 'o', 'v', 'r', 'q', 'n', 'z', 32, 0,
287
0
  /* 2222 */ 'b', 'r', 'n', 'z', 32, 0,
288
0
  /* 2228 */ 'm', 'o', 'v', 'r', 'n', 'z', 32, 0,
289
0
  /* 2236 */ 'f', 'm', 'o', 'v', 'r', 's', 'n', 'z', 32, 0,
290
0
  /* 2246 */ 'f', 'm', 'o', 'v', 'r', 'q', 'z', 32, 0,
291
0
  /* 2255 */ 'b', 'r', 'z', 32, 0,
292
0
  /* 2260 */ 'm', 'o', 'v', 'r', 'z', 32, 0,
293
0
  /* 2267 */ 'f', 'm', 'o', 'v', 'r', 's', 'z', 32, 0,
294
0
  /* 2276 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
295
0
  /* 2304 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
296
0
  /* 2332 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
297
0
  /* 2359 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
298
0
  /* 2387 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
299
0
  /* 2415 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
300
0
  /* 2443 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
301
0
  /* 2470 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
302
0
  /* 2498 */ 'j', 'm', 'p', 32, '%', 'i', '7', '+', 0,
303
0
  /* 2507 */ 'j', 'm', 'p', 32, '%', 'o', '7', '+', 0,
304
0
  /* 2516 */ '#', 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,
305
0
  /* 2547 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
306
0
  /* 2571 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
307
0
  /* 2596 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
308
0
  /* 2619 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
309
0
  /* 2642 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
310
0
  /* 2664 */ 'f', 'l', 'u', 's', 'h', 32, '%', 'g', '0', 0,
311
0
  /* 2674 */ 't', 'a', 32, '1', 0,
312
0
  /* 2679 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'L', 'O', 'N', 'G', 'J', 'M', 'P', '3', '2', 0,
313
0
  /* 2698 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'S', 'E', 'T', 'J', 'M', 'P', '3', '2', 0,
314
0
  /* 2716 */ 't', 'a', 32, '3', 0,
315
0
  /* 2721 */ 't', 'a', 32, '5', 0,
316
0
  /* 2726 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
317
0
  /* 2739 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
318
0
  /* 2746 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
319
0
  /* 2756 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
320
0
  /* 2766 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
321
0
  /* 2781 */ 's', 't', 'd', 32, '%', 'c', 'q', ',', 32, '[', 0,
322
0
  /* 2792 */ 's', 't', 'd', 32, '%', 'f', 'q', ',', 32, '[', 0,
323
0
  /* 2803 */ 's', 't', 32, '%', 'c', 's', 'r', ',', 32, '[', 0,
324
0
  /* 2814 */ 's', 't', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
325
0
  /* 2825 */ 's', 't', 'x', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
326
0
  /* 2837 */ 'l', 'd', 's', 'b', 'a', 32, '[', 0,
327
0
  /* 2845 */ 'l', 'd', 'u', 'b', 'a', 32, '[', 0,
328
0
  /* 2853 */ 'l', 'd', 's', 't', 'u', 'b', 'a', 32, '[', 0,
329
0
  /* 2863 */ 'l', 'd', 'd', 'a', 32, '[', 0,
330
0
  /* 2870 */ 'l', 'd', 'a', 32, '[', 0,
331
0
  /* 2876 */ 'l', 'd', 's', 'h', 'a', 32, '[', 0,
332
0
  /* 2884 */ 'l', 'd', 'u', 'h', 'a', 32, '[', 0,
333
0
  /* 2892 */ 's', 'w', 'a', 'p', 'a', 32, '[', 0,
334
0
  /* 2900 */ 'l', 'd', 'q', 'a', 32, '[', 0,
335
0
  /* 2907 */ 'c', 'a', 's', 'a', 32, '[', 0,
336
0
  /* 2914 */ 'l', 'd', 's', 'b', 32, '[', 0,
337
0
  /* 2921 */ 'l', 'd', 'u', 'b', 32, '[', 0,
338
0
  /* 2928 */ 'l', 'd', 's', 't', 'u', 'b', 32, '[', 0,
339
0
  /* 2937 */ 'l', 'd', 'd', 32, '[', 0,
340
0
  /* 2943 */ 'l', 'd', 32, '[', 0,
341
0
  /* 2948 */ 'l', 'd', 's', 'h', 32, '[', 0,
342
0
  /* 2955 */ 'l', 'd', 'u', 'h', 32, '[', 0,
343
0
  /* 2962 */ 's', 'w', 'a', 'p', 32, '[', 0,
344
0
  /* 2969 */ 'l', 'd', 'q', 32, '[', 0,
345
0
  /* 2975 */ 'c', 'a', 's', 32, '[', 0,
346
0
  /* 2981 */ 'l', 'd', 's', 'w', 32, '[', 0,
347
0
  /* 2988 */ 'l', 'd', 'x', 32, '[', 0,
348
0
  /* 2994 */ 'c', 'a', 's', 'x', 32, '[', 0,
349
0
  /* 3001 */ 'c', 'b', 0,
350
0
  /* 3004 */ 'f', 'b', 0,
351
0
  /* 3007 */ 'f', 'm', 'o', 'v', 'd', 0,
352
0
  /* 3013 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
353
0
  /* 3027 */ 's', 'i', 'a', 'm', 0,
354
0
  /* 3032 */ 's', 'h', 'u', 't', 'd', 'o', 'w', 'n', 0,
355
0
  /* 3041 */ 'n', 'o', 'p', 0,
356
0
  /* 3045 */ 'f', 'm', 'o', 'v', 'q', 0,
357
0
  /* 3051 */ 's', 't', 'b', 'a', 'r', 0,
358
0
  /* 3057 */ 'f', 'm', 'o', 'v', 's', 0,
359
0
  /* 3063 */ 't', 0,
360
0
  /* 3065 */ 'm', 'o', 'v', 0,
361
0
  /* 3069 */ 'f', 'l', 'u', 's', 'h', 'w', 0,
362
0
  };
363
0
364
0
  static const uint32_t OpInfo0[] = {
365
0
    0U, // PHI
366
0
    0U, // INLINEASM
367
0
    0U, // CFI_INSTRUCTION
368
0
    0U, // EH_LABEL
369
0
    0U, // GC_LABEL
370
0
    0U, // ANNOTATION_LABEL
371
0
    0U, // KILL
372
0
    0U, // EXTRACT_SUBREG
373
0
    0U, // INSERT_SUBREG
374
0
    0U, // IMPLICIT_DEF
375
0
    0U, // SUBREG_TO_REG
376
0
    0U, // COPY_TO_REGCLASS
377
0
    2747U,  // DBG_VALUE
378
0
    2757U,  // DBG_LABEL
379
0
    0U, // REG_SEQUENCE
380
0
    0U, // COPY
381
0
    2740U,  // BUNDLE
382
0
    2767U,  // LIFETIME_START
383
0
    2727U,  // LIFETIME_END
384
0
    0U, // STACKMAP
385
0
    3014U,  // FENTRY_CALL
386
0
    0U, // PATCHPOINT
387
0
    0U, // LOAD_STACK_GUARD
388
0
    0U, // STATEPOINT
389
0
    0U, // LOCAL_ESCAPE
390
0
    0U, // FAULTING_OP
391
0
    0U, // PATCHABLE_OP
392
0
    2597U,  // PATCHABLE_FUNCTION_ENTER
393
0
    2517U,  // PATCHABLE_RET
394
0
    2643U,  // PATCHABLE_FUNCTION_EXIT
395
0
    2620U,  // PATCHABLE_TAIL_CALL
396
0
    2572U,  // PATCHABLE_EVENT_CALL
397
0
    2548U,  // PATCHABLE_TYPED_EVENT_CALL
398
0
    0U, // ICALL_BRANCH_FUNNEL
399
0
    0U, // G_ADD
400
0
    0U, // G_SUB
401
0
    0U, // G_MUL
402
0
    0U, // G_SDIV
403
0
    0U, // G_UDIV
404
0
    0U, // G_SREM
405
0
    0U, // G_UREM
406
0
    0U, // G_AND
407
0
    0U, // G_OR
408
0
    0U, // G_XOR
409
0
    0U, // G_IMPLICIT_DEF
410
0
    0U, // G_PHI
411
0
    0U, // G_FRAME_INDEX
412
0
    0U, // G_GLOBAL_VALUE
413
0
    0U, // G_EXTRACT
414
0
    0U, // G_UNMERGE_VALUES
415
0
    0U, // G_INSERT
416
0
    0U, // G_MERGE_VALUES
417
0
    0U, // G_PTRTOINT
418
0
    0U, // G_INTTOPTR
419
0
    0U, // G_BITCAST
420
0
    0U, // G_INTRINSIC_TRUNC
421
0
    0U, // G_INTRINSIC_ROUND
422
0
    0U, // G_LOAD
423
0
    0U, // G_SEXTLOAD
424
0
    0U, // G_ZEXTLOAD
425
0
    0U, // G_STORE
426
0
    0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
427
0
    0U, // G_ATOMIC_CMPXCHG
428
0
    0U, // G_ATOMICRMW_XCHG
429
0
    0U, // G_ATOMICRMW_ADD
430
0
    0U, // G_ATOMICRMW_SUB
431
0
    0U, // G_ATOMICRMW_AND
432
0
    0U, // G_ATOMICRMW_NAND
433
0
    0U, // G_ATOMICRMW_OR
434
0
    0U, // G_ATOMICRMW_XOR
435
0
    0U, // G_ATOMICRMW_MAX
436
0
    0U, // G_ATOMICRMW_MIN
437
0
    0U, // G_ATOMICRMW_UMAX
438
0
    0U, // G_ATOMICRMW_UMIN
439
0
    0U, // G_BRCOND
440
0
    0U, // G_BRINDIRECT
441
0
    0U, // G_INTRINSIC
442
0
    0U, // G_INTRINSIC_W_SIDE_EFFECTS
443
0
    0U, // G_ANYEXT
444
0
    0U, // G_TRUNC
445
0
    0U, // G_CONSTANT
446
0
    0U, // G_FCONSTANT
447
0
    0U, // G_VASTART
448
0
    0U, // G_VAARG
449
0
    0U, // G_SEXT
450
0
    0U, // G_ZEXT
451
0
    0U, // G_SHL
452
0
    0U, // G_LSHR
453
0
    0U, // G_ASHR
454
0
    0U, // G_ICMP
455
0
    0U, // G_FCMP
456
0
    0U, // G_SELECT
457
0
    0U, // G_UADDO
458
0
    0U, // G_UADDE
459
0
    0U, // G_USUBO
460
0
    0U, // G_USUBE
461
0
    0U, // G_SADDO
462
0
    0U, // G_SADDE
463
0
    0U, // G_SSUBO
464
0
    0U, // G_SSUBE
465
0
    0U, // G_UMULO
466
0
    0U, // G_SMULO
467
0
    0U, // G_UMULH
468
0
    0U, // G_SMULH
469
0
    0U, // G_FADD
470
0
    0U, // G_FSUB
471
0
    0U, // G_FMUL
472
0
    0U, // G_FMA
473
0
    0U, // G_FDIV
474
0
    0U, // G_FREM
475
0
    0U, // G_FPOW
476
0
    0U, // G_FEXP
477
0
    0U, // G_FEXP2
478
0
    0U, // G_FLOG
479
0
    0U, // G_FLOG2
480
0
    0U, // G_FNEG
481
0
    0U, // G_FPEXT
482
0
    0U, // G_FPTRUNC
483
0
    0U, // G_FPTOSI
484
0
    0U, // G_FPTOUI
485
0
    0U, // G_SITOFP
486
0
    0U, // G_UITOFP
487
0
    0U, // G_FABS
488
0
    0U, // G_GEP
489
0
    0U, // G_PTR_MASK
490
0
    0U, // G_BR
491
0
    0U, // G_INSERT_VECTOR_ELT
492
0
    0U, // G_EXTRACT_VECTOR_ELT
493
0
    0U, // G_SHUFFLE_VECTOR
494
0
    0U, // G_CTTZ
495
0
    0U, // G_CTTZ_ZERO_UNDEF
496
0
    0U, // G_CTLZ
497
0
    0U, // G_CTLZ_ZERO_UNDEF
498
0
    0U, // G_CTPOP
499
0
    0U, // G_BSWAP
500
0
    0U, // G_ADDRSPACE_CAST
501
0
    0U, // G_BLOCK_ADDR
502
0
    4556U,  // ADJCALLSTACKDOWN
503
0
    70111U, // ADJCALLSTACKUP
504
0
    2680U,  // EH_SJLJ_LONGJMP32ri
505
0
    2680U,  // EH_SJLJ_LONGJMP32rr
506
0
    2699U,  // EH_SJLJ_SETJMP32ri
507
0
    2699U,  // EH_SJLJ_SETJMP32rr
508
0
    8202U,  // GETPCX
509
0
    2277U,  // SELECT_CC_DFP_FCC
510
0
    2388U,  // SELECT_CC_DFP_ICC
511
0
    2333U,  // SELECT_CC_FP_FCC
512
0
    2444U,  // SELECT_CC_FP_ICC
513
0
    2360U,  // SELECT_CC_Int_FCC
514
0
    2471U,  // SELECT_CC_Int_ICC
515
0
    2305U,  // SELECT_CC_QFP_FCC
516
0
    2416U,  // SELECT_CC_QFP_ICC
517
0
    2111263U, // SET
518
0
    4207243U, // ADDCCri
519
0
    4207243U, // ADDCCrr
520
0
    4208516U, // ADDCri
521
0
    4208516U, // ADDCrr
522
0
    4207335U, // ADDEri
523
0
    4207335U, // ADDErr
524
0
    4207349U, // ADDXC
525
0
    4207233U, // ADDXCCC
526
0
    4207371U, // ADDXri
527
0
    4207371U, // ADDXrr
528
0
    4207371U, // ADDri
529
0
    4207371U, // ADDrr
530
0
    4208071U, // ALIGNADDR
531
0
    4207701U, // ALIGNADDRL
532
0
    4207250U, // ANDCCri
533
0
    4207250U, // ANDCCrr
534
0
    4207273U, // ANDNCCri
535
0
    4207273U, // ANDNCCrr
536
0
    4207756U, // ANDNri
537
0
    4207756U, // ANDNrr
538
0
    4207756U, // ANDXNrr
539
0
    4207439U, // ANDXri
540
0
    4207439U, // ANDXrr
541
0
    4207439U, // ANDri
542
0
    4207439U, // ANDrr
543
0
    4207020U, // ARRAY16
544
0
    4206773U, // ARRAY32
545
0
    4207044U, // ARRAY8
546
0
    70199U, // BA
547
0
    2247611U, // BCOND
548
0
    2313147U, // BCONDA
549
0
    87369U, // BINDri
550
0
    87369U, // BINDrr
551
0
    4207639U, // BMASK
552
0
    4344765U, // BPFCC
553
0
    4410301U, // BPFCCA
554
0
    281533U,  // BPFCCANT
555
0
    347069U,  // BPFCCNT
556
0
    5295U,  // BPGEZapn
557
0
    4612U,  // BPGEZapt
558
0
    5362U,  // BPGEZnapn
559
0
    6135U,  // BPGEZnapt
560
0
    5319U,  // BPGZapn
561
0
    4630U,  // BPGZapt
562
0
    5382U,  // BPGZnapn
563
0
    6231U,  // BPGZnapt
564
0
    2509755U, // BPICC
565
0
    478139U,  // BPICCA
566
0
    543675U,  // BPICCANT
567
0
    609211U,  // BPICCNT
568
0
    5307U,  // BPLEZapn
569
0
    4621U,  // BPLEZapt
570
0
    5372U,  // BPLEZnapn
571
0
    6184U,  // BPLEZnapt
572
0
    5330U,  // BPLZapn
573
0
    4638U,  // BPLZapt
574
0
    5391U,  // BPLZnapn
575
0
    6275U,  // BPLZnapt
576
0
    5341U,  // BPNZapn
577
0
    4646U,  // BPNZapt
578
0
    5400U,  // BPNZnapn
579
0
    6319U,  // BPNZnapt
580
0
    2771899U, // BPXCC
581
0
    740283U,  // BPXCCA
582
0
    805819U,  // BPXCCANT
583
0
    871355U,  // BPXCCNT
584
0
    5352U,  // BPZapn
585
0
    4654U,  // BPZapt
586
0
    5409U,  // BPZnapn
587
0
    6352U,  // BPZnapt
588
0
    4207550U, // BSHUFFLE
589
0
    70724U, // CALL
590
0
    87108U, // CALLri
591
0
    87108U, // CALLrr
592
0
    932700U,  // CASAasi10
593
0
    7289692U, // CASArr
594
0
    5258163U, // CASXrr
595
0
    5258144U, // CASrr
596
0
    2247610U, // CBCOND
597
0
    2313146U, // CBCONDA
598
0
    69927U, // CMASK16
599
0
    69759U, // CMASK32
600
0
    70076U, // CMASK8
601
0
    5437U,  // CMPri
602
0
    5437U,  // CMPrr
603
0
    4206850U, // EDGE16
604
0
    4207655U, // EDGE16L
605
0
    4207772U, // EDGE16LN
606
0
    4207739U, // EDGE16N
607
0
    4206682U, // EDGE32
608
0
    4207646U, // EDGE32L
609
0
    4207762U, // EDGE32LN
610
0
    4207730U, // EDGE32N
611
0
    4207029U, // EDGE8
612
0
    4207664U, // EDGE8L
613
0
    4207782U, // EDGE8LN
614
0
    4207748U, // EDGE8N
615
0
    2110355U, // FABSD
616
0
    2110877U, // FABSQ
617
0
    2111234U, // FABSS
618
0
    4207376U, // FADDD
619
0
    4207957U, // FADDQ
620
0
    4208231U, // FADDS
621
0
    4207186U, // FALIGNADATA
622
0
    4207438U, // FAND
623
0
    4206630U, // FANDNOT1
624
0
    4208130U, // FANDNOT1S
625
0
    4206789U, // FANDNOT2
626
0
    4208177U, // FANDNOT2S
627
0
    4208263U, // FANDS
628
0
    2247613U, // FBCOND
629
0
    2313149U, // FBCONDA
630
0
    4206912U, // FCHKSM16
631
0
    4992U,  // FCMPD
632
0
    4206931U, // FCMPEQ16
633
0
    4206744U, // FCMPEQ32
634
0
    4206950U, // FCMPGT16
635
0
    4206763U, // FCMPGT32
636
0
    4206858U, // FCMPLE16
637
0
    4206690U, // FCMPLE32
638
0
    4206868U, // FCMPNE16
639
0
    4206700U, // FCMPNE32
640
0
    5526U,  // FCMPQ
641
0
    5847U,  // FCMPS
642
0
    4207527U, // FDIVD
643
0
    4208049U, // FDIVQ
644
0
    4208401U, // FDIVS
645
0
    4207979U, // FDMULQ
646
0
    2110466U, // FDTOI
647
0
    2110842U, // FDTOQ
648
0
    2111163U, // FDTOS
649
0
    2111399U, // FDTOX
650
0
    2110299U, // FEXPAND
651
0
    4207383U, // FHADDD
652
0
    4208238U, // FHADDS
653
0
    4207363U, // FHSUBD
654
0
    4208223U, // FHSUBS
655
0
    2110308U, // FITOD
656
0
    2110849U, // FITOQ
657
0
    2111170U, // FITOS
658
0
    16782215U,  // FLCMPD
659
0
    16783070U,  // FLCMPS
660
0
    2665U,  // FLUSH
661
0
    3070U,  // FLUSHW
662
0
    87005U, // FLUSHri
663
0
    87005U, // FLUSHrr
664
0
    4206922U, // FMEAN16
665
0
    2110382U, // FMOVD
666
0
    1141696U, // FMOVD_FCC
667
0
    151415744U, // FMOVD_ICC
668
0
    151677888U, // FMOVD_XCC
669
0
    2110904U, // FMOVQ
670
0
    1141734U, // FMOVQ_FCC
671
0
    151415782U, // FMOVQ_ICC
672
0
    151677926U, // FMOVQ_XCC
673
0
    4208609U, // FMOVRGEZD
674
0
    4208620U, // FMOVRGEZQ
675
0
    4208647U, // FMOVRGEZS
676
0
    4208707U, // FMOVRGZD
677
0
    4208717U, // FMOVRGZQ
678
0
    4208741U, // FMOVRGZS
679
0
    4208658U, // FMOVRLEZD
680
0
    4208669U, // FMOVRLEZQ
681
0
    4208696U, // FMOVRLEZS
682
0
    4208751U, // FMOVRLZD
683
0
    4208761U, // FMOVRLZQ
684
0
    4208785U, // FMOVRLZS
685
0
    4208795U, // FMOVRNZD
686
0
    4208805U, // FMOVRNZQ
687
0
    4208829U, // FMOVRNZS
688
0
    4208600U, // FMOVRZD
689
0
    4208839U, // FMOVRZQ
690
0
    4208860U, // FMOVRZS
691
0
    2111256U, // FMOVS
692
0
    1141746U, // FMOVS_FCC
693
0
    151415794U, // FMOVS_ICC
694
0
    151677938U, // FMOVS_XCC
695
0
    4207008U, // FMUL8SUX16
696
0
    4206983U, // FMUL8ULX16
697
0
    4206960U, // FMUL8X16
698
0
    4207672U, // FMUL8X16AL
699
0
    4208440U, // FMUL8X16AU
700
0
    4207423U, // FMULD
701
0
    4206995U, // FMULD8SUX16
702
0
    4206970U, // FMULD8ULX16
703
0
    4207987U, // FMULQ
704
0
    4208300U, // FMULS
705
0
    4207400U, // FNADDD
706
0
    4208255U, // FNADDS
707
0
    4207444U, // FNAND
708
0
    4208270U, // FNANDS
709
0
    2110264U, // FNEGD
710
0
    2110820U, // FNEGQ
711
0
    2111141U, // FNEGS
712
0
    4207391U, // FNHADDD
713
0
    4208246U, // FNHADDS
714
0
    4207391U, // FNMULD
715
0
    4208246U, // FNMULS
716
0
    4208087U, // FNOR
717
0
    4208364U, // FNORS
718
0
    2109488U, // FNOT1
719
0
    2110989U, // FNOT1S
720
0
    2109647U, // FNOT2
721
0
    2111036U, // FNOT2S
722
0
    4208246U, // FNSMULD
723
0
    70600U, // FONE
724
0
    71318U, // FONES
725
0
    4208082U, // FOR
726
0
    4206647U, // FORNOT1
727
0
    4208149U, // FORNOT1S
728
0
    4206806U, // FORNOT2
729
0
    4208196U, // FORNOT2S
730
0
    4208358U, // FORS
731
0
    2109726U, // FPACK16
732
0
    4206710U, // FPACK32
733
0
    2111370U, // FPACKFIX
734
0
    4206841U, // FPADD16
735
0
    4208206U, // FPADD16S
736
0
    4206673U, // FPADD32
737
0
    4208159U, // FPADD32S
738
0
    4206815U, // FPADD64
739
0
    4207541U, // FPMERGE
740
0
    4206832U, // FPSUB16
741
0
    4207098U, // FPSUB16S
742
0
    4206664U, // FPSUB32
743
0
    4207088U, // FPSUB32S
744
0
    2110315U, // FQTOD
745
0
    2110473U, // FQTOI
746
0
    2111177U, // FQTOS
747
0
    2111415U, // FQTOX
748
0
    4206941U, // FSLAS16
749
0
    4206754U, // FSLAS32
750
0
    4206896U, // FSLL16
751
0
    4206728U, // FSLL32
752
0
    4207430U, // FSMULD
753
0
    2110362U, // FSQRTD
754
0
    2110884U, // FSQRTQ
755
0
    2111241U, // FSQRTS
756
0
    4206824U, // FSRA16
757
0
    4206656U, // FSRA32
758
0
    2109471U, // FSRC1
759
0
    2110970U, // FSRC1S
760
0
    2109630U, // FSRC2
761
0
    2111017U, // FSRC2S
762
0
    4206904U, // FSRL16
763
0
    4206736U, // FSRL32
764
0
    2110322U, // FSTOD
765
0
    2110480U, // FSTOI
766
0
    2110856U, // FSTOQ
767
0
    2111422U, // FSTOX
768
0
    4207356U, // FSUBD
769
0
    4207950U, // FSUBQ
770
0
    4208216U, // FSUBS
771
0
    4208093U, // FXNOR
772
0
    4208371U, // FXNORS
773
0
    4208100U, // FXOR
774
0
    4208379U, // FXORS
775
0
    2110329U, // FXTOD
776
0
    2110863U, // FXTOQ
777
0
    2111184U, // FXTOS
778
0
    70966U, // FZERO
779
0
    71347U, // FZEROS
780
0
    2126927U, // JMPLri
781
0
    2126927U, // JMPLrr
782
0
    160398135U, // LDArr
783
0
    1203072U, // LDCSRri
784
0
    1203072U, // LDCSRrr
785
0
    3177344U, // LDCri
786
0
    3177344U, // LDCrr
787
0
    160398128U, // LDDArr
788
0
    3177338U, // LDDCri
789
0
    3177338U, // LDDCrr
790
0
    160398128U, // LDDFArr
791
0
    3177338U, // LDDFri
792
0
    3177338U, // LDDFrr
793
0
    3177338U, // LDDri
794
0
    3177338U, // LDDrr
795
0
    160398135U, // LDFArr
796
0
    1268608U, // LDFSRri
797
0
    1268608U, // LDFSRrr
798
0
    3177344U, // LDFri
799
0
    3177344U, // LDFrr
800
0
    160398165U, // LDQFArr
801
0
    3177370U, // LDQFri
802
0
    3177370U, // LDQFrr
803
0
    160398102U, // LDSBArr
804
0
    3177315U, // LDSBri
805
0
    3177315U, // LDSBrr
806
0
    160398141U, // LDSHArr
807
0
    3177349U, // LDSHri
808
0
    3177349U, // LDSHrr
809
0
    160398118U, // LDSTUBArr
810
0
    3177329U, // LDSTUBri
811
0
    3177329U, // LDSTUBrr
812
0
    3177382U, // LDSWri
813
0
    3177382U, // LDSWrr
814
0
    160398110U, // LDUBArr
815
0
    3177322U, // LDUBri
816
0
    3177322U, // LDUBrr
817
0
    160398149U, // LDUHArr
818
0
    3177356U, // LDUHri
819
0
    3177356U, // LDUHrr
820
0
    1268653U, // LDXFSRri
821
0
    1268653U, // LDXFSRrr
822
0
    3177389U, // LDXri
823
0
    3177389U, // LDXrr
824
0
    3177344U, // LDri
825
0
    3177344U, // LDrr
826
0
    33547U, // LEAX_ADDri
827
0
    33547U, // LEA_ADDri
828
0
    2111268U, // LZCNT
829
0
    71103U, // MEMBARi
830
0
    2111406U, // MOVDTOX
831
0
    1141754U, // MOVFCCri
832
0
    1141754U, // MOVFCCrr
833
0
    151415802U, // MOVICCri
834
0
    151415802U, // MOVICCrr
835
0
    4208638U, // MOVRGEZri
836
0
    4208638U, // MOVRGEZrr
837
0
    4208733U, // MOVRGZri
838
0
    4208733U, // MOVRGZrr
839
0
    4208687U, // MOVRLEZri
840
0
    4208687U, // MOVRLEZrr
841
0
    4208777U, // MOVRLZri
842
0
    4208777U, // MOVRLZrr
843
0
    4208821U, // MOVRNZri
844
0
    4208821U, // MOVRNZrr
845
0
    4208853U, // MOVRRZri
846
0
    4208853U, // MOVRRZrr
847
0
    2111332U, // MOVSTOSW
848
0
    2111342U, // MOVSTOUW
849
0
    2111406U, // MOVWTOS
850
0
    151677946U, // MOVXCCri
851
0
    151677946U, // MOVXCCrr
852
0
    2111406U, // MOVXTOD
853
0
    4207303U, // MULSCCri
854
0
    4207303U, // MULSCCrr
855
0
    4208545U, // MULXri
856
0
    4208545U, // MULXrr
857
0
    3042U,  // NOP
858
0
    4207290U, // ORCCri
859
0
    4207290U, // ORCCrr
860
0
    4207281U, // ORNCCri
861
0
    4207281U, // ORNCCrr
862
0
    4207913U, // ORNri
863
0
    4207913U, // ORNrr
864
0
    4207913U, // ORXNrr
865
0
    4208083U, // ORXri
866
0
    4208083U, // ORXrr
867
0
    4208083U, // ORri
868
0
    4208083U, // ORrr
869
0
    4208427U, // PDIST
870
0
    4207918U, // PDISTN
871
0
    2110191U, // POPCrr
872
0
    2110351U, // RDASR
873
0
    2110954U, // RDPR
874
0
    69653U, // RDPSR
875
0
    69643U, // RDTBR
876
0
    69633U, // RDWIM
877
0
    4207566U, // RESTOREri
878
0
    4207566U, // RESTORErr
879
0
    72131U, // RET
880
0
    72140U, // RETL
881
0
    87858U, // RETTri
882
0
    87858U, // RETTrr
883
0
    4207575U, // SAVEri
884
0
    4207575U, // SAVErr
885
0
    4207311U, // SDIVCCri
886
0
    4207311U, // SDIVCCrr
887
0
    4208586U, // SDIVXri
888
0
    4208586U, // SDIVXrr
889
0
    4208452U, // SDIVri
890
0
    4208452U, // SDIVrr
891
0
    2110441U, // SETHIXi
892
0
    2110441U, // SETHIi
893
0
    3033U,  // SHUTDOWN
894
0
    3028U,  // SIAM
895
0
    4208532U, // SLLXri
896
0
    4208532U, // SLLXrr
897
0
    4207690U, // SLLri
898
0
    4207690U, // SLLrr
899
0
    4207213U, // SMACri
900
0
    4207213U, // SMACrr
901
0
    4207257U, // SMULCCri
902
0
    4207257U, // SMULCCrr
903
0
    4207718U, // SMULri
904
0
    4207718U, // SMULrr
905
0
    4208504U, // SRAXri
906
0
    4208504U, // SRAXrr
907
0
    4207181U, // SRAri
908
0
    4207181U, // SRArr
909
0
    4208538U, // SRLXri
910
0
    4208538U, // SRLXrr
911
0
    4207713U, // SRLri
912
0
    4207713U, // SRLrr
913
0
    9409118U, // STArr
914
0
    3052U,  // STBAR
915
0
    9409077U, // STBArr
916
0
    1348195U, // STBri
917
0
    1348195U, // STBrr
918
0
    1334004U, // STCSRri
919
0
    1334004U, // STCSRrr
920
0
    1349422U, // STCri
921
0
    1349422U, // STCrr
922
0
    9409083U, // STDArr
923
0
    1333982U, // STDCQri
924
0
    1333982U, // STDCQrr
925
0
    1348514U, // STDCri
926
0
    1348514U, // STDCrr
927
0
    9409083U, // STDFArr
928
0
    1333993U, // STDFQri
929
0
    1333993U, // STDFQrr
930
0
    1348514U, // STDFri
931
0
    1348514U, // STDFrr
932
0
    1348514U, // STDri
933
0
    1348514U, // STDrr
934
0
    9409118U, // STFArr
935
0
    1334015U, // STFSRri
936
0
    1334015U, // STFSRrr
937
0
    1349422U, // STFri
938
0
    1349422U, // STFrr
939
0
    9409089U, // STHArr
940
0
    1348580U, // STHri
941
0
    1348580U, // STHrr
942
0
    9409095U, // STQFArr
943
0
    1349036U, // STQFri
944
0
    1349036U, // STQFrr
945
0
    1334026U, // STXFSRri
946
0
    1334026U, // STXFSRrr
947
0
    1349573U, // STXri
948
0
    1349573U, // STXrr
949
0
    1349422U, // STri
950
0
    1349422U, // STrr
951
0
    4207226U, // SUBCCri
952
0
    4207226U, // SUBCCrr
953
0
    4208510U, // SUBCri
954
0
    4208510U, // SUBCrr
955
0
    4207327U, // SUBEri
956
0
    4207327U, // SUBErr
957
0
    4207208U, // SUBXri
958
0
    4207208U, // SUBXrr
959
0
    4207208U, // SUBri
960
0
    4207208U, // SUBrr
961
0
    160398157U, // SWAPArr
962
0
    3177363U, // SWAPri
963
0
    3177363U, // SWAPrr
964
0
    2675U,  // TA1
965
0
    2717U,  // TA3
966
0
    2722U,  // TA5
967
0
    4208474U, // TADDCCTVri
968
0
    4208474U, // TADDCCTVrr
969
0
    4207242U, // TADDCCri
970
0
    4207242U, // TADDCCrr
971
0
    36088824U,  // TICCri
972
0
    36088824U,  // TICCrr
973
0
    289420043U, // TLS_ADDXrr
974
0
    289420043U, // TLS_ADDrr
975
0
    5188U,  // TLS_CALL
976
0
    288390061U, // TLS_LDXrr
977
0
    288390016U, // TLS_LDrr
978
0
    35826680U,  // TRAPri
979
0
    35826680U,  // TRAPrr
980
0
    4208464U, // TSUBCCTVri
981
0
    4208464U, // TSUBCCTVrr
982
0
    4207225U, // TSUBCCri
983
0
    4207225U, // TSUBCCrr
984
0
    36350968U,  // TXCCri
985
0
    36350968U,  // TXCCrr
986
0
    4207319U, // UDIVCCri
987
0
    4207319U, // UDIVCCrr
988
0
    4208593U, // UDIVXri
989
0
    4208593U, // UDIVXrr
990
0
    4208458U, // UDIVri
991
0
    4208458U, // UDIVrr
992
0
    4207219U, // UMACri
993
0
    4207219U, // UMACrr
994
0
    4207265U, // UMULCCri
995
0
    4207265U, // UMULCCrr
996
0
    4207600U, // UMULXHI
997
0
    4207724U, // UMULri
998
0
    4207724U, // UMULrr
999
0
    70978U, // UNIMP
1000
0
    16782208U,  // V9FCMPD
1001
0
    16782128U,  // V9FCMPED
1002
0
    16782684U,  // V9FCMPEQ
1003
0
    16783005U,  // V9FCMPES
1004
0
    16782742U,  // V9FCMPQ
1005
0
    16783063U,  // V9FCMPS
1006
0
    48064U, // V9FMOVD_FCC
1007
0
    48102U, // V9FMOVQ_FCC
1008
0
    48114U, // V9FMOVS_FCC
1009
0
    48122U, // V9MOVFCCri
1010
0
    48122U, // V9MOVFCCrr
1011
0
    4208118U, // WRASRri
1012
0
    4208118U, // WRASRrr
1013
0
    4208112U, // WRPRri
1014
0
    4208112U, // WRPRrr
1015
0
    50337270U,  // WRPSRri
1016
0
    50337270U,  // WRPSRrr
1017
0
    67114486U,  // WRTBRri
1018
0
    67114486U,  // WRTBRrr
1019
0
    83891702U,  // WRWIMri
1020
0
    83891702U,  // WRWIMrr
1021
0
    4208544U, // XMULX
1022
0
    4207609U, // XMULXHI
1023
0
    4207288U, // XNORCCri
1024
0
    4207288U, // XNORCCrr
1025
0
    4208094U, // XNORXrr
1026
0
    4208094U, // XNORri
1027
0
    4208094U, // XNORrr
1028
0
    4207296U, // XORCCri
1029
0
    4207296U, // XORCCrr
1030
0
    4208101U, // XORXri
1031
0
    4208101U, // XORXrr
1032
0
    4208101U, // XORri
1033
0
    4208101U, // XORrr
1034
0
  };
1035
0
1036
0
  O << "\t";
1037
0
1038
0
  // Emit the opcode for the instruction.
1039
0
  uint32_t Bits = 0;
1040
0
  Bits |= OpInfo0[MI->getOpcode()] << 0;
1041
0
  assert(Bits != 0 && "Cannot print this instruction.");
1042
0
  O << AsmStrs+(Bits & 4095)-1;
1043
0
1044
0
1045
0
  // Fragment 0 encoded into 4 bits for 12 unique commands.
1046
0
  switch ((Bits >> 12) & 15) {
1047
0
  default: llvm_unreachable("Invalid command number.");
1048
0
  case 0:
1049
0
    // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
1050
0
    return;
1051
0
    break;
1052
0
  case 1:
1053
0
    // ADJCALLSTACKDOWN, ADJCALLSTACKUP, BA, BPGEZapn, BPGEZapt, BPGEZnapn, B...
1054
0
    printOperand(MI, 0, STI, O);
1055
0
    break;
1056
0
  case 2:
1057
0
    // GETPCX
1058
0
    printGetPCX(MI, 0, STI, O);
1059
0
    return;
1060
0
    break;
1061
0
  case 3:
1062
0
    // SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC,...
1063
0
    printOperand(MI, 1, STI, O);
1064
0
    break;
1065
0
  case 4:
1066
0
    // BCOND, BCONDA, BPFCC, BPFCCA, BPFCCANT, BPFCCNT, BPICC, BPICCA, BPICCA...
1067
0
    printCCOperand(MI, 1, STI, O);
1068
0
    break;
1069
0
  case 5:
1070
0
    // BINDri, BINDrr, CALLri, CALLrr, FLUSHri, FLUSHrr, LDCSRri, LDCSRrr, LD...
1071
0
    printMemOperand(MI, 0, STI, O);
1072
0
    break;
1073
0
  case 6:
1074
0
    // FMOVD_FCC, FMOVD_ICC, FMOVD_XCC, FMOVQ_FCC, FMOVQ_ICC, FMOVQ_XCC, FMOV...
1075
0
    printCCOperand(MI, 3, STI, O);
1076
0
    break;
1077
0
  case 7:
1078
0
    // JMPLri, JMPLrr, LDArr, LDCri, LDCrr, LDDArr, LDDCri, LDDCrr, LDDFArr, ...
1079
0
    printMemOperand(MI, 1, STI, O);
1080
0
    break;
1081
0
  case 8:
1082
0
    // LEAX_ADDri, LEA_ADDri
1083
0
    printMemOperand(MI, 1, STI, O, "arith");
1084
0
    O << ", ";
1085
0
    printOperand(MI, 0, STI, O);
1086
0
    return;
1087
0
    break;
1088
0
  case 9:
1089
0
    // STArr, STBArr, STBri, STBrr, STCri, STCrr, STDArr, STDCri, STDCrr, STD...
1090
0
    printOperand(MI, 2, STI, O);
1091
0
    O << ", [";
1092
0
    printMemOperand(MI, 0, STI, O);
1093
0
    break;
1094
0
  case 10:
1095
0
    // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
1096
0
    printCCOperand(MI, 2, STI, O);
1097
0
    break;
1098
0
  case 11:
1099
0
    // V9FMOVD_FCC, V9FMOVQ_FCC, V9FMOVS_FCC, V9MOVFCCri, V9MOVFCCrr
1100
0
    printCCOperand(MI, 4, STI, O);
1101
0
    O << ' ';
1102
0
    printOperand(MI, 1, STI, O);
1103
0
    O << ", ";
1104
0
    printOperand(MI, 2, STI, O);
1105
0
    O << ", ";
1106
0
    printOperand(MI, 0, STI, O);
1107
0
    return;
1108
0
    break;
1109
0
  }
1110
0
1111
0
1112
0
  // Fragment 1 encoded into 5 bits for 21 unique commands.
1113
0
  switch ((Bits >> 16) & 31) {
1114
0
  default: llvm_unreachable("Invalid command number.");
1115
0
  case 0:
1116
0
    // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
1117
0
    O << ", ";
1118
0
    break;
1119
0
  case 1:
1120
0
    // ADJCALLSTACKUP, BA, BINDri, BINDrr, CALL, CALLri, CALLrr, CMASK16, CMA...
1121
0
    return;
1122
0
    break;
1123
0
  case 2:
1124
0
    // BCOND, BPFCC, CBCOND, FBCOND, TRAPri, TRAPrr
1125
0
    O << ' ';
1126
0
    break;
1127
0
  case 3:
1128
0
    // BCONDA, BPFCCA, CBCONDA, FBCONDA
1129
0
    O << ",a ";
1130
0
    break;
1131
0
  case 4:
1132
0
    // BPFCCANT
1133
0
    O << ",a,pn ";
1134
0
    printOperand(MI, 2, STI, O);
1135
0
    O << ", ";
1136
0
    printOperand(MI, 0, STI, O);
1137
0
    return;
1138
0
    break;
1139
0
  case 5:
1140
0
    // BPFCCNT
1141
0
    O << ",pn ";
1142
0
    printOperand(MI, 2, STI, O);
1143
0
    O << ", ";
1144
0
    printOperand(MI, 0, STI, O);
1145
0
    return;
1146
0
    break;
1147
0
  case 6:
1148
0
    // BPICC, FMOVD_ICC, FMOVQ_ICC, FMOVS_ICC, MOVICCri, MOVICCrr, TICCri, TI...
1149
0
    O << " %icc, ";
1150
0
    break;
1151
0
  case 7:
1152
0
    // BPICCA
1153
0
    O << ",a %icc, ";
1154
0
    printOperand(MI, 0, STI, O);
1155
0
    return;
1156
0
    break;
1157
0
  case 8:
1158
0
    // BPICCANT
1159
0
    O << ",a,pn %icc, ";
1160
0
    printOperand(MI, 0, STI, O);
1161
0
    return;
1162
0
    break;
1163
0
  case 9:
1164
0
    // BPICCNT
1165
0
    O << ",pn %icc, ";
1166
0
    printOperand(MI, 0, STI, O);
1167
0
    return;
1168
0
    break;
1169
0
  case 10:
1170
0
    // BPXCC, FMOVD_XCC, FMOVQ_XCC, FMOVS_XCC, MOVXCCri, MOVXCCrr, TXCCri, TX...
1171
0
    O << " %xcc, ";
1172
0
    break;
1173
0
  case 11:
1174
0
    // BPXCCA
1175
0
    O << ",a %xcc, ";
1176
0
    printOperand(MI, 0, STI, O);
1177
0
    return;
1178
0
    break;
1179
0
  case 12:
1180
0
    // BPXCCANT
1181
0
    O << ",a,pn %xcc, ";
1182
0
    printOperand(MI, 0, STI, O);
1183
0
    return;
1184
0
    break;
1185
0
  case 13:
1186
0
    // BPXCCNT
1187
0
    O << ",pn %xcc, ";
1188
0
    printOperand(MI, 0, STI, O);
1189
0
    return;
1190
0
    break;
1191
0
  case 14:
1192
0
    // CASAasi10
1193
0
    O << "] 10, ";
1194
0
    printOperand(MI, 2, STI, O);
1195
0
    O << ", ";
1196
0
    printOperand(MI, 0, STI, O);
1197
0
    return;
1198
0
    break;
1199
0
  case 15:
1200
0
    // CASArr, LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDS...
1201
0
    O << "] ";
1202
0
    break;
1203
0
  case 16:
1204
0
    // CASXrr, CASrr, LDCri, LDCrr, LDDCri, LDDCrr, LDDFri, LDDFrr, LDDri, LD...
1205
0
    O << "], ";
1206
0
    break;
1207
0
  case 17:
1208
0
    // FMOVD_FCC, FMOVQ_FCC, FMOVS_FCC, MOVFCCri, MOVFCCrr
1209
0
    O << " %fcc0, ";
1210
0
    printOperand(MI, 1, STI, O);
1211
0
    O << ", ";
1212
0
    printOperand(MI, 0, STI, O);
1213
0
    return;
1214
0
    break;
1215
0
  case 18:
1216
0
    // LDCSRri, LDCSRrr
1217
0
    O << "], %csr";
1218
0
    return;
1219
0
    break;
1220
0
  case 19:
1221
0
    // LDFSRri, LDFSRrr, LDXFSRri, LDXFSRrr
1222
0
    O << "], %fsr";
1223
0
    return;
1224
0
    break;
1225
0
  case 20:
1226
0
    // STBri, STBrr, STCSRri, STCSRrr, STCri, STCrr, STDCQri, STDCQrr, STDCri...
1227
0
    O << ']';
1228
0
    return;
1229
0
    break;
1230
0
  }
1231
0
1232
0
1233
0
  // Fragment 2 encoded into 3 bits for 5 unique commands.
1234
0
  switch ((Bits >> 21) & 7) {
1235
0
  default: llvm_unreachable("Invalid command number.");
1236
0
  case 0:
1237
0
    // ADJCALLSTACKDOWN, BPGEZapn, BPGEZapt, BPGEZnapn, BPGEZnapt, BPGZapn, B...
1238
0
    printOperand(MI, 1, STI, O);
1239
0
    break;
1240
0
  case 1:
1241
0
    // SET, BCOND, BCONDA, BPICC, BPXCC, CBCOND, CBCONDA, FABSD, FABSQ, FABSS...
1242
0
    printOperand(MI, 0, STI, O);
1243
0
    break;
1244
0
  case 2:
1245
0
    // ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC, ADDX...
1246
0
    printOperand(MI, 2, STI, O);
1247
0
    O << ", ";
1248
0
    printOperand(MI, 0, STI, O);
1249
0
    break;
1250
0
  case 3:
1251
0
    // CASArr
1252
0
    printOperand(MI, 4, STI, O);
1253
0
    O << ", ";
1254
0
    printOperand(MI, 2, STI, O);
1255
0
    O << ", ";
1256
0
    printOperand(MI, 0, STI, O);
1257
0
    return;
1258
0
    break;
1259
0
  case 4:
1260
0
    // LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDSTUBArr, ...
1261
0
    printOperand(MI, 3, STI, O);
1262
0
    break;
1263
0
  }
1264
0
1265
0
1266
0
  // Fragment 3 encoded into 3 bits for 6 unique commands.
1267
0
  switch ((Bits >> 24) & 7) {
1268
0
  default: llvm_unreachable("Invalid command number.");
1269
0
  case 0:
1270
0
    // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
1271
0
    return;
1272
0
    break;
1273
0
  case 1:
1274
0
    // FLCMPD, FLCMPS, FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC,...
1275
0
    O << ", ";
1276
0
    break;
1277
0
  case 2:
1278
0
    // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
1279
0
    O << " + ";
1280
0
    printOperand(MI, 1, STI, O);
1281
0
    return;
1282
0
    break;
1283
0
  case 3:
1284
0
    // WRPSRri, WRPSRrr
1285
0
    O << ", %psr";
1286
0
    return;
1287
0
    break;
1288
0
  case 4:
1289
0
    // WRTBRri, WRTBRrr
1290
0
    O << ", %tbr";
1291
0
    return;
1292
0
    break;
1293
0
  case 5:
1294
0
    // WRWIMri, WRWIMrr
1295
0
    O << ", %wim";
1296
0
    return;
1297
0
    break;
1298
0
  }
1299
0
1300
0
1301
0
  // Fragment 4 encoded into 2 bits for 3 unique commands.
1302
0
  switch ((Bits >> 27) & 3) {
1303
0
  default: llvm_unreachable("Invalid command number.");
1304
0
  case 0:
1305
0
    // FLCMPD, FLCMPS, V9FCMPD, V9FCMPED, V9FCMPEQ, V9FCMPES, V9FCMPQ, V9FCMP...
1306
0
    printOperand(MI, 2, STI, O);
1307
0
    return;
1308
0
    break;
1309
0
  case 1:
1310
0
    // FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC, FMOVS_XCC, LDAr...
1311
0
    printOperand(MI, 0, STI, O);
1312
0
    return;
1313
0
    break;
1314
0
  case 2:
1315
0
    // TLS_ADDXrr, TLS_ADDrr, TLS_LDXrr, TLS_LDrr
1316
0
    printOperand(MI, 3, STI, O);
1317
0
    return;
1318
0
    break;
1319
0
  }
1320
0
1321
0
}
1322
1323
1324
/// getRegisterName - This method is automatically generated by tblgen
1325
/// from the register set description.  This returns the assembler name
1326
/// for the specified register.
1327
0
const char *SparcInstPrinter::getRegisterName(unsigned RegNo) {
1328
0
  assert(RegNo && RegNo < 236 && "Invalid register number!");
1329
0
1330
0
  static const char AsmStrs[] = {
1331
0
  /* 0 */ 'C', '1', '0', 0,
1332
0
  /* 4 */ 'F', '1', '0', 0,
1333
0
  /* 8 */ 'A', 'S', 'R', '1', '0', 0,
1334
0
  /* 14 */ 'C', '2', '0', 0,
1335
0
  /* 18 */ 'F', '2', '0', 0,
1336
0
  /* 22 */ 'A', 'S', 'R', '2', '0', 0,
1337
0
  /* 28 */ 'C', '3', '0', 0,
1338
0
  /* 32 */ 'F', '3', '0', 0,
1339
0
  /* 36 */ 'A', 'S', 'R', '3', '0', 0,
1340
0
  /* 42 */ 'F', '4', '0', 0,
1341
0
  /* 46 */ 'F', '5', '0', 0,
1342
0
  /* 50 */ 'F', '6', '0', 0,
1343
0
  /* 54 */ 'F', 'C', 'C', '0', 0,
1344
0
  /* 59 */ 'F', '0', 0,
1345
0
  /* 62 */ 'G', '0', 0,
1346
0
  /* 65 */ 'I', '0', 0,
1347
0
  /* 68 */ 'L', '0', 0,
1348
0
  /* 71 */ 'O', '0', 0,
1349
0
  /* 74 */ 'C', '1', '1', 0,
1350
0
  /* 78 */ 'F', '1', '1', 0,
1351
0
  /* 82 */ 'A', 'S', 'R', '1', '1', 0,
1352
0
  /* 88 */ 'C', '2', '1', 0,
1353
0
  /* 92 */ 'F', '2', '1', 0,
1354
0
  /* 96 */ 'A', 'S', 'R', '2', '1', 0,
1355
0
  /* 102 */ 'C', '3', '1', 0,
1356
0
  /* 106 */ 'F', '3', '1', 0,
1357
0
  /* 110 */ 'A', 'S', 'R', '3', '1', 0,
1358
0
  /* 116 */ 'F', 'C', 'C', '1', 0,
1359
0
  /* 121 */ 'F', '1', 0,
1360
0
  /* 124 */ 'G', '1', 0,
1361
0
  /* 127 */ 'I', '1', 0,
1362
0
  /* 130 */ 'L', '1', 0,
1363
0
  /* 133 */ 'O', '1', 0,
1364
0
  /* 136 */ 'A', 'S', 'R', '1', 0,
1365
0
  /* 141 */ 'C', '1', '2', 0,
1366
0
  /* 145 */ 'F', '1', '2', 0,
1367
0
  /* 149 */ 'A', 'S', 'R', '1', '2', 0,
1368
0
  /* 155 */ 'C', '2', '2', 0,
1369
0
  /* 159 */ 'F', '2', '2', 0,
1370
0
  /* 163 */ 'A', 'S', 'R', '2', '2', 0,
1371
0
  /* 169 */ 'F', '3', '2', 0,
1372
0
  /* 173 */ 'F', '4', '2', 0,
1373
0
  /* 177 */ 'F', '5', '2', 0,
1374
0
  /* 181 */ 'F', '6', '2', 0,
1375
0
  /* 185 */ 'F', 'C', 'C', '2', 0,
1376
0
  /* 190 */ 'F', '2', 0,
1377
0
  /* 193 */ 'G', '2', 0,
1378
0
  /* 196 */ 'I', '2', 0,
1379
0
  /* 199 */ 'L', '2', 0,
1380
0
  /* 202 */ 'O', '2', 0,
1381
0
  /* 205 */ 'A', 'S', 'R', '2', 0,
1382
0
  /* 210 */ 'C', '1', '3', 0,
1383
0
  /* 214 */ 'F', '1', '3', 0,
1384
0
  /* 218 */ 'A', 'S', 'R', '1', '3', 0,
1385
0
  /* 224 */ 'C', '2', '3', 0,
1386
0
  /* 228 */ 'F', '2', '3', 0,
1387
0
  /* 232 */ 'A', 'S', 'R', '2', '3', 0,
1388
0
  /* 238 */ 'F', 'C', 'C', '3', 0,
1389
0
  /* 243 */ 'F', '3', 0,
1390
0
  /* 246 */ 'G', '3', 0,
1391
0
  /* 249 */ 'I', '3', 0,
1392
0
  /* 252 */ 'L', '3', 0,
1393
0
  /* 255 */ 'O', '3', 0,
1394
0
  /* 258 */ 'A', 'S', 'R', '3', 0,
1395
0
  /* 263 */ 'C', '1', '4', 0,
1396
0
  /* 267 */ 'F', '1', '4', 0,
1397
0
  /* 271 */ 'A', 'S', 'R', '1', '4', 0,
1398
0
  /* 277 */ 'C', '2', '4', 0,
1399
0
  /* 281 */ 'F', '2', '4', 0,
1400
0
  /* 285 */ 'A', 'S', 'R', '2', '4', 0,
1401
0
  /* 291 */ 'F', '3', '4', 0,
1402
0
  /* 295 */ 'F', '4', '4', 0,
1403
0
  /* 299 */ 'F', '5', '4', 0,
1404
0
  /* 303 */ 'C', '4', 0,
1405
0
  /* 306 */ 'F', '4', 0,
1406
0
  /* 309 */ 'G', '4', 0,
1407
0
  /* 312 */ 'I', '4', 0,
1408
0
  /* 315 */ 'L', '4', 0,
1409
0
  /* 318 */ 'O', '4', 0,
1410
0
  /* 321 */ 'A', 'S', 'R', '4', 0,
1411
0
  /* 326 */ 'C', '1', '5', 0,
1412
0
  /* 330 */ 'F', '1', '5', 0,
1413
0
  /* 334 */ 'A', 'S', 'R', '1', '5', 0,
1414
0
  /* 340 */ 'C', '2', '5', 0,
1415
0
  /* 344 */ 'F', '2', '5', 0,
1416
0
  /* 348 */ 'A', 'S', 'R', '2', '5', 0,
1417
0
  /* 354 */ 'C', '5', 0,
1418
0
  /* 357 */ 'F', '5', 0,
1419
0
  /* 360 */ 'G', '5', 0,
1420
0
  /* 363 */ 'I', '5', 0,
1421
0
  /* 366 */ 'L', '5', 0,
1422
0
  /* 369 */ 'O', '5', 0,
1423
0
  /* 372 */ 'A', 'S', 'R', '5', 0,
1424
0
  /* 377 */ 'C', '1', '6', 0,
1425
0
  /* 381 */ 'F', '1', '6', 0,
1426
0
  /* 385 */ 'A', 'S', 'R', '1', '6', 0,
1427
0
  /* 391 */ 'C', '2', '6', 0,
1428
0
  /* 395 */ 'F', '2', '6', 0,
1429
0
  /* 399 */ 'A', 'S', 'R', '2', '6', 0,
1430
0
  /* 405 */ 'F', '3', '6', 0,
1431
0
  /* 409 */ 'F', '4', '6', 0,
1432
0
  /* 413 */ 'F', '5', '6', 0,
1433
0
  /* 417 */ 'C', '6', 0,
1434
0
  /* 420 */ 'F', '6', 0,
1435
0
  /* 423 */ 'G', '6', 0,
1436
0
  /* 426 */ 'I', '6', 0,
1437
0
  /* 429 */ 'L', '6', 0,
1438
0
  /* 432 */ 'O', '6', 0,
1439
0
  /* 435 */ 'A', 'S', 'R', '6', 0,
1440
0
  /* 440 */ 'C', '1', '7', 0,
1441
0
  /* 444 */ 'F', '1', '7', 0,
1442
0
  /* 448 */ 'A', 'S', 'R', '1', '7', 0,
1443
0
  /* 454 */ 'C', '2', '7', 0,
1444
0
  /* 458 */ 'F', '2', '7', 0,
1445
0
  /* 462 */ 'A', 'S', 'R', '2', '7', 0,
1446
0
  /* 468 */ 'C', '7', 0,
1447
0
  /* 471 */ 'F', '7', 0,
1448
0
  /* 474 */ 'G', '7', 0,
1449
0
  /* 477 */ 'I', '7', 0,
1450
0
  /* 480 */ 'L', '7', 0,
1451
0
  /* 483 */ 'O', '7', 0,
1452
0
  /* 486 */ 'A', 'S', 'R', '7', 0,
1453
0
  /* 491 */ 'C', '1', '8', 0,
1454
0
  /* 495 */ 'F', '1', '8', 0,
1455
0
  /* 499 */ 'A', 'S', 'R', '1', '8', 0,
1456
0
  /* 505 */ 'C', '2', '8', 0,
1457
0
  /* 509 */ 'F', '2', '8', 0,
1458
0
  /* 513 */ 'A', 'S', 'R', '2', '8', 0,
1459
0
  /* 519 */ 'F', '3', '8', 0,
1460
0
  /* 523 */ 'F', '4', '8', 0,
1461
0
  /* 527 */ 'F', '5', '8', 0,
1462
0
  /* 531 */ 'C', '8', 0,
1463
0
  /* 534 */ 'F', '8', 0,
1464
0
  /* 537 */ 'A', 'S', 'R', '8', 0,
1465
0
  /* 542 */ 'C', '1', '9', 0,
1466
0
  /* 546 */ 'F', '1', '9', 0,
1467
0
  /* 550 */ 'A', 'S', 'R', '1', '9', 0,
1468
0
  /* 556 */ 'C', '2', '9', 0,
1469
0
  /* 560 */ 'F', '2', '9', 0,
1470
0
  /* 564 */ 'A', 'S', 'R', '2', '9', 0,
1471
0
  /* 570 */ 'C', '9', 0,
1472
0
  /* 573 */ 'F', '9', 0,
1473
0
  /* 576 */ 'A', 'S', 'R', '9', 0,
1474
0
  /* 581 */ 'T', 'B', 'A', 0,
1475
0
  /* 585 */ 'I', 'C', 'C', 0,
1476
0
  /* 589 */ 'T', 'N', 'P', 'C', 0,
1477
0
  /* 594 */ 'T', 'P', 'C', 0,
1478
0
  /* 598 */ 'C', 'A', 'N', 'R', 'E', 'S', 'T', 'O', 'R', 'E', 0,
1479
0
  /* 609 */ 'P', 'S', 'T', 'A', 'T', 'E', 0,
1480
0
  /* 616 */ 'T', 'S', 'T', 'A', 'T', 'E', 0,
1481
0
  /* 623 */ 'W', 'S', 'T', 'A', 'T', 'E', 0,
1482
0
  /* 630 */ 'C', 'A', 'N', 'S', 'A', 'V', 'E', 0,
1483
0
  /* 638 */ 'T', 'I', 'C', 'K', 0,
1484
0
  /* 643 */ 'P', 'I', 'L', 0,
1485
0
  /* 647 */ 'T', 'L', 0,
1486
0
  /* 650 */ 'W', 'I', 'M', 0,
1487
0
  /* 654 */ 'C', 'L', 'E', 'A', 'N', 'W', 'I', 'N', 0,
1488
0
  /* 663 */ 'O', 'T', 'H', 'E', 'R', 'W', 'I', 'N', 0,
1489
0
  /* 672 */ 'F', 'P', 0,
1490
0
  /* 675 */ 'S', 'P', 0,
1491
0
  /* 678 */ 'C', 'W', 'P', 0,
1492
0
  /* 682 */ 'F', 'Q', 0,
1493
0
  /* 685 */ 'C', 'P', 'Q', 0,
1494
0
  /* 689 */ 'T', 'B', 'R', 0,
1495
0
  /* 693 */ 'F', 'S', 'R', 0,
1496
0
  /* 697 */ 'C', 'P', 'S', 'R', 0,
1497
0
  /* 702 */ 'T', 'T', 0,
1498
0
  /* 705 */ 'Y', 0,
1499
0
  };
1500
0
1501
0
  static const uint16_t RegAsmOffset[] = {
1502
0
    598, 630, 654, 685, 697, 678, 682, 693, 585, 663, 643, 698, 609, 581, 
1503
0
    689, 638, 647, 589, 594, 616, 702, 650, 623, 705, 136, 205, 258, 321, 
1504
0
    372, 435, 486, 537, 576, 8, 82, 149, 218, 271, 334, 385, 448, 499, 
1505
0
    550, 22, 96, 163, 232, 285, 348, 399, 462, 513, 564, 36, 110, 56, 
1506
0
    118, 187, 240, 303, 354, 417, 468, 531, 570, 0, 74, 141, 210, 263, 
1507
0
    326, 377, 440, 491, 542, 14, 88, 155, 224, 277, 340, 391, 454, 505, 
1508
0
    556, 28, 102, 59, 190, 306, 420, 534, 4, 145, 267, 381, 495, 18, 
1509
0
    159, 281, 395, 509, 32, 169, 291, 405, 519, 42, 173, 295, 409, 523, 
1510
0
    46, 177, 299, 413, 527, 50, 181, 59, 121, 190, 243, 306, 357, 420, 
1511
0
    471, 534, 573, 4, 78, 145, 214, 267, 330, 381, 444, 495, 546, 18, 
1512
0
    92, 159, 228, 281, 344, 395, 458, 509, 560, 32, 106, 54, 116, 185, 
1513
0
    238, 62, 124, 193, 246, 309, 360, 423, 474, 65, 127, 196, 249, 312, 
1514
0
    363, 672, 477, 68, 130, 199, 252, 315, 366, 429, 480, 71, 133, 202, 
1515
0
    255, 318, 369, 675, 483, 59, 306, 534, 145, 381, 18, 281, 509, 169, 
1516
0
    405, 42, 295, 523, 177, 413, 50, 56, 187, 303, 417, 531, 0, 141, 
1517
0
    263, 377, 491, 14, 155, 277, 391, 505, 28, 62, 193, 309, 423, 65, 
1518
0
    196, 312, 426, 68, 199, 315, 429, 71, 202, 318, 432, 
1519
0
  };
1520
0
1521
0
  assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
1522
0
          "Invalid alt name index for register!");
1523
0
  return AsmStrs+RegAsmOffset[RegNo-1];
1524
0
}
1525
1526
#ifdef PRINT_ALIAS_INSTR
1527
#undef PRINT_ALIAS_INSTR
1528
1529
0
bool SparcInstPrinter::printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &OS) {
1530
0
  const char *AsmString;
1531
0
  switch (MI->getOpcode()) {
1532
0
  default: return false;
1533
0
  case SP::BCOND:
1534
0
    if (MI->getNumOperands() == 2 &&
1535
0
        MI->getOperand(1).isImm() &&
1536
0
        MI->getOperand(1).getImm() == 8) {
1537
0
      // (BCOND brtarget:$imm, { 1, 0, 0, 0 })
1538
0
      AsmString = "ba $\x01";
1539
0
      break;
1540
0
    }
1541
0
    if (MI->getNumOperands() == 2 &&
1542
0
        MI->getOperand(1).isImm() &&
1543
0
        MI->getOperand(1).getImm() == 0) {
1544
0
      // (BCOND brtarget:$imm, { 0, 0, 0, 0 })
1545
0
      AsmString = "bn $\x01";
1546
0
      break;
1547
0
    }
1548
0
    if (MI->getNumOperands() == 2 &&
1549
0
        MI->getOperand(1).isImm() &&
1550
0
        MI->getOperand(1).getImm() == 9) {
1551
0
      // (BCOND brtarget:$imm, { 1, 0, 0, 1 })
1552
0
      AsmString = "bne $\x01";
1553
0
      break;
1554
0
    }
1555
0
    if (MI->getNumOperands() == 2 &&
1556
0
        MI->getOperand(1).isImm() &&
1557
0
        MI->getOperand(1).getImm() == 1) {
1558
0
      // (BCOND brtarget:$imm, { 0, 0, 0, 1 })
1559
0
      AsmString = "be $\x01";
1560
0
      break;
1561
0
    }
1562
0
    if (MI->getNumOperands() == 2 &&
1563
0
        MI->getOperand(1).isImm() &&
1564
0
        MI->getOperand(1).getImm() == 10) {
1565
0
      // (BCOND brtarget:$imm, { 1, 0, 1, 0 })
1566
0
      AsmString = "bg $\x01";
1567
0
      break;
1568
0
    }
1569
0
    if (MI->getNumOperands() == 2 &&
1570
0
        MI->getOperand(1).isImm() &&
1571
0
        MI->getOperand(1).getImm() == 2) {
1572
0
      // (BCOND brtarget:$imm, { 0, 0, 1, 0 })
1573
0
      AsmString = "ble $\x01";
1574
0
      break;
1575
0
    }
1576
0
    if (MI->getNumOperands() == 2 &&
1577
0
        MI->getOperand(1).isImm() &&
1578
0
        MI->getOperand(1).getImm() == 11) {
1579
0
      // (BCOND brtarget:$imm, { 1, 0, 1, 1 })
1580
0
      AsmString = "bge $\x01";
1581
0
      break;
1582
0
    }
1583
0
    if (MI->getNumOperands() == 2 &&
1584
0
        MI->getOperand(1).isImm() &&
1585
0
        MI->getOperand(1).getImm() == 3) {
1586
0
      // (BCOND brtarget:$imm, { 0, 0, 1, 1 })
1587
0
      AsmString = "bl $\x01";
1588
0
      break;
1589
0
    }
1590
0
    if (MI->getNumOperands() == 2 &&
1591
0
        MI->getOperand(1).isImm() &&
1592
0
        MI->getOperand(1).getImm() == 12) {
1593
0
      // (BCOND brtarget:$imm, { 1, 1, 0, 0 })
1594
0
      AsmString = "bgu $\x01";
1595
0
      break;
1596
0
    }
1597
0
    if (MI->getNumOperands() == 2 &&
1598
0
        MI->getOperand(1).isImm() &&
1599
0
        MI->getOperand(1).getImm() == 4) {
1600
0
      // (BCOND brtarget:$imm, { 0, 1, 0, 0 })
1601
0
      AsmString = "bleu $\x01";
1602
0
      break;
1603
0
    }
1604
0
    if (MI->getNumOperands() == 2 &&
1605
0
        MI->getOperand(1).isImm() &&
1606
0
        MI->getOperand(1).getImm() == 13) {
1607
0
      // (BCOND brtarget:$imm, { 1, 1, 0, 1 })
1608
0
      AsmString = "bcc $\x01";
1609
0
      break;
1610
0
    }
1611
0
    if (MI->getNumOperands() == 2 &&
1612
0
        MI->getOperand(1).isImm() &&
1613
0
        MI->getOperand(1).getImm() == 5) {
1614
0
      // (BCOND brtarget:$imm, { 0, 1, 0, 1 })
1615
0
      AsmString = "bcs $\x01";
1616
0
      break;
1617
0
    }
1618
0
    if (MI->getNumOperands() == 2 &&
1619
0
        MI->getOperand(1).isImm() &&
1620
0
        MI->getOperand(1).getImm() == 14) {
1621
0
      // (BCOND brtarget:$imm, { 1, 1, 1, 0 })
1622
0
      AsmString = "bpos $\x01";
1623
0
      break;
1624
0
    }
1625
0
    if (MI->getNumOperands() == 2 &&
1626
0
        MI->getOperand(1).isImm() &&
1627
0
        MI->getOperand(1).getImm() == 6) {
1628
0
      // (BCOND brtarget:$imm, { 0, 1, 1, 0 })
1629
0
      AsmString = "bneg $\x01";
1630
0
      break;
1631
0
    }
1632
0
    if (MI->getNumOperands() == 2 &&
1633
0
        MI->getOperand(1).isImm() &&
1634
0
        MI->getOperand(1).getImm() == 15) {
1635
0
      // (BCOND brtarget:$imm, { 1, 1, 1, 1 })
1636
0
      AsmString = "bvc $\x01";
1637
0
      break;
1638
0
    }
1639
0
    if (MI->getNumOperands() == 2 &&
1640
0
        MI->getOperand(1).isImm() &&
1641
0
        MI->getOperand(1).getImm() == 7) {
1642
0
      // (BCOND brtarget:$imm, { 0, 1, 1, 1 })
1643
0
      AsmString = "bvs $\x01";
1644
0
      break;
1645
0
    }
1646
0
    return false;
1647
0
  case SP::BCONDA:
1648
0
    if (MI->getNumOperands() == 2 &&
1649
0
        MI->getOperand(1).isImm() &&
1650
0
        MI->getOperand(1).getImm() == 8) {
1651
0
      // (BCONDA brtarget:$imm, { 1, 0, 0, 0 })
1652
0
      AsmString = "ba,a $\x01";
1653
0
      break;
1654
0
    }
1655
0
    if (MI->getNumOperands() == 2 &&
1656
0
        MI->getOperand(1).isImm() &&
1657
0
        MI->getOperand(1).getImm() == 0) {
1658
0
      // (BCONDA brtarget:$imm, { 0, 0, 0, 0 })
1659
0
      AsmString = "bn,a $\x01";
1660
0
      break;
1661
0
    }
1662
0
    if (MI->getNumOperands() == 2 &&
1663
0
        MI->getOperand(1).isImm() &&
1664
0
        MI->getOperand(1).getImm() == 9) {
1665
0
      // (BCONDA brtarget:$imm, { 1, 0, 0, 1 })
1666
0
      AsmString = "bne,a $\x01";
1667
0
      break;
1668
0
    }
1669
0
    if (MI->getNumOperands() == 2 &&
1670
0
        MI->getOperand(1).isImm() &&
1671
0
        MI->getOperand(1).getImm() == 1) {
1672
0
      // (BCONDA brtarget:$imm, { 0, 0, 0, 1 })
1673
0
      AsmString = "be,a $\x01";
1674
0
      break;
1675
0
    }
1676
0
    if (MI->getNumOperands() == 2 &&
1677
0
        MI->getOperand(1).isImm() &&
1678
0
        MI->getOperand(1).getImm() == 10) {
1679
0
      // (BCONDA brtarget:$imm, { 1, 0, 1, 0 })
1680
0
      AsmString = "bg,a $\x01";
1681
0
      break;
1682
0
    }
1683
0
    if (MI->getNumOperands() == 2 &&
1684
0
        MI->getOperand(1).isImm() &&
1685
0
        MI->getOperand(1).getImm() == 2) {
1686
0
      // (BCONDA brtarget:$imm, { 0, 0, 1, 0 })
1687
0
      AsmString = "ble,a $\x01";
1688
0
      break;
1689
0
    }
1690
0
    if (MI->getNumOperands() == 2 &&
1691
0
        MI->getOperand(1).isImm() &&
1692
0
        MI->getOperand(1).getImm() == 11) {
1693
0
      // (BCONDA brtarget:$imm, { 1, 0, 1, 1 })
1694
0
      AsmString = "bge,a $\x01";
1695
0
      break;
1696
0
    }
1697
0
    if (MI->getNumOperands() == 2 &&
1698
0
        MI->getOperand(1).isImm() &&
1699
0
        MI->getOperand(1).getImm() == 3) {
1700
0
      // (BCONDA brtarget:$imm, { 0, 0, 1, 1 })
1701
0
      AsmString = "bl,a $\x01";
1702
0
      break;
1703
0
    }
1704
0
    if (MI->getNumOperands() == 2 &&
1705
0
        MI->getOperand(1).isImm() &&
1706
0
        MI->getOperand(1).getImm() == 12) {
1707
0
      // (BCONDA brtarget:$imm, { 1, 1, 0, 0 })
1708
0
      AsmString = "bgu,a $\x01";
1709
0
      break;
1710
0
    }
1711
0
    if (MI->getNumOperands() == 2 &&
1712
0
        MI->getOperand(1).isImm() &&
1713
0
        MI->getOperand(1).getImm() == 4) {
1714
0
      // (BCONDA brtarget:$imm, { 0, 1, 0, 0 })
1715
0
      AsmString = "bleu,a $\x01";
1716
0
      break;
1717
0
    }
1718
0
    if (MI->getNumOperands() == 2 &&
1719
0
        MI->getOperand(1).isImm() &&
1720
0
        MI->getOperand(1).getImm() == 13) {
1721
0
      // (BCONDA brtarget:$imm, { 1, 1, 0, 1 })
1722
0
      AsmString = "bcc,a $\x01";
1723
0
      break;
1724
0
    }
1725
0
    if (MI->getNumOperands() == 2 &&
1726
0
        MI->getOperand(1).isImm() &&
1727
0
        MI->getOperand(1).getImm() == 5) {
1728
0
      // (BCONDA brtarget:$imm, { 0, 1, 0, 1 })
1729
0
      AsmString = "bcs,a $\x01";
1730
0
      break;
1731
0
    }
1732
0
    if (MI->getNumOperands() == 2 &&
1733
0
        MI->getOperand(1).isImm() &&
1734
0
        MI->getOperand(1).getImm() == 14) {
1735
0
      // (BCONDA brtarget:$imm, { 1, 1, 1, 0 })
1736
0
      AsmString = "bpos,a $\x01";
1737
0
      break;
1738
0
    }
1739
0
    if (MI->getNumOperands() == 2 &&
1740
0
        MI->getOperand(1).isImm() &&
1741
0
        MI->getOperand(1).getImm() == 6) {
1742
0
      // (BCONDA brtarget:$imm, { 0, 1, 1, 0 })
1743
0
      AsmString = "bneg,a $\x01";
1744
0
      break;
1745
0
    }
1746
0
    if (MI->getNumOperands() == 2 &&
1747
0
        MI->getOperand(1).isImm() &&
1748
0
        MI->getOperand(1).getImm() == 15) {
1749
0
      // (BCONDA brtarget:$imm, { 1, 1, 1, 1 })
1750
0
      AsmString = "bvc,a $\x01";
1751
0
      break;
1752
0
    }
1753
0
    if (MI->getNumOperands() == 2 &&
1754
0
        MI->getOperand(1).isImm() &&
1755
0
        MI->getOperand(1).getImm() == 7) {
1756
0
      // (BCONDA brtarget:$imm, { 0, 1, 1, 1 })
1757
0
      AsmString = "bvs,a $\x01";
1758
0
      break;
1759
0
    }
1760
0
    return false;
1761
0
  case SP::BPFCCANT:
1762
0
    if (MI->getNumOperands() == 3 &&
1763
0
        MI->getOperand(1).isImm() &&
1764
0
        MI->getOperand(1).getImm() == 8 &&
1765
0
        MI->getOperand(2).isReg() &&
1766
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1767
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1768
0
      // (BPFCCANT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
1769
0
      AsmString = "fba,a,pn $\x03, $\x01";
1770
0
      break;
1771
0
    }
1772
0
    if (MI->getNumOperands() == 3 &&
1773
0
        MI->getOperand(1).isImm() &&
1774
0
        MI->getOperand(1).getImm() == 0 &&
1775
0
        MI->getOperand(2).isReg() &&
1776
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1777
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1778
0
      // (BPFCCANT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
1779
0
      AsmString = "fbn,a,pn $\x03, $\x01";
1780
0
      break;
1781
0
    }
1782
0
    if (MI->getNumOperands() == 3 &&
1783
0
        MI->getOperand(1).isImm() &&
1784
0
        MI->getOperand(1).getImm() == 7 &&
1785
0
        MI->getOperand(2).isReg() &&
1786
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1787
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1788
0
      // (BPFCCANT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
1789
0
      AsmString = "fbu,a,pn $\x03, $\x01";
1790
0
      break;
1791
0
    }
1792
0
    if (MI->getNumOperands() == 3 &&
1793
0
        MI->getOperand(1).isImm() &&
1794
0
        MI->getOperand(1).getImm() == 6 &&
1795
0
        MI->getOperand(2).isReg() &&
1796
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1797
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1798
0
      // (BPFCCANT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
1799
0
      AsmString = "fbg,a,pn $\x03, $\x01";
1800
0
      break;
1801
0
    }
1802
0
    if (MI->getNumOperands() == 3 &&
1803
0
        MI->getOperand(1).isImm() &&
1804
0
        MI->getOperand(1).getImm() == 5 &&
1805
0
        MI->getOperand(2).isReg() &&
1806
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1807
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1808
0
      // (BPFCCANT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
1809
0
      AsmString = "fbug,a,pn $\x03, $\x01";
1810
0
      break;
1811
0
    }
1812
0
    if (MI->getNumOperands() == 3 &&
1813
0
        MI->getOperand(1).isImm() &&
1814
0
        MI->getOperand(1).getImm() == 4 &&
1815
0
        MI->getOperand(2).isReg() &&
1816
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1817
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1818
0
      // (BPFCCANT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
1819
0
      AsmString = "fbl,a,pn $\x03, $\x01";
1820
0
      break;
1821
0
    }
1822
0
    if (MI->getNumOperands() == 3 &&
1823
0
        MI->getOperand(1).isImm() &&
1824
0
        MI->getOperand(1).getImm() == 3 &&
1825
0
        MI->getOperand(2).isReg() &&
1826
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1827
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1828
0
      // (BPFCCANT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
1829
0
      AsmString = "fbul,a,pn $\x03, $\x01";
1830
0
      break;
1831
0
    }
1832
0
    if (MI->getNumOperands() == 3 &&
1833
0
        MI->getOperand(1).isImm() &&
1834
0
        MI->getOperand(1).getImm() == 2 &&
1835
0
        MI->getOperand(2).isReg() &&
1836
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1837
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1838
0
      // (BPFCCANT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
1839
0
      AsmString = "fblg,a,pn $\x03, $\x01";
1840
0
      break;
1841
0
    }
1842
0
    if (MI->getNumOperands() == 3 &&
1843
0
        MI->getOperand(1).isImm() &&
1844
0
        MI->getOperand(1).getImm() == 1 &&
1845
0
        MI->getOperand(2).isReg() &&
1846
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1847
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1848
0
      // (BPFCCANT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
1849
0
      AsmString = "fbne,a,pn $\x03, $\x01";
1850
0
      break;
1851
0
    }
1852
0
    if (MI->getNumOperands() == 3 &&
1853
0
        MI->getOperand(1).isImm() &&
1854
0
        MI->getOperand(1).getImm() == 9 &&
1855
0
        MI->getOperand(2).isReg() &&
1856
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1857
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1858
0
      // (BPFCCANT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
1859
0
      AsmString = "fbe,a,pn $\x03, $\x01";
1860
0
      break;
1861
0
    }
1862
0
    if (MI->getNumOperands() == 3 &&
1863
0
        MI->getOperand(1).isImm() &&
1864
0
        MI->getOperand(1).getImm() == 10 &&
1865
0
        MI->getOperand(2).isReg() &&
1866
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1867
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1868
0
      // (BPFCCANT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
1869
0
      AsmString = "fbue,a,pn $\x03, $\x01";
1870
0
      break;
1871
0
    }
1872
0
    if (MI->getNumOperands() == 3 &&
1873
0
        MI->getOperand(1).isImm() &&
1874
0
        MI->getOperand(1).getImm() == 11 &&
1875
0
        MI->getOperand(2).isReg() &&
1876
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1877
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1878
0
      // (BPFCCANT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
1879
0
      AsmString = "fbge,a,pn $\x03, $\x01";
1880
0
      break;
1881
0
    }
1882
0
    if (MI->getNumOperands() == 3 &&
1883
0
        MI->getOperand(1).isImm() &&
1884
0
        MI->getOperand(1).getImm() == 12 &&
1885
0
        MI->getOperand(2).isReg() &&
1886
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1887
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1888
0
      // (BPFCCANT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
1889
0
      AsmString = "fbuge,a,pn $\x03, $\x01";
1890
0
      break;
1891
0
    }
1892
0
    if (MI->getNumOperands() == 3 &&
1893
0
        MI->getOperand(1).isImm() &&
1894
0
        MI->getOperand(1).getImm() == 13 &&
1895
0
        MI->getOperand(2).isReg() &&
1896
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1897
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1898
0
      // (BPFCCANT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
1899
0
      AsmString = "fble,a,pn $\x03, $\x01";
1900
0
      break;
1901
0
    }
1902
0
    if (MI->getNumOperands() == 3 &&
1903
0
        MI->getOperand(1).isImm() &&
1904
0
        MI->getOperand(1).getImm() == 14 &&
1905
0
        MI->getOperand(2).isReg() &&
1906
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1907
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1908
0
      // (BPFCCANT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
1909
0
      AsmString = "fbule,a,pn $\x03, $\x01";
1910
0
      break;
1911
0
    }
1912
0
    if (MI->getNumOperands() == 3 &&
1913
0
        MI->getOperand(1).isImm() &&
1914
0
        MI->getOperand(1).getImm() == 15 &&
1915
0
        MI->getOperand(2).isReg() &&
1916
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1917
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1918
0
      // (BPFCCANT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
1919
0
      AsmString = "fbo,a,pn $\x03, $\x01";
1920
0
      break;
1921
0
    }
1922
0
    return false;
1923
0
  case SP::BPFCCNT:
1924
0
    if (MI->getNumOperands() == 3 &&
1925
0
        MI->getOperand(1).isImm() &&
1926
0
        MI->getOperand(1).getImm() == 8 &&
1927
0
        MI->getOperand(2).isReg() &&
1928
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1929
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1930
0
      // (BPFCCNT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
1931
0
      AsmString = "fba,pn $\x03, $\x01";
1932
0
      break;
1933
0
    }
1934
0
    if (MI->getNumOperands() == 3 &&
1935
0
        MI->getOperand(1).isImm() &&
1936
0
        MI->getOperand(1).getImm() == 0 &&
1937
0
        MI->getOperand(2).isReg() &&
1938
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1939
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1940
0
      // (BPFCCNT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
1941
0
      AsmString = "fbn,pn $\x03, $\x01";
1942
0
      break;
1943
0
    }
1944
0
    if (MI->getNumOperands() == 3 &&
1945
0
        MI->getOperand(1).isImm() &&
1946
0
        MI->getOperand(1).getImm() == 7 &&
1947
0
        MI->getOperand(2).isReg() &&
1948
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1949
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1950
0
      // (BPFCCNT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
1951
0
      AsmString = "fbu,pn $\x03, $\x01";
1952
0
      break;
1953
0
    }
1954
0
    if (MI->getNumOperands() == 3 &&
1955
0
        MI->getOperand(1).isImm() &&
1956
0
        MI->getOperand(1).getImm() == 6 &&
1957
0
        MI->getOperand(2).isReg() &&
1958
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1959
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1960
0
      // (BPFCCNT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
1961
0
      AsmString = "fbg,pn $\x03, $\x01";
1962
0
      break;
1963
0
    }
1964
0
    if (MI->getNumOperands() == 3 &&
1965
0
        MI->getOperand(1).isImm() &&
1966
0
        MI->getOperand(1).getImm() == 5 &&
1967
0
        MI->getOperand(2).isReg() &&
1968
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1969
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1970
0
      // (BPFCCNT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
1971
0
      AsmString = "fbug,pn $\x03, $\x01";
1972
0
      break;
1973
0
    }
1974
0
    if (MI->getNumOperands() == 3 &&
1975
0
        MI->getOperand(1).isImm() &&
1976
0
        MI->getOperand(1).getImm() == 4 &&
1977
0
        MI->getOperand(2).isReg() &&
1978
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1979
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1980
0
      // (BPFCCNT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
1981
0
      AsmString = "fbl,pn $\x03, $\x01";
1982
0
      break;
1983
0
    }
1984
0
    if (MI->getNumOperands() == 3 &&
1985
0
        MI->getOperand(1).isImm() &&
1986
0
        MI->getOperand(1).getImm() == 3 &&
1987
0
        MI->getOperand(2).isReg() &&
1988
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1989
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
1990
0
      // (BPFCCNT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
1991
0
      AsmString = "fbul,pn $\x03, $\x01";
1992
0
      break;
1993
0
    }
1994
0
    if (MI->getNumOperands() == 3 &&
1995
0
        MI->getOperand(1).isImm() &&
1996
0
        MI->getOperand(1).getImm() == 2 &&
1997
0
        MI->getOperand(2).isReg() &&
1998
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1999
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2000
0
      // (BPFCCNT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
2001
0
      AsmString = "fblg,pn $\x03, $\x01";
2002
0
      break;
2003
0
    }
2004
0
    if (MI->getNumOperands() == 3 &&
2005
0
        MI->getOperand(1).isImm() &&
2006
0
        MI->getOperand(1).getImm() == 1 &&
2007
0
        MI->getOperand(2).isReg() &&
2008
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2009
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2010
0
      // (BPFCCNT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
2011
0
      AsmString = "fbne,pn $\x03, $\x01";
2012
0
      break;
2013
0
    }
2014
0
    if (MI->getNumOperands() == 3 &&
2015
0
        MI->getOperand(1).isImm() &&
2016
0
        MI->getOperand(1).getImm() == 9 &&
2017
0
        MI->getOperand(2).isReg() &&
2018
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2019
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2020
0
      // (BPFCCNT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
2021
0
      AsmString = "fbe,pn $\x03, $\x01";
2022
0
      break;
2023
0
    }
2024
0
    if (MI->getNumOperands() == 3 &&
2025
0
        MI->getOperand(1).isImm() &&
2026
0
        MI->getOperand(1).getImm() == 10 &&
2027
0
        MI->getOperand(2).isReg() &&
2028
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2029
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2030
0
      // (BPFCCNT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
2031
0
      AsmString = "fbue,pn $\x03, $\x01";
2032
0
      break;
2033
0
    }
2034
0
    if (MI->getNumOperands() == 3 &&
2035
0
        MI->getOperand(1).isImm() &&
2036
0
        MI->getOperand(1).getImm() == 11 &&
2037
0
        MI->getOperand(2).isReg() &&
2038
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2039
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2040
0
      // (BPFCCNT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
2041
0
      AsmString = "fbge,pn $\x03, $\x01";
2042
0
      break;
2043
0
    }
2044
0
    if (MI->getNumOperands() == 3 &&
2045
0
        MI->getOperand(1).isImm() &&
2046
0
        MI->getOperand(1).getImm() == 12 &&
2047
0
        MI->getOperand(2).isReg() &&
2048
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2049
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2050
0
      // (BPFCCNT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
2051
0
      AsmString = "fbuge,pn $\x03, $\x01";
2052
0
      break;
2053
0
    }
2054
0
    if (MI->getNumOperands() == 3 &&
2055
0
        MI->getOperand(1).isImm() &&
2056
0
        MI->getOperand(1).getImm() == 13 &&
2057
0
        MI->getOperand(2).isReg() &&
2058
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2059
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2060
0
      // (BPFCCNT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
2061
0
      AsmString = "fble,pn $\x03, $\x01";
2062
0
      break;
2063
0
    }
2064
0
    if (MI->getNumOperands() == 3 &&
2065
0
        MI->getOperand(1).isImm() &&
2066
0
        MI->getOperand(1).getImm() == 14 &&
2067
0
        MI->getOperand(2).isReg() &&
2068
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2069
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2070
0
      // (BPFCCNT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
2071
0
      AsmString = "fbule,pn $\x03, $\x01";
2072
0
      break;
2073
0
    }
2074
0
    if (MI->getNumOperands() == 3 &&
2075
0
        MI->getOperand(1).isImm() &&
2076
0
        MI->getOperand(1).getImm() == 15 &&
2077
0
        MI->getOperand(2).isReg() &&
2078
0
        MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2079
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2080
0
      // (BPFCCNT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
2081
0
      AsmString = "fbo,pn $\x03, $\x01";
2082
0
      break;
2083
0
    }
2084
0
    return false;
2085
0
  case SP::BPICCANT:
2086
0
    if (MI->getNumOperands() == 2 &&
2087
0
        MI->getOperand(1).isImm() &&
2088
0
        MI->getOperand(1).getImm() == 8 &&
2089
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2090
0
      // (BPICCANT brtarget:$imm, { 1, 0, 0, 0 })
2091
0
      AsmString = "ba,a,pn %icc, $\x01";
2092
0
      break;
2093
0
    }
2094
0
    if (MI->getNumOperands() == 2 &&
2095
0
        MI->getOperand(1).isImm() &&
2096
0
        MI->getOperand(1).getImm() == 0 &&
2097
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2098
0
      // (BPICCANT brtarget:$imm, { 0, 0, 0, 0 })
2099
0
      AsmString = "bn,a,pn %icc, $\x01";
2100
0
      break;
2101
0
    }
2102
0
    if (MI->getNumOperands() == 2 &&
2103
0
        MI->getOperand(1).isImm() &&
2104
0
        MI->getOperand(1).getImm() == 9 &&
2105
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2106
0
      // (BPICCANT brtarget:$imm, { 1, 0, 0, 1 })
2107
0
      AsmString = "bne,a,pn %icc, $\x01";
2108
0
      break;
2109
0
    }
2110
0
    if (MI->getNumOperands() == 2 &&
2111
0
        MI->getOperand(1).isImm() &&
2112
0
        MI->getOperand(1).getImm() == 1 &&
2113
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2114
0
      // (BPICCANT brtarget:$imm, { 0, 0, 0, 1 })
2115
0
      AsmString = "be,a,pn %icc, $\x01";
2116
0
      break;
2117
0
    }
2118
0
    if (MI->getNumOperands() == 2 &&
2119
0
        MI->getOperand(1).isImm() &&
2120
0
        MI->getOperand(1).getImm() == 10 &&
2121
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2122
0
      // (BPICCANT brtarget:$imm, { 1, 0, 1, 0 })
2123
0
      AsmString = "bg,a,pn %icc, $\x01";
2124
0
      break;
2125
0
    }
2126
0
    if (MI->getNumOperands() == 2 &&
2127
0
        MI->getOperand(1).isImm() &&
2128
0
        MI->getOperand(1).getImm() == 2 &&
2129
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2130
0
      // (BPICCANT brtarget:$imm, { 0, 0, 1, 0 })
2131
0
      AsmString = "ble,a,pn %icc, $\x01";
2132
0
      break;
2133
0
    }
2134
0
    if (MI->getNumOperands() == 2 &&
2135
0
        MI->getOperand(1).isImm() &&
2136
0
        MI->getOperand(1).getImm() == 11 &&
2137
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2138
0
      // (BPICCANT brtarget:$imm, { 1, 0, 1, 1 })
2139
0
      AsmString = "bge,a,pn %icc, $\x01";
2140
0
      break;
2141
0
    }
2142
0
    if (MI->getNumOperands() == 2 &&
2143
0
        MI->getOperand(1).isImm() &&
2144
0
        MI->getOperand(1).getImm() == 3 &&
2145
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2146
0
      // (BPICCANT brtarget:$imm, { 0, 0, 1, 1 })
2147
0
      AsmString = "bl,a,pn %icc, $\x01";
2148
0
      break;
2149
0
    }
2150
0
    if (MI->getNumOperands() == 2 &&
2151
0
        MI->getOperand(1).isImm() &&
2152
0
        MI->getOperand(1).getImm() == 12 &&
2153
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2154
0
      // (BPICCANT brtarget:$imm, { 1, 1, 0, 0 })
2155
0
      AsmString = "bgu,a,pn %icc, $\x01";
2156
0
      break;
2157
0
    }
2158
0
    if (MI->getNumOperands() == 2 &&
2159
0
        MI->getOperand(1).isImm() &&
2160
0
        MI->getOperand(1).getImm() == 4 &&
2161
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2162
0
      // (BPICCANT brtarget:$imm, { 0, 1, 0, 0 })
2163
0
      AsmString = "bleu,a,pn %icc, $\x01";
2164
0
      break;
2165
0
    }
2166
0
    if (MI->getNumOperands() == 2 &&
2167
0
        MI->getOperand(1).isImm() &&
2168
0
        MI->getOperand(1).getImm() == 13 &&
2169
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2170
0
      // (BPICCANT brtarget:$imm, { 1, 1, 0, 1 })
2171
0
      AsmString = "bcc,a,pn %icc, $\x01";
2172
0
      break;
2173
0
    }
2174
0
    if (MI->getNumOperands() == 2 &&
2175
0
        MI->getOperand(1).isImm() &&
2176
0
        MI->getOperand(1).getImm() == 5 &&
2177
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2178
0
      // (BPICCANT brtarget:$imm, { 0, 1, 0, 1 })
2179
0
      AsmString = "bcs,a,pn %icc, $\x01";
2180
0
      break;
2181
0
    }
2182
0
    if (MI->getNumOperands() == 2 &&
2183
0
        MI->getOperand(1).isImm() &&
2184
0
        MI->getOperand(1).getImm() == 14 &&
2185
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2186
0
      // (BPICCANT brtarget:$imm, { 1, 1, 1, 0 })
2187
0
      AsmString = "bpos,a,pn %icc, $\x01";
2188
0
      break;
2189
0
    }
2190
0
    if (MI->getNumOperands() == 2 &&
2191
0
        MI->getOperand(1).isImm() &&
2192
0
        MI->getOperand(1).getImm() == 6 &&
2193
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2194
0
      // (BPICCANT brtarget:$imm, { 0, 1, 1, 0 })
2195
0
      AsmString = "bneg,a,pn %icc, $\x01";
2196
0
      break;
2197
0
    }
2198
0
    if (MI->getNumOperands() == 2 &&
2199
0
        MI->getOperand(1).isImm() &&
2200
0
        MI->getOperand(1).getImm() == 15 &&
2201
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2202
0
      // (BPICCANT brtarget:$imm, { 1, 1, 1, 1 })
2203
0
      AsmString = "bvc,a,pn %icc, $\x01";
2204
0
      break;
2205
0
    }
2206
0
    if (MI->getNumOperands() == 2 &&
2207
0
        MI->getOperand(1).isImm() &&
2208
0
        MI->getOperand(1).getImm() == 7 &&
2209
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2210
0
      // (BPICCANT brtarget:$imm, { 0, 1, 1, 1 })
2211
0
      AsmString = "bvs,a,pn %icc, $\x01";
2212
0
      break;
2213
0
    }
2214
0
    return false;
2215
0
  case SP::BPICCNT:
2216
0
    if (MI->getNumOperands() == 2 &&
2217
0
        MI->getOperand(1).isImm() &&
2218
0
        MI->getOperand(1).getImm() == 8 &&
2219
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2220
0
      // (BPICCNT brtarget:$imm, { 1, 0, 0, 0 })
2221
0
      AsmString = "ba,pn %icc, $\x01";
2222
0
      break;
2223
0
    }
2224
0
    if (MI->getNumOperands() == 2 &&
2225
0
        MI->getOperand(1).isImm() &&
2226
0
        MI->getOperand(1).getImm() == 0 &&
2227
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2228
0
      // (BPICCNT brtarget:$imm, { 0, 0, 0, 0 })
2229
0
      AsmString = "bn,pn %icc, $\x01";
2230
0
      break;
2231
0
    }
2232
0
    if (MI->getNumOperands() == 2 &&
2233
0
        MI->getOperand(1).isImm() &&
2234
0
        MI->getOperand(1).getImm() == 9 &&
2235
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2236
0
      // (BPICCNT brtarget:$imm, { 1, 0, 0, 1 })
2237
0
      AsmString = "bne,pn %icc, $\x01";
2238
0
      break;
2239
0
    }
2240
0
    if (MI->getNumOperands() == 2 &&
2241
0
        MI->getOperand(1).isImm() &&
2242
0
        MI->getOperand(1).getImm() == 1 &&
2243
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2244
0
      // (BPICCNT brtarget:$imm, { 0, 0, 0, 1 })
2245
0
      AsmString = "be,pn %icc, $\x01";
2246
0
      break;
2247
0
    }
2248
0
    if (MI->getNumOperands() == 2 &&
2249
0
        MI->getOperand(1).isImm() &&
2250
0
        MI->getOperand(1).getImm() == 10 &&
2251
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2252
0
      // (BPICCNT brtarget:$imm, { 1, 0, 1, 0 })
2253
0
      AsmString = "bg,pn %icc, $\x01";
2254
0
      break;
2255
0
    }
2256
0
    if (MI->getNumOperands() == 2 &&
2257
0
        MI->getOperand(1).isImm() &&
2258
0
        MI->getOperand(1).getImm() == 2 &&
2259
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2260
0
      // (BPICCNT brtarget:$imm, { 0, 0, 1, 0 })
2261
0
      AsmString = "ble,pn %icc, $\x01";
2262
0
      break;
2263
0
    }
2264
0
    if (MI->getNumOperands() == 2 &&
2265
0
        MI->getOperand(1).isImm() &&
2266
0
        MI->getOperand(1).getImm() == 11 &&
2267
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2268
0
      // (BPICCNT brtarget:$imm, { 1, 0, 1, 1 })
2269
0
      AsmString = "bge,pn %icc, $\x01";
2270
0
      break;
2271
0
    }
2272
0
    if (MI->getNumOperands() == 2 &&
2273
0
        MI->getOperand(1).isImm() &&
2274
0
        MI->getOperand(1).getImm() == 3 &&
2275
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2276
0
      // (BPICCNT brtarget:$imm, { 0, 0, 1, 1 })
2277
0
      AsmString = "bl,pn %icc, $\x01";
2278
0
      break;
2279
0
    }
2280
0
    if (MI->getNumOperands() == 2 &&
2281
0
        MI->getOperand(1).isImm() &&
2282
0
        MI->getOperand(1).getImm() == 12 &&
2283
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2284
0
      // (BPICCNT brtarget:$imm, { 1, 1, 0, 0 })
2285
0
      AsmString = "bgu,pn %icc, $\x01";
2286
0
      break;
2287
0
    }
2288
0
    if (MI->getNumOperands() == 2 &&
2289
0
        MI->getOperand(1).isImm() &&
2290
0
        MI->getOperand(1).getImm() == 4 &&
2291
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2292
0
      // (BPICCNT brtarget:$imm, { 0, 1, 0, 0 })
2293
0
      AsmString = "bleu,pn %icc, $\x01";
2294
0
      break;
2295
0
    }
2296
0
    if (MI->getNumOperands() == 2 &&
2297
0
        MI->getOperand(1).isImm() &&
2298
0
        MI->getOperand(1).getImm() == 13 &&
2299
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2300
0
      // (BPICCNT brtarget:$imm, { 1, 1, 0, 1 })
2301
0
      AsmString = "bcc,pn %icc, $\x01";
2302
0
      break;
2303
0
    }
2304
0
    if (MI->getNumOperands() == 2 &&
2305
0
        MI->getOperand(1).isImm() &&
2306
0
        MI->getOperand(1).getImm() == 5 &&
2307
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2308
0
      // (BPICCNT brtarget:$imm, { 0, 1, 0, 1 })
2309
0
      AsmString = "bcs,pn %icc, $\x01";
2310
0
      break;
2311
0
    }
2312
0
    if (MI->getNumOperands() == 2 &&
2313
0
        MI->getOperand(1).isImm() &&
2314
0
        MI->getOperand(1).getImm() == 14 &&
2315
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2316
0
      // (BPICCNT brtarget:$imm, { 1, 1, 1, 0 })
2317
0
      AsmString = "bpos,pn %icc, $\x01";
2318
0
      break;
2319
0
    }
2320
0
    if (MI->getNumOperands() == 2 &&
2321
0
        MI->getOperand(1).isImm() &&
2322
0
        MI->getOperand(1).getImm() == 6 &&
2323
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2324
0
      // (BPICCNT brtarget:$imm, { 0, 1, 1, 0 })
2325
0
      AsmString = "bneg,pn %icc, $\x01";
2326
0
      break;
2327
0
    }
2328
0
    if (MI->getNumOperands() == 2 &&
2329
0
        MI->getOperand(1).isImm() &&
2330
0
        MI->getOperand(1).getImm() == 15 &&
2331
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2332
0
      // (BPICCNT brtarget:$imm, { 1, 1, 1, 1 })
2333
0
      AsmString = "bvc,pn %icc, $\x01";
2334
0
      break;
2335
0
    }
2336
0
    if (MI->getNumOperands() == 2 &&
2337
0
        MI->getOperand(1).isImm() &&
2338
0
        MI->getOperand(1).getImm() == 7 &&
2339
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2340
0
      // (BPICCNT brtarget:$imm, { 0, 1, 1, 1 })
2341
0
      AsmString = "bvs,pn %icc, $\x01";
2342
0
      break;
2343
0
    }
2344
0
    return false;
2345
0
  case SP::BPXCCANT:
2346
0
    if (MI->getNumOperands() == 2 &&
2347
0
        MI->getOperand(1).isImm() &&
2348
0
        MI->getOperand(1).getImm() == 8) {
2349
0
      // (BPXCCANT brtarget:$imm, { 1, 0, 0, 0 })
2350
0
      AsmString = "ba,a,pn %xcc, $\x01";
2351
0
      break;
2352
0
    }
2353
0
    if (MI->getNumOperands() == 2 &&
2354
0
        MI->getOperand(1).isImm() &&
2355
0
        MI->getOperand(1).getImm() == 0) {
2356
0
      // (BPXCCANT brtarget:$imm, { 0, 0, 0, 0 })
2357
0
      AsmString = "bn,a,pn %xcc, $\x01";
2358
0
      break;
2359
0
    }
2360
0
    if (MI->getNumOperands() == 2 &&
2361
0
        MI->getOperand(1).isImm() &&
2362
0
        MI->getOperand(1).getImm() == 9) {
2363
0
      // (BPXCCANT brtarget:$imm, { 1, 0, 0, 1 })
2364
0
      AsmString = "bne,a,pn %xcc, $\x01";
2365
0
      break;
2366
0
    }
2367
0
    if (MI->getNumOperands() == 2 &&
2368
0
        MI->getOperand(1).isImm() &&
2369
0
        MI->getOperand(1).getImm() == 1) {
2370
0
      // (BPXCCANT brtarget:$imm, { 0, 0, 0, 1 })
2371
0
      AsmString = "be,a,pn %xcc, $\x01";
2372
0
      break;
2373
0
    }
2374
0
    if (MI->getNumOperands() == 2 &&
2375
0
        MI->getOperand(1).isImm() &&
2376
0
        MI->getOperand(1).getImm() == 10) {
2377
0
      // (BPXCCANT brtarget:$imm, { 1, 0, 1, 0 })
2378
0
      AsmString = "bg,a,pn %xcc, $\x01";
2379
0
      break;
2380
0
    }
2381
0
    if (MI->getNumOperands() == 2 &&
2382
0
        MI->getOperand(1).isImm() &&
2383
0
        MI->getOperand(1).getImm() == 2) {
2384
0
      // (BPXCCANT brtarget:$imm, { 0, 0, 1, 0 })
2385
0
      AsmString = "ble,a,pn %xcc, $\x01";
2386
0
      break;
2387
0
    }
2388
0
    if (MI->getNumOperands() == 2 &&
2389
0
        MI->getOperand(1).isImm() &&
2390
0
        MI->getOperand(1).getImm() == 11) {
2391
0
      // (BPXCCANT brtarget:$imm, { 1, 0, 1, 1 })
2392
0
      AsmString = "bge,a,pn %xcc, $\x01";
2393
0
      break;
2394
0
    }
2395
0
    if (MI->getNumOperands() == 2 &&
2396
0
        MI->getOperand(1).isImm() &&
2397
0
        MI->getOperand(1).getImm() == 3) {
2398
0
      // (BPXCCANT brtarget:$imm, { 0, 0, 1, 1 })
2399
0
      AsmString = "bl,a,pn %xcc, $\x01";
2400
0
      break;
2401
0
    }
2402
0
    if (MI->getNumOperands() == 2 &&
2403
0
        MI->getOperand(1).isImm() &&
2404
0
        MI->getOperand(1).getImm() == 12) {
2405
0
      // (BPXCCANT brtarget:$imm, { 1, 1, 0, 0 })
2406
0
      AsmString = "bgu,a,pn %xcc, $\x01";
2407
0
      break;
2408
0
    }
2409
0
    if (MI->getNumOperands() == 2 &&
2410
0
        MI->getOperand(1).isImm() &&
2411
0
        MI->getOperand(1).getImm() == 4) {
2412
0
      // (BPXCCANT brtarget:$imm, { 0, 1, 0, 0 })
2413
0
      AsmString = "bleu,a,pn %xcc, $\x01";
2414
0
      break;
2415
0
    }
2416
0
    if (MI->getNumOperands() == 2 &&
2417
0
        MI->getOperand(1).isImm() &&
2418
0
        MI->getOperand(1).getImm() == 13) {
2419
0
      // (BPXCCANT brtarget:$imm, { 1, 1, 0, 1 })
2420
0
      AsmString = "bcc,a,pn %xcc, $\x01";
2421
0
      break;
2422
0
    }
2423
0
    if (MI->getNumOperands() == 2 &&
2424
0
        MI->getOperand(1).isImm() &&
2425
0
        MI->getOperand(1).getImm() == 5) {
2426
0
      // (BPXCCANT brtarget:$imm, { 0, 1, 0, 1 })
2427
0
      AsmString = "bcs,a,pn %xcc, $\x01";
2428
0
      break;
2429
0
    }
2430
0
    if (MI->getNumOperands() == 2 &&
2431
0
        MI->getOperand(1).isImm() &&
2432
0
        MI->getOperand(1).getImm() == 14) {
2433
0
      // (BPXCCANT brtarget:$imm, { 1, 1, 1, 0 })
2434
0
      AsmString = "bpos,a,pn %xcc, $\x01";
2435
0
      break;
2436
0
    }
2437
0
    if (MI->getNumOperands() == 2 &&
2438
0
        MI->getOperand(1).isImm() &&
2439
0
        MI->getOperand(1).getImm() == 6) {
2440
0
      // (BPXCCANT brtarget:$imm, { 0, 1, 1, 0 })
2441
0
      AsmString = "bneg,a,pn %xcc, $\x01";
2442
0
      break;
2443
0
    }
2444
0
    if (MI->getNumOperands() == 2 &&
2445
0
        MI->getOperand(1).isImm() &&
2446
0
        MI->getOperand(1).getImm() == 15) {
2447
0
      // (BPXCCANT brtarget:$imm, { 1, 1, 1, 1 })
2448
0
      AsmString = "bvc,a,pn %xcc, $\x01";
2449
0
      break;
2450
0
    }
2451
0
    if (MI->getNumOperands() == 2 &&
2452
0
        MI->getOperand(1).isImm() &&
2453
0
        MI->getOperand(1).getImm() == 7) {
2454
0
      // (BPXCCANT brtarget:$imm, { 0, 1, 1, 1 })
2455
0
      AsmString = "bvs,a,pn %xcc, $\x01";
2456
0
      break;
2457
0
    }
2458
0
    return false;
2459
0
  case SP::BPXCCNT:
2460
0
    if (MI->getNumOperands() == 2 &&
2461
0
        MI->getOperand(1).isImm() &&
2462
0
        MI->getOperand(1).getImm() == 8) {
2463
0
      // (BPXCCNT brtarget:$imm, { 1, 0, 0, 0 })
2464
0
      AsmString = "ba,pn %xcc, $\x01";
2465
0
      break;
2466
0
    }
2467
0
    if (MI->getNumOperands() == 2 &&
2468
0
        MI->getOperand(1).isImm() &&
2469
0
        MI->getOperand(1).getImm() == 0) {
2470
0
      // (BPXCCNT brtarget:$imm, { 0, 0, 0, 0 })
2471
0
      AsmString = "bn,pn %xcc, $\x01";
2472
0
      break;
2473
0
    }
2474
0
    if (MI->getNumOperands() == 2 &&
2475
0
        MI->getOperand(1).isImm() &&
2476
0
        MI->getOperand(1).getImm() == 9) {
2477
0
      // (BPXCCNT brtarget:$imm, { 1, 0, 0, 1 })
2478
0
      AsmString = "bne,pn %xcc, $\x01";
2479
0
      break;
2480
0
    }
2481
0
    if (MI->getNumOperands() == 2 &&
2482
0
        MI->getOperand(1).isImm() &&
2483
0
        MI->getOperand(1).getImm() == 1) {
2484
0
      // (BPXCCNT brtarget:$imm, { 0, 0, 0, 1 })
2485
0
      AsmString = "be,pn %xcc, $\x01";
2486
0
      break;
2487
0
    }
2488
0
    if (MI->getNumOperands() == 2 &&
2489
0
        MI->getOperand(1).isImm() &&
2490
0
        MI->getOperand(1).getImm() == 10) {
2491
0
      // (BPXCCNT brtarget:$imm, { 1, 0, 1, 0 })
2492
0
      AsmString = "bg,pn %xcc, $\x01";
2493
0
      break;
2494
0
    }
2495
0
    if (MI->getNumOperands() == 2 &&
2496
0
        MI->getOperand(1).isImm() &&
2497
0
        MI->getOperand(1).getImm() == 2) {
2498
0
      // (BPXCCNT brtarget:$imm, { 0, 0, 1, 0 })
2499
0
      AsmString = "ble,pn %xcc, $\x01";
2500
0
      break;
2501
0
    }
2502
0
    if (MI->getNumOperands() == 2 &&
2503
0
        MI->getOperand(1).isImm() &&
2504
0
        MI->getOperand(1).getImm() == 11) {
2505
0
      // (BPXCCNT brtarget:$imm, { 1, 0, 1, 1 })
2506
0
      AsmString = "bge,pn %xcc, $\x01";
2507
0
      break;
2508
0
    }
2509
0
    if (MI->getNumOperands() == 2 &&
2510
0
        MI->getOperand(1).isImm() &&
2511
0
        MI->getOperand(1).getImm() == 3) {
2512
0
      // (BPXCCNT brtarget:$imm, { 0, 0, 1, 1 })
2513
0
      AsmString = "bl,pn %xcc, $\x01";
2514
0
      break;
2515
0
    }
2516
0
    if (MI->getNumOperands() == 2 &&
2517
0
        MI->getOperand(1).isImm() &&
2518
0
        MI->getOperand(1).getImm() == 12) {
2519
0
      // (BPXCCNT brtarget:$imm, { 1, 1, 0, 0 })
2520
0
      AsmString = "bgu,pn %xcc, $\x01";
2521
0
      break;
2522
0
    }
2523
0
    if (MI->getNumOperands() == 2 &&
2524
0
        MI->getOperand(1).isImm() &&
2525
0
        MI->getOperand(1).getImm() == 4) {
2526
0
      // (BPXCCNT brtarget:$imm, { 0, 1, 0, 0 })
2527
0
      AsmString = "bleu,pn %xcc, $\x01";
2528
0
      break;
2529
0
    }
2530
0
    if (MI->getNumOperands() == 2 &&
2531
0
        MI->getOperand(1).isImm() &&
2532
0
        MI->getOperand(1).getImm() == 13) {
2533
0
      // (BPXCCNT brtarget:$imm, { 1, 1, 0, 1 })
2534
0
      AsmString = "bcc,pn %xcc, $\x01";
2535
0
      break;
2536
0
    }
2537
0
    if (MI->getNumOperands() == 2 &&
2538
0
        MI->getOperand(1).isImm() &&
2539
0
        MI->getOperand(1).getImm() == 5) {
2540
0
      // (BPXCCNT brtarget:$imm, { 0, 1, 0, 1 })
2541
0
      AsmString = "bcs,pn %xcc, $\x01";
2542
0
      break;
2543
0
    }
2544
0
    if (MI->getNumOperands() == 2 &&
2545
0
        MI->getOperand(1).isImm() &&
2546
0
        MI->getOperand(1).getImm() == 14) {
2547
0
      // (BPXCCNT brtarget:$imm, { 1, 1, 1, 0 })
2548
0
      AsmString = "bpos,pn %xcc, $\x01";
2549
0
      break;
2550
0
    }
2551
0
    if (MI->getNumOperands() == 2 &&
2552
0
        MI->getOperand(1).isImm() &&
2553
0
        MI->getOperand(1).getImm() == 6) {
2554
0
      // (BPXCCNT brtarget:$imm, { 0, 1, 1, 0 })
2555
0
      AsmString = "bneg,pn %xcc, $\x01";
2556
0
      break;
2557
0
    }
2558
0
    if (MI->getNumOperands() == 2 &&
2559
0
        MI->getOperand(1).isImm() &&
2560
0
        MI->getOperand(1).getImm() == 15) {
2561
0
      // (BPXCCNT brtarget:$imm, { 1, 1, 1, 1 })
2562
0
      AsmString = "bvc,pn %xcc, $\x01";
2563
0
      break;
2564
0
    }
2565
0
    if (MI->getNumOperands() == 2 &&
2566
0
        MI->getOperand(1).isImm() &&
2567
0
        MI->getOperand(1).getImm() == 7) {
2568
0
      // (BPXCCNT brtarget:$imm, { 0, 1, 1, 1 })
2569
0
      AsmString = "bvs,pn %xcc, $\x01";
2570
0
      break;
2571
0
    }
2572
0
    return false;
2573
0
  case SP::FMOVD_ICC:
2574
0
    if (MI->getNumOperands() == 4 &&
2575
0
        MI->getOperand(0).isReg() &&
2576
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2577
0
        MI->getOperand(1).isReg() &&
2578
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2579
0
        MI->getOperand(3).isImm() &&
2580
0
        MI->getOperand(3).getImm() == 8 &&
2581
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2582
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
2583
0
      AsmString = "fmovda %icc, $\x02, $\x01";
2584
0
      break;
2585
0
    }
2586
0
    if (MI->getNumOperands() == 4 &&
2587
0
        MI->getOperand(0).isReg() &&
2588
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2589
0
        MI->getOperand(1).isReg() &&
2590
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2591
0
        MI->getOperand(3).isImm() &&
2592
0
        MI->getOperand(3).getImm() == 0 &&
2593
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2594
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
2595
0
      AsmString = "fmovdn %icc, $\x02, $\x01";
2596
0
      break;
2597
0
    }
2598
0
    if (MI->getNumOperands() == 4 &&
2599
0
        MI->getOperand(0).isReg() &&
2600
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2601
0
        MI->getOperand(1).isReg() &&
2602
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2603
0
        MI->getOperand(3).isImm() &&
2604
0
        MI->getOperand(3).getImm() == 9 &&
2605
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2606
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
2607
0
      AsmString = "fmovdne %icc, $\x02, $\x01";
2608
0
      break;
2609
0
    }
2610
0
    if (MI->getNumOperands() == 4 &&
2611
0
        MI->getOperand(0).isReg() &&
2612
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2613
0
        MI->getOperand(1).isReg() &&
2614
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2615
0
        MI->getOperand(3).isImm() &&
2616
0
        MI->getOperand(3).getImm() == 1 &&
2617
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2618
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
2619
0
      AsmString = "fmovde %icc, $\x02, $\x01";
2620
0
      break;
2621
0
    }
2622
0
    if (MI->getNumOperands() == 4 &&
2623
0
        MI->getOperand(0).isReg() &&
2624
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2625
0
        MI->getOperand(1).isReg() &&
2626
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2627
0
        MI->getOperand(3).isImm() &&
2628
0
        MI->getOperand(3).getImm() == 10 &&
2629
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2630
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
2631
0
      AsmString = "fmovdg %icc, $\x02, $\x01";
2632
0
      break;
2633
0
    }
2634
0
    if (MI->getNumOperands() == 4 &&
2635
0
        MI->getOperand(0).isReg() &&
2636
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2637
0
        MI->getOperand(1).isReg() &&
2638
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2639
0
        MI->getOperand(3).isImm() &&
2640
0
        MI->getOperand(3).getImm() == 2 &&
2641
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2642
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
2643
0
      AsmString = "fmovdle %icc, $\x02, $\x01";
2644
0
      break;
2645
0
    }
2646
0
    if (MI->getNumOperands() == 4 &&
2647
0
        MI->getOperand(0).isReg() &&
2648
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2649
0
        MI->getOperand(1).isReg() &&
2650
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2651
0
        MI->getOperand(3).isImm() &&
2652
0
        MI->getOperand(3).getImm() == 11 &&
2653
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2654
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
2655
0
      AsmString = "fmovdge %icc, $\x02, $\x01";
2656
0
      break;
2657
0
    }
2658
0
    if (MI->getNumOperands() == 4 &&
2659
0
        MI->getOperand(0).isReg() &&
2660
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2661
0
        MI->getOperand(1).isReg() &&
2662
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2663
0
        MI->getOperand(3).isImm() &&
2664
0
        MI->getOperand(3).getImm() == 3 &&
2665
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2666
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
2667
0
      AsmString = "fmovdl %icc, $\x02, $\x01";
2668
0
      break;
2669
0
    }
2670
0
    if (MI->getNumOperands() == 4 &&
2671
0
        MI->getOperand(0).isReg() &&
2672
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2673
0
        MI->getOperand(1).isReg() &&
2674
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2675
0
        MI->getOperand(3).isImm() &&
2676
0
        MI->getOperand(3).getImm() == 12 &&
2677
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2678
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
2679
0
      AsmString = "fmovdgu %icc, $\x02, $\x01";
2680
0
      break;
2681
0
    }
2682
0
    if (MI->getNumOperands() == 4 &&
2683
0
        MI->getOperand(0).isReg() &&
2684
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2685
0
        MI->getOperand(1).isReg() &&
2686
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2687
0
        MI->getOperand(3).isImm() &&
2688
0
        MI->getOperand(3).getImm() == 4 &&
2689
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2690
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
2691
0
      AsmString = "fmovdleu %icc, $\x02, $\x01";
2692
0
      break;
2693
0
    }
2694
0
    if (MI->getNumOperands() == 4 &&
2695
0
        MI->getOperand(0).isReg() &&
2696
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2697
0
        MI->getOperand(1).isReg() &&
2698
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2699
0
        MI->getOperand(3).isImm() &&
2700
0
        MI->getOperand(3).getImm() == 13 &&
2701
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2702
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
2703
0
      AsmString = "fmovdcc %icc, $\x02, $\x01";
2704
0
      break;
2705
0
    }
2706
0
    if (MI->getNumOperands() == 4 &&
2707
0
        MI->getOperand(0).isReg() &&
2708
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2709
0
        MI->getOperand(1).isReg() &&
2710
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2711
0
        MI->getOperand(3).isImm() &&
2712
0
        MI->getOperand(3).getImm() == 5 &&
2713
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2714
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
2715
0
      AsmString = "fmovdcs %icc, $\x02, $\x01";
2716
0
      break;
2717
0
    }
2718
0
    if (MI->getNumOperands() == 4 &&
2719
0
        MI->getOperand(0).isReg() &&
2720
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2721
0
        MI->getOperand(1).isReg() &&
2722
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2723
0
        MI->getOperand(3).isImm() &&
2724
0
        MI->getOperand(3).getImm() == 14 &&
2725
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2726
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
2727
0
      AsmString = "fmovdpos %icc, $\x02, $\x01";
2728
0
      break;
2729
0
    }
2730
0
    if (MI->getNumOperands() == 4 &&
2731
0
        MI->getOperand(0).isReg() &&
2732
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2733
0
        MI->getOperand(1).isReg() &&
2734
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2735
0
        MI->getOperand(3).isImm() &&
2736
0
        MI->getOperand(3).getImm() == 6 &&
2737
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2738
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
2739
0
      AsmString = "fmovdneg %icc, $\x02, $\x01";
2740
0
      break;
2741
0
    }
2742
0
    if (MI->getNumOperands() == 4 &&
2743
0
        MI->getOperand(0).isReg() &&
2744
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2745
0
        MI->getOperand(1).isReg() &&
2746
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2747
0
        MI->getOperand(3).isImm() &&
2748
0
        MI->getOperand(3).getImm() == 15 &&
2749
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2750
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
2751
0
      AsmString = "fmovdvc %icc, $\x02, $\x01";
2752
0
      break;
2753
0
    }
2754
0
    if (MI->getNumOperands() == 4 &&
2755
0
        MI->getOperand(0).isReg() &&
2756
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2757
0
        MI->getOperand(1).isReg() &&
2758
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2759
0
        MI->getOperand(3).isImm() &&
2760
0
        MI->getOperand(3).getImm() == 7 &&
2761
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2762
0
      // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
2763
0
      AsmString = "fmovdvs %icc, $\x02, $\x01";
2764
0
      break;
2765
0
    }
2766
0
    return false;
2767
0
  case SP::FMOVD_XCC:
2768
0
    if (MI->getNumOperands() == 4 &&
2769
0
        MI->getOperand(0).isReg() &&
2770
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2771
0
        MI->getOperand(1).isReg() &&
2772
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2773
0
        MI->getOperand(3).isImm() &&
2774
0
        MI->getOperand(3).getImm() == 8) {
2775
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
2776
0
      AsmString = "fmovda %xcc, $\x02, $\x01";
2777
0
      break;
2778
0
    }
2779
0
    if (MI->getNumOperands() == 4 &&
2780
0
        MI->getOperand(0).isReg() &&
2781
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2782
0
        MI->getOperand(1).isReg() &&
2783
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2784
0
        MI->getOperand(3).isImm() &&
2785
0
        MI->getOperand(3).getImm() == 0) {
2786
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
2787
0
      AsmString = "fmovdn %xcc, $\x02, $\x01";
2788
0
      break;
2789
0
    }
2790
0
    if (MI->getNumOperands() == 4 &&
2791
0
        MI->getOperand(0).isReg() &&
2792
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2793
0
        MI->getOperand(1).isReg() &&
2794
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2795
0
        MI->getOperand(3).isImm() &&
2796
0
        MI->getOperand(3).getImm() == 9) {
2797
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
2798
0
      AsmString = "fmovdne %xcc, $\x02, $\x01";
2799
0
      break;
2800
0
    }
2801
0
    if (MI->getNumOperands() == 4 &&
2802
0
        MI->getOperand(0).isReg() &&
2803
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2804
0
        MI->getOperand(1).isReg() &&
2805
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2806
0
        MI->getOperand(3).isImm() &&
2807
0
        MI->getOperand(3).getImm() == 1) {
2808
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
2809
0
      AsmString = "fmovde %xcc, $\x02, $\x01";
2810
0
      break;
2811
0
    }
2812
0
    if (MI->getNumOperands() == 4 &&
2813
0
        MI->getOperand(0).isReg() &&
2814
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2815
0
        MI->getOperand(1).isReg() &&
2816
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2817
0
        MI->getOperand(3).isImm() &&
2818
0
        MI->getOperand(3).getImm() == 10) {
2819
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
2820
0
      AsmString = "fmovdg %xcc, $\x02, $\x01";
2821
0
      break;
2822
0
    }
2823
0
    if (MI->getNumOperands() == 4 &&
2824
0
        MI->getOperand(0).isReg() &&
2825
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2826
0
        MI->getOperand(1).isReg() &&
2827
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2828
0
        MI->getOperand(3).isImm() &&
2829
0
        MI->getOperand(3).getImm() == 2) {
2830
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
2831
0
      AsmString = "fmovdle %xcc, $\x02, $\x01";
2832
0
      break;
2833
0
    }
2834
0
    if (MI->getNumOperands() == 4 &&
2835
0
        MI->getOperand(0).isReg() &&
2836
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2837
0
        MI->getOperand(1).isReg() &&
2838
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2839
0
        MI->getOperand(3).isImm() &&
2840
0
        MI->getOperand(3).getImm() == 11) {
2841
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
2842
0
      AsmString = "fmovdge %xcc, $\x02, $\x01";
2843
0
      break;
2844
0
    }
2845
0
    if (MI->getNumOperands() == 4 &&
2846
0
        MI->getOperand(0).isReg() &&
2847
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2848
0
        MI->getOperand(1).isReg() &&
2849
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2850
0
        MI->getOperand(3).isImm() &&
2851
0
        MI->getOperand(3).getImm() == 3) {
2852
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
2853
0
      AsmString = "fmovdl %xcc, $\x02, $\x01";
2854
0
      break;
2855
0
    }
2856
0
    if (MI->getNumOperands() == 4 &&
2857
0
        MI->getOperand(0).isReg() &&
2858
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2859
0
        MI->getOperand(1).isReg() &&
2860
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2861
0
        MI->getOperand(3).isImm() &&
2862
0
        MI->getOperand(3).getImm() == 12) {
2863
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
2864
0
      AsmString = "fmovdgu %xcc, $\x02, $\x01";
2865
0
      break;
2866
0
    }
2867
0
    if (MI->getNumOperands() == 4 &&
2868
0
        MI->getOperand(0).isReg() &&
2869
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2870
0
        MI->getOperand(1).isReg() &&
2871
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2872
0
        MI->getOperand(3).isImm() &&
2873
0
        MI->getOperand(3).getImm() == 4) {
2874
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
2875
0
      AsmString = "fmovdleu %xcc, $\x02, $\x01";
2876
0
      break;
2877
0
    }
2878
0
    if (MI->getNumOperands() == 4 &&
2879
0
        MI->getOperand(0).isReg() &&
2880
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2881
0
        MI->getOperand(1).isReg() &&
2882
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2883
0
        MI->getOperand(3).isImm() &&
2884
0
        MI->getOperand(3).getImm() == 13) {
2885
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
2886
0
      AsmString = "fmovdcc %xcc, $\x02, $\x01";
2887
0
      break;
2888
0
    }
2889
0
    if (MI->getNumOperands() == 4 &&
2890
0
        MI->getOperand(0).isReg() &&
2891
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2892
0
        MI->getOperand(1).isReg() &&
2893
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2894
0
        MI->getOperand(3).isImm() &&
2895
0
        MI->getOperand(3).getImm() == 5) {
2896
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
2897
0
      AsmString = "fmovdcs %xcc, $\x02, $\x01";
2898
0
      break;
2899
0
    }
2900
0
    if (MI->getNumOperands() == 4 &&
2901
0
        MI->getOperand(0).isReg() &&
2902
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2903
0
        MI->getOperand(1).isReg() &&
2904
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2905
0
        MI->getOperand(3).isImm() &&
2906
0
        MI->getOperand(3).getImm() == 14) {
2907
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
2908
0
      AsmString = "fmovdpos %xcc, $\x02, $\x01";
2909
0
      break;
2910
0
    }
2911
0
    if (MI->getNumOperands() == 4 &&
2912
0
        MI->getOperand(0).isReg() &&
2913
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2914
0
        MI->getOperand(1).isReg() &&
2915
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2916
0
        MI->getOperand(3).isImm() &&
2917
0
        MI->getOperand(3).getImm() == 6) {
2918
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
2919
0
      AsmString = "fmovdneg %xcc, $\x02, $\x01";
2920
0
      break;
2921
0
    }
2922
0
    if (MI->getNumOperands() == 4 &&
2923
0
        MI->getOperand(0).isReg() &&
2924
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2925
0
        MI->getOperand(1).isReg() &&
2926
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2927
0
        MI->getOperand(3).isImm() &&
2928
0
        MI->getOperand(3).getImm() == 15) {
2929
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
2930
0
      AsmString = "fmovdvc %xcc, $\x02, $\x01";
2931
0
      break;
2932
0
    }
2933
0
    if (MI->getNumOperands() == 4 &&
2934
0
        MI->getOperand(0).isReg() &&
2935
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2936
0
        MI->getOperand(1).isReg() &&
2937
0
        MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2938
0
        MI->getOperand(3).isImm() &&
2939
0
        MI->getOperand(3).getImm() == 7) {
2940
0
      // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
2941
0
      AsmString = "fmovdvs %xcc, $\x02, $\x01";
2942
0
      break;
2943
0
    }
2944
0
    return false;
2945
0
  case SP::FMOVQ_ICC:
2946
0
    if (MI->getNumOperands() == 4 &&
2947
0
        MI->getOperand(0).isReg() &&
2948
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2949
0
        MI->getOperand(1).isReg() &&
2950
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2951
0
        MI->getOperand(3).isImm() &&
2952
0
        MI->getOperand(3).getImm() == 8 &&
2953
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2954
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
2955
0
      AsmString = "fmovqa %icc, $\x02, $\x01";
2956
0
      break;
2957
0
    }
2958
0
    if (MI->getNumOperands() == 4 &&
2959
0
        MI->getOperand(0).isReg() &&
2960
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2961
0
        MI->getOperand(1).isReg() &&
2962
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2963
0
        MI->getOperand(3).isImm() &&
2964
0
        MI->getOperand(3).getImm() == 0 &&
2965
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2966
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
2967
0
      AsmString = "fmovqn %icc, $\x02, $\x01";
2968
0
      break;
2969
0
    }
2970
0
    if (MI->getNumOperands() == 4 &&
2971
0
        MI->getOperand(0).isReg() &&
2972
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2973
0
        MI->getOperand(1).isReg() &&
2974
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2975
0
        MI->getOperand(3).isImm() &&
2976
0
        MI->getOperand(3).getImm() == 9 &&
2977
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2978
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
2979
0
      AsmString = "fmovqne %icc, $\x02, $\x01";
2980
0
      break;
2981
0
    }
2982
0
    if (MI->getNumOperands() == 4 &&
2983
0
        MI->getOperand(0).isReg() &&
2984
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2985
0
        MI->getOperand(1).isReg() &&
2986
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2987
0
        MI->getOperand(3).isImm() &&
2988
0
        MI->getOperand(3).getImm() == 1 &&
2989
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
2990
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
2991
0
      AsmString = "fmovqe %icc, $\x02, $\x01";
2992
0
      break;
2993
0
    }
2994
0
    if (MI->getNumOperands() == 4 &&
2995
0
        MI->getOperand(0).isReg() &&
2996
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2997
0
        MI->getOperand(1).isReg() &&
2998
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2999
0
        MI->getOperand(3).isImm() &&
3000
0
        MI->getOperand(3).getImm() == 10 &&
3001
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3002
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
3003
0
      AsmString = "fmovqg %icc, $\x02, $\x01";
3004
0
      break;
3005
0
    }
3006
0
    if (MI->getNumOperands() == 4 &&
3007
0
        MI->getOperand(0).isReg() &&
3008
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3009
0
        MI->getOperand(1).isReg() &&
3010
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3011
0
        MI->getOperand(3).isImm() &&
3012
0
        MI->getOperand(3).getImm() == 2 &&
3013
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3014
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
3015
0
      AsmString = "fmovqle %icc, $\x02, $\x01";
3016
0
      break;
3017
0
    }
3018
0
    if (MI->getNumOperands() == 4 &&
3019
0
        MI->getOperand(0).isReg() &&
3020
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3021
0
        MI->getOperand(1).isReg() &&
3022
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3023
0
        MI->getOperand(3).isImm() &&
3024
0
        MI->getOperand(3).getImm() == 11 &&
3025
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3026
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
3027
0
      AsmString = "fmovqge %icc, $\x02, $\x01";
3028
0
      break;
3029
0
    }
3030
0
    if (MI->getNumOperands() == 4 &&
3031
0
        MI->getOperand(0).isReg() &&
3032
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3033
0
        MI->getOperand(1).isReg() &&
3034
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3035
0
        MI->getOperand(3).isImm() &&
3036
0
        MI->getOperand(3).getImm() == 3 &&
3037
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3038
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
3039
0
      AsmString = "fmovql %icc, $\x02, $\x01";
3040
0
      break;
3041
0
    }
3042
0
    if (MI->getNumOperands() == 4 &&
3043
0
        MI->getOperand(0).isReg() &&
3044
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3045
0
        MI->getOperand(1).isReg() &&
3046
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3047
0
        MI->getOperand(3).isImm() &&
3048
0
        MI->getOperand(3).getImm() == 12 &&
3049
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3050
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
3051
0
      AsmString = "fmovqgu %icc, $\x02, $\x01";
3052
0
      break;
3053
0
    }
3054
0
    if (MI->getNumOperands() == 4 &&
3055
0
        MI->getOperand(0).isReg() &&
3056
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3057
0
        MI->getOperand(1).isReg() &&
3058
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3059
0
        MI->getOperand(3).isImm() &&
3060
0
        MI->getOperand(3).getImm() == 4 &&
3061
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3062
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
3063
0
      AsmString = "fmovqleu %icc, $\x02, $\x01";
3064
0
      break;
3065
0
    }
3066
0
    if (MI->getNumOperands() == 4 &&
3067
0
        MI->getOperand(0).isReg() &&
3068
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3069
0
        MI->getOperand(1).isReg() &&
3070
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3071
0
        MI->getOperand(3).isImm() &&
3072
0
        MI->getOperand(3).getImm() == 13 &&
3073
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3074
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
3075
0
      AsmString = "fmovqcc %icc, $\x02, $\x01";
3076
0
      break;
3077
0
    }
3078
0
    if (MI->getNumOperands() == 4 &&
3079
0
        MI->getOperand(0).isReg() &&
3080
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3081
0
        MI->getOperand(1).isReg() &&
3082
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3083
0
        MI->getOperand(3).isImm() &&
3084
0
        MI->getOperand(3).getImm() == 5 &&
3085
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3086
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
3087
0
      AsmString = "fmovqcs %icc, $\x02, $\x01";
3088
0
      break;
3089
0
    }
3090
0
    if (MI->getNumOperands() == 4 &&
3091
0
        MI->getOperand(0).isReg() &&
3092
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3093
0
        MI->getOperand(1).isReg() &&
3094
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3095
0
        MI->getOperand(3).isImm() &&
3096
0
        MI->getOperand(3).getImm() == 14 &&
3097
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3098
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
3099
0
      AsmString = "fmovqpos %icc, $\x02, $\x01";
3100
0
      break;
3101
0
    }
3102
0
    if (MI->getNumOperands() == 4 &&
3103
0
        MI->getOperand(0).isReg() &&
3104
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3105
0
        MI->getOperand(1).isReg() &&
3106
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3107
0
        MI->getOperand(3).isImm() &&
3108
0
        MI->getOperand(3).getImm() == 6 &&
3109
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3110
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
3111
0
      AsmString = "fmovqneg %icc, $\x02, $\x01";
3112
0
      break;
3113
0
    }
3114
0
    if (MI->getNumOperands() == 4 &&
3115
0
        MI->getOperand(0).isReg() &&
3116
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3117
0
        MI->getOperand(1).isReg() &&
3118
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3119
0
        MI->getOperand(3).isImm() &&
3120
0
        MI->getOperand(3).getImm() == 15 &&
3121
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3122
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
3123
0
      AsmString = "fmovqvc %icc, $\x02, $\x01";
3124
0
      break;
3125
0
    }
3126
0
    if (MI->getNumOperands() == 4 &&
3127
0
        MI->getOperand(0).isReg() &&
3128
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3129
0
        MI->getOperand(1).isReg() &&
3130
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3131
0
        MI->getOperand(3).isImm() &&
3132
0
        MI->getOperand(3).getImm() == 7 &&
3133
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3134
0
      // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
3135
0
      AsmString = "fmovqvs %icc, $\x02, $\x01";
3136
0
      break;
3137
0
    }
3138
0
    return false;
3139
0
  case SP::FMOVQ_XCC:
3140
0
    if (MI->getNumOperands() == 4 &&
3141
0
        MI->getOperand(0).isReg() &&
3142
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3143
0
        MI->getOperand(1).isReg() &&
3144
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3145
0
        MI->getOperand(3).isImm() &&
3146
0
        MI->getOperand(3).getImm() == 8) {
3147
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
3148
0
      AsmString = "fmovqa %xcc, $\x02, $\x01";
3149
0
      break;
3150
0
    }
3151
0
    if (MI->getNumOperands() == 4 &&
3152
0
        MI->getOperand(0).isReg() &&
3153
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3154
0
        MI->getOperand(1).isReg() &&
3155
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3156
0
        MI->getOperand(3).isImm() &&
3157
0
        MI->getOperand(3).getImm() == 0) {
3158
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
3159
0
      AsmString = "fmovqn %xcc, $\x02, $\x01";
3160
0
      break;
3161
0
    }
3162
0
    if (MI->getNumOperands() == 4 &&
3163
0
        MI->getOperand(0).isReg() &&
3164
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3165
0
        MI->getOperand(1).isReg() &&
3166
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3167
0
        MI->getOperand(3).isImm() &&
3168
0
        MI->getOperand(3).getImm() == 9) {
3169
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
3170
0
      AsmString = "fmovqne %xcc, $\x02, $\x01";
3171
0
      break;
3172
0
    }
3173
0
    if (MI->getNumOperands() == 4 &&
3174
0
        MI->getOperand(0).isReg() &&
3175
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3176
0
        MI->getOperand(1).isReg() &&
3177
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3178
0
        MI->getOperand(3).isImm() &&
3179
0
        MI->getOperand(3).getImm() == 1) {
3180
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
3181
0
      AsmString = "fmovqe %xcc, $\x02, $\x01";
3182
0
      break;
3183
0
    }
3184
0
    if (MI->getNumOperands() == 4 &&
3185
0
        MI->getOperand(0).isReg() &&
3186
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3187
0
        MI->getOperand(1).isReg() &&
3188
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3189
0
        MI->getOperand(3).isImm() &&
3190
0
        MI->getOperand(3).getImm() == 10) {
3191
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
3192
0
      AsmString = "fmovqg %xcc, $\x02, $\x01";
3193
0
      break;
3194
0
    }
3195
0
    if (MI->getNumOperands() == 4 &&
3196
0
        MI->getOperand(0).isReg() &&
3197
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3198
0
        MI->getOperand(1).isReg() &&
3199
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3200
0
        MI->getOperand(3).isImm() &&
3201
0
        MI->getOperand(3).getImm() == 2) {
3202
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
3203
0
      AsmString = "fmovqle %xcc, $\x02, $\x01";
3204
0
      break;
3205
0
    }
3206
0
    if (MI->getNumOperands() == 4 &&
3207
0
        MI->getOperand(0).isReg() &&
3208
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3209
0
        MI->getOperand(1).isReg() &&
3210
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3211
0
        MI->getOperand(3).isImm() &&
3212
0
        MI->getOperand(3).getImm() == 11) {
3213
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
3214
0
      AsmString = "fmovqge %xcc, $\x02, $\x01";
3215
0
      break;
3216
0
    }
3217
0
    if (MI->getNumOperands() == 4 &&
3218
0
        MI->getOperand(0).isReg() &&
3219
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3220
0
        MI->getOperand(1).isReg() &&
3221
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3222
0
        MI->getOperand(3).isImm() &&
3223
0
        MI->getOperand(3).getImm() == 3) {
3224
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
3225
0
      AsmString = "fmovql %xcc, $\x02, $\x01";
3226
0
      break;
3227
0
    }
3228
0
    if (MI->getNumOperands() == 4 &&
3229
0
        MI->getOperand(0).isReg() &&
3230
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3231
0
        MI->getOperand(1).isReg() &&
3232
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3233
0
        MI->getOperand(3).isImm() &&
3234
0
        MI->getOperand(3).getImm() == 12) {
3235
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
3236
0
      AsmString = "fmovqgu %xcc, $\x02, $\x01";
3237
0
      break;
3238
0
    }
3239
0
    if (MI->getNumOperands() == 4 &&
3240
0
        MI->getOperand(0).isReg() &&
3241
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3242
0
        MI->getOperand(1).isReg() &&
3243
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3244
0
        MI->getOperand(3).isImm() &&
3245
0
        MI->getOperand(3).getImm() == 4) {
3246
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
3247
0
      AsmString = "fmovqleu %xcc, $\x02, $\x01";
3248
0
      break;
3249
0
    }
3250
0
    if (MI->getNumOperands() == 4 &&
3251
0
        MI->getOperand(0).isReg() &&
3252
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3253
0
        MI->getOperand(1).isReg() &&
3254
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3255
0
        MI->getOperand(3).isImm() &&
3256
0
        MI->getOperand(3).getImm() == 13) {
3257
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
3258
0
      AsmString = "fmovqcc %xcc, $\x02, $\x01";
3259
0
      break;
3260
0
    }
3261
0
    if (MI->getNumOperands() == 4 &&
3262
0
        MI->getOperand(0).isReg() &&
3263
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3264
0
        MI->getOperand(1).isReg() &&
3265
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3266
0
        MI->getOperand(3).isImm() &&
3267
0
        MI->getOperand(3).getImm() == 5) {
3268
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
3269
0
      AsmString = "fmovqcs %xcc, $\x02, $\x01";
3270
0
      break;
3271
0
    }
3272
0
    if (MI->getNumOperands() == 4 &&
3273
0
        MI->getOperand(0).isReg() &&
3274
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3275
0
        MI->getOperand(1).isReg() &&
3276
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3277
0
        MI->getOperand(3).isImm() &&
3278
0
        MI->getOperand(3).getImm() == 14) {
3279
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
3280
0
      AsmString = "fmovqpos %xcc, $\x02, $\x01";
3281
0
      break;
3282
0
    }
3283
0
    if (MI->getNumOperands() == 4 &&
3284
0
        MI->getOperand(0).isReg() &&
3285
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3286
0
        MI->getOperand(1).isReg() &&
3287
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3288
0
        MI->getOperand(3).isImm() &&
3289
0
        MI->getOperand(3).getImm() == 6) {
3290
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
3291
0
      AsmString = "fmovqneg %xcc, $\x02, $\x01";
3292
0
      break;
3293
0
    }
3294
0
    if (MI->getNumOperands() == 4 &&
3295
0
        MI->getOperand(0).isReg() &&
3296
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3297
0
        MI->getOperand(1).isReg() &&
3298
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3299
0
        MI->getOperand(3).isImm() &&
3300
0
        MI->getOperand(3).getImm() == 15) {
3301
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
3302
0
      AsmString = "fmovqvc %xcc, $\x02, $\x01";
3303
0
      break;
3304
0
    }
3305
0
    if (MI->getNumOperands() == 4 &&
3306
0
        MI->getOperand(0).isReg() &&
3307
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3308
0
        MI->getOperand(1).isReg() &&
3309
0
        MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3310
0
        MI->getOperand(3).isImm() &&
3311
0
        MI->getOperand(3).getImm() == 7) {
3312
0
      // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
3313
0
      AsmString = "fmovqvs %xcc, $\x02, $\x01";
3314
0
      break;
3315
0
    }
3316
0
    return false;
3317
0
  case SP::FMOVS_ICC:
3318
0
    if (MI->getNumOperands() == 4 &&
3319
0
        MI->getOperand(0).isReg() &&
3320
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3321
0
        MI->getOperand(1).isReg() &&
3322
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3323
0
        MI->getOperand(3).isImm() &&
3324
0
        MI->getOperand(3).getImm() == 8 &&
3325
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3326
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
3327
0
      AsmString = "fmovsa %icc, $\x02, $\x01";
3328
0
      break;
3329
0
    }
3330
0
    if (MI->getNumOperands() == 4 &&
3331
0
        MI->getOperand(0).isReg() &&
3332
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3333
0
        MI->getOperand(1).isReg() &&
3334
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3335
0
        MI->getOperand(3).isImm() &&
3336
0
        MI->getOperand(3).getImm() == 0 &&
3337
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3338
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
3339
0
      AsmString = "fmovsn %icc, $\x02, $\x01";
3340
0
      break;
3341
0
    }
3342
0
    if (MI->getNumOperands() == 4 &&
3343
0
        MI->getOperand(0).isReg() &&
3344
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3345
0
        MI->getOperand(1).isReg() &&
3346
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3347
0
        MI->getOperand(3).isImm() &&
3348
0
        MI->getOperand(3).getImm() == 9 &&
3349
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3350
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
3351
0
      AsmString = "fmovsne %icc, $\x02, $\x01";
3352
0
      break;
3353
0
    }
3354
0
    if (MI->getNumOperands() == 4 &&
3355
0
        MI->getOperand(0).isReg() &&
3356
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3357
0
        MI->getOperand(1).isReg() &&
3358
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3359
0
        MI->getOperand(3).isImm() &&
3360
0
        MI->getOperand(3).getImm() == 1 &&
3361
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3362
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
3363
0
      AsmString = "fmovse %icc, $\x02, $\x01";
3364
0
      break;
3365
0
    }
3366
0
    if (MI->getNumOperands() == 4 &&
3367
0
        MI->getOperand(0).isReg() &&
3368
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3369
0
        MI->getOperand(1).isReg() &&
3370
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3371
0
        MI->getOperand(3).isImm() &&
3372
0
        MI->getOperand(3).getImm() == 10 &&
3373
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3374
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
3375
0
      AsmString = "fmovsg %icc, $\x02, $\x01";
3376
0
      break;
3377
0
    }
3378
0
    if (MI->getNumOperands() == 4 &&
3379
0
        MI->getOperand(0).isReg() &&
3380
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3381
0
        MI->getOperand(1).isReg() &&
3382
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3383
0
        MI->getOperand(3).isImm() &&
3384
0
        MI->getOperand(3).getImm() == 2 &&
3385
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3386
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
3387
0
      AsmString = "fmovsle %icc, $\x02, $\x01";
3388
0
      break;
3389
0
    }
3390
0
    if (MI->getNumOperands() == 4 &&
3391
0
        MI->getOperand(0).isReg() &&
3392
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3393
0
        MI->getOperand(1).isReg() &&
3394
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3395
0
        MI->getOperand(3).isImm() &&
3396
0
        MI->getOperand(3).getImm() == 11 &&
3397
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3398
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
3399
0
      AsmString = "fmovsge %icc, $\x02, $\x01";
3400
0
      break;
3401
0
    }
3402
0
    if (MI->getNumOperands() == 4 &&
3403
0
        MI->getOperand(0).isReg() &&
3404
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3405
0
        MI->getOperand(1).isReg() &&
3406
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3407
0
        MI->getOperand(3).isImm() &&
3408
0
        MI->getOperand(3).getImm() == 3 &&
3409
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3410
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
3411
0
      AsmString = "fmovsl %icc, $\x02, $\x01";
3412
0
      break;
3413
0
    }
3414
0
    if (MI->getNumOperands() == 4 &&
3415
0
        MI->getOperand(0).isReg() &&
3416
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3417
0
        MI->getOperand(1).isReg() &&
3418
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3419
0
        MI->getOperand(3).isImm() &&
3420
0
        MI->getOperand(3).getImm() == 12 &&
3421
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3422
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
3423
0
      AsmString = "fmovsgu %icc, $\x02, $\x01";
3424
0
      break;
3425
0
    }
3426
0
    if (MI->getNumOperands() == 4 &&
3427
0
        MI->getOperand(0).isReg() &&
3428
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3429
0
        MI->getOperand(1).isReg() &&
3430
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3431
0
        MI->getOperand(3).isImm() &&
3432
0
        MI->getOperand(3).getImm() == 4 &&
3433
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3434
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
3435
0
      AsmString = "fmovsleu %icc, $\x02, $\x01";
3436
0
      break;
3437
0
    }
3438
0
    if (MI->getNumOperands() == 4 &&
3439
0
        MI->getOperand(0).isReg() &&
3440
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3441
0
        MI->getOperand(1).isReg() &&
3442
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3443
0
        MI->getOperand(3).isImm() &&
3444
0
        MI->getOperand(3).getImm() == 13 &&
3445
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3446
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
3447
0
      AsmString = "fmovscc %icc, $\x02, $\x01";
3448
0
      break;
3449
0
    }
3450
0
    if (MI->getNumOperands() == 4 &&
3451
0
        MI->getOperand(0).isReg() &&
3452
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3453
0
        MI->getOperand(1).isReg() &&
3454
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3455
0
        MI->getOperand(3).isImm() &&
3456
0
        MI->getOperand(3).getImm() == 5 &&
3457
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3458
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
3459
0
      AsmString = "fmovscs %icc, $\x02, $\x01";
3460
0
      break;
3461
0
    }
3462
0
    if (MI->getNumOperands() == 4 &&
3463
0
        MI->getOperand(0).isReg() &&
3464
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3465
0
        MI->getOperand(1).isReg() &&
3466
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3467
0
        MI->getOperand(3).isImm() &&
3468
0
        MI->getOperand(3).getImm() == 14 &&
3469
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3470
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
3471
0
      AsmString = "fmovspos %icc, $\x02, $\x01";
3472
0
      break;
3473
0
    }
3474
0
    if (MI->getNumOperands() == 4 &&
3475
0
        MI->getOperand(0).isReg() &&
3476
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3477
0
        MI->getOperand(1).isReg() &&
3478
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3479
0
        MI->getOperand(3).isImm() &&
3480
0
        MI->getOperand(3).getImm() == 6 &&
3481
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3482
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
3483
0
      AsmString = "fmovsneg %icc, $\x02, $\x01";
3484
0
      break;
3485
0
    }
3486
0
    if (MI->getNumOperands() == 4 &&
3487
0
        MI->getOperand(0).isReg() &&
3488
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3489
0
        MI->getOperand(1).isReg() &&
3490
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3491
0
        MI->getOperand(3).isImm() &&
3492
0
        MI->getOperand(3).getImm() == 15 &&
3493
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3494
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
3495
0
      AsmString = "fmovsvc %icc, $\x02, $\x01";
3496
0
      break;
3497
0
    }
3498
0
    if (MI->getNumOperands() == 4 &&
3499
0
        MI->getOperand(0).isReg() &&
3500
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3501
0
        MI->getOperand(1).isReg() &&
3502
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3503
0
        MI->getOperand(3).isImm() &&
3504
0
        MI->getOperand(3).getImm() == 7 &&
3505
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3506
0
      // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
3507
0
      AsmString = "fmovsvs %icc, $\x02, $\x01";
3508
0
      break;
3509
0
    }
3510
0
    return false;
3511
0
  case SP::FMOVS_XCC:
3512
0
    if (MI->getNumOperands() == 4 &&
3513
0
        MI->getOperand(0).isReg() &&
3514
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3515
0
        MI->getOperand(1).isReg() &&
3516
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3517
0
        MI->getOperand(3).isImm() &&
3518
0
        MI->getOperand(3).getImm() == 8) {
3519
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
3520
0
      AsmString = "fmovsa %xcc, $\x02, $\x01";
3521
0
      break;
3522
0
    }
3523
0
    if (MI->getNumOperands() == 4 &&
3524
0
        MI->getOperand(0).isReg() &&
3525
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3526
0
        MI->getOperand(1).isReg() &&
3527
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3528
0
        MI->getOperand(3).isImm() &&
3529
0
        MI->getOperand(3).getImm() == 0) {
3530
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
3531
0
      AsmString = "fmovsn %xcc, $\x02, $\x01";
3532
0
      break;
3533
0
    }
3534
0
    if (MI->getNumOperands() == 4 &&
3535
0
        MI->getOperand(0).isReg() &&
3536
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3537
0
        MI->getOperand(1).isReg() &&
3538
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3539
0
        MI->getOperand(3).isImm() &&
3540
0
        MI->getOperand(3).getImm() == 9) {
3541
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
3542
0
      AsmString = "fmovsne %xcc, $\x02, $\x01";
3543
0
      break;
3544
0
    }
3545
0
    if (MI->getNumOperands() == 4 &&
3546
0
        MI->getOperand(0).isReg() &&
3547
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3548
0
        MI->getOperand(1).isReg() &&
3549
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3550
0
        MI->getOperand(3).isImm() &&
3551
0
        MI->getOperand(3).getImm() == 1) {
3552
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
3553
0
      AsmString = "fmovse %xcc, $\x02, $\x01";
3554
0
      break;
3555
0
    }
3556
0
    if (MI->getNumOperands() == 4 &&
3557
0
        MI->getOperand(0).isReg() &&
3558
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3559
0
        MI->getOperand(1).isReg() &&
3560
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3561
0
        MI->getOperand(3).isImm() &&
3562
0
        MI->getOperand(3).getImm() == 10) {
3563
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
3564
0
      AsmString = "fmovsg %xcc, $\x02, $\x01";
3565
0
      break;
3566
0
    }
3567
0
    if (MI->getNumOperands() == 4 &&
3568
0
        MI->getOperand(0).isReg() &&
3569
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3570
0
        MI->getOperand(1).isReg() &&
3571
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3572
0
        MI->getOperand(3).isImm() &&
3573
0
        MI->getOperand(3).getImm() == 2) {
3574
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
3575
0
      AsmString = "fmovsle %xcc, $\x02, $\x01";
3576
0
      break;
3577
0
    }
3578
0
    if (MI->getNumOperands() == 4 &&
3579
0
        MI->getOperand(0).isReg() &&
3580
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3581
0
        MI->getOperand(1).isReg() &&
3582
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3583
0
        MI->getOperand(3).isImm() &&
3584
0
        MI->getOperand(3).getImm() == 11) {
3585
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
3586
0
      AsmString = "fmovsge %xcc, $\x02, $\x01";
3587
0
      break;
3588
0
    }
3589
0
    if (MI->getNumOperands() == 4 &&
3590
0
        MI->getOperand(0).isReg() &&
3591
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3592
0
        MI->getOperand(1).isReg() &&
3593
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3594
0
        MI->getOperand(3).isImm() &&
3595
0
        MI->getOperand(3).getImm() == 3) {
3596
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
3597
0
      AsmString = "fmovsl %xcc, $\x02, $\x01";
3598
0
      break;
3599
0
    }
3600
0
    if (MI->getNumOperands() == 4 &&
3601
0
        MI->getOperand(0).isReg() &&
3602
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3603
0
        MI->getOperand(1).isReg() &&
3604
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3605
0
        MI->getOperand(3).isImm() &&
3606
0
        MI->getOperand(3).getImm() == 12) {
3607
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
3608
0
      AsmString = "fmovsgu %xcc, $\x02, $\x01";
3609
0
      break;
3610
0
    }
3611
0
    if (MI->getNumOperands() == 4 &&
3612
0
        MI->getOperand(0).isReg() &&
3613
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3614
0
        MI->getOperand(1).isReg() &&
3615
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3616
0
        MI->getOperand(3).isImm() &&
3617
0
        MI->getOperand(3).getImm() == 4) {
3618
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
3619
0
      AsmString = "fmovsleu %xcc, $\x02, $\x01";
3620
0
      break;
3621
0
    }
3622
0
    if (MI->getNumOperands() == 4 &&
3623
0
        MI->getOperand(0).isReg() &&
3624
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3625
0
        MI->getOperand(1).isReg() &&
3626
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3627
0
        MI->getOperand(3).isImm() &&
3628
0
        MI->getOperand(3).getImm() == 13) {
3629
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
3630
0
      AsmString = "fmovscc %xcc, $\x02, $\x01";
3631
0
      break;
3632
0
    }
3633
0
    if (MI->getNumOperands() == 4 &&
3634
0
        MI->getOperand(0).isReg() &&
3635
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3636
0
        MI->getOperand(1).isReg() &&
3637
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3638
0
        MI->getOperand(3).isImm() &&
3639
0
        MI->getOperand(3).getImm() == 5) {
3640
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
3641
0
      AsmString = "fmovscs %xcc, $\x02, $\x01";
3642
0
      break;
3643
0
    }
3644
0
    if (MI->getNumOperands() == 4 &&
3645
0
        MI->getOperand(0).isReg() &&
3646
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3647
0
        MI->getOperand(1).isReg() &&
3648
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3649
0
        MI->getOperand(3).isImm() &&
3650
0
        MI->getOperand(3).getImm() == 14) {
3651
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
3652
0
      AsmString = "fmovspos %xcc, $\x02, $\x01";
3653
0
      break;
3654
0
    }
3655
0
    if (MI->getNumOperands() == 4 &&
3656
0
        MI->getOperand(0).isReg() &&
3657
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3658
0
        MI->getOperand(1).isReg() &&
3659
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3660
0
        MI->getOperand(3).isImm() &&
3661
0
        MI->getOperand(3).getImm() == 6) {
3662
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
3663
0
      AsmString = "fmovsneg %xcc, $\x02, $\x01";
3664
0
      break;
3665
0
    }
3666
0
    if (MI->getNumOperands() == 4 &&
3667
0
        MI->getOperand(0).isReg() &&
3668
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3669
0
        MI->getOperand(1).isReg() &&
3670
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3671
0
        MI->getOperand(3).isImm() &&
3672
0
        MI->getOperand(3).getImm() == 15) {
3673
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
3674
0
      AsmString = "fmovsvc %xcc, $\x02, $\x01";
3675
0
      break;
3676
0
    }
3677
0
    if (MI->getNumOperands() == 4 &&
3678
0
        MI->getOperand(0).isReg() &&
3679
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3680
0
        MI->getOperand(1).isReg() &&
3681
0
        MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3682
0
        MI->getOperand(3).isImm() &&
3683
0
        MI->getOperand(3).getImm() == 7) {
3684
0
      // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
3685
0
      AsmString = "fmovsvs %xcc, $\x02, $\x01";
3686
0
      break;
3687
0
    }
3688
0
    return false;
3689
0
  case SP::MOVICCri:
3690
0
    if (MI->getNumOperands() == 4 &&
3691
0
        MI->getOperand(0).isReg() &&
3692
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3693
0
        MI->getOperand(3).isImm() &&
3694
0
        MI->getOperand(3).getImm() == 8 &&
3695
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3696
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
3697
0
      AsmString = "mova %icc, $\x02, $\x01";
3698
0
      break;
3699
0
    }
3700
0
    if (MI->getNumOperands() == 4 &&
3701
0
        MI->getOperand(0).isReg() &&
3702
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3703
0
        MI->getOperand(3).isImm() &&
3704
0
        MI->getOperand(3).getImm() == 0 &&
3705
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3706
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 0 })
3707
0
      AsmString = "movn %icc, $\x02, $\x01";
3708
0
      break;
3709
0
    }
3710
0
    if (MI->getNumOperands() == 4 &&
3711
0
        MI->getOperand(0).isReg() &&
3712
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3713
0
        MI->getOperand(3).isImm() &&
3714
0
        MI->getOperand(3).getImm() == 9 &&
3715
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3716
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 1 })
3717
0
      AsmString = "movne %icc, $\x02, $\x01";
3718
0
      break;
3719
0
    }
3720
0
    if (MI->getNumOperands() == 4 &&
3721
0
        MI->getOperand(0).isReg() &&
3722
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3723
0
        MI->getOperand(3).isImm() &&
3724
0
        MI->getOperand(3).getImm() == 1 &&
3725
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3726
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 1 })
3727
0
      AsmString = "move %icc, $\x02, $\x01";
3728
0
      break;
3729
0
    }
3730
0
    if (MI->getNumOperands() == 4 &&
3731
0
        MI->getOperand(0).isReg() &&
3732
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3733
0
        MI->getOperand(3).isImm() &&
3734
0
        MI->getOperand(3).getImm() == 10 &&
3735
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3736
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 0 })
3737
0
      AsmString = "movg %icc, $\x02, $\x01";
3738
0
      break;
3739
0
    }
3740
0
    if (MI->getNumOperands() == 4 &&
3741
0
        MI->getOperand(0).isReg() &&
3742
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3743
0
        MI->getOperand(3).isImm() &&
3744
0
        MI->getOperand(3).getImm() == 2 &&
3745
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3746
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 0 })
3747
0
      AsmString = "movle %icc, $\x02, $\x01";
3748
0
      break;
3749
0
    }
3750
0
    if (MI->getNumOperands() == 4 &&
3751
0
        MI->getOperand(0).isReg() &&
3752
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3753
0
        MI->getOperand(3).isImm() &&
3754
0
        MI->getOperand(3).getImm() == 11 &&
3755
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3756
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 1 })
3757
0
      AsmString = "movge %icc, $\x02, $\x01";
3758
0
      break;
3759
0
    }
3760
0
    if (MI->getNumOperands() == 4 &&
3761
0
        MI->getOperand(0).isReg() &&
3762
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3763
0
        MI->getOperand(3).isImm() &&
3764
0
        MI->getOperand(3).getImm() == 3 &&
3765
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3766
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 1 })
3767
0
      AsmString = "movl %icc, $\x02, $\x01";
3768
0
      break;
3769
0
    }
3770
0
    if (MI->getNumOperands() == 4 &&
3771
0
        MI->getOperand(0).isReg() &&
3772
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3773
0
        MI->getOperand(3).isImm() &&
3774
0
        MI->getOperand(3).getImm() == 12 &&
3775
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3776
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 0 })
3777
0
      AsmString = "movgu %icc, $\x02, $\x01";
3778
0
      break;
3779
0
    }
3780
0
    if (MI->getNumOperands() == 4 &&
3781
0
        MI->getOperand(0).isReg() &&
3782
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3783
0
        MI->getOperand(3).isImm() &&
3784
0
        MI->getOperand(3).getImm() == 4 &&
3785
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3786
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 0 })
3787
0
      AsmString = "movleu %icc, $\x02, $\x01";
3788
0
      break;
3789
0
    }
3790
0
    if (MI->getNumOperands() == 4 &&
3791
0
        MI->getOperand(0).isReg() &&
3792
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3793
0
        MI->getOperand(3).isImm() &&
3794
0
        MI->getOperand(3).getImm() == 13 &&
3795
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3796
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 1 })
3797
0
      AsmString = "movcc %icc, $\x02, $\x01";
3798
0
      break;
3799
0
    }
3800
0
    if (MI->getNumOperands() == 4 &&
3801
0
        MI->getOperand(0).isReg() &&
3802
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3803
0
        MI->getOperand(3).isImm() &&
3804
0
        MI->getOperand(3).getImm() == 5 &&
3805
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3806
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 1 })
3807
0
      AsmString = "movcs %icc, $\x02, $\x01";
3808
0
      break;
3809
0
    }
3810
0
    if (MI->getNumOperands() == 4 &&
3811
0
        MI->getOperand(0).isReg() &&
3812
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3813
0
        MI->getOperand(3).isImm() &&
3814
0
        MI->getOperand(3).getImm() == 14 &&
3815
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3816
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 0 })
3817
0
      AsmString = "movpos %icc, $\x02, $\x01";
3818
0
      break;
3819
0
    }
3820
0
    if (MI->getNumOperands() == 4 &&
3821
0
        MI->getOperand(0).isReg() &&
3822
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3823
0
        MI->getOperand(3).isImm() &&
3824
0
        MI->getOperand(3).getImm() == 6 &&
3825
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3826
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 0 })
3827
0
      AsmString = "movneg %icc, $\x02, $\x01";
3828
0
      break;
3829
0
    }
3830
0
    if (MI->getNumOperands() == 4 &&
3831
0
        MI->getOperand(0).isReg() &&
3832
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3833
0
        MI->getOperand(3).isImm() &&
3834
0
        MI->getOperand(3).getImm() == 15 &&
3835
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3836
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 1 })
3837
0
      AsmString = "movvc %icc, $\x02, $\x01";
3838
0
      break;
3839
0
    }
3840
0
    if (MI->getNumOperands() == 4 &&
3841
0
        MI->getOperand(0).isReg() &&
3842
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3843
0
        MI->getOperand(3).isImm() &&
3844
0
        MI->getOperand(3).getImm() == 7 &&
3845
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3846
0
      // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 1 })
3847
0
      AsmString = "movvs %icc, $\x02, $\x01";
3848
0
      break;
3849
0
    }
3850
0
    return false;
3851
0
  case SP::MOVICCrr:
3852
0
    if (MI->getNumOperands() == 4 &&
3853
0
        MI->getOperand(0).isReg() &&
3854
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3855
0
        MI->getOperand(1).isReg() &&
3856
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3857
0
        MI->getOperand(3).isImm() &&
3858
0
        MI->getOperand(3).getImm() == 8 &&
3859
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3860
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 0 })
3861
0
      AsmString = "mova %icc, $\x02, $\x01";
3862
0
      break;
3863
0
    }
3864
0
    if (MI->getNumOperands() == 4 &&
3865
0
        MI->getOperand(0).isReg() &&
3866
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3867
0
        MI->getOperand(1).isReg() &&
3868
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3869
0
        MI->getOperand(3).isImm() &&
3870
0
        MI->getOperand(3).getImm() == 0 &&
3871
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3872
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 0 })
3873
0
      AsmString = "movn %icc, $\x02, $\x01";
3874
0
      break;
3875
0
    }
3876
0
    if (MI->getNumOperands() == 4 &&
3877
0
        MI->getOperand(0).isReg() &&
3878
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3879
0
        MI->getOperand(1).isReg() &&
3880
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3881
0
        MI->getOperand(3).isImm() &&
3882
0
        MI->getOperand(3).getImm() == 9 &&
3883
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3884
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 1 })
3885
0
      AsmString = "movne %icc, $\x02, $\x01";
3886
0
      break;
3887
0
    }
3888
0
    if (MI->getNumOperands() == 4 &&
3889
0
        MI->getOperand(0).isReg() &&
3890
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3891
0
        MI->getOperand(1).isReg() &&
3892
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3893
0
        MI->getOperand(3).isImm() &&
3894
0
        MI->getOperand(3).getImm() == 1 &&
3895
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3896
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 1 })
3897
0
      AsmString = "move %icc, $\x02, $\x01";
3898
0
      break;
3899
0
    }
3900
0
    if (MI->getNumOperands() == 4 &&
3901
0
        MI->getOperand(0).isReg() &&
3902
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3903
0
        MI->getOperand(1).isReg() &&
3904
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3905
0
        MI->getOperand(3).isImm() &&
3906
0
        MI->getOperand(3).getImm() == 10 &&
3907
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3908
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 0 })
3909
0
      AsmString = "movg %icc, $\x02, $\x01";
3910
0
      break;
3911
0
    }
3912
0
    if (MI->getNumOperands() == 4 &&
3913
0
        MI->getOperand(0).isReg() &&
3914
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3915
0
        MI->getOperand(1).isReg() &&
3916
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3917
0
        MI->getOperand(3).isImm() &&
3918
0
        MI->getOperand(3).getImm() == 2 &&
3919
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3920
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 0 })
3921
0
      AsmString = "movle %icc, $\x02, $\x01";
3922
0
      break;
3923
0
    }
3924
0
    if (MI->getNumOperands() == 4 &&
3925
0
        MI->getOperand(0).isReg() &&
3926
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3927
0
        MI->getOperand(1).isReg() &&
3928
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3929
0
        MI->getOperand(3).isImm() &&
3930
0
        MI->getOperand(3).getImm() == 11 &&
3931
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3932
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 1 })
3933
0
      AsmString = "movge %icc, $\x02, $\x01";
3934
0
      break;
3935
0
    }
3936
0
    if (MI->getNumOperands() == 4 &&
3937
0
        MI->getOperand(0).isReg() &&
3938
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3939
0
        MI->getOperand(1).isReg() &&
3940
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3941
0
        MI->getOperand(3).isImm() &&
3942
0
        MI->getOperand(3).getImm() == 3 &&
3943
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3944
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 1 })
3945
0
      AsmString = "movl %icc, $\x02, $\x01";
3946
0
      break;
3947
0
    }
3948
0
    if (MI->getNumOperands() == 4 &&
3949
0
        MI->getOperand(0).isReg() &&
3950
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3951
0
        MI->getOperand(1).isReg() &&
3952
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3953
0
        MI->getOperand(3).isImm() &&
3954
0
        MI->getOperand(3).getImm() == 12 &&
3955
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3956
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 0 })
3957
0
      AsmString = "movgu %icc, $\x02, $\x01";
3958
0
      break;
3959
0
    }
3960
0
    if (MI->getNumOperands() == 4 &&
3961
0
        MI->getOperand(0).isReg() &&
3962
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3963
0
        MI->getOperand(1).isReg() &&
3964
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3965
0
        MI->getOperand(3).isImm() &&
3966
0
        MI->getOperand(3).getImm() == 4 &&
3967
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3968
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 0 })
3969
0
      AsmString = "movleu %icc, $\x02, $\x01";
3970
0
      break;
3971
0
    }
3972
0
    if (MI->getNumOperands() == 4 &&
3973
0
        MI->getOperand(0).isReg() &&
3974
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3975
0
        MI->getOperand(1).isReg() &&
3976
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3977
0
        MI->getOperand(3).isImm() &&
3978
0
        MI->getOperand(3).getImm() == 13 &&
3979
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3980
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 1 })
3981
0
      AsmString = "movcc %icc, $\x02, $\x01";
3982
0
      break;
3983
0
    }
3984
0
    if (MI->getNumOperands() == 4 &&
3985
0
        MI->getOperand(0).isReg() &&
3986
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3987
0
        MI->getOperand(1).isReg() &&
3988
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3989
0
        MI->getOperand(3).isImm() &&
3990
0
        MI->getOperand(3).getImm() == 5 &&
3991
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
3992
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 1 })
3993
0
      AsmString = "movcs %icc, $\x02, $\x01";
3994
0
      break;
3995
0
    }
3996
0
    if (MI->getNumOperands() == 4 &&
3997
0
        MI->getOperand(0).isReg() &&
3998
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3999
0
        MI->getOperand(1).isReg() &&
4000
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4001
0
        MI->getOperand(3).isImm() &&
4002
0
        MI->getOperand(3).getImm() == 14 &&
4003
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
4004
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 0 })
4005
0
      AsmString = "movpos %icc, $\x02, $\x01";
4006
0
      break;
4007
0
    }
4008
0
    if (MI->getNumOperands() == 4 &&
4009
0
        MI->getOperand(0).isReg() &&
4010
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4011
0
        MI->getOperand(1).isReg() &&
4012
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4013
0
        MI->getOperand(3).isImm() &&
4014
0
        MI->getOperand(3).getImm() == 6 &&
4015
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
4016
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 0 })
4017
0
      AsmString = "movneg %icc, $\x02, $\x01";
4018
0
      break;
4019
0
    }
4020
0
    if (MI->getNumOperands() == 4 &&
4021
0
        MI->getOperand(0).isReg() &&
4022
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4023
0
        MI->getOperand(1).isReg() &&
4024
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4025
0
        MI->getOperand(3).isImm() &&
4026
0
        MI->getOperand(3).getImm() == 15 &&
4027
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
4028
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 1 })
4029
0
      AsmString = "movvc %icc, $\x02, $\x01";
4030
0
      break;
4031
0
    }
4032
0
    if (MI->getNumOperands() == 4 &&
4033
0
        MI->getOperand(0).isReg() &&
4034
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4035
0
        MI->getOperand(1).isReg() &&
4036
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4037
0
        MI->getOperand(3).isImm() &&
4038
0
        MI->getOperand(3).getImm() == 7 &&
4039
0
        STI.getFeatureBits()[Sparc::FeatureV9]) {
4040
0
      // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 1 })
4041
0
      AsmString = "movvs %icc, $\x02, $\x01";
4042
0
      break;
4043
0
    }
4044
0
    return false;
4045
0
  case SP::MOVXCCri:
4046
0
    if (MI->getNumOperands() == 4 &&
4047
0
        MI->getOperand(0).isReg() &&
4048
0
        MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4049
0
        MI->getOperand(3).isImm() &&
4050
0
        MI->getOperand(3).getImm() == 8) {
4051
0
      // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
4052
0
      AsmString = "mova %xcc, $\x02, $\x01";
4053
0
      break;
4054
0
    }
4055
0
    if (MI->getNumOperands() == 4 &&
4056
0
        MI-&g