Line data Source code
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 7982 : void SparcInstPrinter::printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &O) {
12 : static const char AsmStrs[] = {
13 : /* 0 */ 'r', 'd', 32, '%', 'w', 'i', 'm', ',', 32, 0,
14 : /* 10 */ 'r', 'd', 32, '%', 't', 'b', 'r', ',', 32, 0,
15 : /* 20 */ 'r', 'd', 32, '%', 'p', 's', 'r', ',', 32, 0,
16 : /* 30 */ 'f', 's', 'r', 'c', '1', 32, 0,
17 : /* 37 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 32, 0,
18 : /* 47 */ 'f', 'n', 'o', 't', '1', 32, 0,
19 : /* 54 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 32, 0,
20 : /* 63 */ 'f', 's', 'r', 'a', '3', '2', 32, 0,
21 : /* 71 */ 'f', 'p', 's', 'u', 'b', '3', '2', 32, 0,
22 : /* 80 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 32, 0,
23 : /* 89 */ 'e', 'd', 'g', 'e', '3', '2', 32, 0,
24 : /* 97 */ 'f', 'c', 'm', 'p', 'l', 'e', '3', '2', 32, 0,
25 : /* 107 */ 'f', 'c', 'm', 'p', 'n', 'e', '3', '2', 32, 0,
26 : /* 117 */ 'f', 'p', 'a', 'c', 'k', '3', '2', 32, 0,
27 : /* 126 */ 'c', 'm', 'a', 's', 'k', '3', '2', 32, 0,
28 : /* 135 */ 'f', 's', 'l', 'l', '3', '2', 32, 0,
29 : /* 143 */ 'f', 's', 'r', 'l', '3', '2', 32, 0,
30 : /* 151 */ 'f', 'c', 'm', 'p', 'e', 'q', '3', '2', 32, 0,
31 : /* 161 */ 'f', 's', 'l', 'a', 's', '3', '2', 32, 0,
32 : /* 170 */ 'f', 'c', 'm', 'p', 'g', 't', '3', '2', 32, 0,
33 : /* 180 */ 'a', 'r', 'r', 'a', 'y', '3', '2', 32, 0,
34 : /* 189 */ 'f', 's', 'r', 'c', '2', 32, 0,
35 : /* 196 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 32, 0,
36 : /* 206 */ 'f', 'n', 'o', 't', '2', 32, 0,
37 : /* 213 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 32, 0,
38 : /* 222 */ 'f', 'p', 'a', 'd', 'd', '6', '4', 32, 0,
39 : /* 231 */ 'f', 's', 'r', 'a', '1', '6', 32, 0,
40 : /* 239 */ 'f', 'p', 's', 'u', 'b', '1', '6', 32, 0,
41 : /* 248 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 32, 0,
42 : /* 257 */ 'e', 'd', 'g', 'e', '1', '6', 32, 0,
43 : /* 265 */ 'f', 'c', 'm', 'p', 'l', 'e', '1', '6', 32, 0,
44 : /* 275 */ 'f', 'c', 'm', 'p', 'n', 'e', '1', '6', 32, 0,
45 : /* 285 */ 'f', 'p', 'a', 'c', 'k', '1', '6', 32, 0,
46 : /* 294 */ 'c', 'm', 'a', 's', 'k', '1', '6', 32, 0,
47 : /* 303 */ 'f', 's', 'l', 'l', '1', '6', 32, 0,
48 : /* 311 */ 'f', 's', 'r', 'l', '1', '6', 32, 0,
49 : /* 319 */ 'f', 'c', 'h', 'k', 's', 'm', '1', '6', 32, 0,
50 : /* 329 */ 'f', 'm', 'e', 'a', 'n', '1', '6', 32, 0,
51 : /* 338 */ 'f', 'c', 'm', 'p', 'e', 'q', '1', '6', 32, 0,
52 : /* 348 */ 'f', 's', 'l', 'a', 's', '1', '6', 32, 0,
53 : /* 357 */ 'f', 'c', 'm', 'p', 'g', 't', '1', '6', 32, 0,
54 : /* 367 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 32, 0,
55 : /* 377 */ 'f', 'm', 'u', 'l', 'd', '8', 'u', 'l', 'x', '1', '6', 32, 0,
56 : /* 390 */ 'f', 'm', 'u', 'l', '8', 'u', 'l', 'x', '1', '6', 32, 0,
57 : /* 402 */ 'f', 'm', 'u', 'l', 'd', '8', 's', 'u', 'x', '1', '6', 32, 0,
58 : /* 415 */ 'f', 'm', 'u', 'l', '8', 's', 'u', 'x', '1', '6', 32, 0,
59 : /* 427 */ 'a', 'r', 'r', 'a', 'y', '1', '6', 32, 0,
60 : /* 436 */ 'e', 'd', 'g', 'e', '8', 32, 0,
61 : /* 443 */ 'c', 'm', 'a', 's', 'k', '8', 32, 0,
62 : /* 451 */ 'a', 'r', 'r', 'a', 'y', '8', 32, 0,
63 : /* 459 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
64 : /* 478 */ '!', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
65 : /* 495 */ 'f', 'p', 's', 'u', 'b', '3', '2', 'S', 32, 0,
66 : /* 505 */ 'f', 'p', 's', 'u', 'b', '1', '6', 'S', 32, 0,
67 : /* 515 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', 32, 0,
68 : /* 524 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', 32, 0,
69 : /* 533 */ 'b', 'r', 'g', 'z', ',', 'a', 32, 0,
70 : /* 541 */ 'b', 'r', 'l', 'z', ',', 'a', 32, 0,
71 : /* 549 */ 'b', 'r', 'n', 'z', ',', 'a', 32, 0,
72 : /* 557 */ 'b', 'r', 'z', ',', 'a', 32, 0,
73 : /* 564 */ 's', 't', 'b', 'a', 32, 0,
74 : /* 570 */ 's', 't', 'd', 'a', 32, 0,
75 : /* 576 */ 's', 't', 'h', 'a', 32, 0,
76 : /* 582 */ 's', 't', 'q', 'a', 32, 0,
77 : /* 588 */ 's', 'r', 'a', 32, 0,
78 : /* 593 */ 'f', 'a', 'l', 'i', 'g', 'n', 'd', 'a', 't', 'a', 32, 0,
79 : /* 605 */ 's', 't', 'a', 32, 0,
80 : /* 610 */ 's', 't', 'b', 32, 0,
81 : /* 615 */ 's', 'u', 'b', 32, 0,
82 : /* 620 */ 's', 'm', 'a', 'c', 32, 0,
83 : /* 626 */ 'u', 'm', 'a', 'c', 32, 0,
84 : /* 632 */ 't', 's', 'u', 'b', 'c', 'c', 32, 0,
85 : /* 640 */ 'a', 'd', 'd', 'x', 'c', 'c', 'c', 32, 0,
86 : /* 649 */ 't', 'a', 'd', 'd', 'c', 'c', 32, 0,
87 : /* 657 */ 'a', 'n', 'd', 'c', 'c', 32, 0,
88 : /* 664 */ 's', 'm', 'u', 'l', 'c', 'c', 32, 0,
89 : /* 672 */ 'u', 'm', 'u', 'l', 'c', 'c', 32, 0,
90 : /* 680 */ 'a', 'n', 'd', 'n', 'c', 'c', 32, 0,
91 : /* 688 */ 'o', 'r', 'n', 'c', 'c', 32, 0,
92 : /* 695 */ 'x', 'n', 'o', 'r', 'c', 'c', 32, 0,
93 : /* 703 */ 'x', 'o', 'r', 'c', 'c', 32, 0,
94 : /* 710 */ 'm', 'u', 'l', 's', 'c', 'c', 32, 0,
95 : /* 718 */ 's', 'd', 'i', 'v', 'c', 'c', 32, 0,
96 : /* 726 */ 'u', 'd', 'i', 'v', 'c', 'c', 32, 0,
97 : /* 734 */ 's', 'u', 'b', 'x', 'c', 'c', 32, 0,
98 : /* 742 */ 'a', 'd', 'd', 'x', 'c', 'c', 32, 0,
99 : /* 750 */ 'p', 'o', 'p', 'c', 32, 0,
100 : /* 756 */ 'a', 'd', 'd', 'x', 'c', 32, 0,
101 : /* 763 */ 'f', 's', 'u', 'b', 'd', 32, 0,
102 : /* 770 */ 'f', 'h', 's', 'u', 'b', 'd', 32, 0,
103 : /* 778 */ 'a', 'd', 'd', 32, 0,
104 : /* 783 */ 'f', 'a', 'd', 'd', 'd', 32, 0,
105 : /* 790 */ 'f', 'h', 'a', 'd', 'd', 'd', 32, 0,
106 : /* 798 */ 'f', 'n', 'h', 'a', 'd', 'd', 'd', 32, 0,
107 : /* 807 */ 'f', 'n', 'a', 'd', 'd', 'd', 32, 0,
108 : /* 815 */ 'f', 'c', 'm', 'p', 'e', 'd', 32, 0,
109 : /* 823 */ 'f', 'n', 'e', 'g', 'd', 32, 0,
110 : /* 830 */ 'f', 'm', 'u', 'l', 'd', 32, 0,
111 : /* 837 */ 'f', 's', 'm', 'u', 'l', 'd', 32, 0,
112 : /* 845 */ 'f', 'a', 'n', 'd', 32, 0,
113 : /* 851 */ 'f', 'n', 'a', 'n', 'd', 32, 0,
114 : /* 858 */ 'f', 'e', 'x', 'p', 'a', 'n', 'd', 32, 0,
115 : /* 867 */ 'f', 'i', 't', 'o', 'd', 32, 0,
116 : /* 874 */ 'f', 'q', 't', 'o', 'd', 32, 0,
117 : /* 881 */ 'f', 's', 't', 'o', 'd', 32, 0,
118 : /* 888 */ 'f', 'x', 't', 'o', 'd', 32, 0,
119 : /* 895 */ 'f', 'c', 'm', 'p', 'd', 32, 0,
120 : /* 902 */ 'f', 'l', 'c', 'm', 'p', 'd', 32, 0,
121 : /* 910 */ 'r', 'd', 32, 0,
122 : /* 914 */ 'f', 'a', 'b', 's', 'd', 32, 0,
123 : /* 921 */ 'f', 's', 'q', 'r', 't', 'd', 32, 0,
124 : /* 929 */ 's', 't', 'd', 32, 0,
125 : /* 934 */ 'f', 'd', 'i', 'v', 'd', 32, 0,
126 : /* 941 */ 'f', 'm', 'o', 'v', 'd', 32, 0,
127 : /* 948 */ 'f', 'p', 'm', 'e', 'r', 'g', 'e', 32, 0,
128 : /* 957 */ 'b', 's', 'h', 'u', 'f', 'f', 'l', 'e', 32, 0,
129 : /* 967 */ 'f', 'o', 'n', 'e', 32, 0,
130 : /* 973 */ 'r', 'e', 's', 't', 'o', 'r', 'e', 32, 0,
131 : /* 982 */ 's', 'a', 'v', 'e', 32, 0,
132 : /* 988 */ 'f', 'l', 'u', 's', 'h', 32, 0,
133 : /* 995 */ 's', 't', 'h', 32, 0,
134 : /* 1000 */ 's', 'e', 't', 'h', 'i', 32, 0,
135 : /* 1007 */ 'u', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
136 : /* 1016 */ 'x', 'm', 'u', 'l', 'x', 'h', 'i', 32, 0,
137 : /* 1025 */ 'f', 'd', 't', 'o', 'i', 32, 0,
138 : /* 1032 */ 'f', 'q', 't', 'o', 'i', 32, 0,
139 : /* 1039 */ 'f', 's', 't', 'o', 'i', 32, 0,
140 : /* 1046 */ 'b', 'm', 'a', 's', 'k', 32, 0,
141 : /* 1053 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 32, 0,
142 : /* 1062 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 32, 0,
143 : /* 1071 */ 'e', 'd', 'g', 'e', '8', 'l', 32, 0,
144 : /* 1079 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'l', 32, 0,
145 : /* 1091 */ 'c', 'a', 'l', 'l', 32, 0,
146 : /* 1097 */ 's', 'l', 'l', 32, 0,
147 : /* 1102 */ 'j', 'm', 'p', 'l', 32, 0,
148 : /* 1108 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 'l', 32, 0,
149 : /* 1120 */ 's', 'r', 'l', 32, 0,
150 : /* 1125 */ 's', 'm', 'u', 'l', 32, 0,
151 : /* 1131 */ 'u', 'm', 'u', 'l', 32, 0,
152 : /* 1137 */ 'e', 'd', 'g', 'e', '3', '2', 'n', 32, 0,
153 : /* 1146 */ 'e', 'd', 'g', 'e', '1', '6', 'n', 32, 0,
154 : /* 1155 */ 'e', 'd', 'g', 'e', '8', 'n', 32, 0,
155 : /* 1163 */ 'a', 'n', 'd', 'n', 32, 0,
156 : /* 1169 */ 'e', 'd', 'g', 'e', '3', '2', 'l', 'n', 32, 0,
157 : /* 1179 */ 'e', 'd', 'g', 'e', '1', '6', 'l', 'n', 32, 0,
158 : /* 1189 */ 'e', 'd', 'g', 'e', '8', 'l', 'n', 32, 0,
159 : /* 1198 */ 'b', 'r', 'g', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
160 : /* 1210 */ 'b', 'r', 'l', 'e', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
161 : /* 1222 */ 'b', 'r', 'g', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
162 : /* 1233 */ 'b', 'r', 'l', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
163 : /* 1244 */ 'b', 'r', 'n', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
164 : /* 1255 */ 'b', 'r', 'z', ',', 'a', ',', 'p', 'n', 32, 0,
165 : /* 1265 */ 'b', 'r', 'g', 'e', 'z', ',', 'p', 'n', 32, 0,
166 : /* 1275 */ 'b', 'r', 'l', 'e', 'z', ',', 'p', 'n', 32, 0,
167 : /* 1285 */ 'b', 'r', 'g', 'z', ',', 'p', 'n', 32, 0,
168 : /* 1294 */ 'b', 'r', 'l', 'z', ',', 'p', 'n', 32, 0,
169 : /* 1303 */ 'b', 'r', 'n', 'z', ',', 'p', 'n', 32, 0,
170 : /* 1312 */ 'b', 'r', 'z', ',', 'p', 'n', 32, 0,
171 : /* 1320 */ 'o', 'r', 'n', 32, 0,
172 : /* 1325 */ 'p', 'd', 'i', 's', 't', 'n', 32, 0,
173 : /* 1333 */ 'f', 'z', 'e', 'r', 'o', 32, 0,
174 : /* 1340 */ 'c', 'm', 'p', 32, 0,
175 : /* 1345 */ 'u', 'n', 'i', 'm', 'p', 32, 0,
176 : /* 1352 */ 'j', 'm', 'p', 32, 0,
177 : /* 1357 */ 'f', 's', 'u', 'b', 'q', 32, 0,
178 : /* 1364 */ 'f', 'a', 'd', 'd', 'q', 32, 0,
179 : /* 1371 */ 'f', 'c', 'm', 'p', 'e', 'q', 32, 0,
180 : /* 1379 */ 'f', 'n', 'e', 'g', 'q', 32, 0,
181 : /* 1386 */ 'f', 'd', 'm', 'u', 'l', 'q', 32, 0,
182 : /* 1394 */ 'f', 'm', 'u', 'l', 'q', 32, 0,
183 : /* 1401 */ 'f', 'd', 't', 'o', 'q', 32, 0,
184 : /* 1408 */ 'f', 'i', 't', 'o', 'q', 32, 0,
185 : /* 1415 */ 'f', 's', 't', 'o', 'q', 32, 0,
186 : /* 1422 */ 'f', 'x', 't', 'o', 'q', 32, 0,
187 : /* 1429 */ 'f', 'c', 'm', 'p', 'q', 32, 0,
188 : /* 1436 */ 'f', 'a', 'b', 's', 'q', 32, 0,
189 : /* 1443 */ 'f', 's', 'q', 'r', 't', 'q', 32, 0,
190 : /* 1451 */ 's', 't', 'q', 32, 0,
191 : /* 1456 */ 'f', 'd', 'i', 'v', 'q', 32, 0,
192 : /* 1463 */ 'f', 'm', 'o', 'v', 'q', 32, 0,
193 : /* 1470 */ 'm', 'e', 'm', 'b', 'a', 'r', 32, 0,
194 : /* 1478 */ 'a', 'l', 'i', 'g', 'n', 'a', 'd', 'd', 'r', 32, 0,
195 : /* 1489 */ 'f', 'o', 'r', 32, 0,
196 : /* 1494 */ 'f', 'n', 'o', 'r', 32, 0,
197 : /* 1500 */ 'f', 'x', 'n', 'o', 'r', 32, 0,
198 : /* 1507 */ 'f', 'x', 'o', 'r', 32, 0,
199 : /* 1513 */ 'r', 'd', 'p', 'r', 32, 0,
200 : /* 1519 */ 'w', 'r', 'p', 'r', 32, 0,
201 : /* 1525 */ 'p', 'w', 'r', 32, 0,
202 : /* 1530 */ 'f', 's', 'r', 'c', '1', 's', 32, 0,
203 : /* 1538 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '1', 's', 32, 0,
204 : /* 1549 */ 'f', 'n', 'o', 't', '1', 's', 32, 0,
205 : /* 1557 */ 'f', 'o', 'r', 'n', 'o', 't', '1', 's', 32, 0,
206 : /* 1567 */ 'f', 'p', 'a', 'd', 'd', '3', '2', 's', 32, 0,
207 : /* 1577 */ 'f', 's', 'r', 'c', '2', 's', 32, 0,
208 : /* 1585 */ 'f', 'a', 'n', 'd', 'n', 'o', 't', '2', 's', 32, 0,
209 : /* 1596 */ 'f', 'n', 'o', 't', '2', 's', 32, 0,
210 : /* 1604 */ 'f', 'o', 'r', 'n', 'o', 't', '2', 's', 32, 0,
211 : /* 1614 */ 'f', 'p', 'a', 'd', 'd', '1', '6', 's', 32, 0,
212 : /* 1624 */ 'f', 's', 'u', 'b', 's', 32, 0,
213 : /* 1631 */ 'f', 'h', 's', 'u', 'b', 's', 32, 0,
214 : /* 1639 */ 'f', 'a', 'd', 'd', 's', 32, 0,
215 : /* 1646 */ 'f', 'h', 'a', 'd', 'd', 's', 32, 0,
216 : /* 1654 */ 'f', 'n', 'h', 'a', 'd', 'd', 's', 32, 0,
217 : /* 1663 */ 'f', 'n', 'a', 'd', 'd', 's', 32, 0,
218 : /* 1671 */ 'f', 'a', 'n', 'd', 's', 32, 0,
219 : /* 1678 */ 'f', 'n', 'a', 'n', 'd', 's', 32, 0,
220 : /* 1686 */ 'f', 'o', 'n', 'e', 's', 32, 0,
221 : /* 1693 */ 'f', 'c', 'm', 'p', 'e', 's', 32, 0,
222 : /* 1701 */ 'f', 'n', 'e', 'g', 's', 32, 0,
223 : /* 1708 */ 'f', 'm', 'u', 'l', 's', 32, 0,
224 : /* 1715 */ 'f', 'z', 'e', 'r', 'o', 's', 32, 0,
225 : /* 1723 */ 'f', 'd', 't', 'o', 's', 32, 0,
226 : /* 1730 */ 'f', 'i', 't', 'o', 's', 32, 0,
227 : /* 1737 */ 'f', 'q', 't', 'o', 's', 32, 0,
228 : /* 1744 */ 'f', 'x', 't', 'o', 's', 32, 0,
229 : /* 1751 */ 'f', 'c', 'm', 'p', 's', 32, 0,
230 : /* 1758 */ 'f', 'l', 'c', 'm', 'p', 's', 32, 0,
231 : /* 1766 */ 'f', 'o', 'r', 's', 32, 0,
232 : /* 1772 */ 'f', 'n', 'o', 'r', 's', 32, 0,
233 : /* 1779 */ 'f', 'x', 'n', 'o', 'r', 's', 32, 0,
234 : /* 1787 */ 'f', 'x', 'o', 'r', 's', 32, 0,
235 : /* 1794 */ 'f', 'a', 'b', 's', 's', 32, 0,
236 : /* 1801 */ 'f', 's', 'q', 'r', 't', 's', 32, 0,
237 : /* 1809 */ 'f', 'd', 'i', 'v', 's', 32, 0,
238 : /* 1816 */ 'f', 'm', 'o', 'v', 's', 32, 0,
239 : /* 1823 */ 's', 'e', 't', 32, 0,
240 : /* 1828 */ 'l', 'z', 'c', 'n', 't', 32, 0,
241 : /* 1835 */ 'p', 'd', 'i', 's', 't', 32, 0,
242 : /* 1842 */ 'r', 'e', 't', 't', 32, 0,
243 : /* 1848 */ 'f', 'm', 'u', 'l', '8', 'x', '1', '6', 'a', 'u', 32, 0,
244 : /* 1860 */ 's', 'd', 'i', 'v', 32, 0,
245 : /* 1866 */ 'u', 'd', 'i', 'v', 32, 0,
246 : /* 1872 */ 't', 's', 'u', 'b', 'c', 'c', 't', 'v', 32, 0,
247 : /* 1882 */ 't', 'a', 'd', 'd', 'c', 'c', 't', 'v', 32, 0,
248 : /* 1892 */ 'm', 'o', 'v', 's', 't', 'o', 's', 'w', 32, 0,
249 : /* 1902 */ 'm', 'o', 'v', 's', 't', 'o', 'u', 'w', 32, 0,
250 : /* 1912 */ 's', 'r', 'a', 'x', 32, 0,
251 : /* 1918 */ 's', 'u', 'b', 'x', 32, 0,
252 : /* 1924 */ 'a', 'd', 'd', 'x', 32, 0,
253 : /* 1930 */ 'f', 'p', 'a', 'c', 'k', 'f', 'i', 'x', 32, 0,
254 : /* 1940 */ 's', 'l', 'l', 'x', 32, 0,
255 : /* 1946 */ 's', 'r', 'l', 'x', 32, 0,
256 : /* 1952 */ 'x', 'm', 'u', 'l', 'x', 32, 0,
257 : /* 1959 */ 'f', 'd', 't', 'o', 'x', 32, 0,
258 : /* 1966 */ 'm', 'o', 'v', 'd', 't', 'o', 'x', 32, 0,
259 : /* 1975 */ 'f', 'q', 't', 'o', 'x', 32, 0,
260 : /* 1982 */ 'f', 's', 't', 'o', 'x', 32, 0,
261 : /* 1989 */ 's', 't', 'x', 32, 0,
262 : /* 1994 */ 's', 'd', 'i', 'v', 'x', 32, 0,
263 : /* 2001 */ 'u', 'd', 'i', 'v', 'x', 32, 0,
264 : /* 2008 */ 'f', 'm', 'o', 'v', 'r', 'd', 'z', 32, 0,
265 : /* 2017 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'e', 'z', 32, 0,
266 : /* 2028 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'e', 'z', 32, 0,
267 : /* 2039 */ 'b', 'r', 'g', 'e', 'z', 32, 0,
268 : /* 2046 */ 'm', 'o', 'v', 'r', 'g', 'e', 'z', 32, 0,
269 : /* 2055 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'e', 'z', 32, 0,
270 : /* 2066 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'e', 'z', 32, 0,
271 : /* 2077 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'e', 'z', 32, 0,
272 : /* 2088 */ 'b', 'r', 'l', 'e', 'z', 32, 0,
273 : /* 2095 */ 'm', 'o', 'v', 'r', 'l', 'e', 'z', 32, 0,
274 : /* 2104 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'e', 'z', 32, 0,
275 : /* 2115 */ 'f', 'm', 'o', 'v', 'r', 'd', 'g', 'z', 32, 0,
276 : /* 2125 */ 'f', 'm', 'o', 'v', 'r', 'q', 'g', 'z', 32, 0,
277 : /* 2135 */ 'b', 'r', 'g', 'z', 32, 0,
278 : /* 2141 */ 'm', 'o', 'v', 'r', 'g', 'z', 32, 0,
279 : /* 2149 */ 'f', 'm', 'o', 'v', 'r', 's', 'g', 'z', 32, 0,
280 : /* 2159 */ 'f', 'm', 'o', 'v', 'r', 'd', 'l', 'z', 32, 0,
281 : /* 2169 */ 'f', 'm', 'o', 'v', 'r', 'q', 'l', 'z', 32, 0,
282 : /* 2179 */ 'b', 'r', 'l', 'z', 32, 0,
283 : /* 2185 */ 'm', 'o', 'v', 'r', 'l', 'z', 32, 0,
284 : /* 2193 */ 'f', 'm', 'o', 'v', 'r', 's', 'l', 'z', 32, 0,
285 : /* 2203 */ 'f', 'm', 'o', 'v', 'r', 'd', 'n', 'z', 32, 0,
286 : /* 2213 */ 'f', 'm', 'o', 'v', 'r', 'q', 'n', 'z', 32, 0,
287 : /* 2223 */ 'b', 'r', 'n', 'z', 32, 0,
288 : /* 2229 */ 'm', 'o', 'v', 'r', 'n', 'z', 32, 0,
289 : /* 2237 */ 'f', 'm', 'o', 'v', 'r', 's', 'n', 'z', 32, 0,
290 : /* 2247 */ 'f', 'm', 'o', 'v', 'r', 'q', 'z', 32, 0,
291 : /* 2256 */ 'b', 'r', 'z', 32, 0,
292 : /* 2261 */ 'm', 'o', 'v', 'r', 'z', 32, 0,
293 : /* 2268 */ 'f', 'm', 'o', 'v', 'r', 's', 'z', 32, 0,
294 : /* 2277 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
295 : /* 2305 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
296 : /* 2333 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
297 : /* 2360 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'F', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
298 : /* 2388 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'D', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
299 : /* 2416 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'Q', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
300 : /* 2444 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'F', 'P', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
301 : /* 2471 */ ';', 32, 'S', 'E', 'L', 'E', 'C', 'T', '_', 'C', 'C', '_', 'I', 'n', 't', '_', 'I', 'C', 'C', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
302 : /* 2499 */ 'j', 'm', 'p', 32, '%', 'i', '7', '+', 0,
303 : /* 2508 */ 'j', 'm', 'p', 32, '%', 'o', '7', '+', 0,
304 : /* 2517 */ '#', 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 : /* 2548 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
306 : /* 2572 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
307 : /* 2597 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
308 : /* 2620 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
309 : /* 2643 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
310 : /* 2665 */ 'f', 'l', 'u', 's', 'h', 32, '%', 'g', '0', 0,
311 : /* 2675 */ 't', 'a', 32, '1', 0,
312 : /* 2680 */ 't', 'a', 32, '3', 0,
313 : /* 2685 */ 't', 'a', 32, '5', 0,
314 : /* 2690 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
315 : /* 2703 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
316 : /* 2710 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
317 : /* 2720 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
318 : /* 2730 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
319 : /* 2745 */ 's', 't', 'd', 32, '%', 'c', 'q', ',', 32, '[', 0,
320 : /* 2756 */ 's', 't', 'd', 32, '%', 'f', 'q', ',', 32, '[', 0,
321 : /* 2767 */ 's', 't', 32, '%', 'c', 's', 'r', ',', 32, '[', 0,
322 : /* 2778 */ 's', 't', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
323 : /* 2789 */ 's', 't', 'x', 32, '%', 'f', 's', 'r', ',', 32, '[', 0,
324 : /* 2801 */ 'l', 'd', 's', 'b', 'a', 32, '[', 0,
325 : /* 2809 */ 'l', 'd', 'u', 'b', 'a', 32, '[', 0,
326 : /* 2817 */ 'l', 'd', 's', 't', 'u', 'b', 'a', 32, '[', 0,
327 : /* 2827 */ 'l', 'd', 'd', 'a', 32, '[', 0,
328 : /* 2834 */ 'l', 'd', 'a', 32, '[', 0,
329 : /* 2840 */ 'l', 'd', 's', 'h', 'a', 32, '[', 0,
330 : /* 2848 */ 'l', 'd', 'u', 'h', 'a', 32, '[', 0,
331 : /* 2856 */ 's', 'w', 'a', 'p', 'a', 32, '[', 0,
332 : /* 2864 */ 'l', 'd', 'q', 'a', 32, '[', 0,
333 : /* 2871 */ 'c', 'a', 's', 'a', 32, '[', 0,
334 : /* 2878 */ 'l', 'd', 's', 'b', 32, '[', 0,
335 : /* 2885 */ 'l', 'd', 'u', 'b', 32, '[', 0,
336 : /* 2892 */ 'l', 'd', 's', 't', 'u', 'b', 32, '[', 0,
337 : /* 2901 */ 'l', 'd', 'd', 32, '[', 0,
338 : /* 2907 */ 'l', 'd', 32, '[', 0,
339 : /* 2912 */ 'l', 'd', 's', 'h', 32, '[', 0,
340 : /* 2919 */ 'l', 'd', 'u', 'h', 32, '[', 0,
341 : /* 2926 */ 's', 'w', 'a', 'p', 32, '[', 0,
342 : /* 2933 */ 'l', 'd', 'q', 32, '[', 0,
343 : /* 2939 */ 'c', 'a', 's', 32, '[', 0,
344 : /* 2945 */ 'l', 'd', 's', 'w', 32, '[', 0,
345 : /* 2952 */ 'l', 'd', 'x', 32, '[', 0,
346 : /* 2958 */ 'c', 'a', 's', 'x', 32, '[', 0,
347 : /* 2965 */ 'c', 'b', 0,
348 : /* 2968 */ 'f', 'b', 0,
349 : /* 2971 */ 'f', 'm', 'o', 'v', 'd', 0,
350 : /* 2977 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
351 : /* 2991 */ 's', 'i', 'a', 'm', 0,
352 : /* 2996 */ 's', 'h', 'u', 't', 'd', 'o', 'w', 'n', 0,
353 : /* 3005 */ 'n', 'o', 'p', 0,
354 : /* 3009 */ 'f', 'm', 'o', 'v', 'q', 0,
355 : /* 3015 */ 's', 't', 'b', 'a', 'r', 0,
356 : /* 3021 */ 'f', 'm', 'o', 'v', 's', 0,
357 : /* 3027 */ 't', 0,
358 : /* 3029 */ 'm', 'o', 'v', 0,
359 : /* 3033 */ 'f', 'l', 'u', 's', 'h', 'w', 0,
360 : };
361 :
362 : static const uint32_t OpInfo0[] = {
363 : 0U, // PHI
364 : 0U, // INLINEASM
365 : 0U, // CFI_INSTRUCTION
366 : 0U, // EH_LABEL
367 : 0U, // GC_LABEL
368 : 0U, // ANNOTATION_LABEL
369 : 0U, // KILL
370 : 0U, // EXTRACT_SUBREG
371 : 0U, // INSERT_SUBREG
372 : 0U, // IMPLICIT_DEF
373 : 0U, // SUBREG_TO_REG
374 : 0U, // COPY_TO_REGCLASS
375 : 2711U, // DBG_VALUE
376 : 2721U, // DBG_LABEL
377 : 0U, // REG_SEQUENCE
378 : 0U, // COPY
379 : 2704U, // BUNDLE
380 : 2731U, // LIFETIME_START
381 : 2691U, // LIFETIME_END
382 : 0U, // STACKMAP
383 : 2978U, // FENTRY_CALL
384 : 0U, // PATCHPOINT
385 : 0U, // LOAD_STACK_GUARD
386 : 0U, // STATEPOINT
387 : 0U, // LOCAL_ESCAPE
388 : 0U, // FAULTING_OP
389 : 0U, // PATCHABLE_OP
390 : 2598U, // PATCHABLE_FUNCTION_ENTER
391 : 2518U, // PATCHABLE_RET
392 : 2644U, // PATCHABLE_FUNCTION_EXIT
393 : 2621U, // PATCHABLE_TAIL_CALL
394 : 2573U, // PATCHABLE_EVENT_CALL
395 : 2549U, // PATCHABLE_TYPED_EVENT_CALL
396 : 0U, // ICALL_BRANCH_FUNNEL
397 : 0U, // G_ADD
398 : 0U, // G_SUB
399 : 0U, // G_MUL
400 : 0U, // G_SDIV
401 : 0U, // G_UDIV
402 : 0U, // G_SREM
403 : 0U, // G_UREM
404 : 0U, // G_AND
405 : 0U, // G_OR
406 : 0U, // G_XOR
407 : 0U, // G_IMPLICIT_DEF
408 : 0U, // G_PHI
409 : 0U, // G_FRAME_INDEX
410 : 0U, // G_GLOBAL_VALUE
411 : 0U, // G_EXTRACT
412 : 0U, // G_UNMERGE_VALUES
413 : 0U, // G_INSERT
414 : 0U, // G_MERGE_VALUES
415 : 0U, // G_PTRTOINT
416 : 0U, // G_INTTOPTR
417 : 0U, // G_BITCAST
418 : 0U, // G_INTRINSIC_TRUNC
419 : 0U, // G_INTRINSIC_ROUND
420 : 0U, // G_LOAD
421 : 0U, // G_SEXTLOAD
422 : 0U, // G_ZEXTLOAD
423 : 0U, // G_STORE
424 : 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
425 : 0U, // G_ATOMIC_CMPXCHG
426 : 0U, // G_ATOMICRMW_XCHG
427 : 0U, // G_ATOMICRMW_ADD
428 : 0U, // G_ATOMICRMW_SUB
429 : 0U, // G_ATOMICRMW_AND
430 : 0U, // G_ATOMICRMW_NAND
431 : 0U, // G_ATOMICRMW_OR
432 : 0U, // G_ATOMICRMW_XOR
433 : 0U, // G_ATOMICRMW_MAX
434 : 0U, // G_ATOMICRMW_MIN
435 : 0U, // G_ATOMICRMW_UMAX
436 : 0U, // G_ATOMICRMW_UMIN
437 : 0U, // G_BRCOND
438 : 0U, // G_BRINDIRECT
439 : 0U, // G_INTRINSIC
440 : 0U, // G_INTRINSIC_W_SIDE_EFFECTS
441 : 0U, // G_ANYEXT
442 : 0U, // G_TRUNC
443 : 0U, // G_CONSTANT
444 : 0U, // G_FCONSTANT
445 : 0U, // G_VASTART
446 : 0U, // G_VAARG
447 : 0U, // G_SEXT
448 : 0U, // G_ZEXT
449 : 0U, // G_SHL
450 : 0U, // G_LSHR
451 : 0U, // G_ASHR
452 : 0U, // G_ICMP
453 : 0U, // G_FCMP
454 : 0U, // G_SELECT
455 : 0U, // G_UADDO
456 : 0U, // G_UADDE
457 : 0U, // G_USUBO
458 : 0U, // G_USUBE
459 : 0U, // G_SADDO
460 : 0U, // G_SADDE
461 : 0U, // G_SSUBO
462 : 0U, // G_SSUBE
463 : 0U, // G_UMULO
464 : 0U, // G_SMULO
465 : 0U, // G_UMULH
466 : 0U, // G_SMULH
467 : 0U, // G_FADD
468 : 0U, // G_FSUB
469 : 0U, // G_FMUL
470 : 0U, // G_FMA
471 : 0U, // G_FDIV
472 : 0U, // G_FREM
473 : 0U, // G_FPOW
474 : 0U, // G_FEXP
475 : 0U, // G_FEXP2
476 : 0U, // G_FLOG
477 : 0U, // G_FLOG2
478 : 0U, // G_FNEG
479 : 0U, // G_FPEXT
480 : 0U, // G_FPTRUNC
481 : 0U, // G_FPTOSI
482 : 0U, // G_FPTOUI
483 : 0U, // G_SITOFP
484 : 0U, // G_UITOFP
485 : 0U, // G_FABS
486 : 0U, // G_GEP
487 : 0U, // G_PTR_MASK
488 : 0U, // G_BR
489 : 0U, // G_INSERT_VECTOR_ELT
490 : 0U, // G_EXTRACT_VECTOR_ELT
491 : 0U, // G_SHUFFLE_VECTOR
492 : 0U, // G_CTTZ
493 : 0U, // G_CTTZ_ZERO_UNDEF
494 : 0U, // G_CTLZ
495 : 0U, // G_CTLZ_ZERO_UNDEF
496 : 0U, // G_CTPOP
497 : 0U, // G_BSWAP
498 : 0U, // G_ADDRSPACE_CAST
499 : 0U, // G_BLOCK_ADDR
500 : 4556U, // ADJCALLSTACKDOWN
501 : 70111U, // ADJCALLSTACKUP
502 : 8202U, // GETPCX
503 : 2278U, // SELECT_CC_DFP_FCC
504 : 2389U, // SELECT_CC_DFP_ICC
505 : 2334U, // SELECT_CC_FP_FCC
506 : 2445U, // SELECT_CC_FP_ICC
507 : 2361U, // SELECT_CC_Int_FCC
508 : 2472U, // SELECT_CC_Int_ICC
509 : 2306U, // SELECT_CC_QFP_FCC
510 : 2417U, // SELECT_CC_QFP_ICC
511 : 2111264U, // SET
512 : 4207243U, // ADDCCri
513 : 4207243U, // ADDCCrr
514 : 4208517U, // ADDCri
515 : 4208517U, // ADDCrr
516 : 4207335U, // ADDEri
517 : 4207335U, // ADDErr
518 : 4207349U, // ADDXC
519 : 4207233U, // ADDXCCC
520 : 4207371U, // ADDXri
521 : 4207371U, // ADDXrr
522 : 4207371U, // ADDri
523 : 4207371U, // ADDrr
524 : 4208071U, // ALIGNADDR
525 : 4207701U, // ALIGNADDRL
526 : 4207250U, // ANDCCri
527 : 4207250U, // ANDCCrr
528 : 4207273U, // ANDNCCri
529 : 4207273U, // ANDNCCrr
530 : 4207756U, // ANDNri
531 : 4207756U, // ANDNrr
532 : 4207756U, // ANDXNrr
533 : 4207439U, // ANDXri
534 : 4207439U, // ANDXrr
535 : 4207439U, // ANDri
536 : 4207439U, // ANDrr
537 : 4207020U, // ARRAY16
538 : 4206773U, // ARRAY32
539 : 4207044U, // ARRAY8
540 : 70199U, // BA
541 : 2247575U, // BCOND
542 : 2313111U, // BCONDA
543 : 87369U, // BINDri
544 : 87369U, // BINDrr
545 : 4207639U, // BMASK
546 : 4344729U, // BPFCC
547 : 4410265U, // BPFCCA
548 : 281497U, // BPFCCANT
549 : 347033U, // BPFCCNT
550 : 5295U, // BPGEZapn
551 : 4612U, // BPGEZapt
552 : 5362U, // BPGEZnapn
553 : 6136U, // BPGEZnapt
554 : 5319U, // BPGZapn
555 : 4630U, // BPGZapt
556 : 5382U, // BPGZnapn
557 : 6232U, // BPGZnapt
558 : 2509719U, // BPICC
559 : 478103U, // BPICCA
560 : 543639U, // BPICCANT
561 : 609175U, // BPICCNT
562 : 5307U, // BPLEZapn
563 : 4621U, // BPLEZapt
564 : 5372U, // BPLEZnapn
565 : 6185U, // BPLEZnapt
566 : 5330U, // BPLZapn
567 : 4638U, // BPLZapt
568 : 5391U, // BPLZnapn
569 : 6276U, // BPLZnapt
570 : 5341U, // BPNZapn
571 : 4646U, // BPNZapt
572 : 5400U, // BPNZnapn
573 : 6320U, // BPNZnapt
574 : 2771863U, // BPXCC
575 : 740247U, // BPXCCA
576 : 805783U, // BPXCCANT
577 : 871319U, // BPXCCNT
578 : 5352U, // BPZapn
579 : 4654U, // BPZapt
580 : 5409U, // BPZnapn
581 : 6353U, // BPZnapt
582 : 4207550U, // BSHUFFLE
583 : 70724U, // CALL
584 : 87108U, // CALLri
585 : 87108U, // CALLrr
586 : 932664U, // CASAasi10
587 : 7289656U, // CASArr
588 : 5258127U, // CASXrr
589 : 5258108U, // CASrr
590 : 2247574U, // CBCOND
591 : 2313110U, // CBCONDA
592 : 69927U, // CMASK16
593 : 69759U, // CMASK32
594 : 70076U, // CMASK8
595 : 5437U, // CMPri
596 : 5437U, // CMPrr
597 : 4206850U, // EDGE16
598 : 4207655U, // EDGE16L
599 : 4207772U, // EDGE16LN
600 : 4207739U, // EDGE16N
601 : 4206682U, // EDGE32
602 : 4207646U, // EDGE32L
603 : 4207762U, // EDGE32LN
604 : 4207730U, // EDGE32N
605 : 4207029U, // EDGE8
606 : 4207664U, // EDGE8L
607 : 4207782U, // EDGE8LN
608 : 4207748U, // EDGE8N
609 : 2110355U, // FABSD
610 : 2110877U, // FABSQ
611 : 2111235U, // FABSS
612 : 4207376U, // FADDD
613 : 4207957U, // FADDQ
614 : 4208232U, // FADDS
615 : 4207186U, // FALIGNADATA
616 : 4207438U, // FAND
617 : 4206630U, // FANDNOT1
618 : 4208131U, // FANDNOT1S
619 : 4206789U, // FANDNOT2
620 : 4208178U, // FANDNOT2S
621 : 4208264U, // FANDS
622 : 2247577U, // FBCOND
623 : 2313113U, // FBCONDA
624 : 4206912U, // FCHKSM16
625 : 4992U, // FCMPD
626 : 4206931U, // FCMPEQ16
627 : 4206744U, // FCMPEQ32
628 : 4206950U, // FCMPGT16
629 : 4206763U, // FCMPGT32
630 : 4206858U, // FCMPLE16
631 : 4206690U, // FCMPLE32
632 : 4206868U, // FCMPNE16
633 : 4206700U, // FCMPNE32
634 : 5526U, // FCMPQ
635 : 5848U, // FCMPS
636 : 4207527U, // FDIVD
637 : 4208049U, // FDIVQ
638 : 4208402U, // FDIVS
639 : 4207979U, // FDMULQ
640 : 2110466U, // FDTOI
641 : 2110842U, // FDTOQ
642 : 2111164U, // FDTOS
643 : 2111400U, // FDTOX
644 : 2110299U, // FEXPAND
645 : 4207383U, // FHADDD
646 : 4208239U, // FHADDS
647 : 4207363U, // FHSUBD
648 : 4208224U, // FHSUBS
649 : 2110308U, // FITOD
650 : 2110849U, // FITOQ
651 : 2111171U, // FITOS
652 : 16782215U, // FLCMPD
653 : 16783071U, // FLCMPS
654 : 2666U, // FLUSH
655 : 3034U, // FLUSHW
656 : 87005U, // FLUSHri
657 : 87005U, // FLUSHrr
658 : 4206922U, // FMEAN16
659 : 2110382U, // FMOVD
660 : 1141660U, // FMOVD_FCC
661 : 151415708U, // FMOVD_ICC
662 : 151677852U, // FMOVD_XCC
663 : 2110904U, // FMOVQ
664 : 1141698U, // FMOVQ_FCC
665 : 151415746U, // FMOVQ_ICC
666 : 151677890U, // FMOVQ_XCC
667 : 4208610U, // FMOVRGEZD
668 : 4208621U, // FMOVRGEZQ
669 : 4208648U, // FMOVRGEZS
670 : 4208708U, // FMOVRGZD
671 : 4208718U, // FMOVRGZQ
672 : 4208742U, // FMOVRGZS
673 : 4208659U, // FMOVRLEZD
674 : 4208670U, // FMOVRLEZQ
675 : 4208697U, // FMOVRLEZS
676 : 4208752U, // FMOVRLZD
677 : 4208762U, // FMOVRLZQ
678 : 4208786U, // FMOVRLZS
679 : 4208796U, // FMOVRNZD
680 : 4208806U, // FMOVRNZQ
681 : 4208830U, // FMOVRNZS
682 : 4208601U, // FMOVRZD
683 : 4208840U, // FMOVRZQ
684 : 4208861U, // FMOVRZS
685 : 2111257U, // FMOVS
686 : 1141710U, // FMOVS_FCC
687 : 151415758U, // FMOVS_ICC
688 : 151677902U, // FMOVS_XCC
689 : 4207008U, // FMUL8SUX16
690 : 4206983U, // FMUL8ULX16
691 : 4206960U, // FMUL8X16
692 : 4207672U, // FMUL8X16AL
693 : 4208441U, // FMUL8X16AU
694 : 4207423U, // FMULD
695 : 4206995U, // FMULD8SUX16
696 : 4206970U, // FMULD8ULX16
697 : 4207987U, // FMULQ
698 : 4208301U, // FMULS
699 : 4207400U, // FNADDD
700 : 4208256U, // FNADDS
701 : 4207444U, // FNAND
702 : 4208271U, // FNANDS
703 : 2110264U, // FNEGD
704 : 2110820U, // FNEGQ
705 : 2111142U, // FNEGS
706 : 4207391U, // FNHADDD
707 : 4208247U, // FNHADDS
708 : 4207391U, // FNMULD
709 : 4208247U, // FNMULS
710 : 4208087U, // FNOR
711 : 4208365U, // FNORS
712 : 2109488U, // FNOT1
713 : 2110990U, // FNOT1S
714 : 2109647U, // FNOT2
715 : 2111037U, // FNOT2S
716 : 4208247U, // FNSMULD
717 : 70600U, // FONE
718 : 71319U, // FONES
719 : 4208082U, // FOR
720 : 4206647U, // FORNOT1
721 : 4208150U, // FORNOT1S
722 : 4206806U, // FORNOT2
723 : 4208197U, // FORNOT2S
724 : 4208359U, // FORS
725 : 2109726U, // FPACK16
726 : 4206710U, // FPACK32
727 : 2111371U, // FPACKFIX
728 : 4206841U, // FPADD16
729 : 4208207U, // FPADD16S
730 : 4206673U, // FPADD32
731 : 4208160U, // FPADD32S
732 : 4206815U, // FPADD64
733 : 4207541U, // FPMERGE
734 : 4206832U, // FPSUB16
735 : 4207098U, // FPSUB16S
736 : 4206664U, // FPSUB32
737 : 4207088U, // FPSUB32S
738 : 2110315U, // FQTOD
739 : 2110473U, // FQTOI
740 : 2111178U, // FQTOS
741 : 2111416U, // FQTOX
742 : 4206941U, // FSLAS16
743 : 4206754U, // FSLAS32
744 : 4206896U, // FSLL16
745 : 4206728U, // FSLL32
746 : 4207430U, // FSMULD
747 : 2110362U, // FSQRTD
748 : 2110884U, // FSQRTQ
749 : 2111242U, // FSQRTS
750 : 4206824U, // FSRA16
751 : 4206656U, // FSRA32
752 : 2109471U, // FSRC1
753 : 2110971U, // FSRC1S
754 : 2109630U, // FSRC2
755 : 2111018U, // FSRC2S
756 : 4206904U, // FSRL16
757 : 4206736U, // FSRL32
758 : 2110322U, // FSTOD
759 : 2110480U, // FSTOI
760 : 2110856U, // FSTOQ
761 : 2111423U, // FSTOX
762 : 4207356U, // FSUBD
763 : 4207950U, // FSUBQ
764 : 4208217U, // FSUBS
765 : 4208093U, // FXNOR
766 : 4208372U, // FXNORS
767 : 4208100U, // FXOR
768 : 4208380U, // FXORS
769 : 2110329U, // FXTOD
770 : 2110863U, // FXTOQ
771 : 2111185U, // FXTOS
772 : 70966U, // FZERO
773 : 71348U, // FZEROS
774 : 2126927U, // JMPLri
775 : 2126927U, // JMPLrr
776 : 160398099U, // LDArr
777 : 1203036U, // LDCSRri
778 : 1203036U, // LDCSRrr
779 : 3177308U, // LDCri
780 : 3177308U, // LDCrr
781 : 160398092U, // LDDArr
782 : 3177302U, // LDDCri
783 : 3177302U, // LDDCrr
784 : 160398092U, // LDDFArr
785 : 3177302U, // LDDFri
786 : 3177302U, // LDDFrr
787 : 3177302U, // LDDri
788 : 3177302U, // LDDrr
789 : 160398099U, // LDFArr
790 : 1268572U, // LDFSRri
791 : 1268572U, // LDFSRrr
792 : 3177308U, // LDFri
793 : 3177308U, // LDFrr
794 : 160398129U, // LDQFArr
795 : 3177334U, // LDQFri
796 : 3177334U, // LDQFrr
797 : 160398066U, // LDSBArr
798 : 3177279U, // LDSBri
799 : 3177279U, // LDSBrr
800 : 160398105U, // LDSHArr
801 : 3177313U, // LDSHri
802 : 3177313U, // LDSHrr
803 : 160398082U, // LDSTUBArr
804 : 3177293U, // LDSTUBri
805 : 3177293U, // LDSTUBrr
806 : 3177346U, // LDSWri
807 : 3177346U, // LDSWrr
808 : 160398074U, // LDUBArr
809 : 3177286U, // LDUBri
810 : 3177286U, // LDUBrr
811 : 160398113U, // LDUHArr
812 : 3177320U, // LDUHri
813 : 3177320U, // LDUHrr
814 : 1268617U, // LDXFSRri
815 : 1268617U, // LDXFSRrr
816 : 3177353U, // LDXri
817 : 3177353U, // LDXrr
818 : 3177308U, // LDri
819 : 3177308U, // LDrr
820 : 33547U, // LEAX_ADDri
821 : 33547U, // LEA_ADDri
822 : 2111269U, // LZCNT
823 : 71103U, // MEMBARi
824 : 2111407U, // MOVDTOX
825 : 1141718U, // MOVFCCri
826 : 1141718U, // MOVFCCrr
827 : 151415766U, // MOVICCri
828 : 151415766U, // MOVICCrr
829 : 4208639U, // MOVRGEZri
830 : 4208639U, // MOVRGEZrr
831 : 4208734U, // MOVRGZri
832 : 4208734U, // MOVRGZrr
833 : 4208688U, // MOVRLEZri
834 : 4208688U, // MOVRLEZrr
835 : 4208778U, // MOVRLZri
836 : 4208778U, // MOVRLZrr
837 : 4208822U, // MOVRNZri
838 : 4208822U, // MOVRNZrr
839 : 4208854U, // MOVRRZri
840 : 4208854U, // MOVRRZrr
841 : 2111333U, // MOVSTOSW
842 : 2111343U, // MOVSTOUW
843 : 2111407U, // MOVWTOS
844 : 151677910U, // MOVXCCri
845 : 151677910U, // MOVXCCrr
846 : 2111407U, // MOVXTOD
847 : 4207303U, // MULSCCri
848 : 4207303U, // MULSCCrr
849 : 4208546U, // MULXri
850 : 4208546U, // MULXrr
851 : 3006U, // NOP
852 : 4207290U, // ORCCri
853 : 4207290U, // ORCCrr
854 : 4207281U, // ORNCCri
855 : 4207281U, // ORNCCrr
856 : 4207913U, // ORNri
857 : 4207913U, // ORNrr
858 : 4207913U, // ORXNrr
859 : 4208083U, // ORXri
860 : 4208083U, // ORXrr
861 : 4208083U, // ORri
862 : 4208083U, // ORrr
863 : 4208428U, // PDIST
864 : 4207918U, // PDISTN
865 : 2110191U, // POPCrr
866 : 33560054U, // PWRPSRri
867 : 33560054U, // PWRPSRrr
868 : 2110351U, // RDASR
869 : 2110954U, // RDPR
870 : 69653U, // RDPSR
871 : 69643U, // RDTBR
872 : 69633U, // RDWIM
873 : 4207566U, // RESTOREri
874 : 4207566U, // RESTORErr
875 : 72132U, // RET
876 : 72141U, // RETL
877 : 87859U, // RETTri
878 : 87859U, // RETTrr
879 : 4207575U, // SAVEri
880 : 4207575U, // SAVErr
881 : 4207311U, // SDIVCCri
882 : 4207311U, // SDIVCCrr
883 : 4208587U, // SDIVXri
884 : 4208587U, // SDIVXrr
885 : 4208453U, // SDIVri
886 : 4208453U, // SDIVrr
887 : 2110441U, // SETHIXi
888 : 2110441U, // SETHIi
889 : 2997U, // SHUTDOWN
890 : 2992U, // SIAM
891 : 4208533U, // SLLXri
892 : 4208533U, // SLLXrr
893 : 4207690U, // SLLri
894 : 4207690U, // SLLrr
895 : 4207213U, // SMACri
896 : 4207213U, // SMACrr
897 : 4207257U, // SMULCCri
898 : 4207257U, // SMULCCrr
899 : 4207718U, // SMULri
900 : 4207718U, // SMULrr
901 : 4208505U, // SRAXri
902 : 4208505U, // SRAXrr
903 : 4207181U, // SRAri
904 : 4207181U, // SRArr
905 : 4208539U, // SRLXri
906 : 4208539U, // SRLXrr
907 : 4207713U, // SRLri
908 : 4207713U, // SRLrr
909 : 9409118U, // STArr
910 : 3016U, // STBAR
911 : 9409077U, // STBArr
912 : 1348195U, // STBri
913 : 1348195U, // STBrr
914 : 1333968U, // STCSRri
915 : 1333968U, // STCSRrr
916 : 1349423U, // STCri
917 : 1349423U, // STCrr
918 : 9409083U, // STDArr
919 : 1333946U, // STDCQri
920 : 1333946U, // STDCQrr
921 : 1348514U, // STDCri
922 : 1348514U, // STDCrr
923 : 9409083U, // STDFArr
924 : 1333957U, // STDFQri
925 : 1333957U, // STDFQrr
926 : 1348514U, // STDFri
927 : 1348514U, // STDFrr
928 : 1348514U, // STDri
929 : 1348514U, // STDrr
930 : 9409118U, // STFArr
931 : 1333979U, // STFSRri
932 : 1333979U, // STFSRrr
933 : 1349423U, // STFri
934 : 1349423U, // STFrr
935 : 9409089U, // STHArr
936 : 1348580U, // STHri
937 : 1348580U, // STHrr
938 : 9409095U, // STQFArr
939 : 1349036U, // STQFri
940 : 1349036U, // STQFrr
941 : 1333990U, // STXFSRri
942 : 1333990U, // STXFSRrr
943 : 1349574U, // STXri
944 : 1349574U, // STXrr
945 : 1349423U, // STri
946 : 1349423U, // STrr
947 : 4207226U, // SUBCCri
948 : 4207226U, // SUBCCrr
949 : 4208511U, // SUBCri
950 : 4208511U, // SUBCrr
951 : 4207327U, // SUBEri
952 : 4207327U, // SUBErr
953 : 4207208U, // SUBXri
954 : 4207208U, // SUBXrr
955 : 4207208U, // SUBri
956 : 4207208U, // SUBrr
957 : 160398121U, // SWAPArr
958 : 3177327U, // SWAPri
959 : 3177327U, // SWAPrr
960 : 2676U, // TA1
961 : 2681U, // TA3
962 : 2686U, // TA5
963 : 4208475U, // TADDCCTVri
964 : 4208475U, // TADDCCTVrr
965 : 4207242U, // TADDCCri
966 : 4207242U, // TADDCCrr
967 : 52866004U, // TICCri
968 : 52866004U, // TICCrr
969 : 289420043U, // TLS_ADDXrr
970 : 289420043U, // TLS_ADDrr
971 : 5188U, // TLS_CALL
972 : 288390025U, // TLS_LDXrr
973 : 288389980U, // TLS_LDrr
974 : 52603860U, // TRAPri
975 : 52603860U, // TRAPrr
976 : 4208465U, // TSUBCCTVri
977 : 4208465U, // TSUBCCTVrr
978 : 4207225U, // TSUBCCri
979 : 4207225U, // TSUBCCrr
980 : 53128148U, // TXCCri
981 : 53128148U, // TXCCrr
982 : 4207319U, // UDIVCCri
983 : 4207319U, // UDIVCCrr
984 : 4208594U, // UDIVXri
985 : 4208594U, // UDIVXrr
986 : 4208459U, // UDIVri
987 : 4208459U, // UDIVrr
988 : 4207219U, // UMACri
989 : 4207219U, // UMACrr
990 : 4207265U, // UMULCCri
991 : 4207265U, // UMULCCrr
992 : 4207600U, // UMULXHI
993 : 4207724U, // UMULri
994 : 4207724U, // UMULrr
995 : 70978U, // UNIMP
996 : 16782208U, // V9FCMPD
997 : 16782128U, // V9FCMPED
998 : 16782684U, // V9FCMPEQ
999 : 16783006U, // V9FCMPES
1000 : 16782742U, // V9FCMPQ
1001 : 16783064U, // V9FCMPS
1002 : 48028U, // V9FMOVD_FCC
1003 : 48066U, // V9FMOVQ_FCC
1004 : 48078U, // V9FMOVS_FCC
1005 : 48086U, // V9MOVFCCri
1006 : 48086U, // V9MOVFCCrr
1007 : 4208119U, // WRASRri
1008 : 4208119U, // WRASRrr
1009 : 4208112U, // WRPRri
1010 : 4208112U, // WRPRrr
1011 : 33560055U, // WRPSRri
1012 : 33560055U, // WRPSRrr
1013 : 67114487U, // WRTBRri
1014 : 67114487U, // WRTBRrr
1015 : 83891703U, // WRWIMri
1016 : 83891703U, // WRWIMrr
1017 : 4208545U, // XMULX
1018 : 4207609U, // XMULXHI
1019 : 4207288U, // XNORCCri
1020 : 4207288U, // XNORCCrr
1021 : 4208094U, // XNORXrr
1022 : 4208094U, // XNORri
1023 : 4208094U, // XNORrr
1024 : 4207296U, // XORCCri
1025 : 4207296U, // XORCCrr
1026 : 4208101U, // XORXri
1027 : 4208101U, // XORXrr
1028 : 4208101U, // XORri
1029 : 4208101U, // XORrr
1030 : };
1031 :
1032 7982 : O << "\t";
1033 :
1034 : // Emit the opcode for the instruction.
1035 : uint32_t Bits = 0;
1036 7982 : Bits |= OpInfo0[MI->getOpcode()] << 0;
1037 : assert(Bits != 0 && "Cannot print this instruction.");
1038 7982 : O << AsmStrs+(Bits & 4095)-1;
1039 :
1040 :
1041 : // Fragment 0 encoded into 4 bits for 12 unique commands.
1042 7982 : switch ((Bits >> 12) & 15) {
1043 0 : default: llvm_unreachable("Invalid command number.");
1044 : case 0:
1045 : // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
1046 : return;
1047 : break;
1048 814 : case 1:
1049 : // ADJCALLSTACKDOWN, ADJCALLSTACKUP, BA, BPGEZapn, BPGEZapt, BPGEZnapn, B...
1050 814 : printOperand(MI, 0, STI, O);
1051 814 : break;
1052 0 : case 2:
1053 : // GETPCX
1054 0 : printGetPCX(MI, 0, STI, O);
1055 0 : return;
1056 : break;
1057 3197 : case 3:
1058 : // SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC,...
1059 3197 : printOperand(MI, 1, STI, O);
1060 3197 : break;
1061 369 : case 4:
1062 : // BCOND, BCONDA, BPFCC, BPFCCA, BPFCCANT, BPFCCNT, BPICC, BPICCA, BPICCA...
1063 369 : printCCOperand(MI, 1, STI, O);
1064 369 : break;
1065 56 : case 5:
1066 : // BINDri, BINDrr, CALLri, CALLrr, FLUSHri, FLUSHrr, LDCSRri, LDCSRrr, LD...
1067 56 : printMemOperand(MI, 0, STI, O);
1068 56 : break;
1069 13 : case 6:
1070 : // FMOVD_FCC, FMOVD_ICC, FMOVD_XCC, FMOVQ_FCC, FMOVQ_ICC, FMOVQ_XCC, FMOV...
1071 13 : printCCOperand(MI, 3, STI, O);
1072 13 : break;
1073 1283 : case 7:
1074 : // JMPLri, JMPLrr, LDArr, LDCri, LDCrr, LDDArr, LDDCri, LDDCrr, LDDFArr, ...
1075 1283 : printMemOperand(MI, 1, STI, O);
1076 1283 : break;
1077 125 : case 8:
1078 : // LEAX_ADDri, LEA_ADDri
1079 125 : printMemOperand(MI, 1, STI, O, "arith");
1080 125 : O << ", ";
1081 125 : printOperand(MI, 0, STI, O);
1082 125 : return;
1083 : break;
1084 1564 : case 9:
1085 : // STArr, STBArr, STBri, STBrr, STCri, STCrr, STDArr, STDCri, STDCrr, STD...
1086 1564 : printOperand(MI, 2, STI, O);
1087 1564 : O << ", [";
1088 1564 : printMemOperand(MI, 0, STI, O);
1089 1564 : break;
1090 0 : case 10:
1091 : // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
1092 0 : printCCOperand(MI, 2, STI, O);
1093 0 : break;
1094 0 : case 11:
1095 : // V9FMOVD_FCC, V9FMOVQ_FCC, V9FMOVS_FCC, V9MOVFCCri, V9MOVFCCrr
1096 0 : printCCOperand(MI, 4, STI, O);
1097 : O << ' ';
1098 0 : printOperand(MI, 1, STI, O);
1099 0 : O << ", ";
1100 0 : printOperand(MI, 2, STI, O);
1101 0 : O << ", ";
1102 0 : printOperand(MI, 0, STI, O);
1103 0 : return;
1104 : break;
1105 : }
1106 :
1107 :
1108 : // Fragment 1 encoded into 5 bits for 21 unique commands.
1109 7296 : switch ((Bits >> 16) & 31) {
1110 0 : default: llvm_unreachable("Invalid command number.");
1111 3452 : case 0:
1112 : // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
1113 3452 : O << ", ";
1114 3452 : break;
1115 : case 1:
1116 : // ADJCALLSTACKUP, BA, BINDri, BINDrr, CALL, CALLri, CALLrr, CMASK16, CMA...
1117 : return;
1118 : break;
1119 : case 2:
1120 : // BCOND, BPFCC, CBCOND, FBCOND, TRAPri, TRAPrr
1121 : O << ' ';
1122 : break;
1123 115 : case 3:
1124 : // BCONDA, BPFCCA, CBCONDA, FBCONDA
1125 115 : O << ",a ";
1126 115 : break;
1127 0 : case 4:
1128 : // BPFCCANT
1129 0 : O << ",a,pn ";
1130 0 : printOperand(MI, 2, STI, O);
1131 0 : O << ", ";
1132 0 : printOperand(MI, 0, STI, O);
1133 0 : return;
1134 : break;
1135 0 : case 5:
1136 : // BPFCCNT
1137 0 : O << ",pn ";
1138 0 : printOperand(MI, 2, STI, O);
1139 0 : O << ", ";
1140 0 : printOperand(MI, 0, STI, O);
1141 0 : return;
1142 : break;
1143 14 : case 6:
1144 : // BPICC, FMOVD_ICC, FMOVQ_ICC, FMOVS_ICC, MOVICCri, MOVICCrr, TICCri, TI...
1145 14 : O << " %icc, ";
1146 14 : break;
1147 25 : case 7:
1148 : // BPICCA
1149 25 : O << ",a %icc, ";
1150 25 : printOperand(MI, 0, STI, O);
1151 25 : return;
1152 : break;
1153 0 : case 8:
1154 : // BPICCANT
1155 0 : O << ",a,pn %icc, ";
1156 0 : printOperand(MI, 0, STI, O);
1157 0 : return;
1158 : break;
1159 0 : case 9:
1160 : // BPICCNT
1161 0 : O << ",pn %icc, ";
1162 0 : printOperand(MI, 0, STI, O);
1163 0 : return;
1164 : break;
1165 33 : case 10:
1166 : // BPXCC, FMOVD_XCC, FMOVQ_XCC, FMOVS_XCC, MOVXCCri, MOVXCCrr, TXCCri, TX...
1167 33 : O << " %xcc, ";
1168 33 : break;
1169 25 : case 11:
1170 : // BPXCCA
1171 25 : O << ",a %xcc, ";
1172 25 : printOperand(MI, 0, STI, O);
1173 25 : return;
1174 : break;
1175 0 : case 12:
1176 : // BPXCCANT
1177 0 : O << ",a,pn %xcc, ";
1178 0 : printOperand(MI, 0, STI, O);
1179 0 : return;
1180 : break;
1181 0 : case 13:
1182 : // BPXCCNT
1183 0 : O << ",pn %xcc, ";
1184 0 : printOperand(MI, 0, STI, O);
1185 0 : return;
1186 : break;
1187 19 : case 14:
1188 : // CASAasi10
1189 19 : O << "] 10, ";
1190 19 : printOperand(MI, 2, STI, O);
1191 19 : O << ", ";
1192 19 : printOperand(MI, 0, STI, O);
1193 19 : return;
1194 : break;
1195 53 : case 15:
1196 : // CASArr, LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDS...
1197 53 : O << "] ";
1198 53 : break;
1199 1269 : case 16:
1200 : // CASXrr, CASrr, LDCri, LDCrr, LDDCri, LDDCrr, LDDFri, LDDFrr, LDDri, LD...
1201 1269 : O << "], ";
1202 1269 : break;
1203 13 : case 17:
1204 : // FMOVD_FCC, FMOVQ_FCC, FMOVS_FCC, MOVFCCri, MOVFCCrr
1205 13 : O << " %fcc0, ";
1206 13 : printOperand(MI, 1, STI, O);
1207 13 : O << ", ";
1208 13 : printOperand(MI, 0, STI, O);
1209 13 : return;
1210 : break;
1211 3 : case 18:
1212 : // LDCSRri, LDCSRrr
1213 3 : O << "], %csr";
1214 3 : return;
1215 : break;
1216 6 : case 19:
1217 : // LDFSRri, LDFSRrr, LDXFSRri, LDXFSRrr
1218 6 : O << "], %fsr";
1219 6 : return;
1220 : break;
1221 : case 20:
1222 : // STBri, STBrr, STCSRri, STCSRrr, STCri, STCrr, STDCQri, STDCQrr, STDCri...
1223 : O << ']';
1224 : return;
1225 : break;
1226 : }
1227 :
1228 :
1229 : // Fragment 2 encoded into 3 bits for 5 unique commands.
1230 5093 : switch ((Bits >> 21) & 7) {
1231 0 : default: llvm_unreachable("Invalid command number.");
1232 294 : case 0:
1233 : // ADJCALLSTACKDOWN, BPGEZapn, BPGEZapt, BPGEZnapn, BPGEZnapt, BPGZapn, B...
1234 294 : printOperand(MI, 1, STI, O);
1235 294 : break;
1236 2172 : case 1:
1237 : // SET, BCOND, BCONDA, BPICC, BPXCC, CBCOND, CBCONDA, FABSD, FABSQ, FABSS...
1238 2172 : printOperand(MI, 0, STI, O);
1239 2172 : break;
1240 2574 : case 2:
1241 : // ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDErr, ADDXC, ADDXCCC, ADDX...
1242 2574 : printOperand(MI, 2, STI, O);
1243 2574 : O << ", ";
1244 2574 : printOperand(MI, 0, STI, O);
1245 2574 : break;
1246 10 : case 3:
1247 : // CASArr
1248 10 : printOperand(MI, 4, STI, O);
1249 10 : O << ", ";
1250 10 : printOperand(MI, 2, STI, O);
1251 10 : O << ", ";
1252 10 : printOperand(MI, 0, STI, O);
1253 10 : return;
1254 : break;
1255 43 : case 4:
1256 : // LDArr, LDDArr, LDDFArr, LDFArr, LDQFArr, LDSBArr, LDSHArr, LDSTUBArr, ...
1257 43 : printOperand(MI, 3, STI, O);
1258 43 : break;
1259 : }
1260 :
1261 :
1262 : // Fragment 3 encoded into 3 bits for 6 unique commands.
1263 5083 : switch ((Bits >> 24) & 7) {
1264 0 : default: llvm_unreachable("Invalid command number.");
1265 : case 0:
1266 : // ADJCALLSTACKDOWN, SET, ADDCCri, ADDCCrr, ADDCri, ADDCrr, ADDEri, ADDEr...
1267 : return;
1268 : break;
1269 52 : case 1:
1270 : // FLCMPD, FLCMPS, FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC,...
1271 52 : O << ", ";
1272 : break;
1273 22 : case 2:
1274 : // PWRPSRri, PWRPSRrr, WRPSRri, WRPSRrr
1275 22 : O << ", %psr";
1276 22 : return;
1277 : break;
1278 0 : case 3:
1279 : // TICCri, TICCrr, TRAPri, TRAPrr, TXCCri, TXCCrr
1280 0 : O << " + ";
1281 0 : printOperand(MI, 1, STI, O);
1282 0 : return;
1283 : break;
1284 19 : case 4:
1285 : // WRTBRri, WRTBRrr
1286 19 : O << ", %tbr";
1287 19 : return;
1288 : break;
1289 19 : case 5:
1290 : // WRWIMri, WRWIMrr
1291 19 : O << ", %wim";
1292 19 : return;
1293 : break;
1294 : }
1295 :
1296 :
1297 : // Fragment 4 encoded into 2 bits for 3 unique commands.
1298 52 : switch ((Bits >> 27) & 3) {
1299 0 : default: llvm_unreachable("Invalid command number.");
1300 6 : case 0:
1301 : // FLCMPD, FLCMPS, V9FCMPD, V9FCMPED, V9FCMPEQ, V9FCMPES, V9FCMPQ, V9FCMP...
1302 6 : printOperand(MI, 2, STI, O);
1303 6 : return;
1304 : break;
1305 24 : case 1:
1306 : // FMOVD_ICC, FMOVD_XCC, FMOVQ_ICC, FMOVQ_XCC, FMOVS_ICC, FMOVS_XCC, LDAr...
1307 24 : printOperand(MI, 0, STI, O);
1308 24 : return;
1309 : break;
1310 22 : case 2:
1311 : // TLS_ADDXrr, TLS_ADDrr, TLS_LDXrr, TLS_LDrr
1312 22 : printOperand(MI, 3, STI, O);
1313 22 : return;
1314 : break;
1315 : }
1316 :
1317 : }
1318 :
1319 :
1320 : /// getRegisterName - This method is automatically generated by tblgen
1321 : /// from the register set description. This returns the assembler name
1322 : /// for the specified register.
1323 16896 : const char *SparcInstPrinter::getRegisterName(unsigned RegNo) {
1324 : assert(RegNo && RegNo < 236 && "Invalid register number!");
1325 :
1326 : static const char AsmStrs[] = {
1327 : /* 0 */ 'C', '1', '0', 0,
1328 : /* 4 */ 'F', '1', '0', 0,
1329 : /* 8 */ 'A', 'S', 'R', '1', '0', 0,
1330 : /* 14 */ 'C', '2', '0', 0,
1331 : /* 18 */ 'F', '2', '0', 0,
1332 : /* 22 */ 'A', 'S', 'R', '2', '0', 0,
1333 : /* 28 */ 'C', '3', '0', 0,
1334 : /* 32 */ 'F', '3', '0', 0,
1335 : /* 36 */ 'A', 'S', 'R', '3', '0', 0,
1336 : /* 42 */ 'F', '4', '0', 0,
1337 : /* 46 */ 'F', '5', '0', 0,
1338 : /* 50 */ 'F', '6', '0', 0,
1339 : /* 54 */ 'F', 'C', 'C', '0', 0,
1340 : /* 59 */ 'F', '0', 0,
1341 : /* 62 */ 'G', '0', 0,
1342 : /* 65 */ 'I', '0', 0,
1343 : /* 68 */ 'L', '0', 0,
1344 : /* 71 */ 'O', '0', 0,
1345 : /* 74 */ 'C', '1', '1', 0,
1346 : /* 78 */ 'F', '1', '1', 0,
1347 : /* 82 */ 'A', 'S', 'R', '1', '1', 0,
1348 : /* 88 */ 'C', '2', '1', 0,
1349 : /* 92 */ 'F', '2', '1', 0,
1350 : /* 96 */ 'A', 'S', 'R', '2', '1', 0,
1351 : /* 102 */ 'C', '3', '1', 0,
1352 : /* 106 */ 'F', '3', '1', 0,
1353 : /* 110 */ 'A', 'S', 'R', '3', '1', 0,
1354 : /* 116 */ 'F', 'C', 'C', '1', 0,
1355 : /* 121 */ 'F', '1', 0,
1356 : /* 124 */ 'G', '1', 0,
1357 : /* 127 */ 'I', '1', 0,
1358 : /* 130 */ 'L', '1', 0,
1359 : /* 133 */ 'O', '1', 0,
1360 : /* 136 */ 'A', 'S', 'R', '1', 0,
1361 : /* 141 */ 'C', '1', '2', 0,
1362 : /* 145 */ 'F', '1', '2', 0,
1363 : /* 149 */ 'A', 'S', 'R', '1', '2', 0,
1364 : /* 155 */ 'C', '2', '2', 0,
1365 : /* 159 */ 'F', '2', '2', 0,
1366 : /* 163 */ 'A', 'S', 'R', '2', '2', 0,
1367 : /* 169 */ 'F', '3', '2', 0,
1368 : /* 173 */ 'F', '4', '2', 0,
1369 : /* 177 */ 'F', '5', '2', 0,
1370 : /* 181 */ 'F', '6', '2', 0,
1371 : /* 185 */ 'F', 'C', 'C', '2', 0,
1372 : /* 190 */ 'F', '2', 0,
1373 : /* 193 */ 'G', '2', 0,
1374 : /* 196 */ 'I', '2', 0,
1375 : /* 199 */ 'L', '2', 0,
1376 : /* 202 */ 'O', '2', 0,
1377 : /* 205 */ 'A', 'S', 'R', '2', 0,
1378 : /* 210 */ 'C', '1', '3', 0,
1379 : /* 214 */ 'F', '1', '3', 0,
1380 : /* 218 */ 'A', 'S', 'R', '1', '3', 0,
1381 : /* 224 */ 'C', '2', '3', 0,
1382 : /* 228 */ 'F', '2', '3', 0,
1383 : /* 232 */ 'A', 'S', 'R', '2', '3', 0,
1384 : /* 238 */ 'F', 'C', 'C', '3', 0,
1385 : /* 243 */ 'F', '3', 0,
1386 : /* 246 */ 'G', '3', 0,
1387 : /* 249 */ 'I', '3', 0,
1388 : /* 252 */ 'L', '3', 0,
1389 : /* 255 */ 'O', '3', 0,
1390 : /* 258 */ 'A', 'S', 'R', '3', 0,
1391 : /* 263 */ 'C', '1', '4', 0,
1392 : /* 267 */ 'F', '1', '4', 0,
1393 : /* 271 */ 'A', 'S', 'R', '1', '4', 0,
1394 : /* 277 */ 'C', '2', '4', 0,
1395 : /* 281 */ 'F', '2', '4', 0,
1396 : /* 285 */ 'A', 'S', 'R', '2', '4', 0,
1397 : /* 291 */ 'F', '3', '4', 0,
1398 : /* 295 */ 'F', '4', '4', 0,
1399 : /* 299 */ 'F', '5', '4', 0,
1400 : /* 303 */ 'C', '4', 0,
1401 : /* 306 */ 'F', '4', 0,
1402 : /* 309 */ 'G', '4', 0,
1403 : /* 312 */ 'I', '4', 0,
1404 : /* 315 */ 'L', '4', 0,
1405 : /* 318 */ 'O', '4', 0,
1406 : /* 321 */ 'A', 'S', 'R', '4', 0,
1407 : /* 326 */ 'C', '1', '5', 0,
1408 : /* 330 */ 'F', '1', '5', 0,
1409 : /* 334 */ 'A', 'S', 'R', '1', '5', 0,
1410 : /* 340 */ 'C', '2', '5', 0,
1411 : /* 344 */ 'F', '2', '5', 0,
1412 : /* 348 */ 'A', 'S', 'R', '2', '5', 0,
1413 : /* 354 */ 'C', '5', 0,
1414 : /* 357 */ 'F', '5', 0,
1415 : /* 360 */ 'G', '5', 0,
1416 : /* 363 */ 'I', '5', 0,
1417 : /* 366 */ 'L', '5', 0,
1418 : /* 369 */ 'O', '5', 0,
1419 : /* 372 */ 'A', 'S', 'R', '5', 0,
1420 : /* 377 */ 'C', '1', '6', 0,
1421 : /* 381 */ 'F', '1', '6', 0,
1422 : /* 385 */ 'A', 'S', 'R', '1', '6', 0,
1423 : /* 391 */ 'C', '2', '6', 0,
1424 : /* 395 */ 'F', '2', '6', 0,
1425 : /* 399 */ 'A', 'S', 'R', '2', '6', 0,
1426 : /* 405 */ 'F', '3', '6', 0,
1427 : /* 409 */ 'F', '4', '6', 0,
1428 : /* 413 */ 'F', '5', '6', 0,
1429 : /* 417 */ 'C', '6', 0,
1430 : /* 420 */ 'F', '6', 0,
1431 : /* 423 */ 'G', '6', 0,
1432 : /* 426 */ 'I', '6', 0,
1433 : /* 429 */ 'L', '6', 0,
1434 : /* 432 */ 'O', '6', 0,
1435 : /* 435 */ 'A', 'S', 'R', '6', 0,
1436 : /* 440 */ 'C', '1', '7', 0,
1437 : /* 444 */ 'F', '1', '7', 0,
1438 : /* 448 */ 'A', 'S', 'R', '1', '7', 0,
1439 : /* 454 */ 'C', '2', '7', 0,
1440 : /* 458 */ 'F', '2', '7', 0,
1441 : /* 462 */ 'A', 'S', 'R', '2', '7', 0,
1442 : /* 468 */ 'C', '7', 0,
1443 : /* 471 */ 'F', '7', 0,
1444 : /* 474 */ 'G', '7', 0,
1445 : /* 477 */ 'I', '7', 0,
1446 : /* 480 */ 'L', '7', 0,
1447 : /* 483 */ 'O', '7', 0,
1448 : /* 486 */ 'A', 'S', 'R', '7', 0,
1449 : /* 491 */ 'C', '1', '8', 0,
1450 : /* 495 */ 'F', '1', '8', 0,
1451 : /* 499 */ 'A', 'S', 'R', '1', '8', 0,
1452 : /* 505 */ 'C', '2', '8', 0,
1453 : /* 509 */ 'F', '2', '8', 0,
1454 : /* 513 */ 'A', 'S', 'R', '2', '8', 0,
1455 : /* 519 */ 'F', '3', '8', 0,
1456 : /* 523 */ 'F', '4', '8', 0,
1457 : /* 527 */ 'F', '5', '8', 0,
1458 : /* 531 */ 'C', '8', 0,
1459 : /* 534 */ 'F', '8', 0,
1460 : /* 537 */ 'A', 'S', 'R', '8', 0,
1461 : /* 542 */ 'C', '1', '9', 0,
1462 : /* 546 */ 'F', '1', '9', 0,
1463 : /* 550 */ 'A', 'S', 'R', '1', '9', 0,
1464 : /* 556 */ 'C', '2', '9', 0,
1465 : /* 560 */ 'F', '2', '9', 0,
1466 : /* 564 */ 'A', 'S', 'R', '2', '9', 0,
1467 : /* 570 */ 'C', '9', 0,
1468 : /* 573 */ 'F', '9', 0,
1469 : /* 576 */ 'A', 'S', 'R', '9', 0,
1470 : /* 581 */ 'T', 'B', 'A', 0,
1471 : /* 585 */ 'I', 'C', 'C', 0,
1472 : /* 589 */ 'T', 'N', 'P', 'C', 0,
1473 : /* 594 */ 'T', 'P', 'C', 0,
1474 : /* 598 */ 'C', 'A', 'N', 'R', 'E', 'S', 'T', 'O', 'R', 'E', 0,
1475 : /* 609 */ 'P', 'S', 'T', 'A', 'T', 'E', 0,
1476 : /* 616 */ 'T', 'S', 'T', 'A', 'T', 'E', 0,
1477 : /* 623 */ 'W', 'S', 'T', 'A', 'T', 'E', 0,
1478 : /* 630 */ 'C', 'A', 'N', 'S', 'A', 'V', 'E', 0,
1479 : /* 638 */ 'T', 'I', 'C', 'K', 0,
1480 : /* 643 */ 'P', 'I', 'L', 0,
1481 : /* 647 */ 'T', 'L', 0,
1482 : /* 650 */ 'W', 'I', 'M', 0,
1483 : /* 654 */ 'C', 'L', 'E', 'A', 'N', 'W', 'I', 'N', 0,
1484 : /* 663 */ 'O', 'T', 'H', 'E', 'R', 'W', 'I', 'N', 0,
1485 : /* 672 */ 'F', 'P', 0,
1486 : /* 675 */ 'S', 'P', 0,
1487 : /* 678 */ 'C', 'W', 'P', 0,
1488 : /* 682 */ 'F', 'Q', 0,
1489 : /* 685 */ 'C', 'P', 'Q', 0,
1490 : /* 689 */ 'T', 'B', 'R', 0,
1491 : /* 693 */ 'F', 'S', 'R', 0,
1492 : /* 697 */ 'C', 'P', 'S', 'R', 0,
1493 : /* 702 */ 'T', 'T', 0,
1494 : /* 705 */ 'Y', 0,
1495 : };
1496 :
1497 : static const uint16_t RegAsmOffset[] = {
1498 : 598, 630, 654, 685, 697, 678, 682, 693, 585, 663, 643, 698, 609, 581,
1499 : 689, 638, 647, 589, 594, 616, 702, 650, 623, 705, 136, 205, 258, 321,
1500 : 372, 435, 486, 537, 576, 8, 82, 149, 218, 271, 334, 385, 448, 499,
1501 : 550, 22, 96, 163, 232, 285, 348, 399, 462, 513, 564, 36, 110, 56,
1502 : 118, 187, 240, 303, 354, 417, 468, 531, 570, 0, 74, 141, 210, 263,
1503 : 326, 377, 440, 491, 542, 14, 88, 155, 224, 277, 340, 391, 454, 505,
1504 : 556, 28, 102, 59, 190, 306, 420, 534, 4, 145, 267, 381, 495, 18,
1505 : 159, 281, 395, 509, 32, 169, 291, 405, 519, 42, 173, 295, 409, 523,
1506 : 46, 177, 299, 413, 527, 50, 181, 59, 121, 190, 243, 306, 357, 420,
1507 : 471, 534, 573, 4, 78, 145, 214, 267, 330, 381, 444, 495, 546, 18,
1508 : 92, 159, 228, 281, 344, 395, 458, 509, 560, 32, 106, 54, 116, 185,
1509 : 238, 62, 124, 193, 246, 309, 360, 423, 474, 65, 127, 196, 249, 312,
1510 : 363, 672, 477, 68, 130, 199, 252, 315, 366, 429, 480, 71, 133, 202,
1511 : 255, 318, 369, 675, 483, 59, 306, 534, 145, 381, 18, 281, 509, 169,
1512 : 405, 42, 295, 523, 177, 413, 50, 56, 187, 303, 417, 531, 0, 141,
1513 : 263, 377, 491, 14, 155, 277, 391, 505, 28, 62, 193, 309, 423, 65,
1514 : 196, 312, 426, 68, 199, 315, 429, 71, 202, 318, 432,
1515 : };
1516 :
1517 : assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
1518 : "Invalid alt name index for register!");
1519 16896 : return AsmStrs+RegAsmOffset[RegNo-1];
1520 : }
1521 :
1522 : #ifdef PRINT_ALIAS_INSTR
1523 : #undef PRINT_ALIAS_INSTR
1524 :
1525 10744 : bool SparcInstPrinter::printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &OS) {
1526 : const char *AsmString;
1527 10744 : switch (MI->getOpcode()) {
1528 : default: return false;
1529 : case SP::BCOND:
1530 169 : if (MI->getNumOperands() == 2 &&
1531 169 : MI->getOperand(1).isImm() &&
1532 169 : MI->getOperand(1).getImm() == 8) {
1533 : // (BCOND brtarget:$imm, { 1, 0, 0, 0 })
1534 : AsmString = "ba $\x01";
1535 : break;
1536 : }
1537 167 : if (MI->getNumOperands() == 2 &&
1538 167 : MI->getOperand(1).isImm() &&
1539 167 : MI->getOperand(1).getImm() == 0) {
1540 : // (BCOND brtarget:$imm, { 0, 0, 0, 0 })
1541 : AsmString = "bn $\x01";
1542 : break;
1543 : }
1544 167 : if (MI->getNumOperands() == 2 &&
1545 167 : MI->getOperand(1).isImm() &&
1546 167 : MI->getOperand(1).getImm() == 9) {
1547 : // (BCOND brtarget:$imm, { 1, 0, 0, 1 })
1548 : AsmString = "bne $\x01";
1549 : break;
1550 : }
1551 94 : if (MI->getNumOperands() == 2 &&
1552 94 : MI->getOperand(1).isImm() &&
1553 94 : MI->getOperand(1).getImm() == 1) {
1554 : // (BCOND brtarget:$imm, { 0, 0, 0, 1 })
1555 : AsmString = "be $\x01";
1556 : break;
1557 : }
1558 64 : if (MI->getNumOperands() == 2 &&
1559 64 : MI->getOperand(1).isImm() &&
1560 64 : MI->getOperand(1).getImm() == 10) {
1561 : // (BCOND brtarget:$imm, { 1, 0, 1, 0 })
1562 : AsmString = "bg $\x01";
1563 : break;
1564 : }
1565 53 : if (MI->getNumOperands() == 2 &&
1566 53 : MI->getOperand(1).isImm() &&
1567 53 : MI->getOperand(1).getImm() == 2) {
1568 : // (BCOND brtarget:$imm, { 0, 0, 1, 0 })
1569 : AsmString = "ble $\x01";
1570 : break;
1571 : }
1572 49 : if (MI->getNumOperands() == 2 &&
1573 49 : MI->getOperand(1).isImm() &&
1574 49 : MI->getOperand(1).getImm() == 11) {
1575 : // (BCOND brtarget:$imm, { 1, 0, 1, 1 })
1576 : AsmString = "bge $\x01";
1577 : break;
1578 : }
1579 46 : if (MI->getNumOperands() == 2 &&
1580 46 : MI->getOperand(1).isImm() &&
1581 46 : MI->getOperand(1).getImm() == 3) {
1582 : // (BCOND brtarget:$imm, { 0, 0, 1, 1 })
1583 : AsmString = "bl $\x01";
1584 : break;
1585 : }
1586 35 : if (MI->getNumOperands() == 2 &&
1587 35 : MI->getOperand(1).isImm() &&
1588 35 : MI->getOperand(1).getImm() == 12) {
1589 : // (BCOND brtarget:$imm, { 1, 1, 0, 0 })
1590 : AsmString = "bgu $\x01";
1591 : break;
1592 : }
1593 31 : if (MI->getNumOperands() == 2 &&
1594 31 : MI->getOperand(1).isImm() &&
1595 31 : MI->getOperand(1).getImm() == 4) {
1596 : // (BCOND brtarget:$imm, { 0, 1, 0, 0 })
1597 : AsmString = "bleu $\x01";
1598 : break;
1599 : }
1600 26 : if (MI->getNumOperands() == 2 &&
1601 26 : MI->getOperand(1).isImm() &&
1602 26 : MI->getOperand(1).getImm() == 13) {
1603 : // (BCOND brtarget:$imm, { 1, 1, 0, 1 })
1604 : AsmString = "bcc $\x01";
1605 : break;
1606 : }
1607 21 : if (MI->getNumOperands() == 2 &&
1608 21 : MI->getOperand(1).isImm() &&
1609 21 : MI->getOperand(1).getImm() == 5) {
1610 : // (BCOND brtarget:$imm, { 0, 1, 0, 1 })
1611 : AsmString = "bcs $\x01";
1612 : break;
1613 : }
1614 12 : if (MI->getNumOperands() == 2 &&
1615 12 : MI->getOperand(1).isImm() &&
1616 12 : MI->getOperand(1).getImm() == 14) {
1617 : // (BCOND brtarget:$imm, { 1, 1, 1, 0 })
1618 : AsmString = "bpos $\x01";
1619 : break;
1620 : }
1621 9 : if (MI->getNumOperands() == 2 &&
1622 9 : MI->getOperand(1).isImm() &&
1623 9 : MI->getOperand(1).getImm() == 6) {
1624 : // (BCOND brtarget:$imm, { 0, 1, 1, 0 })
1625 : AsmString = "bneg $\x01";
1626 : break;
1627 : }
1628 6 : if (MI->getNumOperands() == 2 &&
1629 6 : MI->getOperand(1).isImm() &&
1630 6 : MI->getOperand(1).getImm() == 15) {
1631 : // (BCOND brtarget:$imm, { 1, 1, 1, 1 })
1632 : AsmString = "bvc $\x01";
1633 : break;
1634 : }
1635 3 : if (MI->getNumOperands() == 2 &&
1636 3 : MI->getOperand(1).isImm() &&
1637 3 : MI->getOperand(1).getImm() == 7) {
1638 : // (BCOND brtarget:$imm, { 0, 1, 1, 1 })
1639 : AsmString = "bvs $\x01";
1640 : break;
1641 : }
1642 : return false;
1643 : case SP::BCONDA:
1644 30 : if (MI->getNumOperands() == 2 &&
1645 30 : MI->getOperand(1).isImm() &&
1646 30 : MI->getOperand(1).getImm() == 8) {
1647 : // (BCONDA brtarget:$imm, { 1, 0, 0, 0 })
1648 : AsmString = "ba,a $\x01";
1649 : break;
1650 : }
1651 28 : if (MI->getNumOperands() == 2 &&
1652 28 : MI->getOperand(1).isImm() &&
1653 28 : MI->getOperand(1).getImm() == 0) {
1654 : // (BCONDA brtarget:$imm, { 0, 0, 0, 0 })
1655 : AsmString = "bn,a $\x01";
1656 : break;
1657 : }
1658 28 : if (MI->getNumOperands() == 2 &&
1659 28 : MI->getOperand(1).isImm() &&
1660 28 : MI->getOperand(1).getImm() == 9) {
1661 : // (BCONDA brtarget:$imm, { 1, 0, 0, 1 })
1662 : AsmString = "bne,a $\x01";
1663 : break;
1664 : }
1665 26 : if (MI->getNumOperands() == 2 &&
1666 26 : MI->getOperand(1).isImm() &&
1667 26 : MI->getOperand(1).getImm() == 1) {
1668 : // (BCONDA brtarget:$imm, { 0, 0, 0, 1 })
1669 : AsmString = "be,a $\x01";
1670 : break;
1671 : }
1672 24 : if (MI->getNumOperands() == 2 &&
1673 24 : MI->getOperand(1).isImm() &&
1674 24 : MI->getOperand(1).getImm() == 10) {
1675 : // (BCONDA brtarget:$imm, { 1, 0, 1, 0 })
1676 : AsmString = "bg,a $\x01";
1677 : break;
1678 : }
1679 22 : if (MI->getNumOperands() == 2 &&
1680 22 : MI->getOperand(1).isImm() &&
1681 22 : MI->getOperand(1).getImm() == 2) {
1682 : // (BCONDA brtarget:$imm, { 0, 0, 1, 0 })
1683 : AsmString = "ble,a $\x01";
1684 : break;
1685 : }
1686 20 : if (MI->getNumOperands() == 2 &&
1687 20 : MI->getOperand(1).isImm() &&
1688 20 : MI->getOperand(1).getImm() == 11) {
1689 : // (BCONDA brtarget:$imm, { 1, 0, 1, 1 })
1690 : AsmString = "bge,a $\x01";
1691 : break;
1692 : }
1693 18 : if (MI->getNumOperands() == 2 &&
1694 18 : MI->getOperand(1).isImm() &&
1695 18 : MI->getOperand(1).getImm() == 3) {
1696 : // (BCONDA brtarget:$imm, { 0, 0, 1, 1 })
1697 : AsmString = "bl,a $\x01";
1698 : break;
1699 : }
1700 16 : if (MI->getNumOperands() == 2 &&
1701 16 : MI->getOperand(1).isImm() &&
1702 16 : MI->getOperand(1).getImm() == 12) {
1703 : // (BCONDA brtarget:$imm, { 1, 1, 0, 0 })
1704 : AsmString = "bgu,a $\x01";
1705 : break;
1706 : }
1707 14 : if (MI->getNumOperands() == 2 &&
1708 14 : MI->getOperand(1).isImm() &&
1709 14 : MI->getOperand(1).getImm() == 4) {
1710 : // (BCONDA brtarget:$imm, { 0, 1, 0, 0 })
1711 : AsmString = "bleu,a $\x01";
1712 : break;
1713 : }
1714 12 : if (MI->getNumOperands() == 2 &&
1715 12 : MI->getOperand(1).isImm() &&
1716 12 : MI->getOperand(1).getImm() == 13) {
1717 : // (BCONDA brtarget:$imm, { 1, 1, 0, 1 })
1718 : AsmString = "bcc,a $\x01";
1719 : break;
1720 : }
1721 10 : if (MI->getNumOperands() == 2 &&
1722 10 : MI->getOperand(1).isImm() &&
1723 10 : MI->getOperand(1).getImm() == 5) {
1724 : // (BCONDA brtarget:$imm, { 0, 1, 0, 1 })
1725 : AsmString = "bcs,a $\x01";
1726 : break;
1727 : }
1728 8 : if (MI->getNumOperands() == 2 &&
1729 8 : MI->getOperand(1).isImm() &&
1730 8 : MI->getOperand(1).getImm() == 14) {
1731 : // (BCONDA brtarget:$imm, { 1, 1, 1, 0 })
1732 : AsmString = "bpos,a $\x01";
1733 : break;
1734 : }
1735 6 : if (MI->getNumOperands() == 2 &&
1736 6 : MI->getOperand(1).isImm() &&
1737 6 : MI->getOperand(1).getImm() == 6) {
1738 : // (BCONDA brtarget:$imm, { 0, 1, 1, 0 })
1739 : AsmString = "bneg,a $\x01";
1740 : break;
1741 : }
1742 4 : if (MI->getNumOperands() == 2 &&
1743 4 : MI->getOperand(1).isImm() &&
1744 4 : MI->getOperand(1).getImm() == 15) {
1745 : // (BCONDA brtarget:$imm, { 1, 1, 1, 1 })
1746 : AsmString = "bvc,a $\x01";
1747 : break;
1748 : }
1749 2 : if (MI->getNumOperands() == 2 &&
1750 2 : MI->getOperand(1).isImm() &&
1751 2 : MI->getOperand(1).getImm() == 7) {
1752 : // (BCONDA brtarget:$imm, { 0, 1, 1, 1 })
1753 : AsmString = "bvs,a $\x01";
1754 : break;
1755 : }
1756 : return false;
1757 : case SP::BPFCCANT:
1758 15 : if (MI->getNumOperands() == 3 &&
1759 15 : MI->getOperand(1).isImm() &&
1760 15 : MI->getOperand(1).getImm() == 8 &&
1761 0 : MI->getOperand(2).isReg() &&
1762 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1763 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1764 : // (BPFCCANT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
1765 : AsmString = "fba,a,pn $\x03, $\x01";
1766 : break;
1767 : }
1768 15 : if (MI->getNumOperands() == 3 &&
1769 15 : MI->getOperand(1).isImm() &&
1770 15 : MI->getOperand(1).getImm() == 0 &&
1771 0 : MI->getOperand(2).isReg() &&
1772 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1773 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1774 : // (BPFCCANT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
1775 : AsmString = "fbn,a,pn $\x03, $\x01";
1776 : break;
1777 : }
1778 15 : if (MI->getNumOperands() == 3 &&
1779 15 : MI->getOperand(1).isImm() &&
1780 15 : MI->getOperand(1).getImm() == 7 &&
1781 2 : MI->getOperand(2).isReg() &&
1782 17 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1783 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1784 : // (BPFCCANT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
1785 : AsmString = "fbu,a,pn $\x03, $\x01";
1786 : break;
1787 : }
1788 14 : if (MI->getNumOperands() == 3 &&
1789 14 : MI->getOperand(1).isImm() &&
1790 14 : MI->getOperand(1).getImm() == 6 &&
1791 2 : MI->getOperand(2).isReg() &&
1792 16 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1793 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1794 : // (BPFCCANT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
1795 : AsmString = "fbg,a,pn $\x03, $\x01";
1796 : break;
1797 : }
1798 13 : if (MI->getNumOperands() == 3 &&
1799 13 : MI->getOperand(1).isImm() &&
1800 13 : MI->getOperand(1).getImm() == 5 &&
1801 2 : MI->getOperand(2).isReg() &&
1802 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1803 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1804 : // (BPFCCANT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
1805 : AsmString = "fbug,a,pn $\x03, $\x01";
1806 : break;
1807 : }
1808 12 : if (MI->getNumOperands() == 3 &&
1809 12 : MI->getOperand(1).isImm() &&
1810 12 : MI->getOperand(1).getImm() == 4 &&
1811 2 : MI->getOperand(2).isReg() &&
1812 14 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1813 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1814 : // (BPFCCANT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
1815 : AsmString = "fbl,a,pn $\x03, $\x01";
1816 : break;
1817 : }
1818 11 : if (MI->getNumOperands() == 3 &&
1819 11 : MI->getOperand(1).isImm() &&
1820 11 : MI->getOperand(1).getImm() == 3 &&
1821 2 : MI->getOperand(2).isReg() &&
1822 13 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1823 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1824 : // (BPFCCANT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
1825 : AsmString = "fbul,a,pn $\x03, $\x01";
1826 : break;
1827 : }
1828 10 : if (MI->getNumOperands() == 3 &&
1829 10 : MI->getOperand(1).isImm() &&
1830 10 : MI->getOperand(1).getImm() == 2 &&
1831 2 : MI->getOperand(2).isReg() &&
1832 12 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1833 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1834 : // (BPFCCANT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
1835 : AsmString = "fblg,a,pn $\x03, $\x01";
1836 : break;
1837 : }
1838 9 : if (MI->getNumOperands() == 3 &&
1839 9 : MI->getOperand(1).isImm() &&
1840 9 : MI->getOperand(1).getImm() == 1 &&
1841 4 : MI->getOperand(2).isReg() &&
1842 13 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1843 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1844 : // (BPFCCANT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
1845 : AsmString = "fbne,a,pn $\x03, $\x01";
1846 : break;
1847 : }
1848 7 : if (MI->getNumOperands() == 3 &&
1849 7 : MI->getOperand(1).isImm() &&
1850 7 : MI->getOperand(1).getImm() == 9 &&
1851 2 : MI->getOperand(2).isReg() &&
1852 9 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1853 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1854 : // (BPFCCANT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
1855 : AsmString = "fbe,a,pn $\x03, $\x01";
1856 : break;
1857 : }
1858 6 : if (MI->getNumOperands() == 3 &&
1859 6 : MI->getOperand(1).isImm() &&
1860 6 : MI->getOperand(1).getImm() == 10 &&
1861 2 : MI->getOperand(2).isReg() &&
1862 8 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1863 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1864 : // (BPFCCANT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
1865 : AsmString = "fbue,a,pn $\x03, $\x01";
1866 : break;
1867 : }
1868 5 : if (MI->getNumOperands() == 3 &&
1869 5 : MI->getOperand(1).isImm() &&
1870 5 : MI->getOperand(1).getImm() == 11 &&
1871 2 : MI->getOperand(2).isReg() &&
1872 7 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1873 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1874 : // (BPFCCANT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
1875 : AsmString = "fbge,a,pn $\x03, $\x01";
1876 : break;
1877 : }
1878 4 : if (MI->getNumOperands() == 3 &&
1879 4 : MI->getOperand(1).isImm() &&
1880 4 : MI->getOperand(1).getImm() == 12 &&
1881 2 : MI->getOperand(2).isReg() &&
1882 6 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1883 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1884 : // (BPFCCANT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
1885 : AsmString = "fbuge,a,pn $\x03, $\x01";
1886 : break;
1887 : }
1888 3 : if (MI->getNumOperands() == 3 &&
1889 3 : MI->getOperand(1).isImm() &&
1890 3 : MI->getOperand(1).getImm() == 13 &&
1891 2 : MI->getOperand(2).isReg() &&
1892 5 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1893 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1894 : // (BPFCCANT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
1895 : AsmString = "fble,a,pn $\x03, $\x01";
1896 : break;
1897 : }
1898 2 : if (MI->getNumOperands() == 3 &&
1899 2 : MI->getOperand(1).isImm() &&
1900 2 : MI->getOperand(1).getImm() == 14 &&
1901 2 : MI->getOperand(2).isReg() &&
1902 4 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1903 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1904 : // (BPFCCANT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
1905 : AsmString = "fbule,a,pn $\x03, $\x01";
1906 : break;
1907 : }
1908 1 : if (MI->getNumOperands() == 3 &&
1909 1 : MI->getOperand(1).isImm() &&
1910 1 : MI->getOperand(1).getImm() == 15 &&
1911 2 : MI->getOperand(2).isReg() &&
1912 3 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1913 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1914 : // (BPFCCANT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
1915 : AsmString = "fbo,a,pn $\x03, $\x01";
1916 : break;
1917 : }
1918 : return false;
1919 : case SP::BPFCCNT:
1920 15 : if (MI->getNumOperands() == 3 &&
1921 15 : MI->getOperand(1).isImm() &&
1922 15 : MI->getOperand(1).getImm() == 8 &&
1923 0 : MI->getOperand(2).isReg() &&
1924 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1925 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1926 : // (BPFCCNT brtarget:$imm, { 1, 0, 0, 0 }, FCCRegs:$cc)
1927 : AsmString = "fba,pn $\x03, $\x01";
1928 : break;
1929 : }
1930 15 : if (MI->getNumOperands() == 3 &&
1931 15 : MI->getOperand(1).isImm() &&
1932 15 : MI->getOperand(1).getImm() == 0 &&
1933 0 : MI->getOperand(2).isReg() &&
1934 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1935 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1936 : // (BPFCCNT brtarget:$imm, { 0, 0, 0, 0 }, FCCRegs:$cc)
1937 : AsmString = "fbn,pn $\x03, $\x01";
1938 : break;
1939 : }
1940 15 : if (MI->getNumOperands() == 3 &&
1941 15 : MI->getOperand(1).isImm() &&
1942 15 : MI->getOperand(1).getImm() == 7 &&
1943 2 : MI->getOperand(2).isReg() &&
1944 17 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1945 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1946 : // (BPFCCNT brtarget:$imm, { 0, 1, 1, 1 }, FCCRegs:$cc)
1947 : AsmString = "fbu,pn $\x03, $\x01";
1948 : break;
1949 : }
1950 14 : if (MI->getNumOperands() == 3 &&
1951 14 : MI->getOperand(1).isImm() &&
1952 14 : MI->getOperand(1).getImm() == 6 &&
1953 2 : MI->getOperand(2).isReg() &&
1954 16 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1955 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1956 : // (BPFCCNT brtarget:$imm, { 0, 1, 1, 0 }, FCCRegs:$cc)
1957 : AsmString = "fbg,pn $\x03, $\x01";
1958 : break;
1959 : }
1960 13 : if (MI->getNumOperands() == 3 &&
1961 13 : MI->getOperand(1).isImm() &&
1962 13 : MI->getOperand(1).getImm() == 5 &&
1963 2 : MI->getOperand(2).isReg() &&
1964 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1965 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1966 : // (BPFCCNT brtarget:$imm, { 0, 1, 0, 1 }, FCCRegs:$cc)
1967 : AsmString = "fbug,pn $\x03, $\x01";
1968 : break;
1969 : }
1970 12 : if (MI->getNumOperands() == 3 &&
1971 12 : MI->getOperand(1).isImm() &&
1972 12 : MI->getOperand(1).getImm() == 4 &&
1973 2 : MI->getOperand(2).isReg() &&
1974 14 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1975 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1976 : // (BPFCCNT brtarget:$imm, { 0, 1, 0, 0 }, FCCRegs:$cc)
1977 : AsmString = "fbl,pn $\x03, $\x01";
1978 : break;
1979 : }
1980 11 : if (MI->getNumOperands() == 3 &&
1981 11 : MI->getOperand(1).isImm() &&
1982 11 : MI->getOperand(1).getImm() == 3 &&
1983 2 : MI->getOperand(2).isReg() &&
1984 13 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1985 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1986 : // (BPFCCNT brtarget:$imm, { 0, 0, 1, 1 }, FCCRegs:$cc)
1987 : AsmString = "fbul,pn $\x03, $\x01";
1988 : break;
1989 : }
1990 10 : if (MI->getNumOperands() == 3 &&
1991 10 : MI->getOperand(1).isImm() &&
1992 10 : MI->getOperand(1).getImm() == 2 &&
1993 2 : MI->getOperand(2).isReg() &&
1994 12 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
1995 : STI.getFeatureBits()[Sparc::FeatureV9]) {
1996 : // (BPFCCNT brtarget:$imm, { 0, 0, 1, 0 }, FCCRegs:$cc)
1997 : AsmString = "fblg,pn $\x03, $\x01";
1998 : break;
1999 : }
2000 9 : if (MI->getNumOperands() == 3 &&
2001 9 : MI->getOperand(1).isImm() &&
2002 9 : MI->getOperand(1).getImm() == 1 &&
2003 2 : MI->getOperand(2).isReg() &&
2004 11 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2005 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2006 : // (BPFCCNT brtarget:$imm, { 0, 0, 0, 1 }, FCCRegs:$cc)
2007 : AsmString = "fbne,pn $\x03, $\x01";
2008 : break;
2009 : }
2010 8 : if (MI->getNumOperands() == 3 &&
2011 8 : MI->getOperand(1).isImm() &&
2012 8 : MI->getOperand(1).getImm() == 9 &&
2013 2 : MI->getOperand(2).isReg() &&
2014 10 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2015 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2016 : // (BPFCCNT brtarget:$imm, { 1, 0, 0, 1 }, FCCRegs:$cc)
2017 : AsmString = "fbe,pn $\x03, $\x01";
2018 : break;
2019 : }
2020 7 : if (MI->getNumOperands() == 3 &&
2021 7 : MI->getOperand(1).isImm() &&
2022 7 : MI->getOperand(1).getImm() == 10 &&
2023 4 : MI->getOperand(2).isReg() &&
2024 11 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2025 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2026 : // (BPFCCNT brtarget:$imm, { 1, 0, 1, 0 }, FCCRegs:$cc)
2027 : AsmString = "fbue,pn $\x03, $\x01";
2028 : break;
2029 : }
2030 5 : if (MI->getNumOperands() == 3 &&
2031 5 : MI->getOperand(1).isImm() &&
2032 5 : MI->getOperand(1).getImm() == 11 &&
2033 2 : MI->getOperand(2).isReg() &&
2034 7 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2035 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2036 : // (BPFCCNT brtarget:$imm, { 1, 0, 1, 1 }, FCCRegs:$cc)
2037 : AsmString = "fbge,pn $\x03, $\x01";
2038 : break;
2039 : }
2040 4 : if (MI->getNumOperands() == 3 &&
2041 4 : MI->getOperand(1).isImm() &&
2042 4 : MI->getOperand(1).getImm() == 12 &&
2043 2 : MI->getOperand(2).isReg() &&
2044 6 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2045 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2046 : // (BPFCCNT brtarget:$imm, { 1, 1, 0, 0 }, FCCRegs:$cc)
2047 : AsmString = "fbuge,pn $\x03, $\x01";
2048 : break;
2049 : }
2050 3 : if (MI->getNumOperands() == 3 &&
2051 3 : MI->getOperand(1).isImm() &&
2052 3 : MI->getOperand(1).getImm() == 13 &&
2053 2 : MI->getOperand(2).isReg() &&
2054 5 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2055 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2056 : // (BPFCCNT brtarget:$imm, { 1, 1, 0, 1 }, FCCRegs:$cc)
2057 : AsmString = "fble,pn $\x03, $\x01";
2058 : break;
2059 : }
2060 2 : if (MI->getNumOperands() == 3 &&
2061 2 : MI->getOperand(1).isImm() &&
2062 2 : MI->getOperand(1).getImm() == 14 &&
2063 2 : MI->getOperand(2).isReg() &&
2064 4 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2065 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2066 : // (BPFCCNT brtarget:$imm, { 1, 1, 1, 0 }, FCCRegs:$cc)
2067 : AsmString = "fbule,pn $\x03, $\x01";
2068 : break;
2069 : }
2070 1 : if (MI->getNumOperands() == 3 &&
2071 1 : MI->getOperand(1).isImm() &&
2072 1 : MI->getOperand(1).getImm() == 15 &&
2073 2 : MI->getOperand(2).isReg() &&
2074 3 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
2075 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2076 : // (BPFCCNT brtarget:$imm, { 1, 1, 1, 1 }, FCCRegs:$cc)
2077 : AsmString = "fbo,pn $\x03, $\x01";
2078 : break;
2079 : }
2080 : return false;
2081 : case SP::BPICCANT:
2082 14 : if (MI->getNumOperands() == 2 &&
2083 14 : MI->getOperand(1).isImm() &&
2084 28 : MI->getOperand(1).getImm() == 8 &&
2085 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2086 : // (BPICCANT brtarget:$imm, { 1, 0, 0, 0 })
2087 : AsmString = "ba,a,pn %icc, $\x01";
2088 : break;
2089 : }
2090 14 : if (MI->getNumOperands() == 2 &&
2091 14 : MI->getOperand(1).isImm() &&
2092 28 : MI->getOperand(1).getImm() == 0 &&
2093 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2094 : // (BPICCANT brtarget:$imm, { 0, 0, 0, 0 })
2095 : AsmString = "bn,a,pn %icc, $\x01";
2096 : break;
2097 : }
2098 14 : if (MI->getNumOperands() == 2 &&
2099 14 : MI->getOperand(1).isImm() &&
2100 28 : MI->getOperand(1).getImm() == 9 &&
2101 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2102 : // (BPICCANT brtarget:$imm, { 1, 0, 0, 1 })
2103 : AsmString = "bne,a,pn %icc, $\x01";
2104 : break;
2105 : }
2106 13 : if (MI->getNumOperands() == 2 &&
2107 13 : MI->getOperand(1).isImm() &&
2108 26 : MI->getOperand(1).getImm() == 1 &&
2109 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2110 : // (BPICCANT brtarget:$imm, { 0, 0, 0, 1 })
2111 : AsmString = "be,a,pn %icc, $\x01";
2112 : break;
2113 : }
2114 12 : if (MI->getNumOperands() == 2 &&
2115 12 : MI->getOperand(1).isImm() &&
2116 24 : MI->getOperand(1).getImm() == 10 &&
2117 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2118 : // (BPICCANT brtarget:$imm, { 1, 0, 1, 0 })
2119 : AsmString = "bg,a,pn %icc, $\x01";
2120 : break;
2121 : }
2122 11 : if (MI->getNumOperands() == 2 &&
2123 11 : MI->getOperand(1).isImm() &&
2124 22 : MI->getOperand(1).getImm() == 2 &&
2125 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2126 : // (BPICCANT brtarget:$imm, { 0, 0, 1, 0 })
2127 : AsmString = "ble,a,pn %icc, $\x01";
2128 : break;
2129 : }
2130 10 : if (MI->getNumOperands() == 2 &&
2131 10 : MI->getOperand(1).isImm() &&
2132 20 : MI->getOperand(1).getImm() == 11 &&
2133 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2134 : // (BPICCANT brtarget:$imm, { 1, 0, 1, 1 })
2135 : AsmString = "bge,a,pn %icc, $\x01";
2136 : break;
2137 : }
2138 9 : if (MI->getNumOperands() == 2 &&
2139 9 : MI->getOperand(1).isImm() &&
2140 18 : MI->getOperand(1).getImm() == 3 &&
2141 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2142 : // (BPICCANT brtarget:$imm, { 0, 0, 1, 1 })
2143 : AsmString = "bl,a,pn %icc, $\x01";
2144 : break;
2145 : }
2146 8 : if (MI->getNumOperands() == 2 &&
2147 8 : MI->getOperand(1).isImm() &&
2148 16 : MI->getOperand(1).getImm() == 12 &&
2149 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2150 : // (BPICCANT brtarget:$imm, { 1, 1, 0, 0 })
2151 : AsmString = "bgu,a,pn %icc, $\x01";
2152 : break;
2153 : }
2154 7 : if (MI->getNumOperands() == 2 &&
2155 7 : MI->getOperand(1).isImm() &&
2156 14 : MI->getOperand(1).getImm() == 4 &&
2157 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2158 : // (BPICCANT brtarget:$imm, { 0, 1, 0, 0 })
2159 : AsmString = "bleu,a,pn %icc, $\x01";
2160 : break;
2161 : }
2162 6 : if (MI->getNumOperands() == 2 &&
2163 6 : MI->getOperand(1).isImm() &&
2164 12 : MI->getOperand(1).getImm() == 13 &&
2165 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2166 : // (BPICCANT brtarget:$imm, { 1, 1, 0, 1 })
2167 : AsmString = "bcc,a,pn %icc, $\x01";
2168 : break;
2169 : }
2170 5 : if (MI->getNumOperands() == 2 &&
2171 5 : MI->getOperand(1).isImm() &&
2172 10 : MI->getOperand(1).getImm() == 5 &&
2173 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2174 : // (BPICCANT brtarget:$imm, { 0, 1, 0, 1 })
2175 : AsmString = "bcs,a,pn %icc, $\x01";
2176 : break;
2177 : }
2178 4 : if (MI->getNumOperands() == 2 &&
2179 4 : MI->getOperand(1).isImm() &&
2180 8 : MI->getOperand(1).getImm() == 14 &&
2181 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2182 : // (BPICCANT brtarget:$imm, { 1, 1, 1, 0 })
2183 : AsmString = "bpos,a,pn %icc, $\x01";
2184 : break;
2185 : }
2186 3 : if (MI->getNumOperands() == 2 &&
2187 3 : MI->getOperand(1).isImm() &&
2188 6 : MI->getOperand(1).getImm() == 6 &&
2189 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2190 : // (BPICCANT brtarget:$imm, { 0, 1, 1, 0 })
2191 : AsmString = "bneg,a,pn %icc, $\x01";
2192 : break;
2193 : }
2194 2 : if (MI->getNumOperands() == 2 &&
2195 2 : MI->getOperand(1).isImm() &&
2196 4 : MI->getOperand(1).getImm() == 15 &&
2197 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2198 : // (BPICCANT brtarget:$imm, { 1, 1, 1, 1 })
2199 : AsmString = "bvc,a,pn %icc, $\x01";
2200 : break;
2201 : }
2202 1 : if (MI->getNumOperands() == 2 &&
2203 1 : MI->getOperand(1).isImm() &&
2204 2 : MI->getOperand(1).getImm() == 7 &&
2205 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2206 : // (BPICCANT brtarget:$imm, { 0, 1, 1, 1 })
2207 : AsmString = "bvs,a,pn %icc, $\x01";
2208 : break;
2209 : }
2210 : return false;
2211 : case SP::BPICCNT:
2212 14 : if (MI->getNumOperands() == 2 &&
2213 14 : MI->getOperand(1).isImm() &&
2214 28 : MI->getOperand(1).getImm() == 8 &&
2215 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2216 : // (BPICCNT brtarget:$imm, { 1, 0, 0, 0 })
2217 : AsmString = "ba,pn %icc, $\x01";
2218 : break;
2219 : }
2220 14 : if (MI->getNumOperands() == 2 &&
2221 14 : MI->getOperand(1).isImm() &&
2222 28 : MI->getOperand(1).getImm() == 0 &&
2223 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2224 : // (BPICCNT brtarget:$imm, { 0, 0, 0, 0 })
2225 : AsmString = "bn,pn %icc, $\x01";
2226 : break;
2227 : }
2228 14 : if (MI->getNumOperands() == 2 &&
2229 14 : MI->getOperand(1).isImm() &&
2230 28 : MI->getOperand(1).getImm() == 9 &&
2231 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2232 : // (BPICCNT brtarget:$imm, { 1, 0, 0, 1 })
2233 : AsmString = "bne,pn %icc, $\x01";
2234 : break;
2235 : }
2236 13 : if (MI->getNumOperands() == 2 &&
2237 13 : MI->getOperand(1).isImm() &&
2238 26 : MI->getOperand(1).getImm() == 1 &&
2239 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2240 : // (BPICCNT brtarget:$imm, { 0, 0, 0, 1 })
2241 : AsmString = "be,pn %icc, $\x01";
2242 : break;
2243 : }
2244 12 : if (MI->getNumOperands() == 2 &&
2245 12 : MI->getOperand(1).isImm() &&
2246 24 : MI->getOperand(1).getImm() == 10 &&
2247 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2248 : // (BPICCNT brtarget:$imm, { 1, 0, 1, 0 })
2249 : AsmString = "bg,pn %icc, $\x01";
2250 : break;
2251 : }
2252 11 : if (MI->getNumOperands() == 2 &&
2253 11 : MI->getOperand(1).isImm() &&
2254 22 : MI->getOperand(1).getImm() == 2 &&
2255 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2256 : // (BPICCNT brtarget:$imm, { 0, 0, 1, 0 })
2257 : AsmString = "ble,pn %icc, $\x01";
2258 : break;
2259 : }
2260 10 : if (MI->getNumOperands() == 2 &&
2261 10 : MI->getOperand(1).isImm() &&
2262 20 : MI->getOperand(1).getImm() == 11 &&
2263 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2264 : // (BPICCNT brtarget:$imm, { 1, 0, 1, 1 })
2265 : AsmString = "bge,pn %icc, $\x01";
2266 : break;
2267 : }
2268 9 : if (MI->getNumOperands() == 2 &&
2269 9 : MI->getOperand(1).isImm() &&
2270 18 : MI->getOperand(1).getImm() == 3 &&
2271 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2272 : // (BPICCNT brtarget:$imm, { 0, 0, 1, 1 })
2273 : AsmString = "bl,pn %icc, $\x01";
2274 : break;
2275 : }
2276 8 : if (MI->getNumOperands() == 2 &&
2277 8 : MI->getOperand(1).isImm() &&
2278 16 : MI->getOperand(1).getImm() == 12 &&
2279 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2280 : // (BPICCNT brtarget:$imm, { 1, 1, 0, 0 })
2281 : AsmString = "bgu,pn %icc, $\x01";
2282 : break;
2283 : }
2284 7 : if (MI->getNumOperands() == 2 &&
2285 7 : MI->getOperand(1).isImm() &&
2286 14 : MI->getOperand(1).getImm() == 4 &&
2287 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2288 : // (BPICCNT brtarget:$imm, { 0, 1, 0, 0 })
2289 : AsmString = "bleu,pn %icc, $\x01";
2290 : break;
2291 : }
2292 6 : if (MI->getNumOperands() == 2 &&
2293 6 : MI->getOperand(1).isImm() &&
2294 12 : MI->getOperand(1).getImm() == 13 &&
2295 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2296 : // (BPICCNT brtarget:$imm, { 1, 1, 0, 1 })
2297 : AsmString = "bcc,pn %icc, $\x01";
2298 : break;
2299 : }
2300 5 : if (MI->getNumOperands() == 2 &&
2301 5 : MI->getOperand(1).isImm() &&
2302 10 : MI->getOperand(1).getImm() == 5 &&
2303 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2304 : // (BPICCNT brtarget:$imm, { 0, 1, 0, 1 })
2305 : AsmString = "bcs,pn %icc, $\x01";
2306 : break;
2307 : }
2308 4 : if (MI->getNumOperands() == 2 &&
2309 4 : MI->getOperand(1).isImm() &&
2310 8 : MI->getOperand(1).getImm() == 14 &&
2311 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2312 : // (BPICCNT brtarget:$imm, { 1, 1, 1, 0 })
2313 : AsmString = "bpos,pn %icc, $\x01";
2314 : break;
2315 : }
2316 3 : if (MI->getNumOperands() == 2 &&
2317 3 : MI->getOperand(1).isImm() &&
2318 6 : MI->getOperand(1).getImm() == 6 &&
2319 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2320 : // (BPICCNT brtarget:$imm, { 0, 1, 1, 0 })
2321 : AsmString = "bneg,pn %icc, $\x01";
2322 : break;
2323 : }
2324 2 : if (MI->getNumOperands() == 2 &&
2325 2 : MI->getOperand(1).isImm() &&
2326 4 : MI->getOperand(1).getImm() == 15 &&
2327 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2328 : // (BPICCNT brtarget:$imm, { 1, 1, 1, 1 })
2329 : AsmString = "bvc,pn %icc, $\x01";
2330 : break;
2331 : }
2332 1 : if (MI->getNumOperands() == 2 &&
2333 1 : MI->getOperand(1).isImm() &&
2334 2 : MI->getOperand(1).getImm() == 7 &&
2335 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2336 : // (BPICCNT brtarget:$imm, { 0, 1, 1, 1 })
2337 : AsmString = "bvs,pn %icc, $\x01";
2338 : break;
2339 : }
2340 : return false;
2341 : case SP::BPXCCANT:
2342 14 : if (MI->getNumOperands() == 2 &&
2343 14 : MI->getOperand(1).isImm() &&
2344 14 : MI->getOperand(1).getImm() == 8) {
2345 : // (BPXCCANT brtarget:$imm, { 1, 0, 0, 0 })
2346 : AsmString = "ba,a,pn %xcc, $\x01";
2347 : break;
2348 : }
2349 14 : if (MI->getNumOperands() == 2 &&
2350 14 : MI->getOperand(1).isImm() &&
2351 14 : MI->getOperand(1).getImm() == 0) {
2352 : // (BPXCCANT brtarget:$imm, { 0, 0, 0, 0 })
2353 : AsmString = "bn,a,pn %xcc, $\x01";
2354 : break;
2355 : }
2356 14 : if (MI->getNumOperands() == 2 &&
2357 14 : MI->getOperand(1).isImm() &&
2358 14 : MI->getOperand(1).getImm() == 9) {
2359 : // (BPXCCANT brtarget:$imm, { 1, 0, 0, 1 })
2360 : AsmString = "bne,a,pn %xcc, $\x01";
2361 : break;
2362 : }
2363 13 : if (MI->getNumOperands() == 2 &&
2364 13 : MI->getOperand(1).isImm() &&
2365 13 : MI->getOperand(1).getImm() == 1) {
2366 : // (BPXCCANT brtarget:$imm, { 0, 0, 0, 1 })
2367 : AsmString = "be,a,pn %xcc, $\x01";
2368 : break;
2369 : }
2370 12 : if (MI->getNumOperands() == 2 &&
2371 12 : MI->getOperand(1).isImm() &&
2372 12 : MI->getOperand(1).getImm() == 10) {
2373 : // (BPXCCANT brtarget:$imm, { 1, 0, 1, 0 })
2374 : AsmString = "bg,a,pn %xcc, $\x01";
2375 : break;
2376 : }
2377 11 : if (MI->getNumOperands() == 2 &&
2378 11 : MI->getOperand(1).isImm() &&
2379 11 : MI->getOperand(1).getImm() == 2) {
2380 : // (BPXCCANT brtarget:$imm, { 0, 0, 1, 0 })
2381 : AsmString = "ble,a,pn %xcc, $\x01";
2382 : break;
2383 : }
2384 10 : if (MI->getNumOperands() == 2 &&
2385 10 : MI->getOperand(1).isImm() &&
2386 10 : MI->getOperand(1).getImm() == 11) {
2387 : // (BPXCCANT brtarget:$imm, { 1, 0, 1, 1 })
2388 : AsmString = "bge,a,pn %xcc, $\x01";
2389 : break;
2390 : }
2391 9 : if (MI->getNumOperands() == 2 &&
2392 9 : MI->getOperand(1).isImm() &&
2393 9 : MI->getOperand(1).getImm() == 3) {
2394 : // (BPXCCANT brtarget:$imm, { 0, 0, 1, 1 })
2395 : AsmString = "bl,a,pn %xcc, $\x01";
2396 : break;
2397 : }
2398 8 : if (MI->getNumOperands() == 2 &&
2399 8 : MI->getOperand(1).isImm() &&
2400 8 : MI->getOperand(1).getImm() == 12) {
2401 : // (BPXCCANT brtarget:$imm, { 1, 1, 0, 0 })
2402 : AsmString = "bgu,a,pn %xcc, $\x01";
2403 : break;
2404 : }
2405 7 : if (MI->getNumOperands() == 2 &&
2406 7 : MI->getOperand(1).isImm() &&
2407 7 : MI->getOperand(1).getImm() == 4) {
2408 : // (BPXCCANT brtarget:$imm, { 0, 1, 0, 0 })
2409 : AsmString = "bleu,a,pn %xcc, $\x01";
2410 : break;
2411 : }
2412 6 : if (MI->getNumOperands() == 2 &&
2413 6 : MI->getOperand(1).isImm() &&
2414 6 : MI->getOperand(1).getImm() == 13) {
2415 : // (BPXCCANT brtarget:$imm, { 1, 1, 0, 1 })
2416 : AsmString = "bcc,a,pn %xcc, $\x01";
2417 : break;
2418 : }
2419 5 : if (MI->getNumOperands() == 2 &&
2420 5 : MI->getOperand(1).isImm() &&
2421 5 : MI->getOperand(1).getImm() == 5) {
2422 : // (BPXCCANT brtarget:$imm, { 0, 1, 0, 1 })
2423 : AsmString = "bcs,a,pn %xcc, $\x01";
2424 : break;
2425 : }
2426 4 : if (MI->getNumOperands() == 2 &&
2427 4 : MI->getOperand(1).isImm() &&
2428 4 : MI->getOperand(1).getImm() == 14) {
2429 : // (BPXCCANT brtarget:$imm, { 1, 1, 1, 0 })
2430 : AsmString = "bpos,a,pn %xcc, $\x01";
2431 : break;
2432 : }
2433 3 : if (MI->getNumOperands() == 2 &&
2434 3 : MI->getOperand(1).isImm() &&
2435 3 : MI->getOperand(1).getImm() == 6) {
2436 : // (BPXCCANT brtarget:$imm, { 0, 1, 1, 0 })
2437 : AsmString = "bneg,a,pn %xcc, $\x01";
2438 : break;
2439 : }
2440 2 : if (MI->getNumOperands() == 2 &&
2441 2 : MI->getOperand(1).isImm() &&
2442 2 : MI->getOperand(1).getImm() == 15) {
2443 : // (BPXCCANT brtarget:$imm, { 1, 1, 1, 1 })
2444 : AsmString = "bvc,a,pn %xcc, $\x01";
2445 : break;
2446 : }
2447 1 : if (MI->getNumOperands() == 2 &&
2448 1 : MI->getOperand(1).isImm() &&
2449 1 : MI->getOperand(1).getImm() == 7) {
2450 : // (BPXCCANT brtarget:$imm, { 0, 1, 1, 1 })
2451 : AsmString = "bvs,a,pn %xcc, $\x01";
2452 : break;
2453 : }
2454 : return false;
2455 : case SP::BPXCCNT:
2456 14 : if (MI->getNumOperands() == 2 &&
2457 14 : MI->getOperand(1).isImm() &&
2458 14 : MI->getOperand(1).getImm() == 8) {
2459 : // (BPXCCNT brtarget:$imm, { 1, 0, 0, 0 })
2460 : AsmString = "ba,pn %xcc, $\x01";
2461 : break;
2462 : }
2463 14 : if (MI->getNumOperands() == 2 &&
2464 14 : MI->getOperand(1).isImm() &&
2465 14 : MI->getOperand(1).getImm() == 0) {
2466 : // (BPXCCNT brtarget:$imm, { 0, 0, 0, 0 })
2467 : AsmString = "bn,pn %xcc, $\x01";
2468 : break;
2469 : }
2470 14 : if (MI->getNumOperands() == 2 &&
2471 14 : MI->getOperand(1).isImm() &&
2472 14 : MI->getOperand(1).getImm() == 9) {
2473 : // (BPXCCNT brtarget:$imm, { 1, 0, 0, 1 })
2474 : AsmString = "bne,pn %xcc, $\x01";
2475 : break;
2476 : }
2477 13 : if (MI->getNumOperands() == 2 &&
2478 13 : MI->getOperand(1).isImm() &&
2479 13 : MI->getOperand(1).getImm() == 1) {
2480 : // (BPXCCNT brtarget:$imm, { 0, 0, 0, 1 })
2481 : AsmString = "be,pn %xcc, $\x01";
2482 : break;
2483 : }
2484 12 : if (MI->getNumOperands() == 2 &&
2485 12 : MI->getOperand(1).isImm() &&
2486 12 : MI->getOperand(1).getImm() == 10) {
2487 : // (BPXCCNT brtarget:$imm, { 1, 0, 1, 0 })
2488 : AsmString = "bg,pn %xcc, $\x01";
2489 : break;
2490 : }
2491 11 : if (MI->getNumOperands() == 2 &&
2492 11 : MI->getOperand(1).isImm() &&
2493 11 : MI->getOperand(1).getImm() == 2) {
2494 : // (BPXCCNT brtarget:$imm, { 0, 0, 1, 0 })
2495 : AsmString = "ble,pn %xcc, $\x01";
2496 : break;
2497 : }
2498 10 : if (MI->getNumOperands() == 2 &&
2499 10 : MI->getOperand(1).isImm() &&
2500 10 : MI->getOperand(1).getImm() == 11) {
2501 : // (BPXCCNT brtarget:$imm, { 1, 0, 1, 1 })
2502 : AsmString = "bge,pn %xcc, $\x01";
2503 : break;
2504 : }
2505 9 : if (MI->getNumOperands() == 2 &&
2506 9 : MI->getOperand(1).isImm() &&
2507 9 : MI->getOperand(1).getImm() == 3) {
2508 : // (BPXCCNT brtarget:$imm, { 0, 0, 1, 1 })
2509 : AsmString = "bl,pn %xcc, $\x01";
2510 : break;
2511 : }
2512 8 : if (MI->getNumOperands() == 2 &&
2513 8 : MI->getOperand(1).isImm() &&
2514 8 : MI->getOperand(1).getImm() == 12) {
2515 : // (BPXCCNT brtarget:$imm, { 1, 1, 0, 0 })
2516 : AsmString = "bgu,pn %xcc, $\x01";
2517 : break;
2518 : }
2519 7 : if (MI->getNumOperands() == 2 &&
2520 7 : MI->getOperand(1).isImm() &&
2521 7 : MI->getOperand(1).getImm() == 4) {
2522 : // (BPXCCNT brtarget:$imm, { 0, 1, 0, 0 })
2523 : AsmString = "bleu,pn %xcc, $\x01";
2524 : break;
2525 : }
2526 6 : if (MI->getNumOperands() == 2 &&
2527 6 : MI->getOperand(1).isImm() &&
2528 6 : MI->getOperand(1).getImm() == 13) {
2529 : // (BPXCCNT brtarget:$imm, { 1, 1, 0, 1 })
2530 : AsmString = "bcc,pn %xcc, $\x01";
2531 : break;
2532 : }
2533 5 : if (MI->getNumOperands() == 2 &&
2534 5 : MI->getOperand(1).isImm() &&
2535 5 : MI->getOperand(1).getImm() == 5) {
2536 : // (BPXCCNT brtarget:$imm, { 0, 1, 0, 1 })
2537 : AsmString = "bcs,pn %xcc, $\x01";
2538 : break;
2539 : }
2540 4 : if (MI->getNumOperands() == 2 &&
2541 4 : MI->getOperand(1).isImm() &&
2542 4 : MI->getOperand(1).getImm() == 14) {
2543 : // (BPXCCNT brtarget:$imm, { 1, 1, 1, 0 })
2544 : AsmString = "bpos,pn %xcc, $\x01";
2545 : break;
2546 : }
2547 3 : if (MI->getNumOperands() == 2 &&
2548 3 : MI->getOperand(1).isImm() &&
2549 3 : MI->getOperand(1).getImm() == 6) {
2550 : // (BPXCCNT brtarget:$imm, { 0, 1, 1, 0 })
2551 : AsmString = "bneg,pn %xcc, $\x01";
2552 : break;
2553 : }
2554 2 : if (MI->getNumOperands() == 2 &&
2555 2 : MI->getOperand(1).isImm() &&
2556 2 : MI->getOperand(1).getImm() == 15) {
2557 : // (BPXCCNT brtarget:$imm, { 1, 1, 1, 1 })
2558 : AsmString = "bvc,pn %xcc, $\x01";
2559 : break;
2560 : }
2561 1 : if (MI->getNumOperands() == 2 &&
2562 1 : MI->getOperand(1).isImm() &&
2563 1 : MI->getOperand(1).getImm() == 7) {
2564 : // (BPXCCNT brtarget:$imm, { 0, 1, 1, 1 })
2565 : AsmString = "bvs,pn %xcc, $\x01";
2566 : break;
2567 : }
2568 : return false;
2569 : case SP::FMOVD_ICC:
2570 2 : if (MI->getNumOperands() == 4 &&
2571 4 : MI->getOperand(0).isReg() &&
2572 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2573 4 : MI->getOperand(1).isReg() &&
2574 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2575 2 : MI->getOperand(3).isImm() &&
2576 4 : MI->getOperand(3).getImm() == 8 &&
2577 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2578 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
2579 : AsmString = "fmovda %icc, $\x02, $\x01";
2580 : break;
2581 : }
2582 2 : if (MI->getNumOperands() == 4 &&
2583 4 : MI->getOperand(0).isReg() &&
2584 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2585 4 : MI->getOperand(1).isReg() &&
2586 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2587 2 : MI->getOperand(3).isImm() &&
2588 4 : MI->getOperand(3).getImm() == 0 &&
2589 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2590 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
2591 : AsmString = "fmovdn %icc, $\x02, $\x01";
2592 : break;
2593 : }
2594 2 : if (MI->getNumOperands() == 4 &&
2595 4 : MI->getOperand(0).isReg() &&
2596 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2597 4 : MI->getOperand(1).isReg() &&
2598 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2599 2 : MI->getOperand(3).isImm() &&
2600 4 : MI->getOperand(3).getImm() == 9 &&
2601 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2602 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
2603 : AsmString = "fmovdne %icc, $\x02, $\x01";
2604 : break;
2605 : }
2606 2 : if (MI->getNumOperands() == 4 &&
2607 4 : MI->getOperand(0).isReg() &&
2608 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2609 4 : MI->getOperand(1).isReg() &&
2610 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2611 2 : MI->getOperand(3).isImm() &&
2612 4 : MI->getOperand(3).getImm() == 1 &&
2613 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2614 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
2615 : AsmString = "fmovde %icc, $\x02, $\x01";
2616 : break;
2617 : }
2618 0 : if (MI->getNumOperands() == 4 &&
2619 0 : MI->getOperand(0).isReg() &&
2620 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2621 0 : MI->getOperand(1).isReg() &&
2622 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2623 0 : MI->getOperand(3).isImm() &&
2624 0 : MI->getOperand(3).getImm() == 10 &&
2625 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2626 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
2627 : AsmString = "fmovdg %icc, $\x02, $\x01";
2628 : break;
2629 : }
2630 0 : if (MI->getNumOperands() == 4 &&
2631 0 : MI->getOperand(0).isReg() &&
2632 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2633 0 : MI->getOperand(1).isReg() &&
2634 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2635 0 : MI->getOperand(3).isImm() &&
2636 0 : MI->getOperand(3).getImm() == 2 &&
2637 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2638 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
2639 : AsmString = "fmovdle %icc, $\x02, $\x01";
2640 : break;
2641 : }
2642 0 : if (MI->getNumOperands() == 4 &&
2643 0 : MI->getOperand(0).isReg() &&
2644 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2645 0 : MI->getOperand(1).isReg() &&
2646 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2647 0 : MI->getOperand(3).isImm() &&
2648 0 : MI->getOperand(3).getImm() == 11 &&
2649 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2650 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
2651 : AsmString = "fmovdge %icc, $\x02, $\x01";
2652 : break;
2653 : }
2654 0 : if (MI->getNumOperands() == 4 &&
2655 0 : MI->getOperand(0).isReg() &&
2656 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2657 0 : MI->getOperand(1).isReg() &&
2658 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2659 0 : MI->getOperand(3).isImm() &&
2660 0 : MI->getOperand(3).getImm() == 3 &&
2661 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2662 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
2663 : AsmString = "fmovdl %icc, $\x02, $\x01";
2664 : break;
2665 : }
2666 0 : if (MI->getNumOperands() == 4 &&
2667 0 : MI->getOperand(0).isReg() &&
2668 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2669 0 : MI->getOperand(1).isReg() &&
2670 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2671 0 : MI->getOperand(3).isImm() &&
2672 0 : MI->getOperand(3).getImm() == 12 &&
2673 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2674 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
2675 : AsmString = "fmovdgu %icc, $\x02, $\x01";
2676 : break;
2677 : }
2678 0 : if (MI->getNumOperands() == 4 &&
2679 0 : MI->getOperand(0).isReg() &&
2680 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2681 0 : MI->getOperand(1).isReg() &&
2682 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2683 0 : MI->getOperand(3).isImm() &&
2684 0 : MI->getOperand(3).getImm() == 4 &&
2685 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2686 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
2687 : AsmString = "fmovdleu %icc, $\x02, $\x01";
2688 : break;
2689 : }
2690 0 : if (MI->getNumOperands() == 4 &&
2691 0 : MI->getOperand(0).isReg() &&
2692 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2693 0 : MI->getOperand(1).isReg() &&
2694 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2695 0 : MI->getOperand(3).isImm() &&
2696 0 : MI->getOperand(3).getImm() == 13 &&
2697 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2698 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
2699 : AsmString = "fmovdcc %icc, $\x02, $\x01";
2700 : break;
2701 : }
2702 0 : if (MI->getNumOperands() == 4 &&
2703 0 : MI->getOperand(0).isReg() &&
2704 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2705 0 : MI->getOperand(1).isReg() &&
2706 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2707 0 : MI->getOperand(3).isImm() &&
2708 0 : MI->getOperand(3).getImm() == 5 &&
2709 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2710 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
2711 : AsmString = "fmovdcs %icc, $\x02, $\x01";
2712 : break;
2713 : }
2714 0 : if (MI->getNumOperands() == 4 &&
2715 0 : MI->getOperand(0).isReg() &&
2716 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2717 0 : MI->getOperand(1).isReg() &&
2718 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2719 0 : MI->getOperand(3).isImm() &&
2720 0 : MI->getOperand(3).getImm() == 14 &&
2721 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2722 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
2723 : AsmString = "fmovdpos %icc, $\x02, $\x01";
2724 : break;
2725 : }
2726 0 : if (MI->getNumOperands() == 4 &&
2727 0 : MI->getOperand(0).isReg() &&
2728 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2729 0 : MI->getOperand(1).isReg() &&
2730 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2731 0 : MI->getOperand(3).isImm() &&
2732 0 : MI->getOperand(3).getImm() == 6 &&
2733 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2734 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
2735 : AsmString = "fmovdneg %icc, $\x02, $\x01";
2736 : break;
2737 : }
2738 0 : if (MI->getNumOperands() == 4 &&
2739 0 : MI->getOperand(0).isReg() &&
2740 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2741 0 : MI->getOperand(1).isReg() &&
2742 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2743 0 : MI->getOperand(3).isImm() &&
2744 0 : MI->getOperand(3).getImm() == 15 &&
2745 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2746 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
2747 : AsmString = "fmovdvc %icc, $\x02, $\x01";
2748 : break;
2749 : }
2750 0 : if (MI->getNumOperands() == 4 &&
2751 0 : MI->getOperand(0).isReg() &&
2752 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2753 0 : MI->getOperand(1).isReg() &&
2754 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2755 0 : MI->getOperand(3).isImm() &&
2756 0 : MI->getOperand(3).getImm() == 7 &&
2757 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2758 : // (FMOVD_ICC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
2759 : AsmString = "fmovdvs %icc, $\x02, $\x01";
2760 : break;
2761 : }
2762 : return false;
2763 : case SP::FMOVD_XCC:
2764 1 : if (MI->getNumOperands() == 4 &&
2765 2 : MI->getOperand(0).isReg() &&
2766 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2767 2 : MI->getOperand(1).isReg() &&
2768 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2769 2 : MI->getOperand(3).isImm() &&
2770 1 : MI->getOperand(3).getImm() == 8) {
2771 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 0 })
2772 : AsmString = "fmovda %xcc, $\x02, $\x01";
2773 : break;
2774 : }
2775 1 : if (MI->getNumOperands() == 4 &&
2776 2 : MI->getOperand(0).isReg() &&
2777 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2778 2 : MI->getOperand(1).isReg() &&
2779 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2780 2 : MI->getOperand(3).isImm() &&
2781 1 : MI->getOperand(3).getImm() == 0) {
2782 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 0 })
2783 : AsmString = "fmovdn %xcc, $\x02, $\x01";
2784 : break;
2785 : }
2786 1 : if (MI->getNumOperands() == 4 &&
2787 2 : MI->getOperand(0).isReg() &&
2788 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2789 2 : MI->getOperand(1).isReg() &&
2790 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2791 2 : MI->getOperand(3).isImm() &&
2792 1 : MI->getOperand(3).getImm() == 9) {
2793 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 0, 1 })
2794 : AsmString = "fmovdne %xcc, $\x02, $\x01";
2795 : break;
2796 : }
2797 1 : if (MI->getNumOperands() == 4 &&
2798 2 : MI->getOperand(0).isReg() &&
2799 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2800 2 : MI->getOperand(1).isReg() &&
2801 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2802 2 : MI->getOperand(3).isImm() &&
2803 1 : MI->getOperand(3).getImm() == 1) {
2804 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 0, 1 })
2805 : AsmString = "fmovde %xcc, $\x02, $\x01";
2806 : break;
2807 : }
2808 1 : if (MI->getNumOperands() == 4 &&
2809 2 : MI->getOperand(0).isReg() &&
2810 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2811 2 : MI->getOperand(1).isReg() &&
2812 1 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2813 2 : MI->getOperand(3).isImm() &&
2814 1 : MI->getOperand(3).getImm() == 10) {
2815 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 0 })
2816 : AsmString = "fmovdg %xcc, $\x02, $\x01";
2817 : break;
2818 : }
2819 0 : if (MI->getNumOperands() == 4 &&
2820 0 : MI->getOperand(0).isReg() &&
2821 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2822 0 : MI->getOperand(1).isReg() &&
2823 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2824 0 : MI->getOperand(3).isImm() &&
2825 0 : MI->getOperand(3).getImm() == 2) {
2826 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 0 })
2827 : AsmString = "fmovdle %xcc, $\x02, $\x01";
2828 : break;
2829 : }
2830 0 : if (MI->getNumOperands() == 4 &&
2831 0 : MI->getOperand(0).isReg() &&
2832 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2833 0 : MI->getOperand(1).isReg() &&
2834 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2835 0 : MI->getOperand(3).isImm() &&
2836 0 : MI->getOperand(3).getImm() == 11) {
2837 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 0, 1, 1 })
2838 : AsmString = "fmovdge %xcc, $\x02, $\x01";
2839 : break;
2840 : }
2841 0 : if (MI->getNumOperands() == 4 &&
2842 0 : MI->getOperand(0).isReg() &&
2843 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2844 0 : MI->getOperand(1).isReg() &&
2845 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2846 0 : MI->getOperand(3).isImm() &&
2847 0 : MI->getOperand(3).getImm() == 3) {
2848 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 0, 1, 1 })
2849 : AsmString = "fmovdl %xcc, $\x02, $\x01";
2850 : break;
2851 : }
2852 0 : if (MI->getNumOperands() == 4 &&
2853 0 : MI->getOperand(0).isReg() &&
2854 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2855 0 : MI->getOperand(1).isReg() &&
2856 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2857 0 : MI->getOperand(3).isImm() &&
2858 0 : MI->getOperand(3).getImm() == 12) {
2859 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 0 })
2860 : AsmString = "fmovdgu %xcc, $\x02, $\x01";
2861 : break;
2862 : }
2863 0 : if (MI->getNumOperands() == 4 &&
2864 0 : MI->getOperand(0).isReg() &&
2865 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2866 0 : MI->getOperand(1).isReg() &&
2867 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2868 0 : MI->getOperand(3).isImm() &&
2869 0 : MI->getOperand(3).getImm() == 4) {
2870 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 0 })
2871 : AsmString = "fmovdleu %xcc, $\x02, $\x01";
2872 : break;
2873 : }
2874 0 : if (MI->getNumOperands() == 4 &&
2875 0 : MI->getOperand(0).isReg() &&
2876 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2877 0 : MI->getOperand(1).isReg() &&
2878 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2879 0 : MI->getOperand(3).isImm() &&
2880 0 : MI->getOperand(3).getImm() == 13) {
2881 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 0, 1 })
2882 : AsmString = "fmovdcc %xcc, $\x02, $\x01";
2883 : break;
2884 : }
2885 0 : if (MI->getNumOperands() == 4 &&
2886 0 : MI->getOperand(0).isReg() &&
2887 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2888 0 : MI->getOperand(1).isReg() &&
2889 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2890 0 : MI->getOperand(3).isImm() &&
2891 0 : MI->getOperand(3).getImm() == 5) {
2892 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 0, 1 })
2893 : AsmString = "fmovdcs %xcc, $\x02, $\x01";
2894 : break;
2895 : }
2896 0 : if (MI->getNumOperands() == 4 &&
2897 0 : MI->getOperand(0).isReg() &&
2898 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2899 0 : MI->getOperand(1).isReg() &&
2900 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2901 0 : MI->getOperand(3).isImm() &&
2902 0 : MI->getOperand(3).getImm() == 14) {
2903 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 0 })
2904 : AsmString = "fmovdpos %xcc, $\x02, $\x01";
2905 : break;
2906 : }
2907 0 : if (MI->getNumOperands() == 4 &&
2908 0 : MI->getOperand(0).isReg() &&
2909 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2910 0 : MI->getOperand(1).isReg() &&
2911 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2912 0 : MI->getOperand(3).isImm() &&
2913 0 : MI->getOperand(3).getImm() == 6) {
2914 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 0 })
2915 : AsmString = "fmovdneg %xcc, $\x02, $\x01";
2916 : break;
2917 : }
2918 0 : if (MI->getNumOperands() == 4 &&
2919 0 : MI->getOperand(0).isReg() &&
2920 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2921 0 : MI->getOperand(1).isReg() &&
2922 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2923 0 : MI->getOperand(3).isImm() &&
2924 0 : MI->getOperand(3).getImm() == 15) {
2925 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 1, 1, 1, 1 })
2926 : AsmString = "fmovdvc %xcc, $\x02, $\x01";
2927 : break;
2928 : }
2929 0 : if (MI->getNumOperands() == 4 &&
2930 0 : MI->getOperand(0).isReg() &&
2931 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2932 0 : MI->getOperand(1).isReg() &&
2933 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2934 0 : MI->getOperand(3).isImm() &&
2935 0 : MI->getOperand(3).getImm() == 7) {
2936 : // (FMOVD_XCC DFPRegs:$rd, DFPRegs:$rs2, { 0, 1, 1, 1 })
2937 : AsmString = "fmovdvs %xcc, $\x02, $\x01";
2938 : break;
2939 : }
2940 : return false;
2941 : case SP::FMOVQ_ICC:
2942 0 : if (MI->getNumOperands() == 4 &&
2943 0 : MI->getOperand(0).isReg() &&
2944 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2945 0 : MI->getOperand(1).isReg() &&
2946 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2947 0 : MI->getOperand(3).isImm() &&
2948 0 : MI->getOperand(3).getImm() == 8 &&
2949 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2950 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
2951 : AsmString = "fmovqa %icc, $\x02, $\x01";
2952 : break;
2953 : }
2954 0 : if (MI->getNumOperands() == 4 &&
2955 0 : MI->getOperand(0).isReg() &&
2956 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2957 0 : MI->getOperand(1).isReg() &&
2958 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2959 0 : MI->getOperand(3).isImm() &&
2960 0 : MI->getOperand(3).getImm() == 0 &&
2961 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2962 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
2963 : AsmString = "fmovqn %icc, $\x02, $\x01";
2964 : break;
2965 : }
2966 0 : if (MI->getNumOperands() == 4 &&
2967 0 : MI->getOperand(0).isReg() &&
2968 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2969 0 : MI->getOperand(1).isReg() &&
2970 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2971 0 : MI->getOperand(3).isImm() &&
2972 0 : MI->getOperand(3).getImm() == 9 &&
2973 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2974 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
2975 : AsmString = "fmovqne %icc, $\x02, $\x01";
2976 : break;
2977 : }
2978 0 : if (MI->getNumOperands() == 4 &&
2979 0 : MI->getOperand(0).isReg() &&
2980 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2981 0 : MI->getOperand(1).isReg() &&
2982 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2983 0 : MI->getOperand(3).isImm() &&
2984 0 : MI->getOperand(3).getImm() == 1 &&
2985 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2986 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
2987 : AsmString = "fmovqe %icc, $\x02, $\x01";
2988 : break;
2989 : }
2990 0 : if (MI->getNumOperands() == 4 &&
2991 0 : MI->getOperand(0).isReg() &&
2992 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
2993 0 : MI->getOperand(1).isReg() &&
2994 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
2995 0 : MI->getOperand(3).isImm() &&
2996 0 : MI->getOperand(3).getImm() == 10 &&
2997 : STI.getFeatureBits()[Sparc::FeatureV9]) {
2998 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
2999 : AsmString = "fmovqg %icc, $\x02, $\x01";
3000 : break;
3001 : }
3002 0 : if (MI->getNumOperands() == 4 &&
3003 0 : MI->getOperand(0).isReg() &&
3004 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3005 0 : MI->getOperand(1).isReg() &&
3006 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3007 0 : MI->getOperand(3).isImm() &&
3008 0 : MI->getOperand(3).getImm() == 2 &&
3009 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3010 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
3011 : AsmString = "fmovqle %icc, $\x02, $\x01";
3012 : break;
3013 : }
3014 0 : if (MI->getNumOperands() == 4 &&
3015 0 : MI->getOperand(0).isReg() &&
3016 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3017 0 : MI->getOperand(1).isReg() &&
3018 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3019 0 : MI->getOperand(3).isImm() &&
3020 0 : MI->getOperand(3).getImm() == 11 &&
3021 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3022 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
3023 : AsmString = "fmovqge %icc, $\x02, $\x01";
3024 : break;
3025 : }
3026 0 : if (MI->getNumOperands() == 4 &&
3027 0 : MI->getOperand(0).isReg() &&
3028 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3029 0 : MI->getOperand(1).isReg() &&
3030 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3031 0 : MI->getOperand(3).isImm() &&
3032 0 : MI->getOperand(3).getImm() == 3 &&
3033 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3034 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
3035 : AsmString = "fmovql %icc, $\x02, $\x01";
3036 : break;
3037 : }
3038 0 : if (MI->getNumOperands() == 4 &&
3039 0 : MI->getOperand(0).isReg() &&
3040 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3041 0 : MI->getOperand(1).isReg() &&
3042 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3043 0 : MI->getOperand(3).isImm() &&
3044 0 : MI->getOperand(3).getImm() == 12 &&
3045 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3046 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
3047 : AsmString = "fmovqgu %icc, $\x02, $\x01";
3048 : break;
3049 : }
3050 0 : if (MI->getNumOperands() == 4 &&
3051 0 : MI->getOperand(0).isReg() &&
3052 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3053 0 : MI->getOperand(1).isReg() &&
3054 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3055 0 : MI->getOperand(3).isImm() &&
3056 0 : MI->getOperand(3).getImm() == 4 &&
3057 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3058 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
3059 : AsmString = "fmovqleu %icc, $\x02, $\x01";
3060 : break;
3061 : }
3062 0 : if (MI->getNumOperands() == 4 &&
3063 0 : MI->getOperand(0).isReg() &&
3064 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3065 0 : MI->getOperand(1).isReg() &&
3066 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3067 0 : MI->getOperand(3).isImm() &&
3068 0 : MI->getOperand(3).getImm() == 13 &&
3069 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3070 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
3071 : AsmString = "fmovqcc %icc, $\x02, $\x01";
3072 : break;
3073 : }
3074 0 : if (MI->getNumOperands() == 4 &&
3075 0 : MI->getOperand(0).isReg() &&
3076 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3077 0 : MI->getOperand(1).isReg() &&
3078 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3079 0 : MI->getOperand(3).isImm() &&
3080 0 : MI->getOperand(3).getImm() == 5 &&
3081 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3082 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
3083 : AsmString = "fmovqcs %icc, $\x02, $\x01";
3084 : break;
3085 : }
3086 0 : if (MI->getNumOperands() == 4 &&
3087 0 : MI->getOperand(0).isReg() &&
3088 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3089 0 : MI->getOperand(1).isReg() &&
3090 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3091 0 : MI->getOperand(3).isImm() &&
3092 0 : MI->getOperand(3).getImm() == 14 &&
3093 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3094 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
3095 : AsmString = "fmovqpos %icc, $\x02, $\x01";
3096 : break;
3097 : }
3098 0 : if (MI->getNumOperands() == 4 &&
3099 0 : MI->getOperand(0).isReg() &&
3100 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3101 0 : MI->getOperand(1).isReg() &&
3102 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3103 0 : MI->getOperand(3).isImm() &&
3104 0 : MI->getOperand(3).getImm() == 6 &&
3105 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3106 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
3107 : AsmString = "fmovqneg %icc, $\x02, $\x01";
3108 : break;
3109 : }
3110 0 : if (MI->getNumOperands() == 4 &&
3111 0 : MI->getOperand(0).isReg() &&
3112 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3113 0 : MI->getOperand(1).isReg() &&
3114 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3115 0 : MI->getOperand(3).isImm() &&
3116 0 : MI->getOperand(3).getImm() == 15 &&
3117 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3118 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
3119 : AsmString = "fmovqvc %icc, $\x02, $\x01";
3120 : break;
3121 : }
3122 0 : if (MI->getNumOperands() == 4 &&
3123 0 : MI->getOperand(0).isReg() &&
3124 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3125 0 : MI->getOperand(1).isReg() &&
3126 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3127 0 : MI->getOperand(3).isImm() &&
3128 0 : MI->getOperand(3).getImm() == 7 &&
3129 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3130 : // (FMOVQ_ICC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
3131 : AsmString = "fmovqvs %icc, $\x02, $\x01";
3132 : break;
3133 : }
3134 : return false;
3135 : case SP::FMOVQ_XCC:
3136 0 : if (MI->getNumOperands() == 4 &&
3137 0 : MI->getOperand(0).isReg() &&
3138 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3139 0 : MI->getOperand(1).isReg() &&
3140 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3141 0 : MI->getOperand(3).isImm() &&
3142 0 : MI->getOperand(3).getImm() == 8) {
3143 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 0 })
3144 : AsmString = "fmovqa %xcc, $\x02, $\x01";
3145 : break;
3146 : }
3147 0 : if (MI->getNumOperands() == 4 &&
3148 0 : MI->getOperand(0).isReg() &&
3149 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3150 0 : MI->getOperand(1).isReg() &&
3151 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3152 0 : MI->getOperand(3).isImm() &&
3153 0 : MI->getOperand(3).getImm() == 0) {
3154 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 0 })
3155 : AsmString = "fmovqn %xcc, $\x02, $\x01";
3156 : break;
3157 : }
3158 0 : if (MI->getNumOperands() == 4 &&
3159 0 : MI->getOperand(0).isReg() &&
3160 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3161 0 : MI->getOperand(1).isReg() &&
3162 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3163 0 : MI->getOperand(3).isImm() &&
3164 0 : MI->getOperand(3).getImm() == 9) {
3165 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 0, 1 })
3166 : AsmString = "fmovqne %xcc, $\x02, $\x01";
3167 : break;
3168 : }
3169 0 : if (MI->getNumOperands() == 4 &&
3170 0 : MI->getOperand(0).isReg() &&
3171 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3172 0 : MI->getOperand(1).isReg() &&
3173 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3174 0 : MI->getOperand(3).isImm() &&
3175 0 : MI->getOperand(3).getImm() == 1) {
3176 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 0, 1 })
3177 : AsmString = "fmovqe %xcc, $\x02, $\x01";
3178 : break;
3179 : }
3180 0 : if (MI->getNumOperands() == 4 &&
3181 0 : MI->getOperand(0).isReg() &&
3182 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3183 0 : MI->getOperand(1).isReg() &&
3184 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3185 0 : MI->getOperand(3).isImm() &&
3186 0 : MI->getOperand(3).getImm() == 10) {
3187 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 0 })
3188 : AsmString = "fmovqg %xcc, $\x02, $\x01";
3189 : break;
3190 : }
3191 0 : if (MI->getNumOperands() == 4 &&
3192 0 : MI->getOperand(0).isReg() &&
3193 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3194 0 : MI->getOperand(1).isReg() &&
3195 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3196 0 : MI->getOperand(3).isImm() &&
3197 0 : MI->getOperand(3).getImm() == 2) {
3198 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 0 })
3199 : AsmString = "fmovqle %xcc, $\x02, $\x01";
3200 : break;
3201 : }
3202 0 : if (MI->getNumOperands() == 4 &&
3203 0 : MI->getOperand(0).isReg() &&
3204 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3205 0 : MI->getOperand(1).isReg() &&
3206 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3207 0 : MI->getOperand(3).isImm() &&
3208 0 : MI->getOperand(3).getImm() == 11) {
3209 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 0, 1, 1 })
3210 : AsmString = "fmovqge %xcc, $\x02, $\x01";
3211 : break;
3212 : }
3213 0 : if (MI->getNumOperands() == 4 &&
3214 0 : MI->getOperand(0).isReg() &&
3215 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3216 0 : MI->getOperand(1).isReg() &&
3217 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3218 0 : MI->getOperand(3).isImm() &&
3219 0 : MI->getOperand(3).getImm() == 3) {
3220 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 0, 1, 1 })
3221 : AsmString = "fmovql %xcc, $\x02, $\x01";
3222 : break;
3223 : }
3224 0 : if (MI->getNumOperands() == 4 &&
3225 0 : MI->getOperand(0).isReg() &&
3226 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3227 0 : MI->getOperand(1).isReg() &&
3228 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3229 0 : MI->getOperand(3).isImm() &&
3230 0 : MI->getOperand(3).getImm() == 12) {
3231 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 0 })
3232 : AsmString = "fmovqgu %xcc, $\x02, $\x01";
3233 : break;
3234 : }
3235 0 : if (MI->getNumOperands() == 4 &&
3236 0 : MI->getOperand(0).isReg() &&
3237 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3238 0 : MI->getOperand(1).isReg() &&
3239 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3240 0 : MI->getOperand(3).isImm() &&
3241 0 : MI->getOperand(3).getImm() == 4) {
3242 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 0 })
3243 : AsmString = "fmovqleu %xcc, $\x02, $\x01";
3244 : break;
3245 : }
3246 0 : if (MI->getNumOperands() == 4 &&
3247 0 : MI->getOperand(0).isReg() &&
3248 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3249 0 : MI->getOperand(1).isReg() &&
3250 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3251 0 : MI->getOperand(3).isImm() &&
3252 0 : MI->getOperand(3).getImm() == 13) {
3253 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 0, 1 })
3254 : AsmString = "fmovqcc %xcc, $\x02, $\x01";
3255 : break;
3256 : }
3257 0 : if (MI->getNumOperands() == 4 &&
3258 0 : MI->getOperand(0).isReg() &&
3259 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3260 0 : MI->getOperand(1).isReg() &&
3261 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3262 0 : MI->getOperand(3).isImm() &&
3263 0 : MI->getOperand(3).getImm() == 5) {
3264 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 0, 1 })
3265 : AsmString = "fmovqcs %xcc, $\x02, $\x01";
3266 : break;
3267 : }
3268 0 : if (MI->getNumOperands() == 4 &&
3269 0 : MI->getOperand(0).isReg() &&
3270 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3271 0 : MI->getOperand(1).isReg() &&
3272 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3273 0 : MI->getOperand(3).isImm() &&
3274 0 : MI->getOperand(3).getImm() == 14) {
3275 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 0 })
3276 : AsmString = "fmovqpos %xcc, $\x02, $\x01";
3277 : break;
3278 : }
3279 0 : if (MI->getNumOperands() == 4 &&
3280 0 : MI->getOperand(0).isReg() &&
3281 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3282 0 : MI->getOperand(1).isReg() &&
3283 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3284 0 : MI->getOperand(3).isImm() &&
3285 0 : MI->getOperand(3).getImm() == 6) {
3286 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 0 })
3287 : AsmString = "fmovqneg %xcc, $\x02, $\x01";
3288 : break;
3289 : }
3290 0 : if (MI->getNumOperands() == 4 &&
3291 0 : MI->getOperand(0).isReg() &&
3292 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3293 0 : MI->getOperand(1).isReg() &&
3294 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3295 0 : MI->getOperand(3).isImm() &&
3296 0 : MI->getOperand(3).getImm() == 15) {
3297 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 1, 1, 1, 1 })
3298 : AsmString = "fmovqvc %xcc, $\x02, $\x01";
3299 : break;
3300 : }
3301 0 : if (MI->getNumOperands() == 4 &&
3302 0 : MI->getOperand(0).isReg() &&
3303 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3304 0 : MI->getOperand(1).isReg() &&
3305 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3306 0 : MI->getOperand(3).isImm() &&
3307 0 : MI->getOperand(3).getImm() == 7) {
3308 : // (FMOVQ_XCC QFPRegs:$rd, QFPRegs:$rs2, { 0, 1, 1, 1 })
3309 : AsmString = "fmovqvs %xcc, $\x02, $\x01";
3310 : break;
3311 : }
3312 : return false;
3313 : case SP::FMOVS_ICC:
3314 16 : if (MI->getNumOperands() == 4 &&
3315 32 : MI->getOperand(0).isReg() &&
3316 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3317 32 : MI->getOperand(1).isReg() &&
3318 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3319 16 : MI->getOperand(3).isImm() &&
3320 32 : MI->getOperand(3).getImm() == 8 &&
3321 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3322 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
3323 : AsmString = "fmovsa %icc, $\x02, $\x01";
3324 : break;
3325 : }
3326 16 : if (MI->getNumOperands() == 4 &&
3327 32 : MI->getOperand(0).isReg() &&
3328 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3329 32 : MI->getOperand(1).isReg() &&
3330 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3331 16 : MI->getOperand(3).isImm() &&
3332 32 : MI->getOperand(3).getImm() == 0 &&
3333 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3334 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
3335 : AsmString = "fmovsn %icc, $\x02, $\x01";
3336 : break;
3337 : }
3338 16 : if (MI->getNumOperands() == 4 &&
3339 32 : MI->getOperand(0).isReg() &&
3340 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3341 32 : MI->getOperand(1).isReg() &&
3342 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3343 16 : MI->getOperand(3).isImm() &&
3344 32 : MI->getOperand(3).getImm() == 9 &&
3345 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3346 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
3347 : AsmString = "fmovsne %icc, $\x02, $\x01";
3348 : break;
3349 : }
3350 15 : if (MI->getNumOperands() == 4 &&
3351 30 : MI->getOperand(0).isReg() &&
3352 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3353 30 : MI->getOperand(1).isReg() &&
3354 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3355 15 : MI->getOperand(3).isImm() &&
3356 30 : MI->getOperand(3).getImm() == 1 &&
3357 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3358 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
3359 : AsmString = "fmovse %icc, $\x02, $\x01";
3360 : break;
3361 : }
3362 12 : if (MI->getNumOperands() == 4 &&
3363 24 : MI->getOperand(0).isReg() &&
3364 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3365 24 : MI->getOperand(1).isReg() &&
3366 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3367 12 : MI->getOperand(3).isImm() &&
3368 24 : MI->getOperand(3).getImm() == 10 &&
3369 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3370 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
3371 : AsmString = "fmovsg %icc, $\x02, $\x01";
3372 : break;
3373 : }
3374 11 : if (MI->getNumOperands() == 4 &&
3375 22 : MI->getOperand(0).isReg() &&
3376 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3377 22 : MI->getOperand(1).isReg() &&
3378 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3379 11 : MI->getOperand(3).isImm() &&
3380 22 : MI->getOperand(3).getImm() == 2 &&
3381 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3382 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
3383 : AsmString = "fmovsle %icc, $\x02, $\x01";
3384 : break;
3385 : }
3386 10 : if (MI->getNumOperands() == 4 &&
3387 20 : MI->getOperand(0).isReg() &&
3388 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3389 20 : MI->getOperand(1).isReg() &&
3390 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3391 10 : MI->getOperand(3).isImm() &&
3392 20 : MI->getOperand(3).getImm() == 11 &&
3393 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3394 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
3395 : AsmString = "fmovsge %icc, $\x02, $\x01";
3396 : break;
3397 : }
3398 9 : if (MI->getNumOperands() == 4 &&
3399 18 : MI->getOperand(0).isReg() &&
3400 9 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3401 18 : MI->getOperand(1).isReg() &&
3402 9 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3403 9 : MI->getOperand(3).isImm() &&
3404 18 : MI->getOperand(3).getImm() == 3 &&
3405 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3406 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
3407 : AsmString = "fmovsl %icc, $\x02, $\x01";
3408 : break;
3409 : }
3410 8 : if (MI->getNumOperands() == 4 &&
3411 16 : MI->getOperand(0).isReg() &&
3412 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3413 16 : MI->getOperand(1).isReg() &&
3414 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3415 8 : MI->getOperand(3).isImm() &&
3416 16 : MI->getOperand(3).getImm() == 12 &&
3417 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3418 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
3419 : AsmString = "fmovsgu %icc, $\x02, $\x01";
3420 : break;
3421 : }
3422 7 : if (MI->getNumOperands() == 4 &&
3423 14 : MI->getOperand(0).isReg() &&
3424 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3425 14 : MI->getOperand(1).isReg() &&
3426 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3427 7 : MI->getOperand(3).isImm() &&
3428 14 : MI->getOperand(3).getImm() == 4 &&
3429 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3430 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
3431 : AsmString = "fmovsleu %icc, $\x02, $\x01";
3432 : break;
3433 : }
3434 6 : if (MI->getNumOperands() == 4 &&
3435 12 : MI->getOperand(0).isReg() &&
3436 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3437 12 : MI->getOperand(1).isReg() &&
3438 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3439 6 : MI->getOperand(3).isImm() &&
3440 12 : MI->getOperand(3).getImm() == 13 &&
3441 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3442 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
3443 : AsmString = "fmovscc %icc, $\x02, $\x01";
3444 : break;
3445 : }
3446 5 : if (MI->getNumOperands() == 4 &&
3447 10 : MI->getOperand(0).isReg() &&
3448 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3449 10 : MI->getOperand(1).isReg() &&
3450 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3451 5 : MI->getOperand(3).isImm() &&
3452 10 : MI->getOperand(3).getImm() == 5 &&
3453 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3454 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
3455 : AsmString = "fmovscs %icc, $\x02, $\x01";
3456 : break;
3457 : }
3458 4 : if (MI->getNumOperands() == 4 &&
3459 8 : MI->getOperand(0).isReg() &&
3460 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3461 8 : MI->getOperand(1).isReg() &&
3462 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3463 4 : MI->getOperand(3).isImm() &&
3464 8 : MI->getOperand(3).getImm() == 14 &&
3465 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3466 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
3467 : AsmString = "fmovspos %icc, $\x02, $\x01";
3468 : break;
3469 : }
3470 3 : if (MI->getNumOperands() == 4 &&
3471 6 : MI->getOperand(0).isReg() &&
3472 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3473 6 : MI->getOperand(1).isReg() &&
3474 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3475 3 : MI->getOperand(3).isImm() &&
3476 6 : MI->getOperand(3).getImm() == 6 &&
3477 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3478 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
3479 : AsmString = "fmovsneg %icc, $\x02, $\x01";
3480 : break;
3481 : }
3482 2 : if (MI->getNumOperands() == 4 &&
3483 4 : MI->getOperand(0).isReg() &&
3484 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3485 4 : MI->getOperand(1).isReg() &&
3486 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3487 2 : MI->getOperand(3).isImm() &&
3488 4 : MI->getOperand(3).getImm() == 15 &&
3489 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3490 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
3491 : AsmString = "fmovsvc %icc, $\x02, $\x01";
3492 : break;
3493 : }
3494 1 : if (MI->getNumOperands() == 4 &&
3495 2 : MI->getOperand(0).isReg() &&
3496 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3497 2 : MI->getOperand(1).isReg() &&
3498 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3499 1 : MI->getOperand(3).isImm() &&
3500 2 : MI->getOperand(3).getImm() == 7 &&
3501 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3502 : // (FMOVS_ICC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
3503 : AsmString = "fmovsvs %icc, $\x02, $\x01";
3504 : break;
3505 : }
3506 : return false;
3507 : case SP::FMOVS_XCC:
3508 16 : if (MI->getNumOperands() == 4 &&
3509 32 : MI->getOperand(0).isReg() &&
3510 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3511 32 : MI->getOperand(1).isReg() &&
3512 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3513 32 : MI->getOperand(3).isImm() &&
3514 16 : MI->getOperand(3).getImm() == 8) {
3515 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 0 })
3516 : AsmString = "fmovsa %xcc, $\x02, $\x01";
3517 : break;
3518 : }
3519 16 : if (MI->getNumOperands() == 4 &&
3520 32 : MI->getOperand(0).isReg() &&
3521 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3522 32 : MI->getOperand(1).isReg() &&
3523 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3524 32 : MI->getOperand(3).isImm() &&
3525 16 : MI->getOperand(3).getImm() == 0) {
3526 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 0 })
3527 : AsmString = "fmovsn %xcc, $\x02, $\x01";
3528 : break;
3529 : }
3530 16 : if (MI->getNumOperands() == 4 &&
3531 32 : MI->getOperand(0).isReg() &&
3532 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3533 32 : MI->getOperand(1).isReg() &&
3534 16 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3535 32 : MI->getOperand(3).isImm() &&
3536 16 : MI->getOperand(3).getImm() == 9) {
3537 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 0, 1 })
3538 : AsmString = "fmovsne %xcc, $\x02, $\x01";
3539 : break;
3540 : }
3541 15 : if (MI->getNumOperands() == 4 &&
3542 30 : MI->getOperand(0).isReg() &&
3543 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3544 30 : MI->getOperand(1).isReg() &&
3545 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3546 30 : MI->getOperand(3).isImm() &&
3547 15 : MI->getOperand(3).getImm() == 1) {
3548 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 0, 1 })
3549 : AsmString = "fmovse %xcc, $\x02, $\x01";
3550 : break;
3551 : }
3552 14 : if (MI->getNumOperands() == 4 &&
3553 28 : MI->getOperand(0).isReg() &&
3554 14 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3555 28 : MI->getOperand(1).isReg() &&
3556 14 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3557 28 : MI->getOperand(3).isImm() &&
3558 14 : MI->getOperand(3).getImm() == 10) {
3559 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 0 })
3560 : AsmString = "fmovsg %xcc, $\x02, $\x01";
3561 : break;
3562 : }
3563 12 : if (MI->getNumOperands() == 4 &&
3564 24 : MI->getOperand(0).isReg() &&
3565 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3566 24 : MI->getOperand(1).isReg() &&
3567 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3568 24 : MI->getOperand(3).isImm() &&
3569 12 : MI->getOperand(3).getImm() == 2) {
3570 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 0 })
3571 : AsmString = "fmovsle %xcc, $\x02, $\x01";
3572 : break;
3573 : }
3574 11 : if (MI->getNumOperands() == 4 &&
3575 22 : MI->getOperand(0).isReg() &&
3576 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3577 22 : MI->getOperand(1).isReg() &&
3578 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3579 22 : MI->getOperand(3).isImm() &&
3580 11 : MI->getOperand(3).getImm() == 11) {
3581 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 0, 1, 1 })
3582 : AsmString = "fmovsge %xcc, $\x02, $\x01";
3583 : break;
3584 : }
3585 10 : if (MI->getNumOperands() == 4 &&
3586 20 : MI->getOperand(0).isReg() &&
3587 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3588 20 : MI->getOperand(1).isReg() &&
3589 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3590 20 : MI->getOperand(3).isImm() &&
3591 10 : MI->getOperand(3).getImm() == 3) {
3592 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 0, 1, 1 })
3593 : AsmString = "fmovsl %xcc, $\x02, $\x01";
3594 : break;
3595 : }
3596 8 : if (MI->getNumOperands() == 4 &&
3597 16 : MI->getOperand(0).isReg() &&
3598 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3599 16 : MI->getOperand(1).isReg() &&
3600 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3601 16 : MI->getOperand(3).isImm() &&
3602 8 : MI->getOperand(3).getImm() == 12) {
3603 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 0 })
3604 : AsmString = "fmovsgu %xcc, $\x02, $\x01";
3605 : break;
3606 : }
3607 7 : if (MI->getNumOperands() == 4 &&
3608 14 : MI->getOperand(0).isReg() &&
3609 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3610 14 : MI->getOperand(1).isReg() &&
3611 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3612 14 : MI->getOperand(3).isImm() &&
3613 7 : MI->getOperand(3).getImm() == 4) {
3614 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 0 })
3615 : AsmString = "fmovsleu %xcc, $\x02, $\x01";
3616 : break;
3617 : }
3618 6 : if (MI->getNumOperands() == 4 &&
3619 12 : MI->getOperand(0).isReg() &&
3620 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3621 12 : MI->getOperand(1).isReg() &&
3622 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3623 12 : MI->getOperand(3).isImm() &&
3624 6 : MI->getOperand(3).getImm() == 13) {
3625 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 0, 1 })
3626 : AsmString = "fmovscc %xcc, $\x02, $\x01";
3627 : break;
3628 : }
3629 5 : if (MI->getNumOperands() == 4 &&
3630 10 : MI->getOperand(0).isReg() &&
3631 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3632 10 : MI->getOperand(1).isReg() &&
3633 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3634 10 : MI->getOperand(3).isImm() &&
3635 5 : MI->getOperand(3).getImm() == 5) {
3636 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 0, 1 })
3637 : AsmString = "fmovscs %xcc, $\x02, $\x01";
3638 : break;
3639 : }
3640 4 : if (MI->getNumOperands() == 4 &&
3641 8 : MI->getOperand(0).isReg() &&
3642 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3643 8 : MI->getOperand(1).isReg() &&
3644 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3645 8 : MI->getOperand(3).isImm() &&
3646 4 : MI->getOperand(3).getImm() == 14) {
3647 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 0 })
3648 : AsmString = "fmovspos %xcc, $\x02, $\x01";
3649 : break;
3650 : }
3651 3 : if (MI->getNumOperands() == 4 &&
3652 6 : MI->getOperand(0).isReg() &&
3653 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3654 6 : MI->getOperand(1).isReg() &&
3655 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3656 6 : MI->getOperand(3).isImm() &&
3657 3 : MI->getOperand(3).getImm() == 6) {
3658 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 0 })
3659 : AsmString = "fmovsneg %xcc, $\x02, $\x01";
3660 : break;
3661 : }
3662 2 : if (MI->getNumOperands() == 4 &&
3663 4 : MI->getOperand(0).isReg() &&
3664 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3665 4 : MI->getOperand(1).isReg() &&
3666 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3667 4 : MI->getOperand(3).isImm() &&
3668 2 : MI->getOperand(3).getImm() == 15) {
3669 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 1, 1, 1, 1 })
3670 : AsmString = "fmovsvc %xcc, $\x02, $\x01";
3671 : break;
3672 : }
3673 1 : if (MI->getNumOperands() == 4 &&
3674 2 : MI->getOperand(0).isReg() &&
3675 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3676 2 : MI->getOperand(1).isReg() &&
3677 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3678 2 : MI->getOperand(3).isImm() &&
3679 1 : MI->getOperand(3).getImm() == 7) {
3680 : // (FMOVS_XCC FPRegs:$rd, FPRegs:$rs2, { 0, 1, 1, 1 })
3681 : AsmString = "fmovsvs %xcc, $\x02, $\x01";
3682 : break;
3683 : }
3684 : return false;
3685 : case SP::MOVICCri:
3686 13 : if (MI->getNumOperands() == 4 &&
3687 26 : MI->getOperand(0).isReg() &&
3688 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3689 13 : MI->getOperand(3).isImm() &&
3690 26 : MI->getOperand(3).getImm() == 8 &&
3691 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3692 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
3693 : AsmString = "mova %icc, $\x02, $\x01";
3694 : break;
3695 : }
3696 13 : if (MI->getNumOperands() == 4 &&
3697 26 : MI->getOperand(0).isReg() &&
3698 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3699 13 : MI->getOperand(3).isImm() &&
3700 26 : MI->getOperand(3).getImm() == 0 &&
3701 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3702 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 0 })
3703 : AsmString = "movn %icc, $\x02, $\x01";
3704 : break;
3705 : }
3706 13 : if (MI->getNumOperands() == 4 &&
3707 26 : MI->getOperand(0).isReg() &&
3708 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3709 13 : MI->getOperand(3).isImm() &&
3710 26 : MI->getOperand(3).getImm() == 9 &&
3711 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3712 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 1 })
3713 : AsmString = "movne %icc, $\x02, $\x01";
3714 : break;
3715 : }
3716 13 : if (MI->getNumOperands() == 4 &&
3717 26 : MI->getOperand(0).isReg() &&
3718 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3719 13 : MI->getOperand(3).isImm() &&
3720 26 : MI->getOperand(3).getImm() == 1 &&
3721 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3722 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 1 })
3723 : AsmString = "move %icc, $\x02, $\x01";
3724 : break;
3725 : }
3726 2 : if (MI->getNumOperands() == 4 &&
3727 4 : MI->getOperand(0).isReg() &&
3728 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3729 2 : MI->getOperand(3).isImm() &&
3730 4 : MI->getOperand(3).getImm() == 10 &&
3731 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3732 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 0 })
3733 : AsmString = "movg %icc, $\x02, $\x01";
3734 : break;
3735 : }
3736 2 : if (MI->getNumOperands() == 4 &&
3737 4 : MI->getOperand(0).isReg() &&
3738 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3739 2 : MI->getOperand(3).isImm() &&
3740 4 : MI->getOperand(3).getImm() == 2 &&
3741 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3742 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 0 })
3743 : AsmString = "movle %icc, $\x02, $\x01";
3744 : break;
3745 : }
3746 2 : if (MI->getNumOperands() == 4 &&
3747 4 : MI->getOperand(0).isReg() &&
3748 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3749 2 : MI->getOperand(3).isImm() &&
3750 4 : MI->getOperand(3).getImm() == 11 &&
3751 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3752 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 1 })
3753 : AsmString = "movge %icc, $\x02, $\x01";
3754 : break;
3755 : }
3756 2 : if (MI->getNumOperands() == 4 &&
3757 4 : MI->getOperand(0).isReg() &&
3758 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3759 2 : MI->getOperand(3).isImm() &&
3760 4 : MI->getOperand(3).getImm() == 3 &&
3761 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3762 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 1 })
3763 : AsmString = "movl %icc, $\x02, $\x01";
3764 : break;
3765 : }
3766 2 : if (MI->getNumOperands() == 4 &&
3767 4 : MI->getOperand(0).isReg() &&
3768 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3769 2 : MI->getOperand(3).isImm() &&
3770 4 : MI->getOperand(3).getImm() == 12 &&
3771 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3772 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 0 })
3773 : AsmString = "movgu %icc, $\x02, $\x01";
3774 : break;
3775 : }
3776 0 : if (MI->getNumOperands() == 4 &&
3777 0 : MI->getOperand(0).isReg() &&
3778 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3779 0 : MI->getOperand(3).isImm() &&
3780 0 : MI->getOperand(3).getImm() == 4 &&
3781 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3782 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 0 })
3783 : AsmString = "movleu %icc, $\x02, $\x01";
3784 : break;
3785 : }
3786 0 : if (MI->getNumOperands() == 4 &&
3787 0 : MI->getOperand(0).isReg() &&
3788 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3789 0 : MI->getOperand(3).isImm() &&
3790 0 : MI->getOperand(3).getImm() == 13 &&
3791 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3792 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 1 })
3793 : AsmString = "movcc %icc, $\x02, $\x01";
3794 : break;
3795 : }
3796 0 : if (MI->getNumOperands() == 4 &&
3797 0 : MI->getOperand(0).isReg() &&
3798 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3799 0 : MI->getOperand(3).isImm() &&
3800 0 : MI->getOperand(3).getImm() == 5 &&
3801 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3802 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 1 })
3803 : AsmString = "movcs %icc, $\x02, $\x01";
3804 : break;
3805 : }
3806 0 : if (MI->getNumOperands() == 4 &&
3807 0 : MI->getOperand(0).isReg() &&
3808 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3809 0 : MI->getOperand(3).isImm() &&
3810 0 : MI->getOperand(3).getImm() == 14 &&
3811 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3812 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 0 })
3813 : AsmString = "movpos %icc, $\x02, $\x01";
3814 : break;
3815 : }
3816 0 : if (MI->getNumOperands() == 4 &&
3817 0 : MI->getOperand(0).isReg() &&
3818 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3819 0 : MI->getOperand(3).isImm() &&
3820 0 : MI->getOperand(3).getImm() == 6 &&
3821 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3822 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 0 })
3823 : AsmString = "movneg %icc, $\x02, $\x01";
3824 : break;
3825 : }
3826 0 : if (MI->getNumOperands() == 4 &&
3827 0 : MI->getOperand(0).isReg() &&
3828 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3829 0 : MI->getOperand(3).isImm() &&
3830 0 : MI->getOperand(3).getImm() == 15 &&
3831 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3832 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 1 })
3833 : AsmString = "movvc %icc, $\x02, $\x01";
3834 : break;
3835 : }
3836 0 : if (MI->getNumOperands() == 4 &&
3837 0 : MI->getOperand(0).isReg() &&
3838 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3839 0 : MI->getOperand(3).isImm() &&
3840 0 : MI->getOperand(3).getImm() == 7 &&
3841 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3842 : // (MOVICCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 1 })
3843 : AsmString = "movvs %icc, $\x02, $\x01";
3844 : break;
3845 : }
3846 : return false;
3847 : case SP::MOVICCrr:
3848 19 : if (MI->getNumOperands() == 4 &&
3849 38 : MI->getOperand(0).isReg() &&
3850 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3851 38 : MI->getOperand(1).isReg() &&
3852 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3853 19 : MI->getOperand(3).isImm() &&
3854 38 : MI->getOperand(3).getImm() == 8 &&
3855 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3856 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 0 })
3857 : AsmString = "mova %icc, $\x02, $\x01";
3858 : break;
3859 : }
3860 19 : if (MI->getNumOperands() == 4 &&
3861 38 : MI->getOperand(0).isReg() &&
3862 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3863 38 : MI->getOperand(1).isReg() &&
3864 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3865 19 : MI->getOperand(3).isImm() &&
3866 38 : MI->getOperand(3).getImm() == 0 &&
3867 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3868 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 0 })
3869 : AsmString = "movn %icc, $\x02, $\x01";
3870 : break;
3871 : }
3872 19 : if (MI->getNumOperands() == 4 &&
3873 38 : MI->getOperand(0).isReg() &&
3874 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3875 38 : MI->getOperand(1).isReg() &&
3876 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3877 19 : MI->getOperand(3).isImm() &&
3878 38 : MI->getOperand(3).getImm() == 9 &&
3879 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3880 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 1 })
3881 : AsmString = "movne %icc, $\x02, $\x01";
3882 : break;
3883 : }
3884 18 : if (MI->getNumOperands() == 4 &&
3885 36 : MI->getOperand(0).isReg() &&
3886 18 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3887 36 : MI->getOperand(1).isReg() &&
3888 18 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3889 18 : MI->getOperand(3).isImm() &&
3890 36 : MI->getOperand(3).getImm() == 1 &&
3891 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3892 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 1 })
3893 : AsmString = "move %icc, $\x02, $\x01";
3894 : break;
3895 : }
3896 14 : if (MI->getNumOperands() == 4 &&
3897 28 : MI->getOperand(0).isReg() &&
3898 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3899 28 : MI->getOperand(1).isReg() &&
3900 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3901 14 : MI->getOperand(3).isImm() &&
3902 28 : MI->getOperand(3).getImm() == 10 &&
3903 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3904 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 0 })
3905 : AsmString = "movg %icc, $\x02, $\x01";
3906 : break;
3907 : }
3908 12 : if (MI->getNumOperands() == 4 &&
3909 24 : MI->getOperand(0).isReg() &&
3910 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3911 24 : MI->getOperand(1).isReg() &&
3912 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3913 12 : MI->getOperand(3).isImm() &&
3914 24 : MI->getOperand(3).getImm() == 2 &&
3915 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3916 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 0 })
3917 : AsmString = "movle %icc, $\x02, $\x01";
3918 : break;
3919 : }
3920 11 : if (MI->getNumOperands() == 4 &&
3921 22 : MI->getOperand(0).isReg() &&
3922 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3923 22 : MI->getOperand(1).isReg() &&
3924 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3925 11 : MI->getOperand(3).isImm() &&
3926 22 : MI->getOperand(3).getImm() == 11 &&
3927 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3928 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 1 })
3929 : AsmString = "movge %icc, $\x02, $\x01";
3930 : break;
3931 : }
3932 10 : if (MI->getNumOperands() == 4 &&
3933 20 : MI->getOperand(0).isReg() &&
3934 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3935 20 : MI->getOperand(1).isReg() &&
3936 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3937 10 : MI->getOperand(3).isImm() &&
3938 20 : MI->getOperand(3).getImm() == 3 &&
3939 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3940 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 1 })
3941 : AsmString = "movl %icc, $\x02, $\x01";
3942 : break;
3943 : }
3944 9 : if (MI->getNumOperands() == 4 &&
3945 18 : MI->getOperand(0).isReg() &&
3946 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3947 18 : MI->getOperand(1).isReg() &&
3948 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3949 9 : MI->getOperand(3).isImm() &&
3950 18 : MI->getOperand(3).getImm() == 12 &&
3951 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3952 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 0 })
3953 : AsmString = "movgu %icc, $\x02, $\x01";
3954 : break;
3955 : }
3956 8 : if (MI->getNumOperands() == 4 &&
3957 16 : MI->getOperand(0).isReg() &&
3958 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3959 16 : MI->getOperand(1).isReg() &&
3960 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3961 8 : MI->getOperand(3).isImm() &&
3962 16 : MI->getOperand(3).getImm() == 4 &&
3963 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3964 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 0 })
3965 : AsmString = "movleu %icc, $\x02, $\x01";
3966 : break;
3967 : }
3968 6 : if (MI->getNumOperands() == 4 &&
3969 12 : MI->getOperand(0).isReg() &&
3970 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3971 12 : MI->getOperand(1).isReg() &&
3972 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3973 6 : MI->getOperand(3).isImm() &&
3974 12 : MI->getOperand(3).getImm() == 13 &&
3975 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3976 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 1 })
3977 : AsmString = "movcc %icc, $\x02, $\x01";
3978 : break;
3979 : }
3980 5 : if (MI->getNumOperands() == 4 &&
3981 10 : MI->getOperand(0).isReg() &&
3982 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3983 10 : MI->getOperand(1).isReg() &&
3984 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3985 5 : MI->getOperand(3).isImm() &&
3986 10 : MI->getOperand(3).getImm() == 5 &&
3987 : STI.getFeatureBits()[Sparc::FeatureV9]) {
3988 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 1 })
3989 : AsmString = "movcs %icc, $\x02, $\x01";
3990 : break;
3991 : }
3992 4 : if (MI->getNumOperands() == 4 &&
3993 8 : MI->getOperand(0).isReg() &&
3994 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
3995 8 : MI->getOperand(1).isReg() &&
3996 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
3997 4 : MI->getOperand(3).isImm() &&
3998 8 : MI->getOperand(3).getImm() == 14 &&
3999 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4000 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 0 })
4001 : AsmString = "movpos %icc, $\x02, $\x01";
4002 : break;
4003 : }
4004 3 : if (MI->getNumOperands() == 4 &&
4005 6 : MI->getOperand(0).isReg() &&
4006 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4007 6 : MI->getOperand(1).isReg() &&
4008 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4009 3 : MI->getOperand(3).isImm() &&
4010 6 : MI->getOperand(3).getImm() == 6 &&
4011 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4012 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 0 })
4013 : AsmString = "movneg %icc, $\x02, $\x01";
4014 : break;
4015 : }
4016 2 : if (MI->getNumOperands() == 4 &&
4017 4 : MI->getOperand(0).isReg() &&
4018 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4019 4 : MI->getOperand(1).isReg() &&
4020 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4021 2 : MI->getOperand(3).isImm() &&
4022 4 : MI->getOperand(3).getImm() == 15 &&
4023 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4024 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 1 })
4025 : AsmString = "movvc %icc, $\x02, $\x01";
4026 : break;
4027 : }
4028 1 : if (MI->getNumOperands() == 4 &&
4029 2 : MI->getOperand(0).isReg() &&
4030 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4031 2 : MI->getOperand(1).isReg() &&
4032 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4033 1 : MI->getOperand(3).isImm() &&
4034 2 : MI->getOperand(3).getImm() == 7 &&
4035 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4036 : // (MOVICCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 1 })
4037 : AsmString = "movvs %icc, $\x02, $\x01";
4038 : break;
4039 : }
4040 : return false;
4041 : case SP::MOVXCCri:
4042 16 : if (MI->getNumOperands() == 4 &&
4043 32 : MI->getOperand(0).isReg() &&
4044 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4045 32 : MI->getOperand(3).isImm() &&
4046 16 : MI->getOperand(3).getImm() == 8) {
4047 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 0 })
4048 : AsmString = "mova %xcc, $\x02, $\x01";
4049 : break;
4050 : }
4051 16 : if (MI->getNumOperands() == 4 &&
4052 32 : MI->getOperand(0).isReg() &&
4053 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4054 32 : MI->getOperand(3).isImm() &&
4055 16 : MI->getOperand(3).getImm() == 0) {
4056 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 0 })
4057 : AsmString = "movn %xcc, $\x02, $\x01";
4058 : break;
4059 : }
4060 16 : if (MI->getNumOperands() == 4 &&
4061 32 : MI->getOperand(0).isReg() &&
4062 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4063 32 : MI->getOperand(3).isImm() &&
4064 16 : MI->getOperand(3).getImm() == 9) {
4065 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 0, 1 })
4066 : AsmString = "movne %xcc, $\x02, $\x01";
4067 : break;
4068 : }
4069 11 : if (MI->getNumOperands() == 4 &&
4070 22 : MI->getOperand(0).isReg() &&
4071 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4072 22 : MI->getOperand(3).isImm() &&
4073 11 : MI->getOperand(3).getImm() == 1) {
4074 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 0, 1 })
4075 : AsmString = "move %xcc, $\x02, $\x01";
4076 : break;
4077 : }
4078 7 : if (MI->getNumOperands() == 4 &&
4079 14 : MI->getOperand(0).isReg() &&
4080 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4081 14 : MI->getOperand(3).isImm() &&
4082 7 : MI->getOperand(3).getImm() == 10) {
4083 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 0 })
4084 : AsmString = "movg %xcc, $\x02, $\x01";
4085 : break;
4086 : }
4087 6 : if (MI->getNumOperands() == 4 &&
4088 12 : MI->getOperand(0).isReg() &&
4089 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4090 12 : MI->getOperand(3).isImm() &&
4091 6 : MI->getOperand(3).getImm() == 2) {
4092 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 0 })
4093 : AsmString = "movle %xcc, $\x02, $\x01";
4094 : break;
4095 : }
4096 6 : if (MI->getNumOperands() == 4 &&
4097 12 : MI->getOperand(0).isReg() &&
4098 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4099 12 : MI->getOperand(3).isImm() &&
4100 6 : MI->getOperand(3).getImm() == 11) {
4101 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 0, 1, 1 })
4102 : AsmString = "movge %xcc, $\x02, $\x01";
4103 : break;
4104 : }
4105 6 : if (MI->getNumOperands() == 4 &&
4106 12 : MI->getOperand(0).isReg() &&
4107 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4108 12 : MI->getOperand(3).isImm() &&
4109 6 : MI->getOperand(3).getImm() == 3) {
4110 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 0, 1, 1 })
4111 : AsmString = "movl %xcc, $\x02, $\x01";
4112 : break;
4113 : }
4114 4 : if (MI->getNumOperands() == 4 &&
4115 8 : MI->getOperand(0).isReg() &&
4116 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4117 8 : MI->getOperand(3).isImm() &&
4118 4 : MI->getOperand(3).getImm() == 12) {
4119 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 0 })
4120 : AsmString = "movgu %xcc, $\x02, $\x01";
4121 : break;
4122 : }
4123 3 : if (MI->getNumOperands() == 4 &&
4124 6 : MI->getOperand(0).isReg() &&
4125 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4126 6 : MI->getOperand(3).isImm() &&
4127 3 : MI->getOperand(3).getImm() == 4) {
4128 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 0 })
4129 : AsmString = "movleu %xcc, $\x02, $\x01";
4130 : break;
4131 : }
4132 3 : if (MI->getNumOperands() == 4 &&
4133 6 : MI->getOperand(0).isReg() &&
4134 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4135 6 : MI->getOperand(3).isImm() &&
4136 3 : MI->getOperand(3).getImm() == 13) {
4137 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 0, 1 })
4138 : AsmString = "movcc %xcc, $\x02, $\x01";
4139 : break;
4140 : }
4141 3 : if (MI->getNumOperands() == 4 &&
4142 6 : MI->getOperand(0).isReg() &&
4143 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4144 6 : MI->getOperand(3).isImm() &&
4145 3 : MI->getOperand(3).getImm() == 5) {
4146 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 0, 1 })
4147 : AsmString = "movcs %xcc, $\x02, $\x01";
4148 : break;
4149 : }
4150 0 : if (MI->getNumOperands() == 4 &&
4151 0 : MI->getOperand(0).isReg() &&
4152 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4153 0 : MI->getOperand(3).isImm() &&
4154 0 : MI->getOperand(3).getImm() == 14) {
4155 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 0 })
4156 : AsmString = "movpos %xcc, $\x02, $\x01";
4157 : break;
4158 : }
4159 0 : if (MI->getNumOperands() == 4 &&
4160 0 : MI->getOperand(0).isReg() &&
4161 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4162 0 : MI->getOperand(3).isImm() &&
4163 0 : MI->getOperand(3).getImm() == 6) {
4164 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 0 })
4165 : AsmString = "movneg %xcc, $\x02, $\x01";
4166 : break;
4167 : }
4168 0 : if (MI->getNumOperands() == 4 &&
4169 0 : MI->getOperand(0).isReg() &&
4170 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4171 0 : MI->getOperand(3).isImm() &&
4172 0 : MI->getOperand(3).getImm() == 15) {
4173 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 1, 1, 1, 1 })
4174 : AsmString = "movvc %xcc, $\x02, $\x01";
4175 : break;
4176 : }
4177 0 : if (MI->getNumOperands() == 4 &&
4178 0 : MI->getOperand(0).isReg() &&
4179 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4180 0 : MI->getOperand(3).isImm() &&
4181 0 : MI->getOperand(3).getImm() == 7) {
4182 : // (MOVXCCri IntRegs:$rd, i32imm:$simm11, { 0, 1, 1, 1 })
4183 : AsmString = "movvs %xcc, $\x02, $\x01";
4184 : break;
4185 : }
4186 : return false;
4187 : case SP::MOVXCCrr:
4188 17 : if (MI->getNumOperands() == 4 &&
4189 34 : MI->getOperand(0).isReg() &&
4190 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4191 34 : MI->getOperand(1).isReg() &&
4192 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4193 34 : MI->getOperand(3).isImm() &&
4194 17 : MI->getOperand(3).getImm() == 8) {
4195 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 0 })
4196 : AsmString = "mova %xcc, $\x02, $\x01";
4197 : break;
4198 : }
4199 17 : if (MI->getNumOperands() == 4 &&
4200 34 : MI->getOperand(0).isReg() &&
4201 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4202 34 : MI->getOperand(1).isReg() &&
4203 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4204 34 : MI->getOperand(3).isImm() &&
4205 17 : MI->getOperand(3).getImm() == 0) {
4206 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 0 })
4207 : AsmString = "movn %xcc, $\x02, $\x01";
4208 : break;
4209 : }
4210 17 : if (MI->getNumOperands() == 4 &&
4211 34 : MI->getOperand(0).isReg() &&
4212 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4213 34 : MI->getOperand(1).isReg() &&
4214 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4215 34 : MI->getOperand(3).isImm() &&
4216 17 : MI->getOperand(3).getImm() == 9) {
4217 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 0, 1 })
4218 : AsmString = "movne %xcc, $\x02, $\x01";
4219 : break;
4220 : }
4221 16 : if (MI->getNumOperands() == 4 &&
4222 32 : MI->getOperand(0).isReg() &&
4223 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4224 32 : MI->getOperand(1).isReg() &&
4225 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4226 32 : MI->getOperand(3).isImm() &&
4227 16 : MI->getOperand(3).getImm() == 1) {
4228 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 0, 1 })
4229 : AsmString = "move %xcc, $\x02, $\x01";
4230 : break;
4231 : }
4232 15 : if (MI->getNumOperands() == 4 &&
4233 30 : MI->getOperand(0).isReg() &&
4234 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4235 30 : MI->getOperand(1).isReg() &&
4236 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4237 30 : MI->getOperand(3).isImm() &&
4238 15 : MI->getOperand(3).getImm() == 10) {
4239 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 0 })
4240 : AsmString = "movg %xcc, $\x02, $\x01";
4241 : break;
4242 : }
4243 11 : if (MI->getNumOperands() == 4 &&
4244 22 : MI->getOperand(0).isReg() &&
4245 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4246 22 : MI->getOperand(1).isReg() &&
4247 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4248 22 : MI->getOperand(3).isImm() &&
4249 11 : MI->getOperand(3).getImm() == 2) {
4250 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 0 })
4251 : AsmString = "movle %xcc, $\x02, $\x01";
4252 : break;
4253 : }
4254 10 : if (MI->getNumOperands() == 4 &&
4255 20 : MI->getOperand(0).isReg() &&
4256 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4257 20 : MI->getOperand(1).isReg() &&
4258 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4259 20 : MI->getOperand(3).isImm() &&
4260 10 : MI->getOperand(3).getImm() == 11) {
4261 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 0, 1, 1 })
4262 : AsmString = "movge %xcc, $\x02, $\x01";
4263 : break;
4264 : }
4265 9 : if (MI->getNumOperands() == 4 &&
4266 18 : MI->getOperand(0).isReg() &&
4267 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4268 18 : MI->getOperand(1).isReg() &&
4269 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4270 18 : MI->getOperand(3).isImm() &&
4271 9 : MI->getOperand(3).getImm() == 3) {
4272 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 0, 1, 1 })
4273 : AsmString = "movl %xcc, $\x02, $\x01";
4274 : break;
4275 : }
4276 8 : if (MI->getNumOperands() == 4 &&
4277 16 : MI->getOperand(0).isReg() &&
4278 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4279 16 : MI->getOperand(1).isReg() &&
4280 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4281 16 : MI->getOperand(3).isImm() &&
4282 8 : MI->getOperand(3).getImm() == 12) {
4283 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 0 })
4284 : AsmString = "movgu %xcc, $\x02, $\x01";
4285 : break;
4286 : }
4287 7 : if (MI->getNumOperands() == 4 &&
4288 14 : MI->getOperand(0).isReg() &&
4289 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4290 14 : MI->getOperand(1).isReg() &&
4291 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4292 14 : MI->getOperand(3).isImm() &&
4293 7 : MI->getOperand(3).getImm() == 4) {
4294 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 0 })
4295 : AsmString = "movleu %xcc, $\x02, $\x01";
4296 : break;
4297 : }
4298 6 : if (MI->getNumOperands() == 4 &&
4299 12 : MI->getOperand(0).isReg() &&
4300 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4301 12 : MI->getOperand(1).isReg() &&
4302 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4303 12 : MI->getOperand(3).isImm() &&
4304 6 : MI->getOperand(3).getImm() == 13) {
4305 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 0, 1 })
4306 : AsmString = "movcc %xcc, $\x02, $\x01";
4307 : break;
4308 : }
4309 5 : if (MI->getNumOperands() == 4 &&
4310 10 : MI->getOperand(0).isReg() &&
4311 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4312 10 : MI->getOperand(1).isReg() &&
4313 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4314 10 : MI->getOperand(3).isImm() &&
4315 5 : MI->getOperand(3).getImm() == 5) {
4316 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 0, 1 })
4317 : AsmString = "movcs %xcc, $\x02, $\x01";
4318 : break;
4319 : }
4320 4 : if (MI->getNumOperands() == 4 &&
4321 8 : MI->getOperand(0).isReg() &&
4322 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4323 8 : MI->getOperand(1).isReg() &&
4324 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4325 8 : MI->getOperand(3).isImm() &&
4326 4 : MI->getOperand(3).getImm() == 14) {
4327 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 0 })
4328 : AsmString = "movpos %xcc, $\x02, $\x01";
4329 : break;
4330 : }
4331 3 : if (MI->getNumOperands() == 4 &&
4332 6 : MI->getOperand(0).isReg() &&
4333 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4334 6 : MI->getOperand(1).isReg() &&
4335 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4336 6 : MI->getOperand(3).isImm() &&
4337 3 : MI->getOperand(3).getImm() == 6) {
4338 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 0 })
4339 : AsmString = "movneg %xcc, $\x02, $\x01";
4340 : break;
4341 : }
4342 2 : if (MI->getNumOperands() == 4 &&
4343 4 : MI->getOperand(0).isReg() &&
4344 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4345 4 : MI->getOperand(1).isReg() &&
4346 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4347 4 : MI->getOperand(3).isImm() &&
4348 2 : MI->getOperand(3).getImm() == 15) {
4349 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 1, 1, 1, 1 })
4350 : AsmString = "movvc %xcc, $\x02, $\x01";
4351 : break;
4352 : }
4353 1 : if (MI->getNumOperands() == 4 &&
4354 2 : MI->getOperand(0).isReg() &&
4355 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4356 2 : MI->getOperand(1).isReg() &&
4357 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4358 2 : MI->getOperand(3).isImm() &&
4359 1 : MI->getOperand(3).getImm() == 7) {
4360 : // (MOVXCCrr IntRegs:$rd, IntRegs:$rs2, { 0, 1, 1, 1 })
4361 : AsmString = "movvs %xcc, $\x02, $\x01";
4362 : break;
4363 : }
4364 : return false;
4365 : case SP::ORCCrr:
4366 6 : if (MI->getNumOperands() == 3 &&
4367 6 : MI->getOperand(0).getReg() == Sparc::G0 &&
4368 8 : MI->getOperand(1).isReg() &&
4369 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4370 4 : MI->getOperand(2).getReg() == Sparc::G0) {
4371 : // (ORCCrr G0, IntRegs:$rs2, G0)
4372 : AsmString = "tst $\x02";
4373 : break;
4374 : }
4375 : return false;
4376 : case SP::ORri:
4377 314 : if (MI->getNumOperands() == 3 &&
4378 628 : MI->getOperand(0).isReg() &&
4379 628 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4380 314 : MI->getOperand(1).getReg() == Sparc::G0) {
4381 : // (ORri IntRegs:$rd, G0, i32imm:$simm13)
4382 : AsmString = "mov $\x03, $\x01";
4383 : break;
4384 : }
4385 : return false;
4386 : case SP::ORrr:
4387 1063 : if (MI->getNumOperands() == 3 &&
4388 2126 : MI->getOperand(0).isReg() &&
4389 1063 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4390 1063 : MI->getOperand(1).getReg() == Sparc::G0 &&
4391 2895 : MI->getOperand(2).isReg() &&
4392 916 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg())) {
4393 : // (ORrr IntRegs:$rd, G0, IntRegs:$rs2)
4394 : AsmString = "mov $\x03, $\x01";
4395 : break;
4396 : }
4397 : return false;
4398 : case SP::RESTORErr:
4399 379 : if (MI->getNumOperands() == 3 &&
4400 379 : MI->getOperand(0).getReg() == Sparc::G0 &&
4401 673 : MI->getOperand(1).getReg() == Sparc::G0 &&
4402 294 : MI->getOperand(2).getReg() == Sparc::G0) {
4403 : // (RESTORErr G0, G0, G0)
4404 : AsmString = "restore";
4405 : break;
4406 : }
4407 : return false;
4408 : case SP::RET:
4409 282 : if (MI->getNumOperands() == 1 &&
4410 282 : MI->getOperand(0).isImm() &&
4411 282 : MI->getOperand(0).getImm() == 8) {
4412 : // (RET 8)
4413 : AsmString = "ret";
4414 : break;
4415 : }
4416 : return false;
4417 : case SP::RETL:
4418 418 : if (MI->getNumOperands() == 1 &&
4419 418 : MI->getOperand(0).isImm() &&
4420 418 : MI->getOperand(0).getImm() == 8) {
4421 : // (RETL 8)
4422 : AsmString = "retl";
4423 : break;
4424 : }
4425 : return false;
4426 : case SP::SAVErr:
4427 6 : if (MI->getNumOperands() == 3 &&
4428 6 : MI->getOperand(0).getReg() == Sparc::G0 &&
4429 10 : MI->getOperand(1).getReg() == Sparc::G0 &&
4430 4 : MI->getOperand(2).getReg() == Sparc::G0) {
4431 : // (SAVErr G0, G0, G0)
4432 : AsmString = "save";
4433 : break;
4434 : }
4435 : return false;
4436 : case SP::TICCri:
4437 41 : if (MI->getNumOperands() == 3 &&
4438 41 : MI->getOperand(0).getReg() == Sparc::G0 &&
4439 21 : MI->getOperand(2).isImm() &&
4440 62 : MI->getOperand(2).getImm() == 8 &&
4441 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4442 : // (TICCri G0, i32imm:$imm, { 1, 0, 0, 0 })
4443 : AsmString = "ta %icc, $\x02";
4444 : break;
4445 : }
4446 39 : if (MI->getNumOperands() == 3 &&
4447 78 : MI->getOperand(0).isReg() &&
4448 39 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4449 39 : MI->getOperand(2).isImm() &&
4450 78 : MI->getOperand(2).getImm() == 8 &&
4451 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4452 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
4453 : AsmString = "ta %icc, $\x01 + $\x02";
4454 : break;
4455 : }
4456 37 : if (MI->getNumOperands() == 3 &&
4457 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
4458 19 : MI->getOperand(2).isImm() &&
4459 56 : MI->getOperand(2).getImm() == 0 &&
4460 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4461 : // (TICCri G0, i32imm:$imm, { 0, 0, 0, 0 })
4462 : AsmString = "tn %icc, $\x02";
4463 : break;
4464 : }
4465 36 : if (MI->getNumOperands() == 3 &&
4466 72 : MI->getOperand(0).isReg() &&
4467 36 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4468 36 : MI->getOperand(2).isImm() &&
4469 72 : MI->getOperand(2).getImm() == 0 &&
4470 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4471 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
4472 : AsmString = "tn %icc, $\x01 + $\x02";
4473 : break;
4474 : }
4475 35 : if (MI->getNumOperands() == 3 &&
4476 35 : MI->getOperand(0).getReg() == Sparc::G0 &&
4477 18 : MI->getOperand(2).isImm() &&
4478 53 : MI->getOperand(2).getImm() == 9 &&
4479 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4480 : // (TICCri G0, i32imm:$imm, { 1, 0, 0, 1 })
4481 : AsmString = "tne %icc, $\x02";
4482 : break;
4483 : }
4484 33 : if (MI->getNumOperands() == 3 &&
4485 66 : MI->getOperand(0).isReg() &&
4486 33 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4487 33 : MI->getOperand(2).isImm() &&
4488 66 : MI->getOperand(2).getImm() == 9 &&
4489 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4490 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
4491 : AsmString = "tne %icc, $\x01 + $\x02";
4492 : break;
4493 : }
4494 32 : if (MI->getNumOperands() == 3 &&
4495 32 : MI->getOperand(0).getReg() == Sparc::G0 &&
4496 16 : MI->getOperand(2).isImm() &&
4497 48 : MI->getOperand(2).getImm() == 1 &&
4498 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4499 : // (TICCri G0, i32imm:$imm, { 0, 0, 0, 1 })
4500 : AsmString = "te %icc, $\x02";
4501 : break;
4502 : }
4503 31 : if (MI->getNumOperands() == 3 &&
4504 62 : MI->getOperand(0).isReg() &&
4505 31 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4506 31 : MI->getOperand(2).isImm() &&
4507 62 : MI->getOperand(2).getImm() == 1 &&
4508 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4509 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
4510 : AsmString = "te %icc, $\x01 + $\x02";
4511 : break;
4512 : }
4513 30 : if (MI->getNumOperands() == 3 &&
4514 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
4515 15 : MI->getOperand(2).isImm() &&
4516 45 : MI->getOperand(2).getImm() == 10 &&
4517 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4518 : // (TICCri G0, i32imm:$imm, { 1, 0, 1, 0 })
4519 : AsmString = "tg %icc, $\x02";
4520 : break;
4521 : }
4522 29 : if (MI->getNumOperands() == 3 &&
4523 58 : MI->getOperand(0).isReg() &&
4524 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4525 29 : MI->getOperand(2).isImm() &&
4526 58 : MI->getOperand(2).getImm() == 10 &&
4527 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4528 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
4529 : AsmString = "tg %icc, $\x01 + $\x02";
4530 : break;
4531 : }
4532 27 : if (MI->getNumOperands() == 3 &&
4533 27 : MI->getOperand(0).getReg() == Sparc::G0 &&
4534 14 : MI->getOperand(2).isImm() &&
4535 41 : MI->getOperand(2).getImm() == 2 &&
4536 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4537 : // (TICCri G0, i32imm:$imm, { 0, 0, 1, 0 })
4538 : AsmString = "tle %icc, $\x02";
4539 : break;
4540 : }
4541 26 : if (MI->getNumOperands() == 3 &&
4542 52 : MI->getOperand(0).isReg() &&
4543 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4544 26 : MI->getOperand(2).isImm() &&
4545 52 : MI->getOperand(2).getImm() == 2 &&
4546 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4547 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
4548 : AsmString = "tle %icc, $\x01 + $\x02";
4549 : break;
4550 : }
4551 25 : if (MI->getNumOperands() == 3 &&
4552 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
4553 13 : MI->getOperand(2).isImm() &&
4554 38 : MI->getOperand(2).getImm() == 11 &&
4555 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4556 : // (TICCri G0, i32imm:$imm, { 1, 0, 1, 1 })
4557 : AsmString = "tge %icc, $\x02";
4558 : break;
4559 : }
4560 23 : if (MI->getNumOperands() == 3 &&
4561 46 : MI->getOperand(0).isReg() &&
4562 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4563 23 : MI->getOperand(2).isImm() &&
4564 46 : MI->getOperand(2).getImm() == 11 &&
4565 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4566 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
4567 : AsmString = "tge %icc, $\x01 + $\x02";
4568 : break;
4569 : }
4570 22 : if (MI->getNumOperands() == 3 &&
4571 22 : MI->getOperand(0).getReg() == Sparc::G0 &&
4572 11 : MI->getOperand(2).isImm() &&
4573 33 : MI->getOperand(2).getImm() == 3 &&
4574 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4575 : // (TICCri G0, i32imm:$imm, { 0, 0, 1, 1 })
4576 : AsmString = "tl %icc, $\x02";
4577 : break;
4578 : }
4579 21 : if (MI->getNumOperands() == 3 &&
4580 42 : MI->getOperand(0).isReg() &&
4581 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4582 21 : MI->getOperand(2).isImm() &&
4583 42 : MI->getOperand(2).getImm() == 3 &&
4584 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4585 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
4586 : AsmString = "tl %icc, $\x01 + $\x02";
4587 : break;
4588 : }
4589 20 : if (MI->getNumOperands() == 3 &&
4590 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
4591 10 : MI->getOperand(2).isImm() &&
4592 30 : MI->getOperand(2).getImm() == 12 &&
4593 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4594 : // (TICCri G0, i32imm:$imm, { 1, 1, 0, 0 })
4595 : AsmString = "tgu %icc, $\x02";
4596 : break;
4597 : }
4598 19 : if (MI->getNumOperands() == 3 &&
4599 38 : MI->getOperand(0).isReg() &&
4600 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4601 19 : MI->getOperand(2).isImm() &&
4602 38 : MI->getOperand(2).getImm() == 12 &&
4603 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4604 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
4605 : AsmString = "tgu %icc, $\x01 + $\x02";
4606 : break;
4607 : }
4608 17 : if (MI->getNumOperands() == 3 &&
4609 17 : MI->getOperand(0).getReg() == Sparc::G0 &&
4610 9 : MI->getOperand(2).isImm() &&
4611 26 : MI->getOperand(2).getImm() == 4 &&
4612 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4613 : // (TICCri G0, i32imm:$imm, { 0, 1, 0, 0 })
4614 : AsmString = "tleu %icc, $\x02";
4615 : break;
4616 : }
4617 16 : if (MI->getNumOperands() == 3 &&
4618 32 : MI->getOperand(0).isReg() &&
4619 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4620 16 : MI->getOperand(2).isImm() &&
4621 32 : MI->getOperand(2).getImm() == 4 &&
4622 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4623 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
4624 : AsmString = "tleu %icc, $\x01 + $\x02";
4625 : break;
4626 : }
4627 15 : if (MI->getNumOperands() == 3 &&
4628 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
4629 8 : MI->getOperand(2).isImm() &&
4630 23 : MI->getOperand(2).getImm() == 13 &&
4631 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4632 : // (TICCri G0, i32imm:$imm, { 1, 1, 0, 1 })
4633 : AsmString = "tcc %icc, $\x02";
4634 : break;
4635 : }
4636 13 : if (MI->getNumOperands() == 3 &&
4637 26 : MI->getOperand(0).isReg() &&
4638 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4639 13 : MI->getOperand(2).isImm() &&
4640 26 : MI->getOperand(2).getImm() == 13 &&
4641 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4642 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
4643 : AsmString = "tcc %icc, $\x01 + $\x02";
4644 : break;
4645 : }
4646 12 : if (MI->getNumOperands() == 3 &&
4647 12 : MI->getOperand(0).getReg() == Sparc::G0 &&
4648 6 : MI->getOperand(2).isImm() &&
4649 18 : MI->getOperand(2).getImm() == 5 &&
4650 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4651 : // (TICCri G0, i32imm:$imm, { 0, 1, 0, 1 })
4652 : AsmString = "tcs %icc, $\x02";
4653 : break;
4654 : }
4655 11 : if (MI->getNumOperands() == 3 &&
4656 22 : MI->getOperand(0).isReg() &&
4657 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4658 11 : MI->getOperand(2).isImm() &&
4659 22 : MI->getOperand(2).getImm() == 5 &&
4660 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4661 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
4662 : AsmString = "tcs %icc, $\x01 + $\x02";
4663 : break;
4664 : }
4665 10 : if (MI->getNumOperands() == 3 &&
4666 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
4667 5 : MI->getOperand(2).isImm() &&
4668 15 : MI->getOperand(2).getImm() == 14 &&
4669 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4670 : // (TICCri G0, i32imm:$imm, { 1, 1, 1, 0 })
4671 : AsmString = "tpos %icc, $\x02";
4672 : break;
4673 : }
4674 9 : if (MI->getNumOperands() == 3 &&
4675 18 : MI->getOperand(0).isReg() &&
4676 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4677 9 : MI->getOperand(2).isImm() &&
4678 18 : MI->getOperand(2).getImm() == 14 &&
4679 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4680 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
4681 : AsmString = "tpos %icc, $\x01 + $\x02";
4682 : break;
4683 : }
4684 7 : if (MI->getNumOperands() == 3 &&
4685 7 : MI->getOperand(0).getReg() == Sparc::G0 &&
4686 4 : MI->getOperand(2).isImm() &&
4687 11 : MI->getOperand(2).getImm() == 6 &&
4688 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4689 : // (TICCri G0, i32imm:$imm, { 0, 1, 1, 0 })
4690 : AsmString = "tneg %icc, $\x02";
4691 : break;
4692 : }
4693 6 : if (MI->getNumOperands() == 3 &&
4694 12 : MI->getOperand(0).isReg() &&
4695 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4696 6 : MI->getOperand(2).isImm() &&
4697 12 : MI->getOperand(2).getImm() == 6 &&
4698 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4699 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
4700 : AsmString = "tneg %icc, $\x01 + $\x02";
4701 : break;
4702 : }
4703 5 : if (MI->getNumOperands() == 3 &&
4704 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
4705 3 : MI->getOperand(2).isImm() &&
4706 8 : MI->getOperand(2).getImm() == 15 &&
4707 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4708 : // (TICCri G0, i32imm:$imm, { 1, 1, 1, 1 })
4709 : AsmString = "tvc %icc, $\x02";
4710 : break;
4711 : }
4712 3 : if (MI->getNumOperands() == 3 &&
4713 6 : MI->getOperand(0).isReg() &&
4714 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4715 3 : MI->getOperand(2).isImm() &&
4716 6 : MI->getOperand(2).getImm() == 15 &&
4717 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4718 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
4719 : AsmString = "tvc %icc, $\x01 + $\x02";
4720 : break;
4721 : }
4722 2 : if (MI->getNumOperands() == 3 &&
4723 2 : MI->getOperand(0).getReg() == Sparc::G0 &&
4724 1 : MI->getOperand(2).isImm() &&
4725 3 : MI->getOperand(2).getImm() == 7 &&
4726 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4727 : // (TICCri G0, i32imm:$imm, { 0, 1, 1, 1 })
4728 : AsmString = "tvs %icc, $\x02";
4729 : break;
4730 : }
4731 1 : if (MI->getNumOperands() == 3 &&
4732 2 : MI->getOperand(0).isReg() &&
4733 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4734 1 : MI->getOperand(2).isImm() &&
4735 2 : MI->getOperand(2).getImm() == 7 &&
4736 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4737 : // (TICCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
4738 : AsmString = "tvs %icc, $\x01 + $\x02";
4739 : break;
4740 : }
4741 : return false;
4742 : case SP::TICCrr:
4743 44 : if (MI->getNumOperands() == 3 &&
4744 44 : MI->getOperand(0).getReg() == Sparc::G0 &&
4745 46 : MI->getOperand(1).isReg() &&
4746 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4747 23 : MI->getOperand(2).isImm() &&
4748 67 : MI->getOperand(2).getImm() == 8 &&
4749 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4750 : // (TICCrr G0, IntRegs:$rs2, { 1, 0, 0, 0 })
4751 : AsmString = "ta %icc, $\x02";
4752 : break;
4753 : }
4754 42 : if (MI->getNumOperands() == 3 &&
4755 84 : MI->getOperand(0).isReg() &&
4756 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4757 84 : MI->getOperand(1).isReg() &&
4758 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4759 42 : MI->getOperand(2).isImm() &&
4760 84 : MI->getOperand(2).getImm() == 8 &&
4761 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4762 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
4763 : AsmString = "ta %icc, $\x01 + $\x02";
4764 : break;
4765 : }
4766 40 : if (MI->getNumOperands() == 3 &&
4767 40 : MI->getOperand(0).getReg() == Sparc::G0 &&
4768 42 : MI->getOperand(1).isReg() &&
4769 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4770 21 : MI->getOperand(2).isImm() &&
4771 61 : MI->getOperand(2).getImm() == 0 &&
4772 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4773 : // (TICCrr G0, IntRegs:$rs2, { 0, 0, 0, 0 })
4774 : AsmString = "tn %icc, $\x02";
4775 : break;
4776 : }
4777 38 : if (MI->getNumOperands() == 3 &&
4778 76 : MI->getOperand(0).isReg() &&
4779 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4780 76 : MI->getOperand(1).isReg() &&
4781 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4782 38 : MI->getOperand(2).isImm() &&
4783 76 : MI->getOperand(2).getImm() == 0 &&
4784 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4785 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
4786 : AsmString = "tn %icc, $\x01 + $\x02";
4787 : break;
4788 : }
4789 37 : if (MI->getNumOperands() == 3 &&
4790 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
4791 38 : MI->getOperand(1).isReg() &&
4792 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4793 19 : MI->getOperand(2).isImm() &&
4794 56 : MI->getOperand(2).getImm() == 9 &&
4795 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4796 : // (TICCrr G0, IntRegs:$rs2, { 1, 0, 0, 1 })
4797 : AsmString = "tne %icc, $\x02";
4798 : break;
4799 : }
4800 35 : if (MI->getNumOperands() == 3 &&
4801 70 : MI->getOperand(0).isReg() &&
4802 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4803 70 : MI->getOperand(1).isReg() &&
4804 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4805 35 : MI->getOperand(2).isImm() &&
4806 70 : MI->getOperand(2).getImm() == 9 &&
4807 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4808 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
4809 : AsmString = "tne %icc, $\x01 + $\x02";
4810 : break;
4811 : }
4812 34 : if (MI->getNumOperands() == 3 &&
4813 34 : MI->getOperand(0).getReg() == Sparc::G0 &&
4814 34 : MI->getOperand(1).isReg() &&
4815 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4816 17 : MI->getOperand(2).isImm() &&
4817 51 : MI->getOperand(2).getImm() == 1 &&
4818 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4819 : // (TICCrr G0, IntRegs:$rs2, { 0, 0, 0, 1 })
4820 : AsmString = "te %icc, $\x02";
4821 : break;
4822 : }
4823 32 : if (MI->getNumOperands() == 3 &&
4824 64 : MI->getOperand(0).isReg() &&
4825 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4826 64 : MI->getOperand(1).isReg() &&
4827 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4828 32 : MI->getOperand(2).isImm() &&
4829 64 : MI->getOperand(2).getImm() == 1 &&
4830 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4831 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
4832 : AsmString = "te %icc, $\x01 + $\x02";
4833 : break;
4834 : }
4835 30 : if (MI->getNumOperands() == 3 &&
4836 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
4837 30 : MI->getOperand(1).isReg() &&
4838 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4839 15 : MI->getOperand(2).isImm() &&
4840 45 : MI->getOperand(2).getImm() == 10 &&
4841 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4842 : // (TICCrr G0, IntRegs:$rs2, { 1, 0, 1, 0 })
4843 : AsmString = "tg %icc, $\x02";
4844 : break;
4845 : }
4846 29 : if (MI->getNumOperands() == 3 &&
4847 58 : MI->getOperand(0).isReg() &&
4848 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4849 58 : MI->getOperand(1).isReg() &&
4850 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4851 29 : MI->getOperand(2).isImm() &&
4852 58 : MI->getOperand(2).getImm() == 10 &&
4853 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4854 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
4855 : AsmString = "tg %icc, $\x01 + $\x02";
4856 : break;
4857 : }
4858 28 : if (MI->getNumOperands() == 3 &&
4859 28 : MI->getOperand(0).getReg() == Sparc::G0 &&
4860 28 : MI->getOperand(1).isReg() &&
4861 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4862 14 : MI->getOperand(2).isImm() &&
4863 42 : MI->getOperand(2).getImm() == 2 &&
4864 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4865 : // (TICCrr G0, IntRegs:$rs2, { 0, 0, 1, 0 })
4866 : AsmString = "tle %icc, $\x02";
4867 : break;
4868 : }
4869 26 : if (MI->getNumOperands() == 3 &&
4870 52 : MI->getOperand(0).isReg() &&
4871 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4872 52 : MI->getOperand(1).isReg() &&
4873 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4874 26 : MI->getOperand(2).isImm() &&
4875 52 : MI->getOperand(2).getImm() == 2 &&
4876 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4877 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
4878 : AsmString = "tle %icc, $\x01 + $\x02";
4879 : break;
4880 : }
4881 25 : if (MI->getNumOperands() == 3 &&
4882 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
4883 24 : MI->getOperand(1).isReg() &&
4884 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4885 12 : MI->getOperand(2).isImm() &&
4886 37 : MI->getOperand(2).getImm() == 11 &&
4887 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4888 : // (TICCrr G0, IntRegs:$rs2, { 1, 0, 1, 1 })
4889 : AsmString = "tge %icc, $\x02";
4890 : break;
4891 : }
4892 24 : if (MI->getNumOperands() == 3 &&
4893 48 : MI->getOperand(0).isReg() &&
4894 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4895 48 : MI->getOperand(1).isReg() &&
4896 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4897 24 : MI->getOperand(2).isImm() &&
4898 48 : MI->getOperand(2).getImm() == 11 &&
4899 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4900 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
4901 : AsmString = "tge %icc, $\x01 + $\x02";
4902 : break;
4903 : }
4904 23 : if (MI->getNumOperands() == 3 &&
4905 23 : MI->getOperand(0).getReg() == Sparc::G0 &&
4906 22 : MI->getOperand(1).isReg() &&
4907 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4908 11 : MI->getOperand(2).isImm() &&
4909 34 : MI->getOperand(2).getImm() == 3 &&
4910 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4911 : // (TICCrr G0, IntRegs:$rs2, { 0, 0, 1, 1 })
4912 : AsmString = "tl %icc, $\x02";
4913 : break;
4914 : }
4915 22 : if (MI->getNumOperands() == 3 &&
4916 44 : MI->getOperand(0).isReg() &&
4917 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4918 44 : MI->getOperand(1).isReg() &&
4919 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4920 22 : MI->getOperand(2).isImm() &&
4921 44 : MI->getOperand(2).getImm() == 3 &&
4922 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4923 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
4924 : AsmString = "tl %icc, $\x01 + $\x02";
4925 : break;
4926 : }
4927 20 : if (MI->getNumOperands() == 3 &&
4928 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
4929 20 : MI->getOperand(1).isReg() &&
4930 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4931 10 : MI->getOperand(2).isImm() &&
4932 30 : MI->getOperand(2).getImm() == 12 &&
4933 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4934 : // (TICCrr G0, IntRegs:$rs2, { 1, 1, 0, 0 })
4935 : AsmString = "tgu %icc, $\x02";
4936 : break;
4937 : }
4938 19 : if (MI->getNumOperands() == 3 &&
4939 38 : MI->getOperand(0).isReg() &&
4940 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4941 38 : MI->getOperand(1).isReg() &&
4942 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4943 19 : MI->getOperand(2).isImm() &&
4944 38 : MI->getOperand(2).getImm() == 12 &&
4945 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4946 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
4947 : AsmString = "tgu %icc, $\x01 + $\x02";
4948 : break;
4949 : }
4950 18 : if (MI->getNumOperands() == 3 &&
4951 18 : MI->getOperand(0).getReg() == Sparc::G0 &&
4952 18 : MI->getOperand(1).isReg() &&
4953 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4954 9 : MI->getOperand(2).isImm() &&
4955 27 : MI->getOperand(2).getImm() == 4 &&
4956 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4957 : // (TICCrr G0, IntRegs:$rs2, { 0, 1, 0, 0 })
4958 : AsmString = "tleu %icc, $\x02";
4959 : break;
4960 : }
4961 16 : if (MI->getNumOperands() == 3 &&
4962 32 : MI->getOperand(0).isReg() &&
4963 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4964 32 : MI->getOperand(1).isReg() &&
4965 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4966 16 : MI->getOperand(2).isImm() &&
4967 32 : MI->getOperand(2).getImm() == 4 &&
4968 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4969 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
4970 : AsmString = "tleu %icc, $\x01 + $\x02";
4971 : break;
4972 : }
4973 15 : if (MI->getNumOperands() == 3 &&
4974 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
4975 14 : MI->getOperand(1).isReg() &&
4976 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4977 7 : MI->getOperand(2).isImm() &&
4978 22 : MI->getOperand(2).getImm() == 13 &&
4979 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4980 : // (TICCrr G0, IntRegs:$rs2, { 1, 1, 0, 1 })
4981 : AsmString = "tcc %icc, $\x02";
4982 : break;
4983 : }
4984 14 : if (MI->getNumOperands() == 3 &&
4985 28 : MI->getOperand(0).isReg() &&
4986 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
4987 28 : MI->getOperand(1).isReg() &&
4988 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
4989 14 : MI->getOperand(2).isImm() &&
4990 28 : MI->getOperand(2).getImm() == 13 &&
4991 : STI.getFeatureBits()[Sparc::FeatureV9]) {
4992 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
4993 : AsmString = "tcc %icc, $\x01 + $\x02";
4994 : break;
4995 : }
4996 13 : if (MI->getNumOperands() == 3 &&
4997 13 : MI->getOperand(0).getReg() == Sparc::G0 &&
4998 12 : MI->getOperand(1).isReg() &&
4999 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5000 6 : MI->getOperand(2).isImm() &&
5001 19 : MI->getOperand(2).getImm() == 5 &&
5002 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5003 : // (TICCrr G0, IntRegs:$rs2, { 0, 1, 0, 1 })
5004 : AsmString = "tcs %icc, $\x02";
5005 : break;
5006 : }
5007 12 : if (MI->getNumOperands() == 3 &&
5008 24 : MI->getOperand(0).isReg() &&
5009 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5010 24 : MI->getOperand(1).isReg() &&
5011 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5012 12 : MI->getOperand(2).isImm() &&
5013 24 : MI->getOperand(2).getImm() == 5 &&
5014 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5015 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
5016 : AsmString = "tcs %icc, $\x01 + $\x02";
5017 : break;
5018 : }
5019 10 : if (MI->getNumOperands() == 3 &&
5020 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
5021 10 : MI->getOperand(1).isReg() &&
5022 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5023 5 : MI->getOperand(2).isImm() &&
5024 15 : MI->getOperand(2).getImm() == 14 &&
5025 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5026 : // (TICCrr G0, IntRegs:$rs2, { 1, 1, 1, 0 })
5027 : AsmString = "tpos %icc, $\x02";
5028 : break;
5029 : }
5030 9 : if (MI->getNumOperands() == 3 &&
5031 18 : MI->getOperand(0).isReg() &&
5032 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5033 18 : MI->getOperand(1).isReg() &&
5034 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5035 9 : MI->getOperand(2).isImm() &&
5036 18 : MI->getOperand(2).getImm() == 14 &&
5037 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5038 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
5039 : AsmString = "tpos %icc, $\x01 + $\x02";
5040 : break;
5041 : }
5042 8 : if (MI->getNumOperands() == 3 &&
5043 8 : MI->getOperand(0).getReg() == Sparc::G0 &&
5044 8 : MI->getOperand(1).isReg() &&
5045 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5046 4 : MI->getOperand(2).isImm() &&
5047 12 : MI->getOperand(2).getImm() == 6 &&
5048 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5049 : // (TICCrr G0, IntRegs:$rs2, { 0, 1, 1, 0 })
5050 : AsmString = "tneg %icc, $\x02";
5051 : break;
5052 : }
5053 6 : if (MI->getNumOperands() == 3 &&
5054 12 : MI->getOperand(0).isReg() &&
5055 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5056 12 : MI->getOperand(1).isReg() &&
5057 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5058 6 : MI->getOperand(2).isImm() &&
5059 12 : MI->getOperand(2).getImm() == 6 &&
5060 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5061 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
5062 : AsmString = "tneg %icc, $\x01 + $\x02";
5063 : break;
5064 : }
5065 5 : if (MI->getNumOperands() == 3 &&
5066 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
5067 4 : MI->getOperand(1).isReg() &&
5068 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5069 2 : MI->getOperand(2).isImm() &&
5070 7 : MI->getOperand(2).getImm() == 15 &&
5071 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5072 : // (TICCrr G0, IntRegs:$rs2, { 1, 1, 1, 1 })
5073 : AsmString = "tvc %icc, $\x02";
5074 : break;
5075 : }
5076 4 : if (MI->getNumOperands() == 3 &&
5077 8 : MI->getOperand(0).isReg() &&
5078 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5079 8 : MI->getOperand(1).isReg() &&
5080 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5081 4 : MI->getOperand(2).isImm() &&
5082 8 : MI->getOperand(2).getImm() == 15 &&
5083 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5084 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
5085 : AsmString = "tvc %icc, $\x01 + $\x02";
5086 : break;
5087 : }
5088 3 : if (MI->getNumOperands() == 3 &&
5089 3 : MI->getOperand(0).getReg() == Sparc::G0 &&
5090 2 : MI->getOperand(1).isReg() &&
5091 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5092 1 : MI->getOperand(2).isImm() &&
5093 4 : MI->getOperand(2).getImm() == 7 &&
5094 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5095 : // (TICCrr G0, IntRegs:$rs2, { 0, 1, 1, 1 })
5096 : AsmString = "tvs %icc, $\x02";
5097 : break;
5098 : }
5099 2 : if (MI->getNumOperands() == 3 &&
5100 4 : MI->getOperand(0).isReg() &&
5101 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5102 4 : MI->getOperand(1).isReg() &&
5103 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5104 2 : MI->getOperand(2).isImm() &&
5105 4 : MI->getOperand(2).getImm() == 7 &&
5106 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5107 : // (TICCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
5108 : AsmString = "tvs %icc, $\x01 + $\x02";
5109 : break;
5110 : }
5111 : return false;
5112 : case SP::TRAPri:
5113 44 : if (MI->getNumOperands() == 3 &&
5114 44 : MI->getOperand(0).getReg() == Sparc::G0 &&
5115 68 : MI->getOperand(2).isImm() &&
5116 24 : MI->getOperand(2).getImm() == 8) {
5117 : // (TRAPri G0, i32imm:$imm, { 1, 0, 0, 0 })
5118 : AsmString = "ta $\x02";
5119 : break;
5120 : }
5121 39 : if (MI->getNumOperands() == 3 &&
5122 78 : MI->getOperand(0).isReg() &&
5123 39 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5124 78 : MI->getOperand(2).isImm() &&
5125 39 : MI->getOperand(2).getImm() == 8) {
5126 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
5127 : AsmString = "ta $\x01 + $\x02";
5128 : break;
5129 : }
5130 37 : if (MI->getNumOperands() == 3 &&
5131 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
5132 56 : MI->getOperand(2).isImm() &&
5133 19 : MI->getOperand(2).getImm() == 0) {
5134 : // (TRAPri G0, i32imm:$imm, { 0, 0, 0, 0 })
5135 : AsmString = "tn $\x02";
5136 : break;
5137 : }
5138 36 : if (MI->getNumOperands() == 3 &&
5139 72 : MI->getOperand(0).isReg() &&
5140 36 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5141 72 : MI->getOperand(2).isImm() &&
5142 36 : MI->getOperand(2).getImm() == 0) {
5143 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
5144 : AsmString = "tn $\x01 + $\x02";
5145 : break;
5146 : }
5147 35 : if (MI->getNumOperands() == 3 &&
5148 35 : MI->getOperand(0).getReg() == Sparc::G0 &&
5149 53 : MI->getOperand(2).isImm() &&
5150 18 : MI->getOperand(2).getImm() == 9) {
5151 : // (TRAPri G0, i32imm:$imm, { 1, 0, 0, 1 })
5152 : AsmString = "tne $\x02";
5153 : break;
5154 : }
5155 33 : if (MI->getNumOperands() == 3 &&
5156 66 : MI->getOperand(0).isReg() &&
5157 33 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5158 66 : MI->getOperand(2).isImm() &&
5159 33 : MI->getOperand(2).getImm() == 9) {
5160 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
5161 : AsmString = "tne $\x01 + $\x02";
5162 : break;
5163 : }
5164 32 : if (MI->getNumOperands() == 3 &&
5165 32 : MI->getOperand(0).getReg() == Sparc::G0 &&
5166 48 : MI->getOperand(2).isImm() &&
5167 16 : MI->getOperand(2).getImm() == 1) {
5168 : // (TRAPri G0, i32imm:$imm, { 0, 0, 0, 1 })
5169 : AsmString = "te $\x02";
5170 : break;
5171 : }
5172 31 : if (MI->getNumOperands() == 3 &&
5173 62 : MI->getOperand(0).isReg() &&
5174 31 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5175 62 : MI->getOperand(2).isImm() &&
5176 31 : MI->getOperand(2).getImm() == 1) {
5177 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
5178 : AsmString = "te $\x01 + $\x02";
5179 : break;
5180 : }
5181 30 : if (MI->getNumOperands() == 3 &&
5182 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
5183 45 : MI->getOperand(2).isImm() &&
5184 15 : MI->getOperand(2).getImm() == 10) {
5185 : // (TRAPri G0, i32imm:$imm, { 1, 0, 1, 0 })
5186 : AsmString = "tg $\x02";
5187 : break;
5188 : }
5189 29 : if (MI->getNumOperands() == 3 &&
5190 58 : MI->getOperand(0).isReg() &&
5191 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5192 58 : MI->getOperand(2).isImm() &&
5193 29 : MI->getOperand(2).getImm() == 10) {
5194 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
5195 : AsmString = "tg $\x01 + $\x02";
5196 : break;
5197 : }
5198 27 : if (MI->getNumOperands() == 3 &&
5199 27 : MI->getOperand(0).getReg() == Sparc::G0 &&
5200 41 : MI->getOperand(2).isImm() &&
5201 14 : MI->getOperand(2).getImm() == 2) {
5202 : // (TRAPri G0, i32imm:$imm, { 0, 0, 1, 0 })
5203 : AsmString = "tle $\x02";
5204 : break;
5205 : }
5206 26 : if (MI->getNumOperands() == 3 &&
5207 52 : MI->getOperand(0).isReg() &&
5208 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5209 52 : MI->getOperand(2).isImm() &&
5210 26 : MI->getOperand(2).getImm() == 2) {
5211 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
5212 : AsmString = "tle $\x01 + $\x02";
5213 : break;
5214 : }
5215 25 : if (MI->getNumOperands() == 3 &&
5216 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
5217 38 : MI->getOperand(2).isImm() &&
5218 13 : MI->getOperand(2).getImm() == 11) {
5219 : // (TRAPri G0, i32imm:$imm, { 1, 0, 1, 1 })
5220 : AsmString = "tge $\x02";
5221 : break;
5222 : }
5223 23 : if (MI->getNumOperands() == 3 &&
5224 46 : MI->getOperand(0).isReg() &&
5225 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5226 46 : MI->getOperand(2).isImm() &&
5227 23 : MI->getOperand(2).getImm() == 11) {
5228 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
5229 : AsmString = "tge $\x01 + $\x02";
5230 : break;
5231 : }
5232 22 : if (MI->getNumOperands() == 3 &&
5233 22 : MI->getOperand(0).getReg() == Sparc::G0 &&
5234 33 : MI->getOperand(2).isImm() &&
5235 11 : MI->getOperand(2).getImm() == 3) {
5236 : // (TRAPri G0, i32imm:$imm, { 0, 0, 1, 1 })
5237 : AsmString = "tl $\x02";
5238 : break;
5239 : }
5240 21 : if (MI->getNumOperands() == 3 &&
5241 42 : MI->getOperand(0).isReg() &&
5242 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5243 42 : MI->getOperand(2).isImm() &&
5244 21 : MI->getOperand(2).getImm() == 3) {
5245 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
5246 : AsmString = "tl $\x01 + $\x02";
5247 : break;
5248 : }
5249 20 : if (MI->getNumOperands() == 3 &&
5250 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
5251 30 : MI->getOperand(2).isImm() &&
5252 10 : MI->getOperand(2).getImm() == 12) {
5253 : // (TRAPri G0, i32imm:$imm, { 1, 1, 0, 0 })
5254 : AsmString = "tgu $\x02";
5255 : break;
5256 : }
5257 19 : if (MI->getNumOperands() == 3 &&
5258 38 : MI->getOperand(0).isReg() &&
5259 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5260 38 : MI->getOperand(2).isImm() &&
5261 19 : MI->getOperand(2).getImm() == 12) {
5262 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
5263 : AsmString = "tgu $\x01 + $\x02";
5264 : break;
5265 : }
5266 17 : if (MI->getNumOperands() == 3 &&
5267 17 : MI->getOperand(0).getReg() == Sparc::G0 &&
5268 26 : MI->getOperand(2).isImm() &&
5269 9 : MI->getOperand(2).getImm() == 4) {
5270 : // (TRAPri G0, i32imm:$imm, { 0, 1, 0, 0 })
5271 : AsmString = "tleu $\x02";
5272 : break;
5273 : }
5274 16 : if (MI->getNumOperands() == 3 &&
5275 32 : MI->getOperand(0).isReg() &&
5276 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5277 32 : MI->getOperand(2).isImm() &&
5278 16 : MI->getOperand(2).getImm() == 4) {
5279 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
5280 : AsmString = "tleu $\x01 + $\x02";
5281 : break;
5282 : }
5283 15 : if (MI->getNumOperands() == 3 &&
5284 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
5285 23 : MI->getOperand(2).isImm() &&
5286 8 : MI->getOperand(2).getImm() == 13) {
5287 : // (TRAPri G0, i32imm:$imm, { 1, 1, 0, 1 })
5288 : AsmString = "tcc $\x02";
5289 : break;
5290 : }
5291 13 : if (MI->getNumOperands() == 3 &&
5292 26 : MI->getOperand(0).isReg() &&
5293 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5294 26 : MI->getOperand(2).isImm() &&
5295 13 : MI->getOperand(2).getImm() == 13) {
5296 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
5297 : AsmString = "tcc $\x01 + $\x02";
5298 : break;
5299 : }
5300 12 : if (MI->getNumOperands() == 3 &&
5301 12 : MI->getOperand(0).getReg() == Sparc::G0 &&
5302 18 : MI->getOperand(2).isImm() &&
5303 6 : MI->getOperand(2).getImm() == 5) {
5304 : // (TRAPri G0, i32imm:$imm, { 0, 1, 0, 1 })
5305 : AsmString = "tcs $\x02";
5306 : break;
5307 : }
5308 11 : if (MI->getNumOperands() == 3 &&
5309 22 : MI->getOperand(0).isReg() &&
5310 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5311 22 : MI->getOperand(2).isImm() &&
5312 11 : MI->getOperand(2).getImm() == 5) {
5313 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
5314 : AsmString = "tcs $\x01 + $\x02";
5315 : break;
5316 : }
5317 10 : if (MI->getNumOperands() == 3 &&
5318 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
5319 15 : MI->getOperand(2).isImm() &&
5320 5 : MI->getOperand(2).getImm() == 14) {
5321 : // (TRAPri G0, i32imm:$imm, { 1, 1, 1, 0 })
5322 : AsmString = "tpos $\x02";
5323 : break;
5324 : }
5325 9 : if (MI->getNumOperands() == 3 &&
5326 18 : MI->getOperand(0).isReg() &&
5327 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5328 18 : MI->getOperand(2).isImm() &&
5329 9 : MI->getOperand(2).getImm() == 14) {
5330 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
5331 : AsmString = "tpos $\x01 + $\x02";
5332 : break;
5333 : }
5334 7 : if (MI->getNumOperands() == 3 &&
5335 7 : MI->getOperand(0).getReg() == Sparc::G0 &&
5336 11 : MI->getOperand(2).isImm() &&
5337 4 : MI->getOperand(2).getImm() == 6) {
5338 : // (TRAPri G0, i32imm:$imm, { 0, 1, 1, 0 })
5339 : AsmString = "tneg $\x02";
5340 : break;
5341 : }
5342 6 : if (MI->getNumOperands() == 3 &&
5343 12 : MI->getOperand(0).isReg() &&
5344 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5345 12 : MI->getOperand(2).isImm() &&
5346 6 : MI->getOperand(2).getImm() == 6) {
5347 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
5348 : AsmString = "tneg $\x01 + $\x02";
5349 : break;
5350 : }
5351 5 : if (MI->getNumOperands() == 3 &&
5352 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
5353 8 : MI->getOperand(2).isImm() &&
5354 3 : MI->getOperand(2).getImm() == 15) {
5355 : // (TRAPri G0, i32imm:$imm, { 1, 1, 1, 1 })
5356 : AsmString = "tvc $\x02";
5357 : break;
5358 : }
5359 3 : if (MI->getNumOperands() == 3 &&
5360 6 : MI->getOperand(0).isReg() &&
5361 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5362 6 : MI->getOperand(2).isImm() &&
5363 3 : MI->getOperand(2).getImm() == 15) {
5364 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
5365 : AsmString = "tvc $\x01 + $\x02";
5366 : break;
5367 : }
5368 2 : if (MI->getNumOperands() == 3 &&
5369 2 : MI->getOperand(0).getReg() == Sparc::G0 &&
5370 3 : MI->getOperand(2).isImm() &&
5371 1 : MI->getOperand(2).getImm() == 7) {
5372 : // (TRAPri G0, i32imm:$imm, { 0, 1, 1, 1 })
5373 : AsmString = "tvs $\x02";
5374 : break;
5375 : }
5376 1 : if (MI->getNumOperands() == 3 &&
5377 2 : MI->getOperand(0).isReg() &&
5378 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5379 2 : MI->getOperand(2).isImm() &&
5380 1 : MI->getOperand(2).getImm() == 7) {
5381 : // (TRAPri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
5382 : AsmString = "tvs $\x01 + $\x02";
5383 : break;
5384 : }
5385 : return false;
5386 : case SP::TRAPrr:
5387 44 : if (MI->getNumOperands() == 3 &&
5388 44 : MI->getOperand(0).getReg() == Sparc::G0 &&
5389 46 : MI->getOperand(1).isReg() &&
5390 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5391 67 : MI->getOperand(2).isImm() &&
5392 23 : MI->getOperand(2).getImm() == 8) {
5393 : // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 0, 0 })
5394 : AsmString = "ta $\x02";
5395 : break;
5396 : }
5397 42 : if (MI->getNumOperands() == 3 &&
5398 84 : MI->getOperand(0).isReg() &&
5399 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5400 84 : MI->getOperand(1).isReg() &&
5401 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5402 84 : MI->getOperand(2).isImm() &&
5403 42 : MI->getOperand(2).getImm() == 8) {
5404 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
5405 : AsmString = "ta $\x01 + $\x02";
5406 : break;
5407 : }
5408 40 : if (MI->getNumOperands() == 3 &&
5409 40 : MI->getOperand(0).getReg() == Sparc::G0 &&
5410 42 : MI->getOperand(1).isReg() &&
5411 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5412 61 : MI->getOperand(2).isImm() &&
5413 21 : MI->getOperand(2).getImm() == 0) {
5414 : // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 0, 0 })
5415 : AsmString = "tn $\x02";
5416 : break;
5417 : }
5418 38 : if (MI->getNumOperands() == 3 &&
5419 76 : MI->getOperand(0).isReg() &&
5420 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5421 76 : MI->getOperand(1).isReg() &&
5422 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5423 76 : MI->getOperand(2).isImm() &&
5424 38 : MI->getOperand(2).getImm() == 0) {
5425 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
5426 : AsmString = "tn $\x01 + $\x02";
5427 : break;
5428 : }
5429 37 : if (MI->getNumOperands() == 3 &&
5430 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
5431 38 : MI->getOperand(1).isReg() &&
5432 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5433 56 : MI->getOperand(2).isImm() &&
5434 19 : MI->getOperand(2).getImm() == 9) {
5435 : // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 0, 1 })
5436 : AsmString = "tne $\x02";
5437 : break;
5438 : }
5439 35 : if (MI->getNumOperands() == 3 &&
5440 70 : MI->getOperand(0).isReg() &&
5441 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5442 70 : MI->getOperand(1).isReg() &&
5443 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5444 70 : MI->getOperand(2).isImm() &&
5445 35 : MI->getOperand(2).getImm() == 9) {
5446 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
5447 : AsmString = "tne $\x01 + $\x02";
5448 : break;
5449 : }
5450 34 : if (MI->getNumOperands() == 3 &&
5451 34 : MI->getOperand(0).getReg() == Sparc::G0 &&
5452 34 : MI->getOperand(1).isReg() &&
5453 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5454 51 : MI->getOperand(2).isImm() &&
5455 17 : MI->getOperand(2).getImm() == 1) {
5456 : // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 0, 1 })
5457 : AsmString = "te $\x02";
5458 : break;
5459 : }
5460 32 : if (MI->getNumOperands() == 3 &&
5461 64 : MI->getOperand(0).isReg() &&
5462 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5463 64 : MI->getOperand(1).isReg() &&
5464 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5465 64 : MI->getOperand(2).isImm() &&
5466 32 : MI->getOperand(2).getImm() == 1) {
5467 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
5468 : AsmString = "te $\x01 + $\x02";
5469 : break;
5470 : }
5471 30 : if (MI->getNumOperands() == 3 &&
5472 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
5473 30 : MI->getOperand(1).isReg() &&
5474 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5475 45 : MI->getOperand(2).isImm() &&
5476 15 : MI->getOperand(2).getImm() == 10) {
5477 : // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 1, 0 })
5478 : AsmString = "tg $\x02";
5479 : break;
5480 : }
5481 29 : if (MI->getNumOperands() == 3 &&
5482 58 : MI->getOperand(0).isReg() &&
5483 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5484 58 : MI->getOperand(1).isReg() &&
5485 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5486 58 : MI->getOperand(2).isImm() &&
5487 29 : MI->getOperand(2).getImm() == 10) {
5488 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
5489 : AsmString = "tg $\x01 + $\x02";
5490 : break;
5491 : }
5492 28 : if (MI->getNumOperands() == 3 &&
5493 28 : MI->getOperand(0).getReg() == Sparc::G0 &&
5494 28 : MI->getOperand(1).isReg() &&
5495 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5496 42 : MI->getOperand(2).isImm() &&
5497 14 : MI->getOperand(2).getImm() == 2) {
5498 : // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 1, 0 })
5499 : AsmString = "tle $\x02";
5500 : break;
5501 : }
5502 26 : if (MI->getNumOperands() == 3 &&
5503 52 : MI->getOperand(0).isReg() &&
5504 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5505 52 : MI->getOperand(1).isReg() &&
5506 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5507 52 : MI->getOperand(2).isImm() &&
5508 26 : MI->getOperand(2).getImm() == 2) {
5509 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
5510 : AsmString = "tle $\x01 + $\x02";
5511 : break;
5512 : }
5513 25 : if (MI->getNumOperands() == 3 &&
5514 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
5515 24 : MI->getOperand(1).isReg() &&
5516 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5517 37 : MI->getOperand(2).isImm() &&
5518 12 : MI->getOperand(2).getImm() == 11) {
5519 : // (TRAPrr G0, IntRegs:$rs1, { 1, 0, 1, 1 })
5520 : AsmString = "tge $\x02";
5521 : break;
5522 : }
5523 24 : if (MI->getNumOperands() == 3 &&
5524 48 : MI->getOperand(0).isReg() &&
5525 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5526 48 : MI->getOperand(1).isReg() &&
5527 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5528 48 : MI->getOperand(2).isImm() &&
5529 24 : MI->getOperand(2).getImm() == 11) {
5530 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
5531 : AsmString = "tge $\x01 + $\x02";
5532 : break;
5533 : }
5534 23 : if (MI->getNumOperands() == 3 &&
5535 23 : MI->getOperand(0).getReg() == Sparc::G0 &&
5536 22 : MI->getOperand(1).isReg() &&
5537 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5538 34 : MI->getOperand(2).isImm() &&
5539 11 : MI->getOperand(2).getImm() == 3) {
5540 : // (TRAPrr G0, IntRegs:$rs1, { 0, 0, 1, 1 })
5541 : AsmString = "tl $\x02";
5542 : break;
5543 : }
5544 22 : if (MI->getNumOperands() == 3 &&
5545 44 : MI->getOperand(0).isReg() &&
5546 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5547 44 : MI->getOperand(1).isReg() &&
5548 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5549 44 : MI->getOperand(2).isImm() &&
5550 22 : MI->getOperand(2).getImm() == 3) {
5551 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
5552 : AsmString = "tl $\x01 + $\x02";
5553 : break;
5554 : }
5555 20 : if (MI->getNumOperands() == 3 &&
5556 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
5557 20 : MI->getOperand(1).isReg() &&
5558 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5559 30 : MI->getOperand(2).isImm() &&
5560 10 : MI->getOperand(2).getImm() == 12) {
5561 : // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 0, 0 })
5562 : AsmString = "tgu $\x02";
5563 : break;
5564 : }
5565 19 : if (MI->getNumOperands() == 3 &&
5566 38 : MI->getOperand(0).isReg() &&
5567 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5568 38 : MI->getOperand(1).isReg() &&
5569 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5570 38 : MI->getOperand(2).isImm() &&
5571 19 : MI->getOperand(2).getImm() == 12) {
5572 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
5573 : AsmString = "tgu $\x01 + $\x02";
5574 : break;
5575 : }
5576 18 : if (MI->getNumOperands() == 3 &&
5577 18 : MI->getOperand(0).getReg() == Sparc::G0 &&
5578 18 : MI->getOperand(1).isReg() &&
5579 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5580 27 : MI->getOperand(2).isImm() &&
5581 9 : MI->getOperand(2).getImm() == 4) {
5582 : // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 0, 0 })
5583 : AsmString = "tleu $\x02";
5584 : break;
5585 : }
5586 16 : if (MI->getNumOperands() == 3 &&
5587 32 : MI->getOperand(0).isReg() &&
5588 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5589 32 : MI->getOperand(1).isReg() &&
5590 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5591 32 : MI->getOperand(2).isImm() &&
5592 16 : MI->getOperand(2).getImm() == 4) {
5593 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
5594 : AsmString = "tleu $\x01 + $\x02";
5595 : break;
5596 : }
5597 15 : if (MI->getNumOperands() == 3 &&
5598 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
5599 14 : MI->getOperand(1).isReg() &&
5600 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5601 22 : MI->getOperand(2).isImm() &&
5602 7 : MI->getOperand(2).getImm() == 13) {
5603 : // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 0, 1 })
5604 : AsmString = "tcc $\x02";
5605 : break;
5606 : }
5607 14 : if (MI->getNumOperands() == 3 &&
5608 28 : MI->getOperand(0).isReg() &&
5609 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5610 28 : MI->getOperand(1).isReg() &&
5611 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5612 28 : MI->getOperand(2).isImm() &&
5613 14 : MI->getOperand(2).getImm() == 13) {
5614 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
5615 : AsmString = "tcc $\x01 + $\x02";
5616 : break;
5617 : }
5618 13 : if (MI->getNumOperands() == 3 &&
5619 13 : MI->getOperand(0).getReg() == Sparc::G0 &&
5620 12 : MI->getOperand(1).isReg() &&
5621 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5622 19 : MI->getOperand(2).isImm() &&
5623 6 : MI->getOperand(2).getImm() == 5) {
5624 : // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 0, 1 })
5625 : AsmString = "tcs $\x02";
5626 : break;
5627 : }
5628 12 : if (MI->getNumOperands() == 3 &&
5629 24 : MI->getOperand(0).isReg() &&
5630 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5631 24 : MI->getOperand(1).isReg() &&
5632 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5633 24 : MI->getOperand(2).isImm() &&
5634 12 : MI->getOperand(2).getImm() == 5) {
5635 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
5636 : AsmString = "tcs $\x01 + $\x02";
5637 : break;
5638 : }
5639 10 : if (MI->getNumOperands() == 3 &&
5640 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
5641 10 : MI->getOperand(1).isReg() &&
5642 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5643 15 : MI->getOperand(2).isImm() &&
5644 5 : MI->getOperand(2).getImm() == 14) {
5645 : // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 1, 0 })
5646 : AsmString = "tpos $\x02";
5647 : break;
5648 : }
5649 9 : if (MI->getNumOperands() == 3 &&
5650 18 : MI->getOperand(0).isReg() &&
5651 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5652 18 : MI->getOperand(1).isReg() &&
5653 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5654 18 : MI->getOperand(2).isImm() &&
5655 9 : MI->getOperand(2).getImm() == 14) {
5656 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
5657 : AsmString = "tpos $\x01 + $\x02";
5658 : break;
5659 : }
5660 8 : if (MI->getNumOperands() == 3 &&
5661 8 : MI->getOperand(0).getReg() == Sparc::G0 &&
5662 8 : MI->getOperand(1).isReg() &&
5663 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5664 12 : MI->getOperand(2).isImm() &&
5665 4 : MI->getOperand(2).getImm() == 6) {
5666 : // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 1, 0 })
5667 : AsmString = "tneg $\x02";
5668 : break;
5669 : }
5670 6 : if (MI->getNumOperands() == 3 &&
5671 12 : MI->getOperand(0).isReg() &&
5672 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5673 12 : MI->getOperand(1).isReg() &&
5674 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5675 12 : MI->getOperand(2).isImm() &&
5676 6 : MI->getOperand(2).getImm() == 6) {
5677 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
5678 : AsmString = "tneg $\x01 + $\x02";
5679 : break;
5680 : }
5681 5 : if (MI->getNumOperands() == 3 &&
5682 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
5683 4 : MI->getOperand(1).isReg() &&
5684 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5685 7 : MI->getOperand(2).isImm() &&
5686 2 : MI->getOperand(2).getImm() == 15) {
5687 : // (TRAPrr G0, IntRegs:$rs1, { 1, 1, 1, 1 })
5688 : AsmString = "tvc $\x02";
5689 : break;
5690 : }
5691 4 : if (MI->getNumOperands() == 3 &&
5692 8 : MI->getOperand(0).isReg() &&
5693 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5694 8 : MI->getOperand(1).isReg() &&
5695 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5696 8 : MI->getOperand(2).isImm() &&
5697 4 : MI->getOperand(2).getImm() == 15) {
5698 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
5699 : AsmString = "tvc $\x01 + $\x02";
5700 : break;
5701 : }
5702 3 : if (MI->getNumOperands() == 3 &&
5703 3 : MI->getOperand(0).getReg() == Sparc::G0 &&
5704 2 : MI->getOperand(1).isReg() &&
5705 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5706 4 : MI->getOperand(2).isImm() &&
5707 1 : MI->getOperand(2).getImm() == 7) {
5708 : // (TRAPrr G0, IntRegs:$rs1, { 0, 1, 1, 1 })
5709 : AsmString = "tvs $\x02";
5710 : break;
5711 : }
5712 2 : if (MI->getNumOperands() == 3 &&
5713 4 : MI->getOperand(0).isReg() &&
5714 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5715 4 : MI->getOperand(1).isReg() &&
5716 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
5717 4 : MI->getOperand(2).isImm() &&
5718 2 : MI->getOperand(2).getImm() == 7) {
5719 : // (TRAPrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
5720 : AsmString = "tvs $\x01 + $\x02";
5721 : break;
5722 : }
5723 : return false;
5724 : case SP::TXCCri:
5725 41 : if (MI->getNumOperands() == 3 &&
5726 41 : MI->getOperand(0).getReg() == Sparc::G0 &&
5727 21 : MI->getOperand(2).isImm() &&
5728 62 : MI->getOperand(2).getImm() == 8 &&
5729 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5730 : // (TXCCri G0, i32imm:$imm, { 1, 0, 0, 0 })
5731 : AsmString = "ta %xcc, $\x02";
5732 : break;
5733 : }
5734 39 : if (MI->getNumOperands() == 3 &&
5735 78 : MI->getOperand(0).isReg() &&
5736 39 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5737 39 : MI->getOperand(2).isImm() &&
5738 78 : MI->getOperand(2).getImm() == 8 &&
5739 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5740 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 0 })
5741 : AsmString = "ta %xcc, $\x01 + $\x02";
5742 : break;
5743 : }
5744 37 : if (MI->getNumOperands() == 3 &&
5745 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
5746 19 : MI->getOperand(2).isImm() &&
5747 56 : MI->getOperand(2).getImm() == 0 &&
5748 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5749 : // (TXCCri G0, i32imm:$imm, { 0, 0, 0, 0 })
5750 : AsmString = "tn %xcc, $\x02";
5751 : break;
5752 : }
5753 36 : if (MI->getNumOperands() == 3 &&
5754 72 : MI->getOperand(0).isReg() &&
5755 36 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5756 36 : MI->getOperand(2).isImm() &&
5757 72 : MI->getOperand(2).getImm() == 0 &&
5758 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5759 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 0 })
5760 : AsmString = "tn %xcc, $\x01 + $\x02";
5761 : break;
5762 : }
5763 35 : if (MI->getNumOperands() == 3 &&
5764 35 : MI->getOperand(0).getReg() == Sparc::G0 &&
5765 18 : MI->getOperand(2).isImm() &&
5766 53 : MI->getOperand(2).getImm() == 9 &&
5767 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5768 : // (TXCCri G0, i32imm:$imm, { 1, 0, 0, 1 })
5769 : AsmString = "tne %xcc, $\x02";
5770 : break;
5771 : }
5772 33 : if (MI->getNumOperands() == 3 &&
5773 66 : MI->getOperand(0).isReg() &&
5774 33 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5775 33 : MI->getOperand(2).isImm() &&
5776 66 : MI->getOperand(2).getImm() == 9 &&
5777 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5778 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 0, 1 })
5779 : AsmString = "tne %xcc, $\x01 + $\x02";
5780 : break;
5781 : }
5782 32 : if (MI->getNumOperands() == 3 &&
5783 32 : MI->getOperand(0).getReg() == Sparc::G0 &&
5784 16 : MI->getOperand(2).isImm() &&
5785 48 : MI->getOperand(2).getImm() == 1 &&
5786 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5787 : // (TXCCri G0, i32imm:$imm, { 0, 0, 0, 1 })
5788 : AsmString = "te %xcc, $\x02";
5789 : break;
5790 : }
5791 31 : if (MI->getNumOperands() == 3 &&
5792 62 : MI->getOperand(0).isReg() &&
5793 31 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5794 31 : MI->getOperand(2).isImm() &&
5795 62 : MI->getOperand(2).getImm() == 1 &&
5796 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5797 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 0, 1 })
5798 : AsmString = "te %xcc, $\x01 + $\x02";
5799 : break;
5800 : }
5801 30 : if (MI->getNumOperands() == 3 &&
5802 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
5803 15 : MI->getOperand(2).isImm() &&
5804 45 : MI->getOperand(2).getImm() == 10 &&
5805 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5806 : // (TXCCri G0, i32imm:$imm, { 1, 0, 1, 0 })
5807 : AsmString = "tg %xcc, $\x02";
5808 : break;
5809 : }
5810 29 : if (MI->getNumOperands() == 3 &&
5811 58 : MI->getOperand(0).isReg() &&
5812 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5813 29 : MI->getOperand(2).isImm() &&
5814 58 : MI->getOperand(2).getImm() == 10 &&
5815 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5816 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 0 })
5817 : AsmString = "tg %xcc, $\x01 + $\x02";
5818 : break;
5819 : }
5820 27 : if (MI->getNumOperands() == 3 &&
5821 27 : MI->getOperand(0).getReg() == Sparc::G0 &&
5822 14 : MI->getOperand(2).isImm() &&
5823 41 : MI->getOperand(2).getImm() == 2 &&
5824 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5825 : // (TXCCri G0, i32imm:$imm, { 0, 0, 1, 0 })
5826 : AsmString = "tle %xcc, $\x02";
5827 : break;
5828 : }
5829 26 : if (MI->getNumOperands() == 3 &&
5830 52 : MI->getOperand(0).isReg() &&
5831 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5832 26 : MI->getOperand(2).isImm() &&
5833 52 : MI->getOperand(2).getImm() == 2 &&
5834 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5835 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 0 })
5836 : AsmString = "tle %xcc, $\x01 + $\x02";
5837 : break;
5838 : }
5839 25 : if (MI->getNumOperands() == 3 &&
5840 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
5841 13 : MI->getOperand(2).isImm() &&
5842 38 : MI->getOperand(2).getImm() == 11 &&
5843 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5844 : // (TXCCri G0, i32imm:$imm, { 1, 0, 1, 1 })
5845 : AsmString = "tge %xcc, $\x02";
5846 : break;
5847 : }
5848 23 : if (MI->getNumOperands() == 3 &&
5849 46 : MI->getOperand(0).isReg() &&
5850 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5851 23 : MI->getOperand(2).isImm() &&
5852 46 : MI->getOperand(2).getImm() == 11 &&
5853 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5854 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 0, 1, 1 })
5855 : AsmString = "tge %xcc, $\x01 + $\x02";
5856 : break;
5857 : }
5858 22 : if (MI->getNumOperands() == 3 &&
5859 22 : MI->getOperand(0).getReg() == Sparc::G0 &&
5860 11 : MI->getOperand(2).isImm() &&
5861 33 : MI->getOperand(2).getImm() == 3 &&
5862 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5863 : // (TXCCri G0, i32imm:$imm, { 0, 0, 1, 1 })
5864 : AsmString = "tl %xcc, $\x02";
5865 : break;
5866 : }
5867 21 : if (MI->getNumOperands() == 3 &&
5868 42 : MI->getOperand(0).isReg() &&
5869 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5870 21 : MI->getOperand(2).isImm() &&
5871 42 : MI->getOperand(2).getImm() == 3 &&
5872 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5873 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 0, 1, 1 })
5874 : AsmString = "tl %xcc, $\x01 + $\x02";
5875 : break;
5876 : }
5877 20 : if (MI->getNumOperands() == 3 &&
5878 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
5879 10 : MI->getOperand(2).isImm() &&
5880 30 : MI->getOperand(2).getImm() == 12 &&
5881 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5882 : // (TXCCri G0, i32imm:$imm, { 1, 1, 0, 0 })
5883 : AsmString = "tgu %xcc, $\x02";
5884 : break;
5885 : }
5886 19 : if (MI->getNumOperands() == 3 &&
5887 38 : MI->getOperand(0).isReg() &&
5888 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5889 19 : MI->getOperand(2).isImm() &&
5890 38 : MI->getOperand(2).getImm() == 12 &&
5891 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5892 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 0 })
5893 : AsmString = "tgu %xcc, $\x01 + $\x02";
5894 : break;
5895 : }
5896 17 : if (MI->getNumOperands() == 3 &&
5897 17 : MI->getOperand(0).getReg() == Sparc::G0 &&
5898 9 : MI->getOperand(2).isImm() &&
5899 26 : MI->getOperand(2).getImm() == 4 &&
5900 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5901 : // (TXCCri G0, i32imm:$imm, { 0, 1, 0, 0 })
5902 : AsmString = "tleu %xcc, $\x02";
5903 : break;
5904 : }
5905 16 : if (MI->getNumOperands() == 3 &&
5906 32 : MI->getOperand(0).isReg() &&
5907 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5908 16 : MI->getOperand(2).isImm() &&
5909 32 : MI->getOperand(2).getImm() == 4 &&
5910 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5911 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 0 })
5912 : AsmString = "tleu %xcc, $\x01 + $\x02";
5913 : break;
5914 : }
5915 15 : if (MI->getNumOperands() == 3 &&
5916 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
5917 8 : MI->getOperand(2).isImm() &&
5918 23 : MI->getOperand(2).getImm() == 13 &&
5919 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5920 : // (TXCCri G0, i32imm:$imm, { 1, 1, 0, 1 })
5921 : AsmString = "tcc %xcc, $\x02";
5922 : break;
5923 : }
5924 13 : if (MI->getNumOperands() == 3 &&
5925 26 : MI->getOperand(0).isReg() &&
5926 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5927 13 : MI->getOperand(2).isImm() &&
5928 26 : MI->getOperand(2).getImm() == 13 &&
5929 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5930 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 0, 1 })
5931 : AsmString = "tcc %xcc, $\x01 + $\x02";
5932 : break;
5933 : }
5934 12 : if (MI->getNumOperands() == 3 &&
5935 12 : MI->getOperand(0).getReg() == Sparc::G0 &&
5936 6 : MI->getOperand(2).isImm() &&
5937 18 : MI->getOperand(2).getImm() == 5 &&
5938 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5939 : // (TXCCri G0, i32imm:$imm, { 0, 1, 0, 1 })
5940 : AsmString = "tcs %xcc, $\x02";
5941 : break;
5942 : }
5943 11 : if (MI->getNumOperands() == 3 &&
5944 22 : MI->getOperand(0).isReg() &&
5945 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5946 11 : MI->getOperand(2).isImm() &&
5947 22 : MI->getOperand(2).getImm() == 5 &&
5948 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5949 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 0, 1 })
5950 : AsmString = "tcs %xcc, $\x01 + $\x02";
5951 : break;
5952 : }
5953 10 : if (MI->getNumOperands() == 3 &&
5954 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
5955 5 : MI->getOperand(2).isImm() &&
5956 15 : MI->getOperand(2).getImm() == 14 &&
5957 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5958 : // (TXCCri G0, i32imm:$imm, { 1, 1, 1, 0 })
5959 : AsmString = "tpos %xcc, $\x02";
5960 : break;
5961 : }
5962 9 : if (MI->getNumOperands() == 3 &&
5963 18 : MI->getOperand(0).isReg() &&
5964 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5965 9 : MI->getOperand(2).isImm() &&
5966 18 : MI->getOperand(2).getImm() == 14 &&
5967 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5968 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 0 })
5969 : AsmString = "tpos %xcc, $\x01 + $\x02";
5970 : break;
5971 : }
5972 7 : if (MI->getNumOperands() == 3 &&
5973 7 : MI->getOperand(0).getReg() == Sparc::G0 &&
5974 4 : MI->getOperand(2).isImm() &&
5975 11 : MI->getOperand(2).getImm() == 6 &&
5976 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5977 : // (TXCCri G0, i32imm:$imm, { 0, 1, 1, 0 })
5978 : AsmString = "tneg %xcc, $\x02";
5979 : break;
5980 : }
5981 6 : if (MI->getNumOperands() == 3 &&
5982 12 : MI->getOperand(0).isReg() &&
5983 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
5984 6 : MI->getOperand(2).isImm() &&
5985 12 : MI->getOperand(2).getImm() == 6 &&
5986 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5987 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 0 })
5988 : AsmString = "tneg %xcc, $\x01 + $\x02";
5989 : break;
5990 : }
5991 5 : if (MI->getNumOperands() == 3 &&
5992 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
5993 3 : MI->getOperand(2).isImm() &&
5994 8 : MI->getOperand(2).getImm() == 15 &&
5995 : STI.getFeatureBits()[Sparc::FeatureV9]) {
5996 : // (TXCCri G0, i32imm:$imm, { 1, 1, 1, 1 })
5997 : AsmString = "tvc %xcc, $\x02";
5998 : break;
5999 : }
6000 3 : if (MI->getNumOperands() == 3 &&
6001 6 : MI->getOperand(0).isReg() &&
6002 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6003 3 : MI->getOperand(2).isImm() &&
6004 6 : MI->getOperand(2).getImm() == 15 &&
6005 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6006 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 1, 1, 1, 1 })
6007 : AsmString = "tvc %xcc, $\x01 + $\x02";
6008 : break;
6009 : }
6010 2 : if (MI->getNumOperands() == 3 &&
6011 2 : MI->getOperand(0).getReg() == Sparc::G0 &&
6012 1 : MI->getOperand(2).isImm() &&
6013 3 : MI->getOperand(2).getImm() == 7 &&
6014 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6015 : // (TXCCri G0, i32imm:$imm, { 0, 1, 1, 1 })
6016 : AsmString = "tvs %xcc, $\x02";
6017 : break;
6018 : }
6019 1 : if (MI->getNumOperands() == 3 &&
6020 2 : MI->getOperand(0).isReg() &&
6021 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6022 1 : MI->getOperand(2).isImm() &&
6023 2 : MI->getOperand(2).getImm() == 7 &&
6024 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6025 : // (TXCCri IntRegs:$rs1, i32imm:$imm, { 0, 1, 1, 1 })
6026 : AsmString = "tvs %xcc, $\x01 + $\x02";
6027 : break;
6028 : }
6029 : return false;
6030 : case SP::TXCCrr:
6031 44 : if (MI->getNumOperands() == 3 &&
6032 44 : MI->getOperand(0).getReg() == Sparc::G0 &&
6033 46 : MI->getOperand(1).isReg() &&
6034 23 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6035 23 : MI->getOperand(2).isImm() &&
6036 67 : MI->getOperand(2).getImm() == 8 &&
6037 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6038 : // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 0, 0 })
6039 : AsmString = "ta %xcc, $\x02";
6040 : break;
6041 : }
6042 42 : if (MI->getNumOperands() == 3 &&
6043 84 : MI->getOperand(0).isReg() &&
6044 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6045 84 : MI->getOperand(1).isReg() &&
6046 42 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6047 42 : MI->getOperand(2).isImm() &&
6048 84 : MI->getOperand(2).getImm() == 8 &&
6049 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6050 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 0 })
6051 : AsmString = "ta %xcc, $\x01 + $\x02";
6052 : break;
6053 : }
6054 40 : if (MI->getNumOperands() == 3 &&
6055 40 : MI->getOperand(0).getReg() == Sparc::G0 &&
6056 42 : MI->getOperand(1).isReg() &&
6057 21 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6058 21 : MI->getOperand(2).isImm() &&
6059 61 : MI->getOperand(2).getImm() == 0 &&
6060 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6061 : // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 0, 0 })
6062 : AsmString = "tn %xcc, $\x02";
6063 : break;
6064 : }
6065 38 : if (MI->getNumOperands() == 3 &&
6066 76 : MI->getOperand(0).isReg() &&
6067 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6068 76 : MI->getOperand(1).isReg() &&
6069 38 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6070 38 : MI->getOperand(2).isImm() &&
6071 76 : MI->getOperand(2).getImm() == 0 &&
6072 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6073 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 0 })
6074 : AsmString = "tn %xcc, $\x01 + $\x02";
6075 : break;
6076 : }
6077 37 : if (MI->getNumOperands() == 3 &&
6078 37 : MI->getOperand(0).getReg() == Sparc::G0 &&
6079 38 : MI->getOperand(1).isReg() &&
6080 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6081 19 : MI->getOperand(2).isImm() &&
6082 56 : MI->getOperand(2).getImm() == 9 &&
6083 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6084 : // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 0, 1 })
6085 : AsmString = "tne %xcc, $\x02";
6086 : break;
6087 : }
6088 35 : if (MI->getNumOperands() == 3 &&
6089 70 : MI->getOperand(0).isReg() &&
6090 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6091 70 : MI->getOperand(1).isReg() &&
6092 35 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6093 35 : MI->getOperand(2).isImm() &&
6094 70 : MI->getOperand(2).getImm() == 9 &&
6095 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6096 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 0, 1 })
6097 : AsmString = "tne %xcc, $\x01 + $\x02";
6098 : break;
6099 : }
6100 34 : if (MI->getNumOperands() == 3 &&
6101 34 : MI->getOperand(0).getReg() == Sparc::G0 &&
6102 34 : MI->getOperand(1).isReg() &&
6103 17 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6104 17 : MI->getOperand(2).isImm() &&
6105 51 : MI->getOperand(2).getImm() == 1 &&
6106 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6107 : // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 0, 1 })
6108 : AsmString = "te %xcc, $\x02";
6109 : break;
6110 : }
6111 32 : if (MI->getNumOperands() == 3 &&
6112 64 : MI->getOperand(0).isReg() &&
6113 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6114 64 : MI->getOperand(1).isReg() &&
6115 32 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6116 32 : MI->getOperand(2).isImm() &&
6117 64 : MI->getOperand(2).getImm() == 1 &&
6118 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6119 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 0, 1 })
6120 : AsmString = "te %xcc, $\x01 + $\x02";
6121 : break;
6122 : }
6123 30 : if (MI->getNumOperands() == 3 &&
6124 30 : MI->getOperand(0).getReg() == Sparc::G0 &&
6125 30 : MI->getOperand(1).isReg() &&
6126 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6127 15 : MI->getOperand(2).isImm() &&
6128 45 : MI->getOperand(2).getImm() == 10 &&
6129 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6130 : // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 1, 0 })
6131 : AsmString = "tg %xcc, $\x02";
6132 : break;
6133 : }
6134 29 : if (MI->getNumOperands() == 3 &&
6135 58 : MI->getOperand(0).isReg() &&
6136 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6137 58 : MI->getOperand(1).isReg() &&
6138 29 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6139 29 : MI->getOperand(2).isImm() &&
6140 58 : MI->getOperand(2).getImm() == 10 &&
6141 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6142 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 0 })
6143 : AsmString = "tg %xcc, $\x01 + $\x02";
6144 : break;
6145 : }
6146 28 : if (MI->getNumOperands() == 3 &&
6147 28 : MI->getOperand(0).getReg() == Sparc::G0 &&
6148 28 : MI->getOperand(1).isReg() &&
6149 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6150 14 : MI->getOperand(2).isImm() &&
6151 42 : MI->getOperand(2).getImm() == 2 &&
6152 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6153 : // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 1, 0 })
6154 : AsmString = "tle %xcc, $\x02";
6155 : break;
6156 : }
6157 26 : if (MI->getNumOperands() == 3 &&
6158 52 : MI->getOperand(0).isReg() &&
6159 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6160 52 : MI->getOperand(1).isReg() &&
6161 26 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6162 26 : MI->getOperand(2).isImm() &&
6163 52 : MI->getOperand(2).getImm() == 2 &&
6164 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6165 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 0 })
6166 : AsmString = "tle %xcc, $\x01 + $\x02";
6167 : break;
6168 : }
6169 25 : if (MI->getNumOperands() == 3 &&
6170 25 : MI->getOperand(0).getReg() == Sparc::G0 &&
6171 24 : MI->getOperand(1).isReg() &&
6172 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6173 12 : MI->getOperand(2).isImm() &&
6174 37 : MI->getOperand(2).getImm() == 11 &&
6175 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6176 : // (TXCCrr G0, IntRegs:$rs2, { 1, 0, 1, 1 })
6177 : AsmString = "tge %xcc, $\x02";
6178 : break;
6179 : }
6180 24 : if (MI->getNumOperands() == 3 &&
6181 48 : MI->getOperand(0).isReg() &&
6182 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6183 48 : MI->getOperand(1).isReg() &&
6184 24 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6185 24 : MI->getOperand(2).isImm() &&
6186 48 : MI->getOperand(2).getImm() == 11 &&
6187 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6188 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 0, 1, 1 })
6189 : AsmString = "tge %xcc, $\x01 + $\x02";
6190 : break;
6191 : }
6192 23 : if (MI->getNumOperands() == 3 &&
6193 23 : MI->getOperand(0).getReg() == Sparc::G0 &&
6194 22 : MI->getOperand(1).isReg() &&
6195 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6196 11 : MI->getOperand(2).isImm() &&
6197 34 : MI->getOperand(2).getImm() == 3 &&
6198 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6199 : // (TXCCrr G0, IntRegs:$rs2, { 0, 0, 1, 1 })
6200 : AsmString = "tl %xcc, $\x02";
6201 : break;
6202 : }
6203 22 : if (MI->getNumOperands() == 3 &&
6204 44 : MI->getOperand(0).isReg() &&
6205 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6206 44 : MI->getOperand(1).isReg() &&
6207 22 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6208 22 : MI->getOperand(2).isImm() &&
6209 44 : MI->getOperand(2).getImm() == 3 &&
6210 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6211 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 0, 1, 1 })
6212 : AsmString = "tl %xcc, $\x01 + $\x02";
6213 : break;
6214 : }
6215 20 : if (MI->getNumOperands() == 3 &&
6216 20 : MI->getOperand(0).getReg() == Sparc::G0 &&
6217 20 : MI->getOperand(1).isReg() &&
6218 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6219 10 : MI->getOperand(2).isImm() &&
6220 30 : MI->getOperand(2).getImm() == 12 &&
6221 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6222 : // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 0, 0 })
6223 : AsmString = "tgu %xcc, $\x02";
6224 : break;
6225 : }
6226 19 : if (MI->getNumOperands() == 3 &&
6227 38 : MI->getOperand(0).isReg() &&
6228 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6229 38 : MI->getOperand(1).isReg() &&
6230 19 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6231 19 : MI->getOperand(2).isImm() &&
6232 38 : MI->getOperand(2).getImm() == 12 &&
6233 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6234 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 0 })
6235 : AsmString = "tgu %xcc, $\x01 + $\x02";
6236 : break;
6237 : }
6238 18 : if (MI->getNumOperands() == 3 &&
6239 18 : MI->getOperand(0).getReg() == Sparc::G0 &&
6240 18 : MI->getOperand(1).isReg() &&
6241 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6242 9 : MI->getOperand(2).isImm() &&
6243 27 : MI->getOperand(2).getImm() == 4 &&
6244 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6245 : // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 0, 0 })
6246 : AsmString = "tleu %xcc, $\x02";
6247 : break;
6248 : }
6249 16 : if (MI->getNumOperands() == 3 &&
6250 32 : MI->getOperand(0).isReg() &&
6251 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6252 32 : MI->getOperand(1).isReg() &&
6253 16 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6254 16 : MI->getOperand(2).isImm() &&
6255 32 : MI->getOperand(2).getImm() == 4 &&
6256 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6257 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 0 })
6258 : AsmString = "tleu %xcc, $\x01 + $\x02";
6259 : break;
6260 : }
6261 15 : if (MI->getNumOperands() == 3 &&
6262 15 : MI->getOperand(0).getReg() == Sparc::G0 &&
6263 14 : MI->getOperand(1).isReg() &&
6264 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6265 7 : MI->getOperand(2).isImm() &&
6266 22 : MI->getOperand(2).getImm() == 13 &&
6267 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6268 : // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 0, 1 })
6269 : AsmString = "tcc %xcc, $\x02";
6270 : break;
6271 : }
6272 14 : if (MI->getNumOperands() == 3 &&
6273 28 : MI->getOperand(0).isReg() &&
6274 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6275 28 : MI->getOperand(1).isReg() &&
6276 14 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6277 14 : MI->getOperand(2).isImm() &&
6278 28 : MI->getOperand(2).getImm() == 13 &&
6279 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6280 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 0, 1 })
6281 : AsmString = "tcc %xcc, $\x01 + $\x02";
6282 : break;
6283 : }
6284 13 : if (MI->getNumOperands() == 3 &&
6285 13 : MI->getOperand(0).getReg() == Sparc::G0 &&
6286 12 : MI->getOperand(1).isReg() &&
6287 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6288 6 : MI->getOperand(2).isImm() &&
6289 19 : MI->getOperand(2).getImm() == 5 &&
6290 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6291 : // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 0, 1 })
6292 : AsmString = "tcs %xcc, $\x02";
6293 : break;
6294 : }
6295 12 : if (MI->getNumOperands() == 3 &&
6296 24 : MI->getOperand(0).isReg() &&
6297 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6298 24 : MI->getOperand(1).isReg() &&
6299 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6300 12 : MI->getOperand(2).isImm() &&
6301 24 : MI->getOperand(2).getImm() == 5 &&
6302 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6303 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 0, 1 })
6304 : AsmString = "tcs %xcc, $\x01 + $\x02";
6305 : break;
6306 : }
6307 10 : if (MI->getNumOperands() == 3 &&
6308 10 : MI->getOperand(0).getReg() == Sparc::G0 &&
6309 10 : MI->getOperand(1).isReg() &&
6310 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6311 5 : MI->getOperand(2).isImm() &&
6312 15 : MI->getOperand(2).getImm() == 14 &&
6313 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6314 : // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 1, 0 })
6315 : AsmString = "tpos %xcc, $\x02";
6316 : break;
6317 : }
6318 9 : if (MI->getNumOperands() == 3 &&
6319 18 : MI->getOperand(0).isReg() &&
6320 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6321 18 : MI->getOperand(1).isReg() &&
6322 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6323 9 : MI->getOperand(2).isImm() &&
6324 18 : MI->getOperand(2).getImm() == 14 &&
6325 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6326 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 0 })
6327 : AsmString = "tpos %xcc, $\x01 + $\x02";
6328 : break;
6329 : }
6330 8 : if (MI->getNumOperands() == 3 &&
6331 8 : MI->getOperand(0).getReg() == Sparc::G0 &&
6332 8 : MI->getOperand(1).isReg() &&
6333 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6334 4 : MI->getOperand(2).isImm() &&
6335 12 : MI->getOperand(2).getImm() == 6 &&
6336 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6337 : // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 1, 0 })
6338 : AsmString = "tneg %xcc, $\x02";
6339 : break;
6340 : }
6341 6 : if (MI->getNumOperands() == 3 &&
6342 12 : MI->getOperand(0).isReg() &&
6343 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6344 12 : MI->getOperand(1).isReg() &&
6345 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6346 6 : MI->getOperand(2).isImm() &&
6347 12 : MI->getOperand(2).getImm() == 6 &&
6348 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6349 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 0 })
6350 : AsmString = "tneg %xcc, $\x01 + $\x02";
6351 : break;
6352 : }
6353 5 : if (MI->getNumOperands() == 3 &&
6354 5 : MI->getOperand(0).getReg() == Sparc::G0 &&
6355 4 : MI->getOperand(1).isReg() &&
6356 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6357 2 : MI->getOperand(2).isImm() &&
6358 7 : MI->getOperand(2).getImm() == 15 &&
6359 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6360 : // (TXCCrr G0, IntRegs:$rs2, { 1, 1, 1, 1 })
6361 : AsmString = "tvc %xcc, $\x02";
6362 : break;
6363 : }
6364 4 : if (MI->getNumOperands() == 3 &&
6365 8 : MI->getOperand(0).isReg() &&
6366 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6367 8 : MI->getOperand(1).isReg() &&
6368 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6369 4 : MI->getOperand(2).isImm() &&
6370 8 : MI->getOperand(2).getImm() == 15 &&
6371 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6372 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 1, 1, 1, 1 })
6373 : AsmString = "tvc %xcc, $\x01 + $\x02";
6374 : break;
6375 : }
6376 3 : if (MI->getNumOperands() == 3 &&
6377 3 : MI->getOperand(0).getReg() == Sparc::G0 &&
6378 2 : MI->getOperand(1).isReg() &&
6379 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6380 1 : MI->getOperand(2).isImm() &&
6381 4 : MI->getOperand(2).getImm() == 7 &&
6382 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6383 : // (TXCCrr G0, IntRegs:$rs2, { 0, 1, 1, 1 })
6384 : AsmString = "tvs %xcc, $\x02";
6385 : break;
6386 : }
6387 2 : if (MI->getNumOperands() == 3 &&
6388 4 : MI->getOperand(0).isReg() &&
6389 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6390 4 : MI->getOperand(1).isReg() &&
6391 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6392 2 : MI->getOperand(2).isImm() &&
6393 4 : MI->getOperand(2).getImm() == 7 &&
6394 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6395 : // (TXCCrr IntRegs:$rs1, IntRegs:$rs2, { 0, 1, 1, 1 })
6396 : AsmString = "tvs %xcc, $\x01 + $\x02";
6397 : break;
6398 : }
6399 : return false;
6400 : case SP::V9FCMPD:
6401 4 : if (MI->getNumOperands() == 3 &&
6402 4 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6403 6 : MI->getOperand(1).isReg() &&
6404 3 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6405 10 : MI->getOperand(2).isReg() &&
6406 3 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6407 : // (V9FCMPD FCC0, DFPRegs:$rs1, DFPRegs:$rs2)
6408 : AsmString = "fcmpd $\x02, $\x03";
6409 : break;
6410 : }
6411 : return false;
6412 : case SP::V9FCMPED:
6413 3 : if (MI->getNumOperands() == 3 &&
6414 3 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6415 4 : MI->getOperand(1).isReg() &&
6416 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6417 7 : MI->getOperand(2).isReg() &&
6418 2 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6419 : // (V9FCMPED FCC0, DFPRegs:$rs1, DFPRegs:$rs2)
6420 : AsmString = "fcmped $\x02, $\x03";
6421 : break;
6422 : }
6423 : return false;
6424 : case SP::V9FCMPEQ:
6425 3 : if (MI->getNumOperands() == 3 &&
6426 3 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6427 4 : MI->getOperand(1).isReg() &&
6428 2 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6429 7 : MI->getOperand(2).isReg() &&
6430 2 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6431 : // (V9FCMPEQ FCC0, QFPRegs:$rs1, QFPRegs:$rs2)
6432 : AsmString = "fcmpeq $\x02, $\x03";
6433 : break;
6434 : }
6435 : return false;
6436 : case SP::V9FCMPES:
6437 3 : if (MI->getNumOperands() == 3 &&
6438 3 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6439 4 : MI->getOperand(1).isReg() &&
6440 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6441 7 : MI->getOperand(2).isReg() &&
6442 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6443 : // (V9FCMPES FCC0, FPRegs:$rs1, FPRegs:$rs2)
6444 : AsmString = "fcmpes $\x02, $\x03";
6445 : break;
6446 : }
6447 : return false;
6448 : case SP::V9FCMPQ:
6449 4 : if (MI->getNumOperands() == 3 &&
6450 4 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6451 6 : MI->getOperand(1).isReg() &&
6452 3 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6453 10 : MI->getOperand(2).isReg() &&
6454 3 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6455 : // (V9FCMPQ FCC0, QFPRegs:$rs1, QFPRegs:$rs2)
6456 : AsmString = "fcmpq $\x02, $\x03";
6457 : break;
6458 : }
6459 : return false;
6460 : case SP::V9FCMPS:
6461 4 : if (MI->getNumOperands() == 3 &&
6462 4 : MI->getOperand(0).getReg() == Sparc::FCC0 &&
6463 6 : MI->getOperand(1).isReg() &&
6464 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6465 10 : MI->getOperand(2).isReg() &&
6466 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg())) {
6467 : // (V9FCMPS FCC0, FPRegs:$rs1, FPRegs:$rs2)
6468 : AsmString = "fcmps $\x02, $\x03";
6469 : break;
6470 : }
6471 : return false;
6472 : case SP::V9FMOVD_FCC:
6473 0 : if (MI->getNumOperands() == 5 &&
6474 0 : MI->getOperand(0).isReg() &&
6475 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6476 0 : MI->getOperand(1).isReg() &&
6477 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6478 0 : MI->getOperand(2).isReg() &&
6479 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6480 0 : MI->getOperand(4).isImm() &&
6481 0 : MI->getOperand(4).getImm() == 8 &&
6482 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6483 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 0, 0 })
6484 : AsmString = "fmovda $\x02, $\x03, $\x01";
6485 : break;
6486 : }
6487 0 : if (MI->getNumOperands() == 5 &&
6488 0 : MI->getOperand(0).isReg() &&
6489 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6490 0 : MI->getOperand(1).isReg() &&
6491 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6492 0 : MI->getOperand(2).isReg() &&
6493 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6494 0 : MI->getOperand(4).isImm() &&
6495 0 : MI->getOperand(4).getImm() == 0 &&
6496 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6497 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 0, 0 })
6498 : AsmString = "fmovdn $\x02, $\x03, $\x01";
6499 : break;
6500 : }
6501 0 : if (MI->getNumOperands() == 5 &&
6502 0 : MI->getOperand(0).isReg() &&
6503 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6504 0 : MI->getOperand(1).isReg() &&
6505 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6506 0 : MI->getOperand(2).isReg() &&
6507 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6508 0 : MI->getOperand(4).isImm() &&
6509 0 : MI->getOperand(4).getImm() == 7 &&
6510 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6511 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 1, 1 })
6512 : AsmString = "fmovdu $\x02, $\x03, $\x01";
6513 : break;
6514 : }
6515 0 : if (MI->getNumOperands() == 5 &&
6516 0 : MI->getOperand(0).isReg() &&
6517 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6518 0 : MI->getOperand(1).isReg() &&
6519 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6520 0 : MI->getOperand(2).isReg() &&
6521 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6522 0 : MI->getOperand(4).isImm() &&
6523 0 : MI->getOperand(4).getImm() == 6 &&
6524 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6525 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 1, 0 })
6526 : AsmString = "fmovdg $\x02, $\x03, $\x01";
6527 : break;
6528 : }
6529 0 : if (MI->getNumOperands() == 5 &&
6530 0 : MI->getOperand(0).isReg() &&
6531 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6532 0 : MI->getOperand(1).isReg() &&
6533 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6534 0 : MI->getOperand(2).isReg() &&
6535 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6536 0 : MI->getOperand(4).isImm() &&
6537 0 : MI->getOperand(4).getImm() == 5 &&
6538 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6539 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 0, 1 })
6540 : AsmString = "fmovdug $\x02, $\x03, $\x01";
6541 : break;
6542 : }
6543 0 : if (MI->getNumOperands() == 5 &&
6544 0 : MI->getOperand(0).isReg() &&
6545 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6546 0 : MI->getOperand(1).isReg() &&
6547 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6548 0 : MI->getOperand(2).isReg() &&
6549 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6550 0 : MI->getOperand(4).isImm() &&
6551 0 : MI->getOperand(4).getImm() == 4 &&
6552 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6553 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 1, 0, 0 })
6554 : AsmString = "fmovdl $\x02, $\x03, $\x01";
6555 : break;
6556 : }
6557 0 : if (MI->getNumOperands() == 5 &&
6558 0 : MI->getOperand(0).isReg() &&
6559 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6560 0 : MI->getOperand(1).isReg() &&
6561 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6562 0 : MI->getOperand(2).isReg() &&
6563 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6564 0 : MI->getOperand(4).isImm() &&
6565 0 : MI->getOperand(4).getImm() == 3 &&
6566 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6567 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 1, 1 })
6568 : AsmString = "fmovdul $\x02, $\x03, $\x01";
6569 : break;
6570 : }
6571 0 : if (MI->getNumOperands() == 5 &&
6572 0 : MI->getOperand(0).isReg() &&
6573 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6574 0 : MI->getOperand(1).isReg() &&
6575 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6576 0 : MI->getOperand(2).isReg() &&
6577 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6578 0 : MI->getOperand(4).isImm() &&
6579 0 : MI->getOperand(4).getImm() == 2 &&
6580 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6581 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 1, 0 })
6582 : AsmString = "fmovdlg $\x02, $\x03, $\x01";
6583 : break;
6584 : }
6585 0 : if (MI->getNumOperands() == 5 &&
6586 0 : MI->getOperand(0).isReg() &&
6587 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6588 0 : MI->getOperand(1).isReg() &&
6589 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6590 0 : MI->getOperand(2).isReg() &&
6591 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6592 0 : MI->getOperand(4).isImm() &&
6593 0 : MI->getOperand(4).getImm() == 1 &&
6594 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6595 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 0, 0, 0, 1 })
6596 : AsmString = "fmovdne $\x02, $\x03, $\x01";
6597 : break;
6598 : }
6599 0 : if (MI->getNumOperands() == 5 &&
6600 0 : MI->getOperand(0).isReg() &&
6601 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6602 0 : MI->getOperand(1).isReg() &&
6603 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6604 0 : MI->getOperand(2).isReg() &&
6605 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6606 0 : MI->getOperand(4).isImm() &&
6607 0 : MI->getOperand(4).getImm() == 9 &&
6608 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6609 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 0, 1 })
6610 : AsmString = "fmovde $\x02, $\x03, $\x01";
6611 : break;
6612 : }
6613 0 : if (MI->getNumOperands() == 5 &&
6614 0 : MI->getOperand(0).isReg() &&
6615 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6616 0 : MI->getOperand(1).isReg() &&
6617 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6618 0 : MI->getOperand(2).isReg() &&
6619 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6620 0 : MI->getOperand(4).isImm() &&
6621 0 : MI->getOperand(4).getImm() == 10 &&
6622 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6623 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 1, 0 })
6624 : AsmString = "fmovdue $\x02, $\x03, $\x01";
6625 : break;
6626 : }
6627 0 : if (MI->getNumOperands() == 5 &&
6628 0 : MI->getOperand(0).isReg() &&
6629 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6630 0 : MI->getOperand(1).isReg() &&
6631 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6632 0 : MI->getOperand(2).isReg() &&
6633 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6634 0 : MI->getOperand(4).isImm() &&
6635 0 : MI->getOperand(4).getImm() == 11 &&
6636 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6637 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 0, 1, 1 })
6638 : AsmString = "fmovdge $\x02, $\x03, $\x01";
6639 : break;
6640 : }
6641 0 : if (MI->getNumOperands() == 5 &&
6642 0 : MI->getOperand(0).isReg() &&
6643 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6644 0 : MI->getOperand(1).isReg() &&
6645 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6646 0 : MI->getOperand(2).isReg() &&
6647 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6648 0 : MI->getOperand(4).isImm() &&
6649 0 : MI->getOperand(4).getImm() == 12 &&
6650 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6651 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 0, 0 })
6652 : AsmString = "fmovduge $\x02, $\x03, $\x01";
6653 : break;
6654 : }
6655 0 : if (MI->getNumOperands() == 5 &&
6656 0 : MI->getOperand(0).isReg() &&
6657 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6658 0 : MI->getOperand(1).isReg() &&
6659 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6660 0 : MI->getOperand(2).isReg() &&
6661 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6662 0 : MI->getOperand(4).isImm() &&
6663 0 : MI->getOperand(4).getImm() == 13 &&
6664 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6665 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 0, 1 })
6666 : AsmString = "fmovdle $\x02, $\x03, $\x01";
6667 : break;
6668 : }
6669 0 : if (MI->getNumOperands() == 5 &&
6670 0 : MI->getOperand(0).isReg() &&
6671 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6672 0 : MI->getOperand(1).isReg() &&
6673 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6674 0 : MI->getOperand(2).isReg() &&
6675 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6676 0 : MI->getOperand(4).isImm() &&
6677 0 : MI->getOperand(4).getImm() == 14 &&
6678 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6679 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 1, 0 })
6680 : AsmString = "fmovdule $\x02, $\x03, $\x01";
6681 : break;
6682 : }
6683 0 : if (MI->getNumOperands() == 5 &&
6684 0 : MI->getOperand(0).isReg() &&
6685 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6686 0 : MI->getOperand(1).isReg() &&
6687 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6688 0 : MI->getOperand(2).isReg() &&
6689 0 : MRI.getRegClass(Sparc::DFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6690 0 : MI->getOperand(4).isImm() &&
6691 0 : MI->getOperand(4).getImm() == 15 &&
6692 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6693 : // (V9FMOVD_FCC DFPRegs:$rd, FCCRegs:$cc, DFPRegs:$rs2, { 1, 1, 1, 1 })
6694 : AsmString = "fmovdo $\x02, $\x03, $\x01";
6695 : break;
6696 : }
6697 : return false;
6698 : case SP::V9FMOVQ_FCC:
6699 0 : if (MI->getNumOperands() == 5 &&
6700 0 : MI->getOperand(0).isReg() &&
6701 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6702 0 : MI->getOperand(1).isReg() &&
6703 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6704 0 : MI->getOperand(2).isReg() &&
6705 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6706 0 : MI->getOperand(4).isImm() &&
6707 0 : MI->getOperand(4).getImm() == 8 &&
6708 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6709 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 0, 0 })
6710 : AsmString = "fmovqa $\x02, $\x03, $\x01";
6711 : break;
6712 : }
6713 0 : if (MI->getNumOperands() == 5 &&
6714 0 : MI->getOperand(0).isReg() &&
6715 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6716 0 : MI->getOperand(1).isReg() &&
6717 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6718 0 : MI->getOperand(2).isReg() &&
6719 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6720 0 : MI->getOperand(4).isImm() &&
6721 0 : MI->getOperand(4).getImm() == 0 &&
6722 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6723 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 0, 0 })
6724 : AsmString = "fmovqn $\x02, $\x03, $\x01";
6725 : break;
6726 : }
6727 0 : if (MI->getNumOperands() == 5 &&
6728 0 : MI->getOperand(0).isReg() &&
6729 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6730 0 : MI->getOperand(1).isReg() &&
6731 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6732 0 : MI->getOperand(2).isReg() &&
6733 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6734 0 : MI->getOperand(4).isImm() &&
6735 0 : MI->getOperand(4).getImm() == 7 &&
6736 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6737 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 1, 1 })
6738 : AsmString = "fmovqu $\x02, $\x03, $\x01";
6739 : break;
6740 : }
6741 0 : if (MI->getNumOperands() == 5 &&
6742 0 : MI->getOperand(0).isReg() &&
6743 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6744 0 : MI->getOperand(1).isReg() &&
6745 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6746 0 : MI->getOperand(2).isReg() &&
6747 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6748 0 : MI->getOperand(4).isImm() &&
6749 0 : MI->getOperand(4).getImm() == 6 &&
6750 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6751 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 1, 0 })
6752 : AsmString = "fmovqg $\x02, $\x03, $\x01";
6753 : break;
6754 : }
6755 0 : if (MI->getNumOperands() == 5 &&
6756 0 : MI->getOperand(0).isReg() &&
6757 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6758 0 : MI->getOperand(1).isReg() &&
6759 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6760 0 : MI->getOperand(2).isReg() &&
6761 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6762 0 : MI->getOperand(4).isImm() &&
6763 0 : MI->getOperand(4).getImm() == 5 &&
6764 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6765 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 0, 1 })
6766 : AsmString = "fmovqug $\x02, $\x03, $\x01";
6767 : break;
6768 : }
6769 0 : if (MI->getNumOperands() == 5 &&
6770 0 : MI->getOperand(0).isReg() &&
6771 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6772 0 : MI->getOperand(1).isReg() &&
6773 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6774 0 : MI->getOperand(2).isReg() &&
6775 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6776 0 : MI->getOperand(4).isImm() &&
6777 0 : MI->getOperand(4).getImm() == 4 &&
6778 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6779 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 1, 0, 0 })
6780 : AsmString = "fmovql $\x02, $\x03, $\x01";
6781 : break;
6782 : }
6783 0 : if (MI->getNumOperands() == 5 &&
6784 0 : MI->getOperand(0).isReg() &&
6785 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6786 0 : MI->getOperand(1).isReg() &&
6787 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6788 0 : MI->getOperand(2).isReg() &&
6789 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6790 0 : MI->getOperand(4).isImm() &&
6791 0 : MI->getOperand(4).getImm() == 3 &&
6792 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6793 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 1, 1 })
6794 : AsmString = "fmovqul $\x02, $\x03, $\x01";
6795 : break;
6796 : }
6797 0 : if (MI->getNumOperands() == 5 &&
6798 0 : MI->getOperand(0).isReg() &&
6799 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6800 0 : MI->getOperand(1).isReg() &&
6801 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6802 0 : MI->getOperand(2).isReg() &&
6803 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6804 0 : MI->getOperand(4).isImm() &&
6805 0 : MI->getOperand(4).getImm() == 2 &&
6806 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6807 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 1, 0 })
6808 : AsmString = "fmovqlg $\x02, $\x03, $\x01";
6809 : break;
6810 : }
6811 0 : if (MI->getNumOperands() == 5 &&
6812 0 : MI->getOperand(0).isReg() &&
6813 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6814 0 : MI->getOperand(1).isReg() &&
6815 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6816 0 : MI->getOperand(2).isReg() &&
6817 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6818 0 : MI->getOperand(4).isImm() &&
6819 0 : MI->getOperand(4).getImm() == 1 &&
6820 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6821 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 0, 0, 0, 1 })
6822 : AsmString = "fmovqne $\x02, $\x03, $\x01";
6823 : break;
6824 : }
6825 0 : if (MI->getNumOperands() == 5 &&
6826 0 : MI->getOperand(0).isReg() &&
6827 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6828 0 : MI->getOperand(1).isReg() &&
6829 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6830 0 : MI->getOperand(2).isReg() &&
6831 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6832 0 : MI->getOperand(4).isImm() &&
6833 0 : MI->getOperand(4).getImm() == 9 &&
6834 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6835 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 0, 1 })
6836 : AsmString = "fmovqe $\x02, $\x03, $\x01";
6837 : break;
6838 : }
6839 0 : if (MI->getNumOperands() == 5 &&
6840 0 : MI->getOperand(0).isReg() &&
6841 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6842 0 : MI->getOperand(1).isReg() &&
6843 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6844 0 : MI->getOperand(2).isReg() &&
6845 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6846 0 : MI->getOperand(4).isImm() &&
6847 0 : MI->getOperand(4).getImm() == 10 &&
6848 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6849 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 1, 0 })
6850 : AsmString = "fmovque $\x02, $\x03, $\x01";
6851 : break;
6852 : }
6853 0 : if (MI->getNumOperands() == 5 &&
6854 0 : MI->getOperand(0).isReg() &&
6855 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6856 0 : MI->getOperand(1).isReg() &&
6857 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6858 0 : MI->getOperand(2).isReg() &&
6859 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6860 0 : MI->getOperand(4).isImm() &&
6861 0 : MI->getOperand(4).getImm() == 11 &&
6862 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6863 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 0, 1, 1 })
6864 : AsmString = "fmovqge $\x02, $\x03, $\x01";
6865 : break;
6866 : }
6867 0 : if (MI->getNumOperands() == 5 &&
6868 0 : MI->getOperand(0).isReg() &&
6869 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6870 0 : MI->getOperand(1).isReg() &&
6871 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6872 0 : MI->getOperand(2).isReg() &&
6873 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6874 0 : MI->getOperand(4).isImm() &&
6875 0 : MI->getOperand(4).getImm() == 12 &&
6876 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6877 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 0, 0 })
6878 : AsmString = "fmovquge $\x02, $\x03, $\x01";
6879 : break;
6880 : }
6881 0 : if (MI->getNumOperands() == 5 &&
6882 0 : MI->getOperand(0).isReg() &&
6883 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6884 0 : MI->getOperand(1).isReg() &&
6885 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6886 0 : MI->getOperand(2).isReg() &&
6887 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6888 0 : MI->getOperand(4).isImm() &&
6889 0 : MI->getOperand(4).getImm() == 13 &&
6890 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6891 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 0, 1 })
6892 : AsmString = "fmovqle $\x02, $\x03, $\x01";
6893 : break;
6894 : }
6895 0 : if (MI->getNumOperands() == 5 &&
6896 0 : MI->getOperand(0).isReg() &&
6897 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6898 0 : MI->getOperand(1).isReg() &&
6899 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6900 0 : MI->getOperand(2).isReg() &&
6901 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6902 0 : MI->getOperand(4).isImm() &&
6903 0 : MI->getOperand(4).getImm() == 14 &&
6904 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6905 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 1, 0 })
6906 : AsmString = "fmovqule $\x02, $\x03, $\x01";
6907 : break;
6908 : }
6909 0 : if (MI->getNumOperands() == 5 &&
6910 0 : MI->getOperand(0).isReg() &&
6911 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6912 0 : MI->getOperand(1).isReg() &&
6913 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6914 0 : MI->getOperand(2).isReg() &&
6915 0 : MRI.getRegClass(Sparc::QFPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6916 0 : MI->getOperand(4).isImm() &&
6917 0 : MI->getOperand(4).getImm() == 15 &&
6918 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6919 : // (V9FMOVQ_FCC QFPRegs:$rd, FCCRegs:$cc, QFPRegs:$rs2, { 1, 1, 1, 1 })
6920 : AsmString = "fmovqo $\x02, $\x03, $\x01";
6921 : break;
6922 : }
6923 : return false;
6924 : case SP::V9FMOVS_FCC:
6925 15 : if (MI->getNumOperands() == 5 &&
6926 30 : MI->getOperand(0).isReg() &&
6927 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6928 30 : MI->getOperand(1).isReg() &&
6929 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6930 30 : MI->getOperand(2).isReg() &&
6931 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6932 15 : MI->getOperand(4).isImm() &&
6933 30 : MI->getOperand(4).getImm() == 8 &&
6934 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6935 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 0, 0 })
6936 : AsmString = "fmovsa $\x02, $\x03, $\x01";
6937 : break;
6938 : }
6939 15 : if (MI->getNumOperands() == 5 &&
6940 30 : MI->getOperand(0).isReg() &&
6941 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6942 30 : MI->getOperand(1).isReg() &&
6943 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6944 30 : MI->getOperand(2).isReg() &&
6945 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6946 15 : MI->getOperand(4).isImm() &&
6947 30 : MI->getOperand(4).getImm() == 0 &&
6948 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6949 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 0, 0 })
6950 : AsmString = "fmovsn $\x02, $\x03, $\x01";
6951 : break;
6952 : }
6953 15 : if (MI->getNumOperands() == 5 &&
6954 30 : MI->getOperand(0).isReg() &&
6955 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6956 30 : MI->getOperand(1).isReg() &&
6957 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6958 30 : MI->getOperand(2).isReg() &&
6959 15 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6960 15 : MI->getOperand(4).isImm() &&
6961 30 : MI->getOperand(4).getImm() == 7 &&
6962 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6963 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 1, 1 })
6964 : AsmString = "fmovsu $\x02, $\x03, $\x01";
6965 : break;
6966 : }
6967 14 : if (MI->getNumOperands() == 5 &&
6968 28 : MI->getOperand(0).isReg() &&
6969 14 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6970 28 : MI->getOperand(1).isReg() &&
6971 14 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6972 28 : MI->getOperand(2).isReg() &&
6973 14 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6974 14 : MI->getOperand(4).isImm() &&
6975 28 : MI->getOperand(4).getImm() == 6 &&
6976 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6977 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 1, 0 })
6978 : AsmString = "fmovsg $\x02, $\x03, $\x01";
6979 : break;
6980 : }
6981 12 : if (MI->getNumOperands() == 5 &&
6982 24 : MI->getOperand(0).isReg() &&
6983 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6984 24 : MI->getOperand(1).isReg() &&
6985 12 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
6986 24 : MI->getOperand(2).isReg() &&
6987 12 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
6988 12 : MI->getOperand(4).isImm() &&
6989 24 : MI->getOperand(4).getImm() == 5 &&
6990 : STI.getFeatureBits()[Sparc::FeatureV9]) {
6991 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 0, 1 })
6992 : AsmString = "fmovsug $\x02, $\x03, $\x01";
6993 : break;
6994 : }
6995 11 : if (MI->getNumOperands() == 5 &&
6996 22 : MI->getOperand(0).isReg() &&
6997 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
6998 22 : MI->getOperand(1).isReg() &&
6999 11 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7000 22 : MI->getOperand(2).isReg() &&
7001 11 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7002 11 : MI->getOperand(4).isImm() &&
7003 22 : MI->getOperand(4).getImm() == 4 &&
7004 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7005 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 1, 0, 0 })
7006 : AsmString = "fmovsl $\x02, $\x03, $\x01";
7007 : break;
7008 : }
7009 10 : if (MI->getNumOperands() == 5 &&
7010 20 : MI->getOperand(0).isReg() &&
7011 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7012 20 : MI->getOperand(1).isReg() &&
7013 10 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7014 20 : MI->getOperand(2).isReg() &&
7015 10 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7016 10 : MI->getOperand(4).isImm() &&
7017 20 : MI->getOperand(4).getImm() == 3 &&
7018 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7019 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 1, 1 })
7020 : AsmString = "fmovsul $\x02, $\x03, $\x01";
7021 : break;
7022 : }
7023 9 : if (MI->getNumOperands() == 5 &&
7024 18 : MI->getOperand(0).isReg() &&
7025 9 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7026 18 : MI->getOperand(1).isReg() &&
7027 9 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7028 18 : MI->getOperand(2).isReg() &&
7029 9 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7030 9 : MI->getOperand(4).isImm() &&
7031 18 : MI->getOperand(4).getImm() == 2 &&
7032 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7033 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 1, 0 })
7034 : AsmString = "fmovslg $\x02, $\x03, $\x01";
7035 : break;
7036 : }
7037 8 : if (MI->getNumOperands() == 5 &&
7038 16 : MI->getOperand(0).isReg() &&
7039 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7040 16 : MI->getOperand(1).isReg() &&
7041 8 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7042 16 : MI->getOperand(2).isReg() &&
7043 8 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7044 8 : MI->getOperand(4).isImm() &&
7045 16 : MI->getOperand(4).getImm() == 1 &&
7046 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7047 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 0, 0, 0, 1 })
7048 : AsmString = "fmovsne $\x02, $\x03, $\x01";
7049 : break;
7050 : }
7051 7 : if (MI->getNumOperands() == 5 &&
7052 14 : MI->getOperand(0).isReg() &&
7053 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7054 14 : MI->getOperand(1).isReg() &&
7055 7 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7056 14 : MI->getOperand(2).isReg() &&
7057 7 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7058 7 : MI->getOperand(4).isImm() &&
7059 14 : MI->getOperand(4).getImm() == 9 &&
7060 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7061 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 0, 1 })
7062 : AsmString = "fmovse $\x02, $\x03, $\x01";
7063 : break;
7064 : }
7065 6 : if (MI->getNumOperands() == 5 &&
7066 12 : MI->getOperand(0).isReg() &&
7067 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7068 12 : MI->getOperand(1).isReg() &&
7069 6 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7070 12 : MI->getOperand(2).isReg() &&
7071 6 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7072 6 : MI->getOperand(4).isImm() &&
7073 12 : MI->getOperand(4).getImm() == 10 &&
7074 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7075 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 1, 0 })
7076 : AsmString = "fmovsue $\x02, $\x03, $\x01";
7077 : break;
7078 : }
7079 5 : if (MI->getNumOperands() == 5 &&
7080 10 : MI->getOperand(0).isReg() &&
7081 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7082 10 : MI->getOperand(1).isReg() &&
7083 5 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7084 10 : MI->getOperand(2).isReg() &&
7085 5 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7086 5 : MI->getOperand(4).isImm() &&
7087 10 : MI->getOperand(4).getImm() == 11 &&
7088 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7089 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 0, 1, 1 })
7090 : AsmString = "fmovsge $\x02, $\x03, $\x01";
7091 : break;
7092 : }
7093 4 : if (MI->getNumOperands() == 5 &&
7094 8 : MI->getOperand(0).isReg() &&
7095 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7096 8 : MI->getOperand(1).isReg() &&
7097 4 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7098 8 : MI->getOperand(2).isReg() &&
7099 4 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7100 4 : MI->getOperand(4).isImm() &&
7101 8 : MI->getOperand(4).getImm() == 12 &&
7102 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7103 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 0, 0 })
7104 : AsmString = "fmovsuge $\x02, $\x03, $\x01";
7105 : break;
7106 : }
7107 3 : if (MI->getNumOperands() == 5 &&
7108 6 : MI->getOperand(0).isReg() &&
7109 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7110 6 : MI->getOperand(1).isReg() &&
7111 3 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7112 6 : MI->getOperand(2).isReg() &&
7113 3 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7114 3 : MI->getOperand(4).isImm() &&
7115 6 : MI->getOperand(4).getImm() == 13 &&
7116 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7117 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 0, 1 })
7118 : AsmString = "fmovsle $\x02, $\x03, $\x01";
7119 : break;
7120 : }
7121 2 : if (MI->getNumOperands() == 5 &&
7122 4 : MI->getOperand(0).isReg() &&
7123 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7124 4 : MI->getOperand(1).isReg() &&
7125 2 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7126 4 : MI->getOperand(2).isReg() &&
7127 2 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7128 2 : MI->getOperand(4).isImm() &&
7129 4 : MI->getOperand(4).getImm() == 14 &&
7130 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7131 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 1, 0 })
7132 : AsmString = "fmovsule $\x02, $\x03, $\x01";
7133 : break;
7134 : }
7135 1 : if (MI->getNumOperands() == 5 &&
7136 2 : MI->getOperand(0).isReg() &&
7137 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7138 2 : MI->getOperand(1).isReg() &&
7139 1 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7140 2 : MI->getOperand(2).isReg() &&
7141 1 : MRI.getRegClass(Sparc::FPRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7142 1 : MI->getOperand(4).isImm() &&
7143 2 : MI->getOperand(4).getImm() == 15 &&
7144 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7145 : // (V9FMOVS_FCC FPRegs:$rd, FCCRegs:$cc, FPRegs:$rs2, { 1, 1, 1, 1 })
7146 : AsmString = "fmovso $\x02, $\x03, $\x01";
7147 : break;
7148 : }
7149 : return false;
7150 : case SP::V9MOVFCCri:
7151 0 : if (MI->getNumOperands() == 5 &&
7152 0 : MI->getOperand(0).isReg() &&
7153 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7154 0 : MI->getOperand(1).isReg() &&
7155 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7156 0 : MI->getOperand(4).isImm() &&
7157 0 : MI->getOperand(4).getImm() == 8 &&
7158 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7159 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 0, 0 })
7160 : AsmString = "mova $\x02, $\x03, $\x01";
7161 : break;
7162 : }
7163 0 : if (MI->getNumOperands() == 5 &&
7164 0 : MI->getOperand(0).isReg() &&
7165 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7166 0 : MI->getOperand(1).isReg() &&
7167 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7168 0 : MI->getOperand(4).isImm() &&
7169 0 : MI->getOperand(4).getImm() == 0 &&
7170 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7171 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 0, 0 })
7172 : AsmString = "movn $\x02, $\x03, $\x01";
7173 : break;
7174 : }
7175 0 : if (MI->getNumOperands() == 5 &&
7176 0 : MI->getOperand(0).isReg() &&
7177 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7178 0 : MI->getOperand(1).isReg() &&
7179 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7180 0 : MI->getOperand(4).isImm() &&
7181 0 : MI->getOperand(4).getImm() == 7 &&
7182 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7183 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 1, 1 })
7184 : AsmString = "movu $\x02, $\x03, $\x01";
7185 : break;
7186 : }
7187 0 : if (MI->getNumOperands() == 5 &&
7188 0 : MI->getOperand(0).isReg() &&
7189 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7190 0 : MI->getOperand(1).isReg() &&
7191 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7192 0 : MI->getOperand(4).isImm() &&
7193 0 : MI->getOperand(4).getImm() == 6 &&
7194 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7195 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 1, 0 })
7196 : AsmString = "movg $\x02, $\x03, $\x01";
7197 : break;
7198 : }
7199 0 : if (MI->getNumOperands() == 5 &&
7200 0 : MI->getOperand(0).isReg() &&
7201 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7202 0 : MI->getOperand(1).isReg() &&
7203 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7204 0 : MI->getOperand(4).isImm() &&
7205 0 : MI->getOperand(4).getImm() == 5 &&
7206 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7207 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 0, 1 })
7208 : AsmString = "movug $\x02, $\x03, $\x01";
7209 : break;
7210 : }
7211 0 : if (MI->getNumOperands() == 5 &&
7212 0 : MI->getOperand(0).isReg() &&
7213 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7214 0 : MI->getOperand(1).isReg() &&
7215 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7216 0 : MI->getOperand(4).isImm() &&
7217 0 : MI->getOperand(4).getImm() == 4 &&
7218 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7219 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 1, 0, 0 })
7220 : AsmString = "movl $\x02, $\x03, $\x01";
7221 : break;
7222 : }
7223 0 : if (MI->getNumOperands() == 5 &&
7224 0 : MI->getOperand(0).isReg() &&
7225 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7226 0 : MI->getOperand(1).isReg() &&
7227 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7228 0 : MI->getOperand(4).isImm() &&
7229 0 : MI->getOperand(4).getImm() == 3 &&
7230 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7231 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 1, 1 })
7232 : AsmString = "movul $\x02, $\x03, $\x01";
7233 : break;
7234 : }
7235 0 : if (MI->getNumOperands() == 5 &&
7236 0 : MI->getOperand(0).isReg() &&
7237 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7238 0 : MI->getOperand(1).isReg() &&
7239 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7240 0 : MI->getOperand(4).isImm() &&
7241 0 : MI->getOperand(4).getImm() == 2 &&
7242 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7243 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 1, 0 })
7244 : AsmString = "movlg $\x02, $\x03, $\x01";
7245 : break;
7246 : }
7247 0 : if (MI->getNumOperands() == 5 &&
7248 0 : MI->getOperand(0).isReg() &&
7249 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7250 0 : MI->getOperand(1).isReg() &&
7251 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7252 0 : MI->getOperand(4).isImm() &&
7253 0 : MI->getOperand(4).getImm() == 1 &&
7254 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7255 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 0, 0, 0, 1 })
7256 : AsmString = "movne $\x02, $\x03, $\x01";
7257 : break;
7258 : }
7259 0 : if (MI->getNumOperands() == 5 &&
7260 0 : MI->getOperand(0).isReg() &&
7261 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7262 0 : MI->getOperand(1).isReg() &&
7263 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7264 0 : MI->getOperand(4).isImm() &&
7265 0 : MI->getOperand(4).getImm() == 9 &&
7266 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7267 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 0, 1 })
7268 : AsmString = "move $\x02, $\x03, $\x01";
7269 : break;
7270 : }
7271 0 : if (MI->getNumOperands() == 5 &&
7272 0 : MI->getOperand(0).isReg() &&
7273 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7274 0 : MI->getOperand(1).isReg() &&
7275 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7276 0 : MI->getOperand(4).isImm() &&
7277 0 : MI->getOperand(4).getImm() == 10 &&
7278 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7279 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 1, 0 })
7280 : AsmString = "movue $\x02, $\x03, $\x01";
7281 : break;
7282 : }
7283 0 : if (MI->getNumOperands() == 5 &&
7284 0 : MI->getOperand(0).isReg() &&
7285 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7286 0 : MI->getOperand(1).isReg() &&
7287 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7288 0 : MI->getOperand(4).isImm() &&
7289 0 : MI->getOperand(4).getImm() == 11 &&
7290 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7291 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 0, 1, 1 })
7292 : AsmString = "movge $\x02, $\x03, $\x01";
7293 : break;
7294 : }
7295 0 : if (MI->getNumOperands() == 5 &&
7296 0 : MI->getOperand(0).isReg() &&
7297 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7298 0 : MI->getOperand(1).isReg() &&
7299 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7300 0 : MI->getOperand(4).isImm() &&
7301 0 : MI->getOperand(4).getImm() == 12 &&
7302 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7303 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 0, 0 })
7304 : AsmString = "movuge $\x02, $\x03, $\x01";
7305 : break;
7306 : }
7307 0 : if (MI->getNumOperands() == 5 &&
7308 0 : MI->getOperand(0).isReg() &&
7309 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7310 0 : MI->getOperand(1).isReg() &&
7311 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7312 0 : MI->getOperand(4).isImm() &&
7313 0 : MI->getOperand(4).getImm() == 13 &&
7314 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7315 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 0, 1 })
7316 : AsmString = "movle $\x02, $\x03, $\x01";
7317 : break;
7318 : }
7319 0 : if (MI->getNumOperands() == 5 &&
7320 0 : MI->getOperand(0).isReg() &&
7321 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7322 0 : MI->getOperand(1).isReg() &&
7323 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7324 0 : MI->getOperand(4).isImm() &&
7325 0 : MI->getOperand(4).getImm() == 14 &&
7326 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7327 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 1, 0 })
7328 : AsmString = "movule $\x02, $\x03, $\x01";
7329 : break;
7330 : }
7331 0 : if (MI->getNumOperands() == 5 &&
7332 0 : MI->getOperand(0).isReg() &&
7333 0 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7334 0 : MI->getOperand(1).isReg() &&
7335 0 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7336 0 : MI->getOperand(4).isImm() &&
7337 0 : MI->getOperand(4).getImm() == 15 &&
7338 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7339 : // (V9MOVFCCri IntRegs:$rd, FCCRegs:$cc, i32imm:$simm11, { 1, 1, 1, 1 })
7340 : AsmString = "movo $\x02, $\x03, $\x01";
7341 : break;
7342 : }
7343 : return false;
7344 : case SP::V9MOVFCCrr:
7345 15 : if (MI->getNumOperands() == 5 &&
7346 30 : MI->getOperand(0).isReg() &&
7347 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7348 30 : MI->getOperand(1).isReg() &&
7349 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7350 30 : MI->getOperand(2).isReg() &&
7351 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7352 15 : MI->getOperand(4).isImm() &&
7353 30 : MI->getOperand(4).getImm() == 8 &&
7354 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7355 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 0, 0 })
7356 : AsmString = "mova $\x02, $\x03, $\x01";
7357 : break;
7358 : }
7359 15 : if (MI->getNumOperands() == 5 &&
7360 30 : MI->getOperand(0).isReg() &&
7361 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7362 30 : MI->getOperand(1).isReg() &&
7363 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7364 30 : MI->getOperand(2).isReg() &&
7365 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7366 15 : MI->getOperand(4).isImm() &&
7367 30 : MI->getOperand(4).getImm() == 0 &&
7368 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7369 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 0, 0 })
7370 : AsmString = "movn $\x02, $\x03, $\x01";
7371 : break;
7372 : }
7373 15 : if (MI->getNumOperands() == 5 &&
7374 30 : MI->getOperand(0).isReg() &&
7375 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7376 30 : MI->getOperand(1).isReg() &&
7377 15 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7378 30 : MI->getOperand(2).isReg() &&
7379 15 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7380 15 : MI->getOperand(4).isImm() &&
7381 30 : MI->getOperand(4).getImm() == 7 &&
7382 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7383 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 1, 1 })
7384 : AsmString = "movu $\x02, $\x03, $\x01";
7385 : break;
7386 : }
7387 13 : if (MI->getNumOperands() == 5 &&
7388 26 : MI->getOperand(0).isReg() &&
7389 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7390 26 : MI->getOperand(1).isReg() &&
7391 13 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7392 26 : MI->getOperand(2).isReg() &&
7393 13 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7394 13 : MI->getOperand(4).isImm() &&
7395 26 : MI->getOperand(4).getImm() == 6 &&
7396 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7397 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 1, 0 })
7398 : AsmString = "movg $\x02, $\x03, $\x01";
7399 : break;
7400 : }
7401 12 : if (MI->getNumOperands() == 5 &&
7402 24 : MI->getOperand(0).isReg() &&
7403 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7404 24 : MI->getOperand(1).isReg() &&
7405 12 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7406 24 : MI->getOperand(2).isReg() &&
7407 12 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7408 12 : MI->getOperand(4).isImm() &&
7409 24 : MI->getOperand(4).getImm() == 5 &&
7410 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7411 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 0, 1 })
7412 : AsmString = "movug $\x02, $\x03, $\x01";
7413 : break;
7414 : }
7415 11 : if (MI->getNumOperands() == 5 &&
7416 22 : MI->getOperand(0).isReg() &&
7417 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7418 22 : MI->getOperand(1).isReg() &&
7419 11 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7420 22 : MI->getOperand(2).isReg() &&
7421 11 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7422 11 : MI->getOperand(4).isImm() &&
7423 22 : MI->getOperand(4).getImm() == 4 &&
7424 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7425 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 1, 0, 0 })
7426 : AsmString = "movl $\x02, $\x03, $\x01";
7427 : break;
7428 : }
7429 10 : if (MI->getNumOperands() == 5 &&
7430 20 : MI->getOperand(0).isReg() &&
7431 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7432 20 : MI->getOperand(1).isReg() &&
7433 10 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7434 20 : MI->getOperand(2).isReg() &&
7435 10 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7436 10 : MI->getOperand(4).isImm() &&
7437 20 : MI->getOperand(4).getImm() == 3 &&
7438 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7439 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 1, 1 })
7440 : AsmString = "movul $\x02, $\x03, $\x01";
7441 : break;
7442 : }
7443 9 : if (MI->getNumOperands() == 5 &&
7444 18 : MI->getOperand(0).isReg() &&
7445 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7446 18 : MI->getOperand(1).isReg() &&
7447 9 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7448 18 : MI->getOperand(2).isReg() &&
7449 9 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7450 9 : MI->getOperand(4).isImm() &&
7451 18 : MI->getOperand(4).getImm() == 2 &&
7452 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7453 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 1, 0 })
7454 : AsmString = "movlg $\x02, $\x03, $\x01";
7455 : break;
7456 : }
7457 8 : if (MI->getNumOperands() == 5 &&
7458 16 : MI->getOperand(0).isReg() &&
7459 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7460 16 : MI->getOperand(1).isReg() &&
7461 8 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7462 16 : MI->getOperand(2).isReg() &&
7463 8 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7464 8 : MI->getOperand(4).isImm() &&
7465 16 : MI->getOperand(4).getImm() == 1 &&
7466 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7467 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 0, 0, 0, 1 })
7468 : AsmString = "movne $\x02, $\x03, $\x01";
7469 : break;
7470 : }
7471 7 : if (MI->getNumOperands() == 5 &&
7472 14 : MI->getOperand(0).isReg() &&
7473 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7474 14 : MI->getOperand(1).isReg() &&
7475 7 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7476 14 : MI->getOperand(2).isReg() &&
7477 7 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7478 7 : MI->getOperand(4).isImm() &&
7479 14 : MI->getOperand(4).getImm() == 9 &&
7480 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7481 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 0, 1 })
7482 : AsmString = "move $\x02, $\x03, $\x01";
7483 : break;
7484 : }
7485 6 : if (MI->getNumOperands() == 5 &&
7486 12 : MI->getOperand(0).isReg() &&
7487 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7488 12 : MI->getOperand(1).isReg() &&
7489 6 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7490 12 : MI->getOperand(2).isReg() &&
7491 6 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7492 6 : MI->getOperand(4).isImm() &&
7493 12 : MI->getOperand(4).getImm() == 10 &&
7494 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7495 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 1, 0 })
7496 : AsmString = "movue $\x02, $\x03, $\x01";
7497 : break;
7498 : }
7499 5 : if (MI->getNumOperands() == 5 &&
7500 10 : MI->getOperand(0).isReg() &&
7501 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7502 10 : MI->getOperand(1).isReg() &&
7503 5 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7504 10 : MI->getOperand(2).isReg() &&
7505 5 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7506 5 : MI->getOperand(4).isImm() &&
7507 10 : MI->getOperand(4).getImm() == 11 &&
7508 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7509 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 0, 1, 1 })
7510 : AsmString = "movge $\x02, $\x03, $\x01";
7511 : break;
7512 : }
7513 4 : if (MI->getNumOperands() == 5 &&
7514 8 : MI->getOperand(0).isReg() &&
7515 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7516 8 : MI->getOperand(1).isReg() &&
7517 4 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7518 8 : MI->getOperand(2).isReg() &&
7519 4 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7520 4 : MI->getOperand(4).isImm() &&
7521 8 : MI->getOperand(4).getImm() == 12 &&
7522 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7523 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 0, 0 })
7524 : AsmString = "movuge $\x02, $\x03, $\x01";
7525 : break;
7526 : }
7527 3 : if (MI->getNumOperands() == 5 &&
7528 6 : MI->getOperand(0).isReg() &&
7529 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7530 6 : MI->getOperand(1).isReg() &&
7531 3 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7532 6 : MI->getOperand(2).isReg() &&
7533 3 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7534 3 : MI->getOperand(4).isImm() &&
7535 6 : MI->getOperand(4).getImm() == 13 &&
7536 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7537 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 0, 1 })
7538 : AsmString = "movle $\x02, $\x03, $\x01";
7539 : break;
7540 : }
7541 2 : if (MI->getNumOperands() == 5 &&
7542 4 : MI->getOperand(0).isReg() &&
7543 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7544 4 : MI->getOperand(1).isReg() &&
7545 2 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7546 4 : MI->getOperand(2).isReg() &&
7547 2 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7548 2 : MI->getOperand(4).isImm() &&
7549 4 : MI->getOperand(4).getImm() == 14 &&
7550 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7551 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 1, 0 })
7552 : AsmString = "movule $\x02, $\x03, $\x01";
7553 : break;
7554 : }
7555 1 : if (MI->getNumOperands() == 5 &&
7556 2 : MI->getOperand(0).isReg() &&
7557 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(0).getReg()) &&
7558 2 : MI->getOperand(1).isReg() &&
7559 1 : MRI.getRegClass(Sparc::FCCRegsRegClassID).contains(MI->getOperand(1).getReg()) &&
7560 2 : MI->getOperand(2).isReg() &&
7561 1 : MRI.getRegClass(Sparc::IntRegsRegClassID).contains(MI->getOperand(2).getReg()) &&
7562 1 : MI->getOperand(4).isImm() &&
7563 2 : MI->getOperand(4).getImm() == 15 &&
7564 : STI.getFeatureBits()[Sparc::FeatureV9]) {
7565 : // (V9MOVFCCrr IntRegs:$rd, FCCRegs:$cc, IntRegs:$rs2, { 1, 1, 1, 1 })
7566 : AsmString = "movo $\x02, $\x03, $\x01";
7567 : break;
7568 : }
7569 : return false;
7570 : }
7571 :
7572 : unsigned I = 0;
7573 11474 : while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
7574 24716 : AsmString[I] != '$' && AsmString[I] != '\0')
7575 10501 : ++I;
7576 2741 : OS << '\t' << StringRef(AsmString, I);
7577 2741 : if (AsmString[I] != '\0') {
7578 1768 : if (AsmString[I] == ' ' || AsmString[I] == '\t') {
7579 : OS << '\t';
7580 1768 : ++I;
7581 : }
7582 : do {
7583 8059 : if (AsmString[I] == '$') {
7584 3172 : ++I;
7585 3172 : if (AsmString[I] == (char)0xff) {
7586 0 : ++I;
7587 0 : int OpIdx = AsmString[I++] - 1;
7588 0 : int PrintMethodIdx = AsmString[I++] - 1;
7589 0 : printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, STI, OS);
7590 : } else
7591 3172 : printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
7592 : } else {
7593 4887 : OS << AsmString[I++];
7594 : }
7595 8059 : } while (AsmString[I] != '\0');
7596 : }
7597 :
7598 : return true;
7599 : }
7600 :
7601 0 : void SparcInstPrinter::printCustomAliasOperand(
7602 : const MCInst *MI, unsigned OpIdx,
7603 : unsigned PrintMethodIdx,
7604 : const MCSubtargetInfo &STI,
7605 : raw_ostream &OS) {
7606 0 : llvm_unreachable("Unknown PrintMethod kind");
7607 : }
7608 :
7609 : #endif // PRINT_ALIAS_INSTR
|