• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|* Assembly Writer Source Fragment                                            *|
4|*                                                                            *|
5|* Automatically generated file, do not edit!                                 *|
6|*                                                                            *|
7\*===----------------------------------------------------------------------===*/
8
9/// getMnemonic - This method is automatically generated by tablegen
10/// from the instruction set description.
11std::pair<const char *, uint64_t> LoongArchInstPrinter::getMnemonic(const MCInst *MI) {
12
13#ifdef __GNUC__
14#pragma GCC diagnostic push
15#pragma GCC diagnostic ignored "-Woverlength-strings"
16#endif
17  static const char AsmStrs[] = {
18  /* 0 */ "ld.b\t\0"
19  /* 6 */ "iocsrrd.b\t\0"
20  /* 17 */ "ldle.b\t\0"
21  /* 25 */ "stle.b\t\0"
22  /* 33 */ "iocsrwr.b\t\0"
23  /* 44 */ "ldgt.b\t\0"
24  /* 52 */ "stgt.b\t\0"
25  /* 60 */ "st.b\t\0"
26  /* 66 */ "ext.w.b\t\0"
27  /* 75 */ "ldx.b\t\0"
28  /* 82 */ "stx.b\t\0"
29  /* 89 */ "bitrev.4b\t\0"
30  /* 100 */ "bitrev.8b\t\0"
31  /* 111 */ "invtlb\t\0"
32  /* 119 */ "fmina.d\t\0"
33  /* 128 */ "sra.d\t\0"
34  /* 135 */ "fmaxa.d\t\0"
35  /* 144 */ "amadd_db.d\t\0"
36  /* 156 */ "amand_db.d\t\0"
37  /* 168 */ "ammin_db.d\t\0"
38  /* 180 */ "amswap_db.d\t\0"
39  /* 193 */ "amor_db.d\t\0"
40  /* 204 */ "amxor_db.d\t\0"
41  /* 216 */ "ammax_db.d\t\0"
42  /* 228 */ "fscaleb.d\t\0"
43  /* 239 */ "flogb.d\t\0"
44  /* 248 */ "fsub.d\t\0"
45  /* 256 */ "fmsub.d\t\0"
46  /* 265 */ "fnmsub.d\t\0"
47  /* 275 */ "revb.d\t\0"
48  /* 283 */ "sc.d\t\0"
49  /* 289 */ "fadd.d\t\0"
50  /* 297 */ "amadd.d\t\0"
51  /* 306 */ "fmadd.d\t\0"
52  /* 315 */ "fnmadd.d\t\0"
53  /* 325 */ "fld.d\t\0"
54  /* 332 */ "amand.d\t\0"
55  /* 341 */ "mod.d\t\0"
56  /* 348 */ "iocsrrd.d\t\0"
57  /* 359 */ "fcmp.cle.d\t\0"
58  /* 371 */ "fldle.d\t\0"
59  /* 380 */ "fcmp.sle.d\t\0"
60  /* 392 */ "asrtle.d\t\0"
61  /* 402 */ "fstle.d\t\0"
62  /* 411 */ "fcmp.cule.d\t\0"
63  /* 424 */ "fcmp.sule.d\t\0"
64  /* 437 */ "rdtime.d\t\0"
65  /* 447 */ "fcmp.cne.d\t\0"
66  /* 459 */ "fcmp.sne.d\t\0"
67  /* 471 */ "fcmp.cune.d\t\0"
68  /* 484 */ "fcmp.sune.d\t\0"
69  /* 497 */ "fcmp.caf.d\t\0"
70  /* 509 */ "fcmp.saf.d\t\0"
71  /* 521 */ "fneg.d\t\0"
72  /* 529 */ "mulh.d\t\0"
73  /* 537 */ "revh.d\t\0"
74  /* 545 */ "lu32i.d\t\0"
75  /* 554 */ "lu52i.d\t\0"
76  /* 563 */ "addu16i.d\t\0"
77  /* 574 */ "srai.d\t\0"
78  /* 582 */ "addi.d\t\0"
79  /* 590 */ "slli.d\t\0"
80  /* 598 */ "srli.d\t\0"
81  /* 606 */ "rotri.d\t\0"
82  /* 615 */ "bytepick.d\t\0"
83  /* 627 */ "bstrpick.d\t\0"
84  /* 639 */ "ftintrne.l.d\t\0"
85  /* 653 */ "ftintrm.l.d\t\0"
86  /* 666 */ "ftintrp.l.d\t\0"
87  /* 679 */ "ftint.l.d\t\0"
88  /* 690 */ "ftintrz.l.d\t\0"
89  /* 703 */ "sll.d\t\0"
90  /* 710 */ "srl.d\t\0"
91  /* 717 */ "alsl.d\t\0"
92  /* 725 */ "fmul.d\t\0"
93  /* 733 */ "fcopysign.d\t\0"
94  /* 746 */ "fmin.d\t\0"
95  /* 754 */ "ammin.d\t\0"
96  /* 763 */ "fcmp.cun.d\t\0"
97  /* 775 */ "fcmp.sun.d\t\0"
98  /* 787 */ "clo.d\t\0"
99  /* 794 */ "cto.d\t\0"
100  /* 801 */ "amswap.d\t\0"
101  /* 811 */ "frecip.d\t\0"
102  /* 821 */ "fcmp.ceq.d\t\0"
103  /* 833 */ "fcmp.seq.d\t\0"
104  /* 845 */ "fcmp.cueq.d\t\0"
105  /* 858 */ "fcmp.sueq.d\t\0"
106  /* 871 */ "movgr2fr.d\t\0"
107  /* 883 */ "movfr2gr.d\t\0"
108  /* 895 */ "fcmp.cor.d\t\0"
109  /* 907 */ "amor.d\t\0"
110  /* 915 */ "fcmp.sor.d\t\0"
111  /* 927 */ "amxor.d\t\0"
112  /* 936 */ "rotr.d\t\0"
113  /* 944 */ "ldptr.d\t\0"
114  /* 953 */ "stptr.d\t\0"
115  /* 962 */ "iocsrwr.d\t\0"
116  /* 973 */ "fcvt.s.d\t\0"
117  /* 983 */ "fabs.d\t\0"
118  /* 991 */ "bstrins.d\t\0"
119  /* 1002 */ "fclass.d\t\0"
120  /* 1012 */ "fldgt.d\t\0"
121  /* 1021 */ "asrtgt.d\t\0"
122  /* 1031 */ "fstgt.d\t\0"
123  /* 1040 */ "fcmp.clt.d\t\0"
124  /* 1052 */ "fcmp.slt.d\t\0"
125  /* 1064 */ "fcmp.cult.d\t\0"
126  /* 1077 */ "fcmp.sult.d\t\0"
127  /* 1090 */ "frint.d\t\0"
128  /* 1099 */ "fsqrt.d\t\0"
129  /* 1108 */ "frsqrt.d\t\0"
130  /* 1118 */ "fst.d\t\0"
131  /* 1125 */ "bitrev.d\t\0"
132  /* 1135 */ "fdiv.d\t\0"
133  /* 1143 */ "fmov.d\t\0"
134  /* 1151 */ "ftintrne.w.d\t\0"
135  /* 1165 */ "ftintrm.w.d\t\0"
136  /* 1178 */ "ftintrp.w.d\t\0"
137  /* 1191 */ "ftint.w.d\t\0"
138  /* 1202 */ "ftintrz.w.d\t\0"
139  /* 1215 */ "fmax.d\t\0"
140  /* 1223 */ "ammax.d\t\0"
141  /* 1232 */ "fldx.d\t\0"
142  /* 1240 */ "fstx.d\t\0"
143  /* 1248 */ "clz.d\t\0"
144  /* 1255 */ "ctz.d\t\0"
145  /* 1262 */ "la.tls.gd\t\0"
146  /* 1273 */ "la.tls.ld\t\0"
147  /* 1284 */ "preld\t\0"
148  /* 1291 */ "and\t\0"
149  /* 1296 */ "tlbrd\t\0"
150  /* 1303 */ "csrrd\t\0"
151  /* 1310 */ "bge\t\0"
152  /* 1315 */ "la.tls.ie\t\0"
153  /* 1326 */ "la.tls.le\t\0"
154  /* 1337 */ "idle\t\0"
155  /* 1343 */ "bne\t\0"
156  /* 1348 */ "ldpte\t\0"
157  /* 1355 */ "movfr2cf\t\0"
158  /* 1365 */ "movgr2cf\t\0"
159  /* 1375 */ "cpucfg\t\0"
160  /* 1383 */ "csrxchg\t\0"
161  /* 1392 */ "ld.h\t\0"
162  /* 1398 */ "iocsrrd.h\t\0"
163  /* 1409 */ "ldle.h\t\0"
164  /* 1417 */ "stle.h\t\0"
165  /* 1425 */ "iocsrwr.h\t\0"
166  /* 1436 */ "ldgt.h\t\0"
167  /* 1444 */ "stgt.h\t\0"
168  /* 1452 */ "st.h\t\0"
169  /* 1458 */ "ext.w.h\t\0"
170  /* 1467 */ "ldx.h\t\0"
171  /* 1474 */ "stx.h\t\0"
172  /* 1481 */ "revb.2h\t\0"
173  /* 1490 */ "revb.4h\t\0"
174  /* 1499 */ "tlbsrch\t\0"
175  /* 1508 */ "tlbflush\t\0"
176  /* 1518 */ "pcalau12i\t\0"
177  /* 1529 */ "pcaddu12i\t\0"
178  /* 1540 */ "pcaddu18i\t\0"
179  /* 1551 */ "pcaddi\t\0"
180  /* 1559 */ "andi\t\0"
181  /* 1565 */ "xori\t\0"
182  /* 1571 */ "slti\t\0"
183  /* 1577 */ "sltui\t\0"
184  /* 1584 */ "break\t\0"
185  /* 1591 */ "ffint.d.l\t\0"
186  /* 1602 */ "ffint.s.l\t\0"
187  /* 1613 */ "bl\t\0"
188  /* 1617 */ "dbcl\t\0"
189  /* 1623 */ "la.pcrel\t\0"
190  /* 1633 */ "fsel\t\0"
191  /* 1639 */ "syscall\t\0"
192  /* 1648 */ "tlbfill\t\0"
193  /* 1657 */ "jirl\t\0"
194  /* 1663 */ "andn\t\0"
195  /* 1669 */ "orn\t\0"
196  /* 1674 */ "ertn\t\0"
197  /* 1680 */ "cacop\t\0"
198  /* 1687 */ "beq\t\0"
199  /* 1692 */ "dbar\t\0"
200  /* 1698 */ "ibar\t\0"
201  /* 1704 */ "movcf2fr\t\0"
202  /* 1714 */ "movcf2gr\t\0"
203  /* 1724 */ "movfcsr2gr\t\0"
204  /* 1736 */ "lddir\t\0"
205  /* 1743 */ "tlbclr\t\0"
206  /* 1751 */ "nor\t\0"
207  /* 1756 */ "xor\t\0"
208  /* 1761 */ "movgr2fcsr\t\0"
209  /* 1773 */ "tlbwr\t\0"
210  /* 1780 */ "csrwr\t\0"
211  /* 1787 */ "fmina.s\t\0"
212  /* 1796 */ "fmaxa.s\t\0"
213  /* 1805 */ "fscaleb.s\t\0"
214  /* 1816 */ "flogb.s\t\0"
215  /* 1825 */ "fsub.s\t\0"
216  /* 1833 */ "fmsub.s\t\0"
217  /* 1842 */ "fnmsub.s\t\0"
218  /* 1852 */ "fcvt.d.s\t\0"
219  /* 1862 */ "fadd.s\t\0"
220  /* 1870 */ "fmadd.s\t\0"
221  /* 1879 */ "fnmadd.s\t\0"
222  /* 1889 */ "fld.s\t\0"
223  /* 1896 */ "fcmp.cle.s\t\0"
224  /* 1908 */ "fldle.s\t\0"
225  /* 1917 */ "fcmp.sle.s\t\0"
226  /* 1929 */ "fstle.s\t\0"
227  /* 1938 */ "fcmp.cule.s\t\0"
228  /* 1951 */ "fcmp.sule.s\t\0"
229  /* 1964 */ "fcmp.cne.s\t\0"
230  /* 1976 */ "fcmp.sne.s\t\0"
231  /* 1988 */ "fcmp.cune.s\t\0"
232  /* 2001 */ "fcmp.sune.s\t\0"
233  /* 2014 */ "fcmp.caf.s\t\0"
234  /* 2026 */ "fcmp.saf.s\t\0"
235  /* 2038 */ "fneg.s\t\0"
236  /* 2046 */ "ftintrne.l.s\t\0"
237  /* 2060 */ "ftintrm.l.s\t\0"
238  /* 2073 */ "ftintrp.l.s\t\0"
239  /* 2086 */ "ftint.l.s\t\0"
240  /* 2097 */ "ftintrz.l.s\t\0"
241  /* 2110 */ "fmul.s\t\0"
242  /* 2118 */ "fcopysign.s\t\0"
243  /* 2131 */ "fmin.s\t\0"
244  /* 2139 */ "fcmp.cun.s\t\0"
245  /* 2151 */ "fcmp.sun.s\t\0"
246  /* 2163 */ "frecip.s\t\0"
247  /* 2173 */ "fcmp.ceq.s\t\0"
248  /* 2185 */ "fcmp.seq.s\t\0"
249  /* 2197 */ "fcmp.cueq.s\t\0"
250  /* 2210 */ "fcmp.sueq.s\t\0"
251  /* 2223 */ "movfrh2gr.s\t\0"
252  /* 2236 */ "movfr2gr.s\t\0"
253  /* 2248 */ "fcmp.cor.s\t\0"
254  /* 2260 */ "fcmp.sor.s\t\0"
255  /* 2272 */ "fabs.s\t\0"
256  /* 2280 */ "fclass.s\t\0"
257  /* 2290 */ "fldgt.s\t\0"
258  /* 2299 */ "fstgt.s\t\0"
259  /* 2308 */ "fcmp.clt.s\t\0"
260  /* 2320 */ "fcmp.slt.s\t\0"
261  /* 2332 */ "fcmp.cult.s\t\0"
262  /* 2345 */ "fcmp.sult.s\t\0"
263  /* 2358 */ "frint.s\t\0"
264  /* 2367 */ "fsqrt.s\t\0"
265  /* 2376 */ "frsqrt.s\t\0"
266  /* 2386 */ "fst.s\t\0"
267  /* 2393 */ "fdiv.s\t\0"
268  /* 2401 */ "fmov.s\t\0"
269  /* 2409 */ "ftintrne.w.s\t\0"
270  /* 2423 */ "ftintrm.w.s\t\0"
271  /* 2436 */ "ftintrp.w.s\t\0"
272  /* 2449 */ "ftint.w.s\t\0"
273  /* 2460 */ "ftintrz.w.s\t\0"
274  /* 2473 */ "fmax.s\t\0"
275  /* 2481 */ "fldx.s\t\0"
276  /* 2489 */ "fstx.s\t\0"
277  /* 2497 */ "la.abs\t\0"
278  /* 2505 */ "blt\t\0"
279  /* 2510 */ "slt\t\0"
280  /* 2515 */ "la.got\t\0"
281  /* 2523 */ "ld.bu\t\0"
282  /* 2530 */ "ldx.bu\t\0"
283  /* 2538 */ "ammin_db.du\t\0"
284  /* 2551 */ "ammax_db.du\t\0"
285  /* 2564 */ "mod.du\t\0"
286  /* 2572 */ "mulh.du\t\0"
287  /* 2581 */ "ammin.du\t\0"
288  /* 2591 */ "div.du\t\0"
289  /* 2599 */ "ammax.du\t\0"
290  /* 2609 */ "bgeu\t\0"
291  /* 2615 */ "ld.hu\t\0"
292  /* 2622 */ "ldx.hu\t\0"
293  /* 2630 */ "bltu\t\0"
294  /* 2636 */ "sltu\t\0"
295  /* 2642 */ "ammin_db.wu\t\0"
296  /* 2655 */ "ammax_db.wu\t\0"
297  /* 2668 */ "mulw.d.wu\t\0"
298  /* 2679 */ "ld.wu\t\0"
299  /* 2686 */ "mod.wu\t\0"
300  /* 2694 */ "mulh.wu\t\0"
301  /* 2703 */ "alsl.wu\t\0"
302  /* 2712 */ "ammin.wu\t\0"
303  /* 2722 */ "div.wu\t\0"
304  /* 2730 */ "ammax.wu\t\0"
305  /* 2740 */ "ldx.wu\t\0"
306  /* 2748 */ "sra.w\t\0"
307  /* 2755 */ "crcc.w.b.w\t\0"
308  /* 2767 */ "crc.w.b.w\t\0"
309  /* 2778 */ "amadd_db.w\t\0"
310  /* 2790 */ "amand_db.w\t\0"
311  /* 2802 */ "ammin_db.w\t\0"
312  /* 2814 */ "amswap_db.w\t\0"
313  /* 2827 */ "amor_db.w\t\0"
314  /* 2838 */ "amxor_db.w\t\0"
315  /* 2850 */ "ammax_db.w\t\0"
316  /* 2862 */ "sub.w\t\0"
317  /* 2869 */ "sc.w\t\0"
318  /* 2875 */ "ffint.d.w\t\0"
319  /* 2886 */ "crcc.w.d.w\t\0"
320  /* 2898 */ "crc.w.d.w\t\0"
321  /* 2909 */ "mulw.d.w\t\0"
322  /* 2919 */ "amadd.w\t\0"
323  /* 2928 */ "ld.w\t\0"
324  /* 2934 */ "amand.w\t\0"
325  /* 2943 */ "mod.w\t\0"
326  /* 2950 */ "iocsrrd.w\t\0"
327  /* 2961 */ "ldle.w\t\0"
328  /* 2969 */ "stle.w\t\0"
329  /* 2977 */ "crcc.w.h.w\t\0"
330  /* 2989 */ "crc.w.h.w\t\0"
331  /* 3000 */ "rdtimeh.w\t\0"
332  /* 3011 */ "mulh.w\t\0"
333  /* 3019 */ "movgr2frh.w\t\0"
334  /* 3032 */ "lu12i.w\t\0"
335  /* 3041 */ "srai.w\t\0"
336  /* 3049 */ "addi.w\t\0"
337  /* 3057 */ "slli.w\t\0"
338  /* 3065 */ "srli.w\t\0"
339  /* 3073 */ "rotri.w\t\0"
340  /* 3082 */ "bytepick.w\t\0"
341  /* 3094 */ "bstrpick.w\t\0"
342  /* 3106 */ "rdtimel.w\t\0"
343  /* 3117 */ "sll.w\t\0"
344  /* 3124 */ "srl.w\t\0"
345  /* 3131 */ "alsl.w\t\0"
346  /* 3139 */ "mul.w\t\0"
347  /* 3146 */ "ammin.w\t\0"
348  /* 3155 */ "clo.w\t\0"
349  /* 3162 */ "cto.w\t\0"
350  /* 3169 */ "amswap.w\t\0"
351  /* 3179 */ "movgr2fr.w\t\0"
352  /* 3191 */ "amor.w\t\0"
353  /* 3199 */ "amxor.w\t\0"
354  /* 3208 */ "rotr.w\t\0"
355  /* 3216 */ "ldptr.w\t\0"
356  /* 3225 */ "stptr.w\t\0"
357  /* 3234 */ "iocsrwr.w\t\0"
358  /* 3245 */ "ffint.s.w\t\0"
359  /* 3256 */ "bstrins.w\t\0"
360  /* 3267 */ "ldgt.w\t\0"
361  /* 3275 */ "stgt.w\t\0"
362  /* 3283 */ "st.w\t\0"
363  /* 3289 */ "bitrev.w\t\0"
364  /* 3299 */ "div.w\t\0"
365  /* 3306 */ "crcc.w.w.w\t\0"
366  /* 3318 */ "crc.w.w.w\t\0"
367  /* 3329 */ "ammax.w\t\0"
368  /* 3338 */ "ldx.w\t\0"
369  /* 3345 */ "stx.w\t\0"
370  /* 3352 */ "clz.w\t\0"
371  /* 3359 */ "ctz.w\t\0"
372  /* 3366 */ "revb.2w\t\0"
373  /* 3375 */ "revh.2w\t\0"
374  /* 3384 */ "preldx\t\0"
375  /* 3392 */ "bnez\t\0"
376  /* 3398 */ "bcnez\t\0"
377  /* 3405 */ "masknez\t\0"
378  /* 3414 */ "beqz\t\0"
379  /* 3420 */ "bceqz\t\0"
380  /* 3427 */ "maskeqz\t\0"
381  /* 3436 */ "# XRay Function Patchable RET.\0"
382  /* 3467 */ "# XRay Typed Event Log.\0"
383  /* 3491 */ "# XRay Custom Event Log.\0"
384  /* 3516 */ "# XRay Function Enter.\0"
385  /* 3539 */ "# XRay Tail Call Exit.\0"
386  /* 3562 */ "# XRay Function Exit.\0"
387  /* 3584 */ "LIFETIME_END\0"
388  /* 3597 */ "PSEUDO_PROBE\0"
389  /* 3610 */ "BUNDLE\0"
390  /* 3617 */ "DBG_VALUE\0"
391  /* 3627 */ "DBG_INSTR_REF\0"
392  /* 3641 */ "DBG_PHI\0"
393  /* 3649 */ "DBG_LABEL\0"
394  /* 3659 */ "LIFETIME_START\0"
395  /* 3674 */ "DBG_VALUE_LIST\0"
396  /* 3689 */ "# FEntry call\0"
397};
398#ifdef __GNUC__
399#pragma GCC diagnostic pop
400#endif
401
402  static const uint16_t OpInfo0[] = {
403    0U,	// PHI
404    0U,	// INLINEASM
405    0U,	// INLINEASM_BR
406    0U,	// CFI_INSTRUCTION
407    0U,	// EH_LABEL
408    0U,	// GC_LABEL
409    0U,	// ANNOTATION_LABEL
410    0U,	// KILL
411    0U,	// EXTRACT_SUBREG
412    0U,	// INSERT_SUBREG
413    0U,	// IMPLICIT_DEF
414    0U,	// SUBREG_TO_REG
415    0U,	// COPY_TO_REGCLASS
416    3618U,	// DBG_VALUE
417    3675U,	// DBG_VALUE_LIST
418    3628U,	// DBG_INSTR_REF
419    3642U,	// DBG_PHI
420    3650U,	// DBG_LABEL
421    0U,	// REG_SEQUENCE
422    0U,	// COPY
423    3611U,	// BUNDLE
424    3660U,	// LIFETIME_START
425    3585U,	// LIFETIME_END
426    3598U,	// PSEUDO_PROBE
427    0U,	// ARITH_FENCE
428    0U,	// STACKMAP
429    3690U,	// FENTRY_CALL
430    0U,	// PATCHPOINT
431    0U,	// LOAD_STACK_GUARD
432    0U,	// PREALLOCATED_SETUP
433    0U,	// PREALLOCATED_ARG
434    0U,	// STATEPOINT
435    0U,	// LOCAL_ESCAPE
436    0U,	// FAULTING_OP
437    0U,	// PATCHABLE_OP
438    3517U,	// PATCHABLE_FUNCTION_ENTER
439    3437U,	// PATCHABLE_RET
440    3563U,	// PATCHABLE_FUNCTION_EXIT
441    3540U,	// PATCHABLE_TAIL_CALL
442    3492U,	// PATCHABLE_EVENT_CALL
443    3468U,	// PATCHABLE_TYPED_EVENT_CALL
444    0U,	// ICALL_BRANCH_FUNNEL
445    0U,	// MEMBARRIER
446    0U,	// G_ASSERT_SEXT
447    0U,	// G_ASSERT_ZEXT
448    0U,	// G_ASSERT_ALIGN
449    0U,	// G_ADD
450    0U,	// G_SUB
451    0U,	// G_MUL
452    0U,	// G_SDIV
453    0U,	// G_UDIV
454    0U,	// G_SREM
455    0U,	// G_UREM
456    0U,	// G_SDIVREM
457    0U,	// G_UDIVREM
458    0U,	// G_AND
459    0U,	// G_OR
460    0U,	// G_XOR
461    0U,	// G_IMPLICIT_DEF
462    0U,	// G_PHI
463    0U,	// G_FRAME_INDEX
464    0U,	// G_GLOBAL_VALUE
465    0U,	// G_EXTRACT
466    0U,	// G_UNMERGE_VALUES
467    0U,	// G_INSERT
468    0U,	// G_MERGE_VALUES
469    0U,	// G_BUILD_VECTOR
470    0U,	// G_BUILD_VECTOR_TRUNC
471    0U,	// G_CONCAT_VECTORS
472    0U,	// G_PTRTOINT
473    0U,	// G_INTTOPTR
474    0U,	// G_BITCAST
475    0U,	// G_FREEZE
476    0U,	// G_INTRINSIC_FPTRUNC_ROUND
477    0U,	// G_INTRINSIC_TRUNC
478    0U,	// G_INTRINSIC_ROUND
479    0U,	// G_INTRINSIC_LRINT
480    0U,	// G_INTRINSIC_ROUNDEVEN
481    0U,	// G_READCYCLECOUNTER
482    0U,	// G_LOAD
483    0U,	// G_SEXTLOAD
484    0U,	// G_ZEXTLOAD
485    0U,	// G_INDEXED_LOAD
486    0U,	// G_INDEXED_SEXTLOAD
487    0U,	// G_INDEXED_ZEXTLOAD
488    0U,	// G_STORE
489    0U,	// G_INDEXED_STORE
490    0U,	// G_ATOMIC_CMPXCHG_WITH_SUCCESS
491    0U,	// G_ATOMIC_CMPXCHG
492    0U,	// G_ATOMICRMW_XCHG
493    0U,	// G_ATOMICRMW_ADD
494    0U,	// G_ATOMICRMW_SUB
495    0U,	// G_ATOMICRMW_AND
496    0U,	// G_ATOMICRMW_NAND
497    0U,	// G_ATOMICRMW_OR
498    0U,	// G_ATOMICRMW_XOR
499    0U,	// G_ATOMICRMW_MAX
500    0U,	// G_ATOMICRMW_MIN
501    0U,	// G_ATOMICRMW_UMAX
502    0U,	// G_ATOMICRMW_UMIN
503    0U,	// G_ATOMICRMW_FADD
504    0U,	// G_ATOMICRMW_FSUB
505    0U,	// G_ATOMICRMW_FMAX
506    0U,	// G_ATOMICRMW_FMIN
507    0U,	// G_ATOMICRMW_UINC_WRAP
508    0U,	// G_ATOMICRMW_UDEC_WRAP
509    0U,	// G_FENCE
510    0U,	// G_BRCOND
511    0U,	// G_BRINDIRECT
512    0U,	// G_INVOKE_REGION_START
513    0U,	// G_INTRINSIC
514    0U,	// G_INTRINSIC_W_SIDE_EFFECTS
515    0U,	// G_ANYEXT
516    0U,	// G_TRUNC
517    0U,	// G_CONSTANT
518    0U,	// G_FCONSTANT
519    0U,	// G_VASTART
520    0U,	// G_VAARG
521    0U,	// G_SEXT
522    0U,	// G_SEXT_INREG
523    0U,	// G_ZEXT
524    0U,	// G_SHL
525    0U,	// G_LSHR
526    0U,	// G_ASHR
527    0U,	// G_FSHL
528    0U,	// G_FSHR
529    0U,	// G_ROTR
530    0U,	// G_ROTL
531    0U,	// G_ICMP
532    0U,	// G_FCMP
533    0U,	// G_SELECT
534    0U,	// G_UADDO
535    0U,	// G_UADDE
536    0U,	// G_USUBO
537    0U,	// G_USUBE
538    0U,	// G_SADDO
539    0U,	// G_SADDE
540    0U,	// G_SSUBO
541    0U,	// G_SSUBE
542    0U,	// G_UMULO
543    0U,	// G_SMULO
544    0U,	// G_UMULH
545    0U,	// G_SMULH
546    0U,	// G_UADDSAT
547    0U,	// G_SADDSAT
548    0U,	// G_USUBSAT
549    0U,	// G_SSUBSAT
550    0U,	// G_USHLSAT
551    0U,	// G_SSHLSAT
552    0U,	// G_SMULFIX
553    0U,	// G_UMULFIX
554    0U,	// G_SMULFIXSAT
555    0U,	// G_UMULFIXSAT
556    0U,	// G_SDIVFIX
557    0U,	// G_UDIVFIX
558    0U,	// G_SDIVFIXSAT
559    0U,	// G_UDIVFIXSAT
560    0U,	// G_FADD
561    0U,	// G_FSUB
562    0U,	// G_FMUL
563    0U,	// G_FMA
564    0U,	// G_FMAD
565    0U,	// G_FDIV
566    0U,	// G_FREM
567    0U,	// G_FPOW
568    0U,	// G_FPOWI
569    0U,	// G_FEXP
570    0U,	// G_FEXP2
571    0U,	// G_FLOG
572    0U,	// G_FLOG2
573    0U,	// G_FLOG10
574    0U,	// G_FNEG
575    0U,	// G_FPEXT
576    0U,	// G_FPTRUNC
577    0U,	// G_FPTOSI
578    0U,	// G_FPTOUI
579    0U,	// G_SITOFP
580    0U,	// G_UITOFP
581    0U,	// G_FABS
582    0U,	// G_FCOPYSIGN
583    0U,	// G_IS_FPCLASS
584    0U,	// G_FCANONICALIZE
585    0U,	// G_FMINNUM
586    0U,	// G_FMAXNUM
587    0U,	// G_FMINNUM_IEEE
588    0U,	// G_FMAXNUM_IEEE
589    0U,	// G_FMINIMUM
590    0U,	// G_FMAXIMUM
591    0U,	// G_PTR_ADD
592    0U,	// G_PTRMASK
593    0U,	// G_SMIN
594    0U,	// G_SMAX
595    0U,	// G_UMIN
596    0U,	// G_UMAX
597    0U,	// G_ABS
598    0U,	// G_LROUND
599    0U,	// G_LLROUND
600    0U,	// G_BR
601    0U,	// G_BRJT
602    0U,	// G_INSERT_VECTOR_ELT
603    0U,	// G_EXTRACT_VECTOR_ELT
604    0U,	// G_SHUFFLE_VECTOR
605    0U,	// G_CTTZ
606    0U,	// G_CTTZ_ZERO_UNDEF
607    0U,	// G_CTLZ
608    0U,	// G_CTLZ_ZERO_UNDEF
609    0U,	// G_CTPOP
610    0U,	// G_BSWAP
611    0U,	// G_BITREVERSE
612    0U,	// G_FCEIL
613    0U,	// G_FCOS
614    0U,	// G_FSIN
615    0U,	// G_FSQRT
616    0U,	// G_FFLOOR
617    0U,	// G_FRINT
618    0U,	// G_FNEARBYINT
619    0U,	// G_ADDRSPACE_CAST
620    0U,	// G_BLOCK_ADDR
621    0U,	// G_JUMP_TABLE
622    0U,	// G_DYN_STACKALLOC
623    0U,	// G_STRICT_FADD
624    0U,	// G_STRICT_FSUB
625    0U,	// G_STRICT_FMUL
626    0U,	// G_STRICT_FDIV
627    0U,	// G_STRICT_FREM
628    0U,	// G_STRICT_FMA
629    0U,	// G_STRICT_FSQRT
630    0U,	// G_READ_REGISTER
631    0U,	// G_WRITE_REGISTER
632    0U,	// G_MEMCPY
633    0U,	// G_MEMCPY_INLINE
634    0U,	// G_MEMMOVE
635    0U,	// G_MEMSET
636    0U,	// G_BZERO
637    0U,	// G_VECREDUCE_SEQ_FADD
638    0U,	// G_VECREDUCE_SEQ_FMUL
639    0U,	// G_VECREDUCE_FADD
640    0U,	// G_VECREDUCE_FMUL
641    0U,	// G_VECREDUCE_FMAX
642    0U,	// G_VECREDUCE_FMIN
643    0U,	// G_VECREDUCE_ADD
644    0U,	// G_VECREDUCE_MUL
645    0U,	// G_VECREDUCE_AND
646    0U,	// G_VECREDUCE_OR
647    0U,	// G_VECREDUCE_XOR
648    0U,	// G_VECREDUCE_SMAX
649    0U,	// G_VECREDUCE_SMIN
650    0U,	// G_VECREDUCE_UMAX
651    0U,	// G_VECREDUCE_UMIN
652    0U,	// G_SBFX
653    0U,	// G_UBFX
654    5U,	// ADJCALLSTACKDOWN
655    5U,	// ADJCALLSTACKUP
656    5U,	// PseudoAtomicLoadAdd32
657    5U,	// PseudoAtomicLoadAnd32
658    5U,	// PseudoAtomicLoadNand32
659    5U,	// PseudoAtomicLoadNand64
660    5U,	// PseudoAtomicLoadOr32
661    5U,	// PseudoAtomicLoadSub32
662    5U,	// PseudoAtomicLoadXor32
663    5U,	// PseudoAtomicStoreD
664    5U,	// PseudoAtomicStoreW
665    5U,	// PseudoAtomicSwap32
666    5U,	// PseudoBR
667    5U,	// PseudoBRIND
668    5U,	// PseudoB_TAIL
669    5U,	// PseudoCALL
670    5U,	// PseudoCALLIndirect
671    5U,	// PseudoCmpXchg32
672    5U,	// PseudoCmpXchg64
673    5U,	// PseudoJIRL_CALL
674    5U,	// PseudoJIRL_TAIL
675    6594U,	// PseudoLA_ABS
676    39362U,	// PseudoLA_ABS_LARGE
677    6612U,	// PseudoLA_GOT
678    6612U,	// PseudoLA_GOT_LARGE
679    5720U,	// PseudoLA_PCREL
680    5720U,	// PseudoLA_PCREL_LARGE
681    5359U,	// PseudoLA_TLS_GD
682    5359U,	// PseudoLA_TLS_GD_LARGE
683    5412U,	// PseudoLA_TLS_IE
684    5412U,	// PseudoLA_TLS_IE_LARGE
685    5370U,	// PseudoLA_TLS_LD
686    5370U,	// PseudoLA_TLS_LD_LARGE
687    5423U,	// PseudoLA_TLS_LE
688    5U,	// PseudoLD_CFR
689    4689U,	// PseudoLI_D
690    7156U,	// PseudoLI_W
691    5U,	// PseudoMaskedAtomicLoadAdd32
692    5U,	// PseudoMaskedAtomicLoadMax32
693    5U,	// PseudoMaskedAtomicLoadMin32
694    5U,	// PseudoMaskedAtomicLoadNand32
695    5U,	// PseudoMaskedAtomicLoadSub32
696    5U,	// PseudoMaskedAtomicLoadUMax32
697    5U,	// PseudoMaskedAtomicLoadUMin32
698    5U,	// PseudoMaskedAtomicSwap32
699    5U,	// PseudoMaskedCmpXchg32
700    5U,	// PseudoRET
701    5U,	// PseudoST_CFR
702    5U,	// PseudoTAIL
703    5U,	// PseudoTAILIndirect
704    5U,	// PseudoUNIMP
705    5U,	// RDFCSR
706    5U,	// WRFCSR
707    4679U,	// ADDI_D
708    7146U,	// ADDI_W
709    4660U,	// ADDU16I_D
710    4387U,	// ADD_D
711    7018U,	// ADD_W
712    4814U,	// ALSL_D
713    7228U,	// ALSL_W
714    6800U,	// ALSL_WU
715    4394U,	// AMADD_D
716    4241U,	// AMADD_DB_D
717    6875U,	// AMADD_DB_W
718    7016U,	// AMADD_W
719    4429U,	// AMAND_D
720    4253U,	// AMAND_DB_D
721    6887U,	// AMAND_DB_W
722    7031U,	// AMAND_W
723    5320U,	// AMMAX_D
724    4313U,	// AMMAX_DB_D
725    6648U,	// AMMAX_DB_DU
726    6947U,	// AMMAX_DB_W
727    6752U,	// AMMAX_DB_WU
728    6696U,	// AMMAX_DU
729    7426U,	// AMMAX_W
730    6827U,	// AMMAX_WU
731    4851U,	// AMMIN_D
732    4265U,	// AMMIN_DB_D
733    6635U,	// AMMIN_DB_DU
734    6899U,	// AMMIN_DB_W
735    6739U,	// AMMIN_DB_WU
736    6678U,	// AMMIN_DU
737    7243U,	// AMMIN_W
738    6809U,	// AMMIN_WU
739    5004U,	// AMOR_D
740    4290U,	// AMOR_DB_D
741    6924U,	// AMOR_DB_W
742    7288U,	// AMOR_W
743    4898U,	// AMSWAP_D
744    4277U,	// AMSWAP_DB_D
745    6911U,	// AMSWAP_DB_W
746    7266U,	// AMSWAP_W
747    5024U,	// AMXOR_D
748    4301U,	// AMXOR_DB_D
749    6935U,	// AMXOR_DB_W
750    7296U,	// AMXOR_W
751    5388U,	// AND
752    5656U,	// ANDI
753    5760U,	// ANDN
754    5118U,	// ASRTGT_D
755    4489U,	// ASRTLE_D
756    20484U,	// B
757    7517U,	// BCEQZ
758    7495U,	// BCNEZ
759    5784U,	// BEQ
760    7511U,	// BEQZ
761    5407U,	// BGE
762    6706U,	// BGEU
763    4186U,	// BITREV_4B
764    4197U,	// BITREV_8B
765    5222U,	// BITREV_D
766    7386U,	// BITREV_W
767    22094U,	// BL
768    6602U,	// BLT
769    6727U,	// BLTU
770    5440U,	// BNE
771    7489U,	// BNEZ
772    22065U,	// BREAK
773    9184U,	// BSTRINS_D
774    11449U,	// BSTRINS_W
775    4724U,	// BSTRPICK_D
776    7191U,	// BSTRPICK_W
777    4712U,	// BYTEPICK_D
778    7179U,	// BYTEPICK_W
779    5777U,	// CACOP
780    4884U,	// CLO_D
781    7252U,	// CLO_W
782    5345U,	// CLZ_D
783    7449U,	// CLZ_W
784    5472U,	// CPUCFG
785    6852U,	// CRCC_W_B_W
786    6983U,	// CRCC_W_D_W
787    7074U,	// CRCC_W_H_W
788    7403U,	// CRCC_W_W_W
789    6864U,	// CRC_W_B_W
790    6995U,	// CRC_W_D_W
791    7086U,	// CRC_W_H_W
792    7415U,	// CRC_W_W_W
793    5400U,	// CSRRD
794    26357U,	// CSRWR
795    9576U,	// CSRXCHG
796    4891U,	// CTO_D
797    7259U,	// CTO_W
798    5352U,	// CTZ_D
799    7456U,	// CTZ_W
800    22173U,	// DBAR
801    22098U,	// DBCL
802    5233U,	// DIV_D
803    6688U,	// DIV_DU
804    7396U,	// DIV_W
805    6819U,	// DIV_WU
806    1675U,	// ERTN
807    4163U,	// EXT_W_B
808    5555U,	// EXT_W_H
809    5080U,	// FABS_D
810    6369U,	// FABS_S
811    4386U,	// FADD_D
812    5959U,	// FADD_S
813    5099U,	// FCLASS_D
814    6377U,	// FCLASS_S
815    4594U,	// FCMP_CAF_D
816    6111U,	// FCMP_CAF_S
817    4918U,	// FCMP_CEQ_D
818    6270U,	// FCMP_CEQ_S
819    4456U,	// FCMP_CLE_D
820    5993U,	// FCMP_CLE_S
821    5137U,	// FCMP_CLT_D
822    6405U,	// FCMP_CLT_S
823    4544U,	// FCMP_CNE_D
824    6061U,	// FCMP_CNE_S
825    4992U,	// FCMP_COR_D
826    6345U,	// FCMP_COR_S
827    4942U,	// FCMP_CUEQ_D
828    6294U,	// FCMP_CUEQ_S
829    4508U,	// FCMP_CULE_D
830    6035U,	// FCMP_CULE_S
831    5161U,	// FCMP_CULT_D
832    6429U,	// FCMP_CULT_S
833    4568U,	// FCMP_CUNE_D
834    6085U,	// FCMP_CUNE_S
835    4860U,	// FCMP_CUN_D
836    6236U,	// FCMP_CUN_S
837    4606U,	// FCMP_SAF_D
838    6123U,	// FCMP_SAF_S
839    4930U,	// FCMP_SEQ_D
840    6282U,	// FCMP_SEQ_S
841    4477U,	// FCMP_SLE_D
842    6014U,	// FCMP_SLE_S
843    5149U,	// FCMP_SLT_D
844    6417U,	// FCMP_SLT_S
845    4556U,	// FCMP_SNE_D
846    6073U,	// FCMP_SNE_S
847    5012U,	// FCMP_SOR_D
848    6357U,	// FCMP_SOR_S
849    4955U,	// FCMP_SUEQ_D
850    6307U,	// FCMP_SUEQ_S
851    4521U,	// FCMP_SULE_D
852    6048U,	// FCMP_SULE_S
853    5174U,	// FCMP_SULT_D
854    6442U,	// FCMP_SULT_S
855    4581U,	// FCMP_SUNE_D
856    6098U,	// FCMP_SUNE_S
857    4872U,	// FCMP_SUN_D
858    6248U,	// FCMP_SUN_S
859    4830U,	// FCOPYSIGN_D
860    6215U,	// FCOPYSIGN_S
861    5949U,	// FCVT_D_S
862    5070U,	// FCVT_S_D
863    5232U,	// FDIV_D
864    6490U,	// FDIV_S
865    5688U,	// FFINT_D_L
866    6972U,	// FFINT_D_W
867    5699U,	// FFINT_S_L
868    7342U,	// FFINT_S_W
869    5109U,	// FLDGT_D
870    6387U,	// FLDGT_S
871    4468U,	// FLDLE_D
872    6005U,	// FLDLE_S
873    5329U,	// FLDX_D
874    6578U,	// FLDX_S
875    4422U,	// FLD_D
876    5986U,	// FLD_S
877    4336U,	// FLOGB_D
878    5913U,	// FLOGB_S
879    4403U,	// FMADD_D
880    5967U,	// FMADD_S
881    4232U,	// FMAXA_D
882    5893U,	// FMAXA_S
883    5312U,	// FMAX_D
884    6570U,	// FMAX_S
885    4216U,	// FMINA_D
886    5884U,	// FMINA_S
887    4843U,	// FMIN_D
888    6228U,	// FMIN_S
889    5240U,	// FMOV_D
890    6498U,	// FMOV_S
891    4353U,	// FMSUB_D
892    5930U,	// FMSUB_S
893    4822U,	// FMUL_D
894    6207U,	// FMUL_S
895    4618U,	// FNEG_D
896    6135U,	// FNEG_S
897    4412U,	// FNMADD_D
898    5976U,	// FNMADD_S
899    4362U,	// FNMSUB_D
900    5939U,	// FNMSUB_S
901    4908U,	// FRECIP_D
902    6260U,	// FRECIP_S
903    5187U,	// FRINT_D
904    6455U,	// FRINT_S
905    5205U,	// FRSQRT_D
906    6473U,	// FRSQRT_S
907    4325U,	// FSCALEB_D
908    5902U,	// FSCALEB_S
909    5730U,	// FSEL_D
910    5730U,	// FSEL_S
911    5196U,	// FSQRT_D
912    6464U,	// FSQRT_S
913    5128U,	// FSTGT_D
914    6396U,	// FSTGT_S
915    4499U,	// FSTLE_D
916    6026U,	// FSTLE_S
917    5337U,	// FSTX_D
918    6586U,	// FSTX_S
919    5215U,	// FST_D
920    6483U,	// FST_S
921    4345U,	// FSUB_D
922    5922U,	// FSUB_S
923    4750U,	// FTINTRM_L_D
924    6157U,	// FTINTRM_L_S
925    5262U,	// FTINTRM_W_D
926    6520U,	// FTINTRM_W_S
927    4736U,	// FTINTRNE_L_D
928    6143U,	// FTINTRNE_L_S
929    5248U,	// FTINTRNE_W_D
930    6506U,	// FTINTRNE_W_S
931    4763U,	// FTINTRP_L_D
932    6170U,	// FTINTRP_L_S
933    5275U,	// FTINTRP_W_D
934    6533U,	// FTINTRP_W_S
935    4787U,	// FTINTRZ_L_D
936    6194U,	// FTINTRZ_L_S
937    5299U,	// FTINTRZ_W_D
938    6557U,	// FTINTRZ_W_S
939    4776U,	// FTINT_L_D
940    6183U,	// FTINT_L_S
941    5288U,	// FTINT_W_D
942    6546U,	// FTINT_W_S
943    22179U,	// IBAR
944    21818U,	// IDLE
945    12400U,	// INVTLB
946    4103U,	// IOCSRRD_B
947    4445U,	// IOCSRRD_D
948    5495U,	// IOCSRRD_H
949    7047U,	// IOCSRRD_W
950    4130U,	// IOCSRWR_B
951    5059U,	// IOCSRWR_D
952    5522U,	// IOCSRWR_H
953    7331U,	// IOCSRWR_W
954    5754U,	// JIRL
955    5833U,	// LDDIR
956    4141U,	// LDGT_B
957    5110U,	// LDGT_D
958    5533U,	// LDGT_H
959    7364U,	// LDGT_W
960    4114U,	// LDLE_B
961    4469U,	// LDLE_D
962    5506U,	// LDLE_H
963    7058U,	// LDLE_W
964    5445U,	// LDPTE
965    5041U,	// LDPTR_D
966    7313U,	// LDPTR_W
967    4172U,	// LDX_B
968    6627U,	// LDX_BU
969    5330U,	// LDX_D
970    5564U,	// LDX_H
971    6719U,	// LDX_HU
972    7435U,	// LDX_W
973    6837U,	// LDX_WU
974    4097U,	// LD_B
975    6620U,	// LD_BU
976    4423U,	// LD_D
977    5489U,	// LD_H
978    6712U,	// LD_HU
979    7025U,	// LD_W
980    6776U,	// LD_WU
981    4801U,	// LL_D
982    7215U,	// LL_W
983    7129U,	// LU12I_W
984    25122U,	// LU32I_D
985    4651U,	// LU52I_D
986    7524U,	// MASKEQZ
987    7502U,	// MASKNEZ
988    4438U,	// MOD_D
989    6661U,	// MOD_DU
990    7040U,	// MOD_W
991    6783U,	// MOD_WU
992    5801U,	// MOVCF2FR_S
993    5811U,	// MOVCF2GR
994    5821U,	// MOVFCSR2GR
995    5452U,	// MOVFR2CF_S
996    4980U,	// MOVFR2GR_D
997    6333U,	// MOVFR2GR_S
998    6333U,	// MOVFR2GR_S_64
999    6320U,	// MOVFRH2GR_S
1000    5462U,	// MOVGR2CF
1001    5858U,	// MOVGR2FCSR
1002    27596U,	// MOVGR2FRH_W
1003    4968U,	// MOVGR2FR_D
1004    7276U,	// MOVGR2FR_W
1005    7276U,	// MOVGR2FR_W_64
1006    4626U,	// MULH_D
1007    6669U,	// MULH_DU
1008    7108U,	// MULH_W
1009    6791U,	// MULH_WU
1010    7006U,	// MULW_D_W
1011    6765U,	// MULW_D_WU
1012    4823U,	// MUL_D
1013    7236U,	// MUL_W
1014    5848U,	// NOR
1015    5849U,	// OR
1016    5663U,	// ORI
1017    5766U,	// ORN
1018    5648U,	// PCADDI
1019    5626U,	// PCADDU12I
1020    5637U,	// PCADDU18I
1021    5615U,	// PCALAU12I
1022    5381U,	// PRELD
1023    7481U,	// PRELDX
1024    7097U,	// RDTIMEH_W
1025    7203U,	// RDTIMEL_W
1026    4534U,	// RDTIME_D
1027    5578U,	// REVB_2H
1028    7463U,	// REVB_2W
1029    5587U,	// REVB_4H
1030    4372U,	// REVB_D
1031    7472U,	// REVH_2W
1032    4634U,	// REVH_D
1033    4703U,	// ROTRI_D
1034    7170U,	// ROTRI_W
1035    5033U,	// ROTR_D
1036    7305U,	// ROTR_W
1037    8476U,	// SC_D
1038    11062U,	// SC_W
1039    4687U,	// SLLI_D
1040    7154U,	// SLLI_W
1041    4800U,	// SLL_D
1042    7214U,	// SLL_W
1043    6607U,	// SLT
1044    5668U,	// SLTI
1045    6733U,	// SLTU
1046    5674U,	// SLTUI
1047    4671U,	// SRAI_D
1048    7138U,	// SRAI_W
1049    4225U,	// SRA_D
1050    6845U,	// SRA_W
1051    4695U,	// SRLI_D
1052    7162U,	// SRLI_W
1053    4807U,	// SRL_D
1054    7221U,	// SRL_W
1055    4149U,	// STGT_B
1056    5129U,	// STGT_D
1057    5541U,	// STGT_H
1058    7372U,	// STGT_W
1059    4122U,	// STLE_B
1060    4500U,	// STLE_D
1061    5514U,	// STLE_H
1062    7066U,	// STLE_W
1063    5050U,	// STPTR_D
1064    7322U,	// STPTR_W
1065    4179U,	// STX_B
1066    5338U,	// STX_D
1067    5571U,	// STX_H
1068    7442U,	// STX_W
1069    4157U,	// ST_B
1070    5216U,	// ST_D
1071    5549U,	// ST_H
1072    7380U,	// ST_W
1073    4346U,	// SUB_D
1074    6959U,	// SUB_W
1075    22120U,	// SYSCALL
1076    1744U,	// TLBCLR
1077    1649U,	// TLBFILL
1078    1509U,	// TLBFLUSH
1079    1297U,	// TLBRD
1080    1500U,	// TLBSRCH
1081    1774U,	// TLBWR
1082    5853U,	// XOR
1083    5662U,	// XORI
1084  };
1085
1086  static const uint8_t OpInfo1[] = {
1087    0U,	// PHI
1088    0U,	// INLINEASM
1089    0U,	// INLINEASM_BR
1090    0U,	// CFI_INSTRUCTION
1091    0U,	// EH_LABEL
1092    0U,	// GC_LABEL
1093    0U,	// ANNOTATION_LABEL
1094    0U,	// KILL
1095    0U,	// EXTRACT_SUBREG
1096    0U,	// INSERT_SUBREG
1097    0U,	// IMPLICIT_DEF
1098    0U,	// SUBREG_TO_REG
1099    0U,	// COPY_TO_REGCLASS
1100    0U,	// DBG_VALUE
1101    0U,	// DBG_VALUE_LIST
1102    0U,	// DBG_INSTR_REF
1103    0U,	// DBG_PHI
1104    0U,	// DBG_LABEL
1105    0U,	// REG_SEQUENCE
1106    0U,	// COPY
1107    0U,	// BUNDLE
1108    0U,	// LIFETIME_START
1109    0U,	// LIFETIME_END
1110    0U,	// PSEUDO_PROBE
1111    0U,	// ARITH_FENCE
1112    0U,	// STACKMAP
1113    0U,	// FENTRY_CALL
1114    0U,	// PATCHPOINT
1115    0U,	// LOAD_STACK_GUARD
1116    0U,	// PREALLOCATED_SETUP
1117    0U,	// PREALLOCATED_ARG
1118    0U,	// STATEPOINT
1119    0U,	// LOCAL_ESCAPE
1120    0U,	// FAULTING_OP
1121    0U,	// PATCHABLE_OP
1122    0U,	// PATCHABLE_FUNCTION_ENTER
1123    0U,	// PATCHABLE_RET
1124    0U,	// PATCHABLE_FUNCTION_EXIT
1125    0U,	// PATCHABLE_TAIL_CALL
1126    0U,	// PATCHABLE_EVENT_CALL
1127    0U,	// PATCHABLE_TYPED_EVENT_CALL
1128    0U,	// ICALL_BRANCH_FUNNEL
1129    0U,	// MEMBARRIER
1130    0U,	// G_ASSERT_SEXT
1131    0U,	// G_ASSERT_ZEXT
1132    0U,	// G_ASSERT_ALIGN
1133    0U,	// G_ADD
1134    0U,	// G_SUB
1135    0U,	// G_MUL
1136    0U,	// G_SDIV
1137    0U,	// G_UDIV
1138    0U,	// G_SREM
1139    0U,	// G_UREM
1140    0U,	// G_SDIVREM
1141    0U,	// G_UDIVREM
1142    0U,	// G_AND
1143    0U,	// G_OR
1144    0U,	// G_XOR
1145    0U,	// G_IMPLICIT_DEF
1146    0U,	// G_PHI
1147    0U,	// G_FRAME_INDEX
1148    0U,	// G_GLOBAL_VALUE
1149    0U,	// G_EXTRACT
1150    0U,	// G_UNMERGE_VALUES
1151    0U,	// G_INSERT
1152    0U,	// G_MERGE_VALUES
1153    0U,	// G_BUILD_VECTOR
1154    0U,	// G_BUILD_VECTOR_TRUNC
1155    0U,	// G_CONCAT_VECTORS
1156    0U,	// G_PTRTOINT
1157    0U,	// G_INTTOPTR
1158    0U,	// G_BITCAST
1159    0U,	// G_FREEZE
1160    0U,	// G_INTRINSIC_FPTRUNC_ROUND
1161    0U,	// G_INTRINSIC_TRUNC
1162    0U,	// G_INTRINSIC_ROUND
1163    0U,	// G_INTRINSIC_LRINT
1164    0U,	// G_INTRINSIC_ROUNDEVEN
1165    0U,	// G_READCYCLECOUNTER
1166    0U,	// G_LOAD
1167    0U,	// G_SEXTLOAD
1168    0U,	// G_ZEXTLOAD
1169    0U,	// G_INDEXED_LOAD
1170    0U,	// G_INDEXED_SEXTLOAD
1171    0U,	// G_INDEXED_ZEXTLOAD
1172    0U,	// G_STORE
1173    0U,	// G_INDEXED_STORE
1174    0U,	// G_ATOMIC_CMPXCHG_WITH_SUCCESS
1175    0U,	// G_ATOMIC_CMPXCHG
1176    0U,	// G_ATOMICRMW_XCHG
1177    0U,	// G_ATOMICRMW_ADD
1178    0U,	// G_ATOMICRMW_SUB
1179    0U,	// G_ATOMICRMW_AND
1180    0U,	// G_ATOMICRMW_NAND
1181    0U,	// G_ATOMICRMW_OR
1182    0U,	// G_ATOMICRMW_XOR
1183    0U,	// G_ATOMICRMW_MAX
1184    0U,	// G_ATOMICRMW_MIN
1185    0U,	// G_ATOMICRMW_UMAX
1186    0U,	// G_ATOMICRMW_UMIN
1187    0U,	// G_ATOMICRMW_FADD
1188    0U,	// G_ATOMICRMW_FSUB
1189    0U,	// G_ATOMICRMW_FMAX
1190    0U,	// G_ATOMICRMW_FMIN
1191    0U,	// G_ATOMICRMW_UINC_WRAP
1192    0U,	// G_ATOMICRMW_UDEC_WRAP
1193    0U,	// G_FENCE
1194    0U,	// G_BRCOND
1195    0U,	// G_BRINDIRECT
1196    0U,	// G_INVOKE_REGION_START
1197    0U,	// G_INTRINSIC
1198    0U,	// G_INTRINSIC_W_SIDE_EFFECTS
1199    0U,	// G_ANYEXT
1200    0U,	// G_TRUNC
1201    0U,	// G_CONSTANT
1202    0U,	// G_FCONSTANT
1203    0U,	// G_VASTART
1204    0U,	// G_VAARG
1205    0U,	// G_SEXT
1206    0U,	// G_SEXT_INREG
1207    0U,	// G_ZEXT
1208    0U,	// G_SHL
1209    0U,	// G_LSHR
1210    0U,	// G_ASHR
1211    0U,	// G_FSHL
1212    0U,	// G_FSHR
1213    0U,	// G_ROTR
1214    0U,	// G_ROTL
1215    0U,	// G_ICMP
1216    0U,	// G_FCMP
1217    0U,	// G_SELECT
1218    0U,	// G_UADDO
1219    0U,	// G_UADDE
1220    0U,	// G_USUBO
1221    0U,	// G_USUBE
1222    0U,	// G_SADDO
1223    0U,	// G_SADDE
1224    0U,	// G_SSUBO
1225    0U,	// G_SSUBE
1226    0U,	// G_UMULO
1227    0U,	// G_SMULO
1228    0U,	// G_UMULH
1229    0U,	// G_SMULH
1230    0U,	// G_UADDSAT
1231    0U,	// G_SADDSAT
1232    0U,	// G_USUBSAT
1233    0U,	// G_SSUBSAT
1234    0U,	// G_USHLSAT
1235    0U,	// G_SSHLSAT
1236    0U,	// G_SMULFIX
1237    0U,	// G_UMULFIX
1238    0U,	// G_SMULFIXSAT
1239    0U,	// G_UMULFIXSAT
1240    0U,	// G_SDIVFIX
1241    0U,	// G_UDIVFIX
1242    0U,	// G_SDIVFIXSAT
1243    0U,	// G_UDIVFIXSAT
1244    0U,	// G_FADD
1245    0U,	// G_FSUB
1246    0U,	// G_FMUL
1247    0U,	// G_FMA
1248    0U,	// G_FMAD
1249    0U,	// G_FDIV
1250    0U,	// G_FREM
1251    0U,	// G_FPOW
1252    0U,	// G_FPOWI
1253    0U,	// G_FEXP
1254    0U,	// G_FEXP2
1255    0U,	// G_FLOG
1256    0U,	// G_FLOG2
1257    0U,	// G_FLOG10
1258    0U,	// G_FNEG
1259    0U,	// G_FPEXT
1260    0U,	// G_FPTRUNC
1261    0U,	// G_FPTOSI
1262    0U,	// G_FPTOUI
1263    0U,	// G_SITOFP
1264    0U,	// G_UITOFP
1265    0U,	// G_FABS
1266    0U,	// G_FCOPYSIGN
1267    0U,	// G_IS_FPCLASS
1268    0U,	// G_FCANONICALIZE
1269    0U,	// G_FMINNUM
1270    0U,	// G_FMAXNUM
1271    0U,	// G_FMINNUM_IEEE
1272    0U,	// G_FMAXNUM_IEEE
1273    0U,	// G_FMINIMUM
1274    0U,	// G_FMAXIMUM
1275    0U,	// G_PTR_ADD
1276    0U,	// G_PTRMASK
1277    0U,	// G_SMIN
1278    0U,	// G_SMAX
1279    0U,	// G_UMIN
1280    0U,	// G_UMAX
1281    0U,	// G_ABS
1282    0U,	// G_LROUND
1283    0U,	// G_LLROUND
1284    0U,	// G_BR
1285    0U,	// G_BRJT
1286    0U,	// G_INSERT_VECTOR_ELT
1287    0U,	// G_EXTRACT_VECTOR_ELT
1288    0U,	// G_SHUFFLE_VECTOR
1289    0U,	// G_CTTZ
1290    0U,	// G_CTTZ_ZERO_UNDEF
1291    0U,	// G_CTLZ
1292    0U,	// G_CTLZ_ZERO_UNDEF
1293    0U,	// G_CTPOP
1294    0U,	// G_BSWAP
1295    0U,	// G_BITREVERSE
1296    0U,	// G_FCEIL
1297    0U,	// G_FCOS
1298    0U,	// G_FSIN
1299    0U,	// G_FSQRT
1300    0U,	// G_FFLOOR
1301    0U,	// G_FRINT
1302    0U,	// G_FNEARBYINT
1303    0U,	// G_ADDRSPACE_CAST
1304    0U,	// G_BLOCK_ADDR
1305    0U,	// G_JUMP_TABLE
1306    0U,	// G_DYN_STACKALLOC
1307    0U,	// G_STRICT_FADD
1308    0U,	// G_STRICT_FSUB
1309    0U,	// G_STRICT_FMUL
1310    0U,	// G_STRICT_FDIV
1311    0U,	// G_STRICT_FREM
1312    0U,	// G_STRICT_FMA
1313    0U,	// G_STRICT_FSQRT
1314    0U,	// G_READ_REGISTER
1315    0U,	// G_WRITE_REGISTER
1316    0U,	// G_MEMCPY
1317    0U,	// G_MEMCPY_INLINE
1318    0U,	// G_MEMMOVE
1319    0U,	// G_MEMSET
1320    0U,	// G_BZERO
1321    0U,	// G_VECREDUCE_SEQ_FADD
1322    0U,	// G_VECREDUCE_SEQ_FMUL
1323    0U,	// G_VECREDUCE_FADD
1324    0U,	// G_VECREDUCE_FMUL
1325    0U,	// G_VECREDUCE_FMAX
1326    0U,	// G_VECREDUCE_FMIN
1327    0U,	// G_VECREDUCE_ADD
1328    0U,	// G_VECREDUCE_MUL
1329    0U,	// G_VECREDUCE_AND
1330    0U,	// G_VECREDUCE_OR
1331    0U,	// G_VECREDUCE_XOR
1332    0U,	// G_VECREDUCE_SMAX
1333    0U,	// G_VECREDUCE_SMIN
1334    0U,	// G_VECREDUCE_UMAX
1335    0U,	// G_VECREDUCE_UMIN
1336    0U,	// G_SBFX
1337    0U,	// G_UBFX
1338    0U,	// ADJCALLSTACKDOWN
1339    0U,	// ADJCALLSTACKUP
1340    0U,	// PseudoAtomicLoadAdd32
1341    0U,	// PseudoAtomicLoadAnd32
1342    0U,	// PseudoAtomicLoadNand32
1343    0U,	// PseudoAtomicLoadNand64
1344    0U,	// PseudoAtomicLoadOr32
1345    0U,	// PseudoAtomicLoadSub32
1346    0U,	// PseudoAtomicLoadXor32
1347    0U,	// PseudoAtomicStoreD
1348    0U,	// PseudoAtomicStoreW
1349    0U,	// PseudoAtomicSwap32
1350    0U,	// PseudoBR
1351    0U,	// PseudoBRIND
1352    0U,	// PseudoB_TAIL
1353    0U,	// PseudoCALL
1354    0U,	// PseudoCALLIndirect
1355    0U,	// PseudoCmpXchg32
1356    0U,	// PseudoCmpXchg64
1357    0U,	// PseudoJIRL_CALL
1358    0U,	// PseudoJIRL_TAIL
1359    0U,	// PseudoLA_ABS
1360    0U,	// PseudoLA_ABS_LARGE
1361    0U,	// PseudoLA_GOT
1362    2U,	// PseudoLA_GOT_LARGE
1363    0U,	// PseudoLA_PCREL
1364    2U,	// PseudoLA_PCREL_LARGE
1365    0U,	// PseudoLA_TLS_GD
1366    2U,	// PseudoLA_TLS_GD_LARGE
1367    0U,	// PseudoLA_TLS_IE
1368    2U,	// PseudoLA_TLS_IE_LARGE
1369    0U,	// PseudoLA_TLS_LD
1370    2U,	// PseudoLA_TLS_LD_LARGE
1371    0U,	// PseudoLA_TLS_LE
1372    0U,	// PseudoLD_CFR
1373    0U,	// PseudoLI_D
1374    0U,	// PseudoLI_W
1375    0U,	// PseudoMaskedAtomicLoadAdd32
1376    0U,	// PseudoMaskedAtomicLoadMax32
1377    0U,	// PseudoMaskedAtomicLoadMin32
1378    0U,	// PseudoMaskedAtomicLoadNand32
1379    0U,	// PseudoMaskedAtomicLoadSub32
1380    0U,	// PseudoMaskedAtomicLoadUMax32
1381    0U,	// PseudoMaskedAtomicLoadUMin32
1382    0U,	// PseudoMaskedAtomicSwap32
1383    0U,	// PseudoMaskedCmpXchg32
1384    0U,	// PseudoRET
1385    0U,	// PseudoST_CFR
1386    0U,	// PseudoTAIL
1387    0U,	// PseudoTAILIndirect
1388    0U,	// PseudoUNIMP
1389    0U,	// RDFCSR
1390    0U,	// WRFCSR
1391    2U,	// ADDI_D
1392    2U,	// ADDI_W
1393    2U,	// ADDU16I_D
1394    2U,	// ADD_D
1395    2U,	// ADD_W
1396    18U,	// ALSL_D
1397    18U,	// ALSL_W
1398    18U,	// ALSL_WU
1399    6U,	// AMADD_D
1400    6U,	// AMADD_DB_D
1401    6U,	// AMADD_DB_W
1402    6U,	// AMADD_W
1403    6U,	// AMAND_D
1404    6U,	// AMAND_DB_D
1405    6U,	// AMAND_DB_W
1406    6U,	// AMAND_W
1407    6U,	// AMMAX_D
1408    6U,	// AMMAX_DB_D
1409    6U,	// AMMAX_DB_DU
1410    6U,	// AMMAX_DB_W
1411    6U,	// AMMAX_DB_WU
1412    6U,	// AMMAX_DU
1413    6U,	// AMMAX_W
1414    6U,	// AMMAX_WU
1415    6U,	// AMMIN_D
1416    6U,	// AMMIN_DB_D
1417    6U,	// AMMIN_DB_DU
1418    6U,	// AMMIN_DB_W
1419    6U,	// AMMIN_DB_WU
1420    6U,	// AMMIN_DU
1421    6U,	// AMMIN_W
1422    6U,	// AMMIN_WU
1423    6U,	// AMOR_D
1424    6U,	// AMOR_DB_D
1425    6U,	// AMOR_DB_W
1426    6U,	// AMOR_W
1427    6U,	// AMSWAP_D
1428    6U,	// AMSWAP_DB_D
1429    6U,	// AMSWAP_DB_W
1430    6U,	// AMSWAP_W
1431    6U,	// AMXOR_D
1432    6U,	// AMXOR_DB_D
1433    6U,	// AMXOR_DB_W
1434    6U,	// AMXOR_W
1435    2U,	// AND
1436    2U,	// ANDI
1437    2U,	// ANDN
1438    0U,	// ASRTGT_D
1439    0U,	// ASRTLE_D
1440    0U,	// B
1441    0U,	// BCEQZ
1442    0U,	// BCNEZ
1443    2U,	// BEQ
1444    0U,	// BEQZ
1445    2U,	// BGE
1446    2U,	// BGEU
1447    0U,	// BITREV_4B
1448    0U,	// BITREV_8B
1449    0U,	// BITREV_D
1450    0U,	// BITREV_W
1451    0U,	// BL
1452    2U,	// BLT
1453    2U,	// BLTU
1454    2U,	// BNE
1455    0U,	// BNEZ
1456    0U,	// BREAK
1457    11U,	// BSTRINS_D
1458    11U,	// BSTRINS_W
1459    18U,	// BSTRPICK_D
1460    18U,	// BSTRPICK_W
1461    18U,	// BYTEPICK_D
1462    18U,	// BYTEPICK_W
1463    2U,	// CACOP
1464    0U,	// CLO_D
1465    0U,	// CLO_W
1466    0U,	// CLZ_D
1467    0U,	// CLZ_W
1468    0U,	// CPUCFG
1469    2U,	// CRCC_W_B_W
1470    2U,	// CRCC_W_D_W
1471    2U,	// CRCC_W_H_W
1472    2U,	// CRCC_W_W_W
1473    2U,	// CRC_W_B_W
1474    2U,	// CRC_W_D_W
1475    2U,	// CRC_W_H_W
1476    2U,	// CRC_W_W_W
1477    0U,	// CSRRD
1478    0U,	// CSRWR
1479    1U,	// CSRXCHG
1480    0U,	// CTO_D
1481    0U,	// CTO_W
1482    0U,	// CTZ_D
1483    0U,	// CTZ_W
1484    0U,	// DBAR
1485    0U,	// DBCL
1486    2U,	// DIV_D
1487    2U,	// DIV_DU
1488    2U,	// DIV_W
1489    2U,	// DIV_WU
1490    0U,	// ERTN
1491    0U,	// EXT_W_B
1492    0U,	// EXT_W_H
1493    0U,	// FABS_D
1494    0U,	// FABS_S
1495    2U,	// FADD_D
1496    2U,	// FADD_S
1497    0U,	// FCLASS_D
1498    0U,	// FCLASS_S
1499    2U,	// FCMP_CAF_D
1500    2U,	// FCMP_CAF_S
1501    2U,	// FCMP_CEQ_D
1502    2U,	// FCMP_CEQ_S
1503    2U,	// FCMP_CLE_D
1504    2U,	// FCMP_CLE_S
1505    2U,	// FCMP_CLT_D
1506    2U,	// FCMP_CLT_S
1507    2U,	// FCMP_CNE_D
1508    2U,	// FCMP_CNE_S
1509    2U,	// FCMP_COR_D
1510    2U,	// FCMP_COR_S
1511    2U,	// FCMP_CUEQ_D
1512    2U,	// FCMP_CUEQ_S
1513    2U,	// FCMP_CULE_D
1514    2U,	// FCMP_CULE_S
1515    2U,	// FCMP_CULT_D
1516    2U,	// FCMP_CULT_S
1517    2U,	// FCMP_CUNE_D
1518    2U,	// FCMP_CUNE_S
1519    2U,	// FCMP_CUN_D
1520    2U,	// FCMP_CUN_S
1521    2U,	// FCMP_SAF_D
1522    2U,	// FCMP_SAF_S
1523    2U,	// FCMP_SEQ_D
1524    2U,	// FCMP_SEQ_S
1525    2U,	// FCMP_SLE_D
1526    2U,	// FCMP_SLE_S
1527    2U,	// FCMP_SLT_D
1528    2U,	// FCMP_SLT_S
1529    2U,	// FCMP_SNE_D
1530    2U,	// FCMP_SNE_S
1531    2U,	// FCMP_SOR_D
1532    2U,	// FCMP_SOR_S
1533    2U,	// FCMP_SUEQ_D
1534    2U,	// FCMP_SUEQ_S
1535    2U,	// FCMP_SULE_D
1536    2U,	// FCMP_SULE_S
1537    2U,	// FCMP_SULT_D
1538    2U,	// FCMP_SULT_S
1539    2U,	// FCMP_SUNE_D
1540    2U,	// FCMP_SUNE_S
1541    2U,	// FCMP_SUN_D
1542    2U,	// FCMP_SUN_S
1543    2U,	// FCOPYSIGN_D
1544    2U,	// FCOPYSIGN_S
1545    0U,	// FCVT_D_S
1546    0U,	// FCVT_S_D
1547    2U,	// FDIV_D
1548    2U,	// FDIV_S
1549    0U,	// FFINT_D_L
1550    0U,	// FFINT_D_W
1551    0U,	// FFINT_S_L
1552    0U,	// FFINT_S_W
1553    2U,	// FLDGT_D
1554    2U,	// FLDGT_S
1555    2U,	// FLDLE_D
1556    2U,	// FLDLE_S
1557    2U,	// FLDX_D
1558    2U,	// FLDX_S
1559    2U,	// FLD_D
1560    2U,	// FLD_S
1561    0U,	// FLOGB_D
1562    0U,	// FLOGB_S
1563    18U,	// FMADD_D
1564    18U,	// FMADD_S
1565    2U,	// FMAXA_D
1566    2U,	// FMAXA_S
1567    2U,	// FMAX_D
1568    2U,	// FMAX_S
1569    2U,	// FMINA_D
1570    2U,	// FMINA_S
1571    2U,	// FMIN_D
1572    2U,	// FMIN_S
1573    0U,	// FMOV_D
1574    0U,	// FMOV_S
1575    18U,	// FMSUB_D
1576    18U,	// FMSUB_S
1577    2U,	// FMUL_D
1578    2U,	// FMUL_S
1579    0U,	// FNEG_D
1580    0U,	// FNEG_S
1581    18U,	// FNMADD_D
1582    18U,	// FNMADD_S
1583    18U,	// FNMSUB_D
1584    18U,	// FNMSUB_S
1585    0U,	// FRECIP_D
1586    0U,	// FRECIP_S
1587    0U,	// FRINT_D
1588    0U,	// FRINT_S
1589    0U,	// FRSQRT_D
1590    0U,	// FRSQRT_S
1591    2U,	// FSCALEB_D
1592    2U,	// FSCALEB_S
1593    18U,	// FSEL_D
1594    18U,	// FSEL_S
1595    0U,	// FSQRT_D
1596    0U,	// FSQRT_S
1597    2U,	// FSTGT_D
1598    2U,	// FSTGT_S
1599    2U,	// FSTLE_D
1600    2U,	// FSTLE_S
1601    2U,	// FSTX_D
1602    2U,	// FSTX_S
1603    2U,	// FST_D
1604    2U,	// FST_S
1605    2U,	// FSUB_D
1606    2U,	// FSUB_S
1607    0U,	// FTINTRM_L_D
1608    0U,	// FTINTRM_L_S
1609    0U,	// FTINTRM_W_D
1610    0U,	// FTINTRM_W_S
1611    0U,	// FTINTRNE_L_D
1612    0U,	// FTINTRNE_L_S
1613    0U,	// FTINTRNE_W_D
1614    0U,	// FTINTRNE_W_S
1615    0U,	// FTINTRP_L_D
1616    0U,	// FTINTRP_L_S
1617    0U,	// FTINTRP_W_D
1618    0U,	// FTINTRP_W_S
1619    0U,	// FTINTRZ_L_D
1620    0U,	// FTINTRZ_L_S
1621    0U,	// FTINTRZ_W_D
1622    0U,	// FTINTRZ_W_S
1623    0U,	// FTINT_L_D
1624    0U,	// FTINT_L_S
1625    0U,	// FTINT_W_D
1626    0U,	// FTINT_W_S
1627    0U,	// IBAR
1628    0U,	// IDLE
1629    0U,	// INVTLB
1630    0U,	// IOCSRRD_B
1631    0U,	// IOCSRRD_D
1632    0U,	// IOCSRRD_H
1633    0U,	// IOCSRRD_W
1634    0U,	// IOCSRWR_B
1635    0U,	// IOCSRWR_D
1636    0U,	// IOCSRWR_H
1637    0U,	// IOCSRWR_W
1638    2U,	// JIRL
1639    2U,	// LDDIR
1640    2U,	// LDGT_B
1641    2U,	// LDGT_D
1642    2U,	// LDGT_H
1643    2U,	// LDGT_W
1644    2U,	// LDLE_B
1645    2U,	// LDLE_D
1646    2U,	// LDLE_H
1647    2U,	// LDLE_W
1648    0U,	// LDPTE
1649    2U,	// LDPTR_D
1650    2U,	// LDPTR_W
1651    2U,	// LDX_B
1652    2U,	// LDX_BU
1653    2U,	// LDX_D
1654    2U,	// LDX_H
1655    2U,	// LDX_HU
1656    2U,	// LDX_W
1657    2U,	// LDX_WU
1658    2U,	// LD_B
1659    2U,	// LD_BU
1660    2U,	// LD_D
1661    2U,	// LD_H
1662    2U,	// LD_HU
1663    2U,	// LD_W
1664    2U,	// LD_WU
1665    2U,	// LL_D
1666    2U,	// LL_W
1667    0U,	// LU12I_W
1668    0U,	// LU32I_D
1669    2U,	// LU52I_D
1670    2U,	// MASKEQZ
1671    2U,	// MASKNEZ
1672    2U,	// MOD_D
1673    2U,	// MOD_DU
1674    2U,	// MOD_W
1675    2U,	// MOD_WU
1676    0U,	// MOVCF2FR_S
1677    0U,	// MOVCF2GR
1678    0U,	// MOVFCSR2GR
1679    0U,	// MOVFR2CF_S
1680    0U,	// MOVFR2GR_D
1681    0U,	// MOVFR2GR_S
1682    0U,	// MOVFR2GR_S_64
1683    0U,	// MOVFRH2GR_S
1684    0U,	// MOVGR2CF
1685    0U,	// MOVGR2FCSR
1686    0U,	// MOVGR2FRH_W
1687    0U,	// MOVGR2FR_D
1688    0U,	// MOVGR2FR_W
1689    0U,	// MOVGR2FR_W_64
1690    2U,	// MULH_D
1691    2U,	// MULH_DU
1692    2U,	// MULH_W
1693    2U,	// MULH_WU
1694    2U,	// MULW_D_W
1695    2U,	// MULW_D_WU
1696    2U,	// MUL_D
1697    2U,	// MUL_W
1698    2U,	// NOR
1699    2U,	// OR
1700    2U,	// ORI
1701    2U,	// ORN
1702    0U,	// PCADDI
1703    0U,	// PCADDU12I
1704    0U,	// PCADDU18I
1705    0U,	// PCALAU12I
1706    2U,	// PRELD
1707    2U,	// PRELDX
1708    0U,	// RDTIMEH_W
1709    0U,	// RDTIMEL_W
1710    0U,	// RDTIME_D
1711    0U,	// REVB_2H
1712    0U,	// REVB_2W
1713    0U,	// REVB_4H
1714    0U,	// REVB_D
1715    0U,	// REVH_2W
1716    0U,	// REVH_D
1717    2U,	// ROTRI_D
1718    2U,	// ROTRI_W
1719    2U,	// ROTR_D
1720    2U,	// ROTR_W
1721    1U,	// SC_D
1722    1U,	// SC_W
1723    2U,	// SLLI_D
1724    2U,	// SLLI_W
1725    2U,	// SLL_D
1726    2U,	// SLL_W
1727    2U,	// SLT
1728    2U,	// SLTI
1729    2U,	// SLTU
1730    2U,	// SLTUI
1731    2U,	// SRAI_D
1732    2U,	// SRAI_W
1733    2U,	// SRA_D
1734    2U,	// SRA_W
1735    2U,	// SRLI_D
1736    2U,	// SRLI_W
1737    2U,	// SRL_D
1738    2U,	// SRL_W
1739    2U,	// STGT_B
1740    2U,	// STGT_D
1741    2U,	// STGT_H
1742    2U,	// STGT_W
1743    2U,	// STLE_B
1744    2U,	// STLE_D
1745    2U,	// STLE_H
1746    2U,	// STLE_W
1747    2U,	// STPTR_D
1748    2U,	// STPTR_W
1749    2U,	// STX_B
1750    2U,	// STX_D
1751    2U,	// STX_H
1752    2U,	// STX_W
1753    2U,	// ST_B
1754    2U,	// ST_D
1755    2U,	// ST_H
1756    2U,	// ST_W
1757    2U,	// SUB_D
1758    2U,	// SUB_W
1759    0U,	// SYSCALL
1760    0U,	// TLBCLR
1761    0U,	// TLBFILL
1762    0U,	// TLBFLUSH
1763    0U,	// TLBRD
1764    0U,	// TLBSRCH
1765    0U,	// TLBWR
1766    2U,	// XOR
1767    2U,	// XORI
1768  };
1769
1770  // Emit the opcode for the instruction.
1771  uint32_t Bits = 0;
1772  Bits |= OpInfo0[MI->getOpcode()] << 0;
1773  Bits |= OpInfo1[MI->getOpcode()] << 16;
1774  return {AsmStrs+(Bits & 4095)-1, Bits};
1775
1776}
1777/// printInstruction - This method is automatically generated by tablegen
1778/// from the instruction set description.
1779LLVM_NO_PROFILE_INSTRUMENT_FUNCTION
1780void LoongArchInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) {
1781  O << "\t";
1782
1783  auto MnemonicInfo = getMnemonic(MI);
1784
1785  O << MnemonicInfo.first;
1786
1787  uint32_t Bits = MnemonicInfo.second;
1788  assert(Bits != 0 && "Cannot print this instruction.");
1789
1790  // Fragment 0 encoded into 2 bits for 4 unique commands.
1791  switch ((Bits >> 12) & 3) {
1792  default: llvm_unreachable("Invalid command number.");
1793  case 0:
1794    // DBG_VALUE, DBG_VALUE_LIST, DBG_INSTR_REF, DBG_PHI, DBG_LABEL, BUNDLE, ...
1795    return;
1796    break;
1797  case 1:
1798    // PseudoLA_ABS, PseudoLA_ABS_LARGE, PseudoLA_GOT, PseudoLA_GOT_LARGE, Ps...
1799    printOperand(MI, 0, STI, O);
1800    break;
1801  case 2:
1802    // BSTRINS_D, BSTRINS_W, CSRWR, CSRXCHG, LU32I_D, MOVGR2FRH_W, SC_D, SC_W
1803    printOperand(MI, 1, STI, O);
1804    O << ", ";
1805    printOperand(MI, 2, STI, O);
1806    break;
1807  case 3:
1808    // INVTLB
1809    printOperand(MI, 2, STI, O);
1810    O << ", ";
1811    printOperand(MI, 1, STI, O);
1812    O << ", ";
1813    printOperand(MI, 0, STI, O);
1814    return;
1815    break;
1816  }
1817
1818
1819  // Fragment 1 encoded into 1 bits for 2 unique commands.
1820  if ((Bits >> 14) & 1) {
1821    // B, BL, BREAK, CSRWR, DBAR, DBCL, IBAR, IDLE, LU32I_D, MOVGR2FRH_W, SYS...
1822    return;
1823  } else {
1824    // PseudoLA_ABS, PseudoLA_ABS_LARGE, PseudoLA_GOT, PseudoLA_GOT_LARGE, Ps...
1825    O << ", ";
1826  }
1827
1828
1829  // Fragment 2 encoded into 2 bits for 3 unique commands.
1830  switch ((Bits >> 15) & 3) {
1831  default: llvm_unreachable("Invalid command number.");
1832  case 0:
1833    // PseudoLA_ABS, PseudoLA_GOT, PseudoLA_GOT_LARGE, PseudoLA_PCREL, Pseudo...
1834    printOperand(MI, 1, STI, O);
1835    break;
1836  case 1:
1837    // PseudoLA_ABS_LARGE
1838    printOperand(MI, 2, STI, O);
1839    return;
1840    break;
1841  case 2:
1842    // BSTRINS_D, BSTRINS_W, CSRXCHG, SC_D, SC_W
1843    printOperand(MI, 3, STI, O);
1844    break;
1845  }
1846
1847
1848  // Fragment 3 encoded into 1 bits for 2 unique commands.
1849  if ((Bits >> 17) & 1) {
1850    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
1851    O << ", ";
1852  } else {
1853    // PseudoLA_ABS, PseudoLA_GOT, PseudoLA_PCREL, PseudoLA_TLS_GD, PseudoLA_...
1854    return;
1855  }
1856
1857
1858  // Fragment 4 encoded into 2 bits for 3 unique commands.
1859  switch ((Bits >> 18) & 3) {
1860  default: llvm_unreachable("Invalid command number.");
1861  case 0:
1862    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
1863    printOperand(MI, 2, STI, O);
1864    break;
1865  case 1:
1866    // AMADD_D, AMADD_DB_D, AMADD_DB_W, AMADD_W, AMAND_D, AMAND_DB_D, AMAND_D...
1867    printAtomicMemOp(MI, 2, STI, O);
1868    return;
1869    break;
1870  case 2:
1871    // BSTRINS_D, BSTRINS_W
1872    printOperand(MI, 4, STI, O);
1873    return;
1874    break;
1875  }
1876
1877
1878  // Fragment 5 encoded into 1 bits for 2 unique commands.
1879  if ((Bits >> 20) & 1) {
1880    // ALSL_D, ALSL_W, ALSL_WU, BSTRPICK_D, BSTRPICK_W, BYTEPICK_D, BYTEPICK_...
1881    O << ", ";
1882    printOperand(MI, 3, STI, O);
1883    return;
1884  } else {
1885    // PseudoLA_GOT_LARGE, PseudoLA_PCREL_LARGE, PseudoLA_TLS_GD_LARGE, Pseud...
1886    return;
1887  }
1888
1889}
1890
1891
1892/// getRegisterName - This method is automatically generated by tblgen
1893/// from the register set description.  This returns the assembler name
1894/// for the specified register.
1895const char *LoongArchInstPrinter::
1896getRegisterName(MCRegister Reg, unsigned AltIdx) {
1897  unsigned RegNo = Reg.id();
1898  assert(RegNo && RegNo < 109 && "Invalid register number!");
1899
1900
1901#ifdef __GNUC__
1902#pragma GCC diagnostic push
1903#pragma GCC diagnostic ignored "-Woverlength-strings"
1904#endif
1905  static const char AsmStrsNoRegAltName[] = {
1906  /* 0 */ "f10\0"
1907  /* 4 */ "r10\0"
1908  /* 8 */ "f20\0"
1909  /* 12 */ "r20\0"
1910  /* 16 */ "f30\0"
1911  /* 20 */ "r30\0"
1912  /* 24 */ "fcc0\0"
1913  /* 29 */ "f0\0"
1914  /* 32 */ "fcsr0\0"
1915  /* 38 */ "f11\0"
1916  /* 42 */ "r11\0"
1917  /* 46 */ "f21\0"
1918  /* 50 */ "r21\0"
1919  /* 54 */ "f31\0"
1920  /* 58 */ "r31\0"
1921  /* 62 */ "fcc1\0"
1922  /* 67 */ "f1\0"
1923  /* 70 */ "fcsr1\0"
1924  /* 76 */ "f12\0"
1925  /* 80 */ "r12\0"
1926  /* 84 */ "f22\0"
1927  /* 88 */ "r22\0"
1928  /* 92 */ "fcc2\0"
1929  /* 97 */ "f2\0"
1930  /* 100 */ "fcsr2\0"
1931  /* 106 */ "f13\0"
1932  /* 110 */ "r13\0"
1933  /* 114 */ "f23\0"
1934  /* 118 */ "r23\0"
1935  /* 122 */ "fcc3\0"
1936  /* 127 */ "f3\0"
1937  /* 130 */ "fcsr3\0"
1938  /* 136 */ "f14\0"
1939  /* 140 */ "r14\0"
1940  /* 144 */ "f24\0"
1941  /* 148 */ "r24\0"
1942  /* 152 */ "fcc4\0"
1943  /* 157 */ "f4\0"
1944  /* 160 */ "r4\0"
1945  /* 163 */ "f15\0"
1946  /* 167 */ "r15\0"
1947  /* 171 */ "f25\0"
1948  /* 175 */ "r25\0"
1949  /* 179 */ "fcc5\0"
1950  /* 184 */ "f5\0"
1951  /* 187 */ "r5\0"
1952  /* 190 */ "f16\0"
1953  /* 194 */ "r16\0"
1954  /* 198 */ "f26\0"
1955  /* 202 */ "r26\0"
1956  /* 206 */ "fcc6\0"
1957  /* 211 */ "f6\0"
1958  /* 214 */ "r6\0"
1959  /* 217 */ "f17\0"
1960  /* 221 */ "r17\0"
1961  /* 225 */ "f27\0"
1962  /* 229 */ "r27\0"
1963  /* 233 */ "fcc7\0"
1964  /* 238 */ "f7\0"
1965  /* 241 */ "r7\0"
1966  /* 244 */ "f18\0"
1967  /* 248 */ "r18\0"
1968  /* 252 */ "f28\0"
1969  /* 256 */ "r28\0"
1970  /* 260 */ "f8\0"
1971  /* 263 */ "r8\0"
1972  /* 266 */ "f19\0"
1973  /* 270 */ "r19\0"
1974  /* 274 */ "f29\0"
1975  /* 278 */ "r29\0"
1976  /* 282 */ "f9\0"
1977  /* 285 */ "r9\0"
1978};
1979#ifdef __GNUC__
1980#pragma GCC diagnostic pop
1981#endif
1982
1983  static const uint16_t RegAsmOffsetNoRegAltName[] = {
1984    29, 67, 97, 127, 157, 184, 211, 238, 260, 282, 0, 38, 76, 106,
1985    136, 163, 190, 217, 244, 266, 8, 46, 84, 114, 144, 171, 198, 225,
1986    252, 274, 16, 54, 24, 62, 92, 122, 152, 179, 206, 233, 32, 70,
1987    100, 130, 35, 73, 103, 133, 160, 187, 214, 241, 263, 285, 4, 42,
1988    80, 110, 140, 167, 194, 221, 248, 270, 12, 50, 88, 118, 148, 175,
1989    202, 229, 256, 278, 20, 58, 29, 67, 97, 127, 157, 184, 211, 238,
1990    260, 282, 0, 38, 76, 106, 136, 163, 190, 217, 244, 266, 8, 46,
1991    84, 114, 144, 171, 198, 225, 252, 274, 16, 54,
1992  };
1993
1994
1995#ifdef __GNUC__
1996#pragma GCC diagnostic push
1997#pragma GCC diagnostic ignored "-Woverlength-strings"
1998#endif
1999  static const char AsmStrsRegAliasName[] = {
2000  /* 0 */ "ft10\0"
2001  /* 5 */ "fa0\0"
2002  /* 9 */ "fs0\0"
2003  /* 13 */ "ft0\0"
2004  /* 17 */ "ft11\0"
2005  /* 22 */ "fa1\0"
2006  /* 26 */ "fs1\0"
2007  /* 30 */ "ft1\0"
2008  /* 34 */ "ft12\0"
2009  /* 39 */ "fa2\0"
2010  /* 43 */ "fs2\0"
2011  /* 47 */ "ft2\0"
2012  /* 51 */ "ft13\0"
2013  /* 56 */ "fa3\0"
2014  /* 60 */ "fs3\0"
2015  /* 64 */ "ft3\0"
2016  /* 68 */ "ft14\0"
2017  /* 73 */ "fa4\0"
2018  /* 77 */ "fs4\0"
2019  /* 81 */ "ft4\0"
2020  /* 85 */ "ft15\0"
2021  /* 90 */ "fa5\0"
2022  /* 94 */ "fs5\0"
2023  /* 98 */ "ft5\0"
2024  /* 102 */ "fa6\0"
2025  /* 106 */ "fs6\0"
2026  /* 110 */ "ft6\0"
2027  /* 114 */ "fa7\0"
2028  /* 118 */ "fs7\0"
2029  /* 122 */ "ft7\0"
2030  /* 126 */ "s8\0"
2031  /* 129 */ "ft8\0"
2032  /* 133 */ "ft9\0"
2033  /* 137 */ "ra\0"
2034  /* 140 */ "zero\0"
2035  /* 145 */ "fp\0"
2036  /* 148 */ "sp\0"
2037  /* 151 */ "tp\0"
2038};
2039#ifdef __GNUC__
2040#pragma GCC diagnostic pop
2041#endif
2042
2043  static const uint8_t RegAsmOffsetRegAliasName[] = {
2044    5, 22, 39, 56, 73, 90, 102, 114, 13, 30, 47, 64, 81, 98,
2045    110, 122, 129, 133, 0, 17, 34, 51, 68, 85, 9, 26, 43, 60,
2046    77, 94, 106, 118, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2047    4, 4, 140, 137, 151, 148, 6, 23, 40, 57, 74, 91, 103, 115,
2048    14, 31, 48, 65, 82, 99, 111, 123, 130, 4, 145, 10, 27, 44,
2049    61, 78, 95, 107, 119, 126, 5, 22, 39, 56, 73, 90, 102, 114,
2050    13, 30, 47, 64, 81, 98, 110, 122, 129, 133, 0, 17, 34, 51,
2051    68, 85, 9, 26, 43, 60, 77, 94, 106, 118,
2052  };
2053
2054  switch(AltIdx) {
2055  default: llvm_unreachable("Invalid register alt name index!");
2056  case LoongArch::NoRegAltName:
2057    assert(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
2058           "Invalid alt name index for register!");
2059    return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
2060  case LoongArch::RegAliasName:
2061    if (!*(AsmStrsRegAliasName+RegAsmOffsetRegAliasName[RegNo-1]))
2062      return getRegisterName(RegNo, LoongArch::NoRegAltName);
2063    return AsmStrsRegAliasName+RegAsmOffsetRegAliasName[RegNo-1];
2064  }
2065}
2066
2067#ifdef PRINT_ALIAS_INSTR
2068#undef PRINT_ALIAS_INSTR
2069
2070bool LoongArchInstPrinter::printAliasInstr(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &OS) {
2071  static const PatternsForOpcode OpToPatterns[] = {
2072    {LoongArch::PseudoLA_ABS, 0, 1 },
2073    {LoongArch::PseudoLA_GOT_LARGE, 1, 1 },
2074    {LoongArch::PseudoLA_PCREL, 2, 1 },
2075    {LoongArch::PseudoLA_PCREL_LARGE, 3, 2 },
2076    {LoongArch::ANDI, 5, 1 },
2077    {LoongArch::JIRL, 6, 2 },
2078    {LoongArch::OR, 8, 1 },
2079  };
2080
2081  static const AliasPattern Patterns[] = {
2082    // LoongArch::PseudoLA_ABS - 0
2083    {0, 0, 2, 2 },
2084    // LoongArch::PseudoLA_GOT_LARGE - 1
2085    {16, 2, 3, 2 },
2086    // LoongArch::PseudoLA_PCREL - 2
2087    {0, 4, 2, 1 },
2088    // LoongArch::PseudoLA_PCREL_LARGE - 3
2089    {37, 5, 3, 2 },
2090    {16, 7, 3, 3 },
2091    // LoongArch::ANDI - 5
2092    {57, 10, 3, 3 },
2093    // LoongArch::JIRL - 6
2094    {61, 13, 3, 3 },
2095    {65, 16, 3, 3 },
2096    // LoongArch::OR - 8
2097    {71, 19, 3, 3 },
2098  };
2099
2100  static const AliasPatternCond Conds[] = {
2101    // (PseudoLA_ABS GPR:$dst, bare_symbol:$src) - 0
2102    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2103    {AliasPatternCond::K_Feature, LoongArch::LaLocalWithAbs},
2104    // (PseudoLA_GOT_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 2
2105    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2106    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2107    // (PseudoLA_PCREL GPR:$dst, bare_symbol:$src) - 4
2108    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2109    // (PseudoLA_PCREL_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 5
2110    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2111    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2112    // (PseudoLA_PCREL_LARGE GPR:$dst, GPR:$tmp, bare_symbol:$src) - 7
2113    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2114    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2115    {AliasPatternCond::K_Feature, LoongArch::LaGlobalWithPcrel},
2116    // (ANDI R0, R0, 0) - 10
2117    {AliasPatternCond::K_Reg, LoongArch::R0},
2118    {AliasPatternCond::K_Reg, LoongArch::R0},
2119    {AliasPatternCond::K_Imm, uint32_t(0)},
2120    // (JIRL R0, R1, 0) - 13
2121    {AliasPatternCond::K_Reg, LoongArch::R0},
2122    {AliasPatternCond::K_Reg, LoongArch::R1},
2123    {AliasPatternCond::K_Imm, uint32_t(0)},
2124    // (JIRL R0, GPR:$rj, 0) - 16
2125    {AliasPatternCond::K_Reg, LoongArch::R0},
2126    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2127    {AliasPatternCond::K_Imm, uint32_t(0)},
2128    // (OR GPR:$dst, GPR:$src, R0) - 19
2129    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2130    {AliasPatternCond::K_RegClass, LoongArch::GPRRegClassID},
2131    {AliasPatternCond::K_Reg, LoongArch::R0},
2132  };
2133
2134  static const char AsmStrings[] =
2135    /* 0 */ "la.local $\x01, $\x02\0"
2136    /* 16 */ "la.global $\x01, $\x02, $\x03\0"
2137    /* 37 */ "la.local $\x01, $\x02, $\x03\0"
2138    /* 57 */ "nop\0"
2139    /* 61 */ "ret\0"
2140    /* 65 */ "jr $\x02\0"
2141    /* 71 */ "move $\x01, $\x02\0"
2142  ;
2143
2144#ifndef NDEBUG
2145  static struct SortCheck {
2146    SortCheck(ArrayRef<PatternsForOpcode> OpToPatterns) {
2147      assert(std::is_sorted(
2148                 OpToPatterns.begin(), OpToPatterns.end(),
2149                 [](const PatternsForOpcode &L, const PatternsForOpcode &R) {
2150                   return L.Opcode < R.Opcode;
2151                 }) &&
2152             "tablegen failed to sort opcode patterns");
2153    }
2154  } sortCheckVar(OpToPatterns);
2155#endif
2156
2157  AliasMatchingData M {
2158    ArrayRef(OpToPatterns),
2159    ArrayRef(Patterns),
2160    ArrayRef(Conds),
2161    StringRef(AsmStrings, std::size(AsmStrings)),
2162    nullptr,
2163  };
2164  const char *AsmString = matchAliasPatterns(MI, &STI, M);
2165  if (!AsmString) return false;
2166
2167  unsigned I = 0;
2168  while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
2169         AsmString[I] != '$' && AsmString[I] != '\0')
2170    ++I;
2171  OS << '\t' << StringRef(AsmString, I);
2172  if (AsmString[I] != '\0') {
2173    if (AsmString[I] == ' ' || AsmString[I] == '\t') {
2174      OS << '\t';
2175      ++I;
2176    }
2177    do {
2178      if (AsmString[I] == '$') {
2179        ++I;
2180        if (AsmString[I] == (char)0xff) {
2181          ++I;
2182          int OpIdx = AsmString[I++] - 1;
2183          int PrintMethodIdx = AsmString[I++] - 1;
2184          printCustomAliasOperand(MI, Address, OpIdx, PrintMethodIdx, STI, OS);
2185        } else
2186          printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
2187      } else {
2188        OS << AsmString[I++];
2189      }
2190    } while (AsmString[I] != '\0');
2191  }
2192
2193  return true;
2194}
2195
2196void LoongArchInstPrinter::printCustomAliasOperand(
2197         const MCInst *MI, uint64_t Address, unsigned OpIdx,
2198         unsigned PrintMethodIdx,
2199         const MCSubtargetInfo &STI,
2200         raw_ostream &OS) {
2201  llvm_unreachable("Unknown PrintMethod kind");
2202}
2203
2204#endif // PRINT_ALIAS_INSTR
2205