aarch64-asm-2.c revision 1.1.1.8
1/* This file is automatically generated by aarch64-gen.  Do not edit!  */
2/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
3   Contributed by ARM Ltd.
4
5   This file is part of the GNU opcodes library.
6
7   This library is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 3, or (at your option)
10   any later version.
11
12   It is distributed in the hope that it will be useful, but WITHOUT
13   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
15   License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program; see the file COPYING3. If not,
19   see <http://www.gnu.org/licenses/>.  */
20
21#include "sysdep.h"
22#include "aarch64-asm.h"
23
24
25const aarch64_opcode *
26aarch64_find_real_opcode (const aarch64_opcode *opcode)
27{
28  /* Use the index as the key to locate the real opcode.  */
29  int key = opcode - aarch64_opcode_table;
30  int value;
31  switch (key)
32    {
33    case 3:	/* ngc */
34    case 2:	/* sbc */
35      value = 2;	/* --> sbc.  */
36      break;
37    case 5:	/* ngcs */
38    case 4:	/* sbcs */
39      value = 4;	/* --> sbcs.  */
40      break;
41    case 8:	/* cmn */
42    case 7:	/* adds */
43      value = 7;	/* --> adds.  */
44      break;
45    case 11:	/* cmp */
46    case 10:	/* subs */
47      value = 10;	/* --> subs.  */
48      break;
49    case 13:	/* mov */
50    case 12:	/* add */
51      value = 12;	/* --> add.  */
52      break;
53    case 15:	/* cmn */
54    case 14:	/* adds */
55      value = 14;	/* --> adds.  */
56      break;
57    case 18:	/* cmp */
58    case 17:	/* subs */
59      value = 17;	/* --> subs.  */
60      break;
61    case 23:	/* cmn */
62    case 22:	/* adds */
63      value = 22;	/* --> adds.  */
64      break;
65    case 25:	/* neg */
66    case 24:	/* sub */
67      value = 24;	/* --> sub.  */
68      break;
69    case 27:	/* cmp */
70    case 28:	/* negs */
71    case 26:	/* subs */
72      value = 26;	/* --> subs.  */
73      break;
74    case 153:	/* mov */
75    case 152:	/* umov */
76      value = 152;	/* --> umov.  */
77      break;
78    case 155:	/* mov */
79    case 154:	/* ins */
80      value = 154;	/* --> ins.  */
81      break;
82    case 157:	/* mov */
83    case 156:	/* ins */
84      value = 156;	/* --> ins.  */
85      break;
86    case 243:	/* mvn */
87    case 242:	/* not */
88      value = 242;	/* --> not.  */
89      break;
90    case 318:	/* mov */
91    case 317:	/* orr */
92      value = 317;	/* --> orr.  */
93      break;
94    case 389:	/* sxtl */
95    case 388:	/* sshll */
96      value = 388;	/* --> sshll.  */
97      break;
98    case 391:	/* sxtl2 */
99    case 390:	/* sshll2 */
100      value = 390;	/* --> sshll2.  */
101      break;
102    case 413:	/* uxtl */
103    case 412:	/* ushll */
104      value = 412;	/* --> ushll.  */
105      break;
106    case 415:	/* uxtl2 */
107    case 414:	/* ushll2 */
108      value = 414;	/* --> ushll2.  */
109      break;
110    case 536:	/* mov */
111    case 535:	/* dup */
112      value = 535;	/* --> dup.  */
113      break;
114    case 623:	/* sxtw */
115    case 622:	/* sxth */
116    case 621:	/* sxtb */
117    case 624:	/* asr */
118    case 620:	/* sbfx */
119    case 619:	/* sbfiz */
120    case 618:	/* sbfm */
121      value = 618;	/* --> sbfm.  */
122      break;
123    case 627:	/* bfc */
124    case 628:	/* bfxil */
125    case 626:	/* bfi */
126    case 625:	/* bfm */
127      value = 625;	/* --> bfm.  */
128      break;
129    case 633:	/* uxth */
130    case 632:	/* uxtb */
131    case 635:	/* lsr */
132    case 634:	/* lsl */
133    case 631:	/* ubfx */
134    case 630:	/* ubfiz */
135    case 629:	/* ubfm */
136      value = 629;	/* --> ubfm.  */
137      break;
138    case 665:	/* cset */
139    case 664:	/* cinc */
140    case 663:	/* csinc */
141      value = 663;	/* --> csinc.  */
142      break;
143    case 668:	/* csetm */
144    case 667:	/* cinv */
145    case 666:	/* csinv */
146      value = 666;	/* --> csinv.  */
147      break;
148    case 670:	/* cneg */
149    case 669:	/* csneg */
150      value = 669;	/* --> csneg.  */
151      break;
152    case 688:	/* rev */
153    case 689:	/* rev64 */
154      value = 688;	/* --> rev.  */
155      break;
156    case 714:	/* lsl */
157    case 713:	/* lslv */
158      value = 713;	/* --> lslv.  */
159      break;
160    case 716:	/* lsr */
161    case 715:	/* lsrv */
162      value = 715;	/* --> lsrv.  */
163      break;
164    case 718:	/* asr */
165    case 717:	/* asrv */
166      value = 717;	/* --> asrv.  */
167      break;
168    case 720:	/* ror */
169    case 719:	/* rorv */
170      value = 719;	/* --> rorv.  */
171      break;
172    case 723:	/* cmpp */
173    case 722:	/* subps */
174      value = 722;	/* --> subps.  */
175      break;
176    case 736:	/* mul */
177    case 735:	/* madd */
178      value = 735;	/* --> madd.  */
179      break;
180    case 738:	/* mneg */
181    case 737:	/* msub */
182      value = 737;	/* --> msub.  */
183      break;
184    case 740:	/* smull */
185    case 739:	/* smaddl */
186      value = 739;	/* --> smaddl.  */
187      break;
188    case 742:	/* smnegl */
189    case 741:	/* smsubl */
190      value = 741;	/* --> smsubl.  */
191      break;
192    case 745:	/* umull */
193    case 744:	/* umaddl */
194      value = 744;	/* --> umaddl.  */
195      break;
196    case 747:	/* umnegl */
197    case 746:	/* umsubl */
198      value = 746;	/* --> umsubl.  */
199      break;
200    case 759:	/* ror */
201    case 758:	/* extr */
202      value = 758;	/* --> extr.  */
203      break;
204    case 996:	/* bic */
205    case 995:	/* and */
206      value = 995;	/* --> and.  */
207      break;
208    case 998:	/* mov */
209    case 997:	/* orr */
210      value = 997;	/* --> orr.  */
211      break;
212    case 1001:	/* tst */
213    case 1000:	/* ands */
214      value = 1000;	/* --> ands.  */
215      break;
216    case 1006:	/* uxtw */
217    case 1005:	/* mov */
218    case 1004:	/* orr */
219      value = 1004;	/* --> orr.  */
220      break;
221    case 1008:	/* mvn */
222    case 1007:	/* orn */
223      value = 1007;	/* --> orn.  */
224      break;
225    case 1012:	/* tst */
226    case 1011:	/* ands */
227      value = 1011;	/* --> ands.  */
228      break;
229    case 1138:	/* staddb */
230    case 1042:	/* ldaddb */
231      value = 1042;	/* --> ldaddb.  */
232      break;
233    case 1139:	/* staddh */
234    case 1043:	/* ldaddh */
235      value = 1043;	/* --> ldaddh.  */
236      break;
237    case 1140:	/* stadd */
238    case 1044:	/* ldadd */
239      value = 1044;	/* --> ldadd.  */
240      break;
241    case 1141:	/* staddlb */
242    case 1046:	/* ldaddlb */
243      value = 1046;	/* --> ldaddlb.  */
244      break;
245    case 1142:	/* staddlh */
246    case 1049:	/* ldaddlh */
247      value = 1049;	/* --> ldaddlh.  */
248      break;
249    case 1143:	/* staddl */
250    case 1052:	/* ldaddl */
251      value = 1052;	/* --> ldaddl.  */
252      break;
253    case 1144:	/* stclrb */
254    case 1054:	/* ldclrb */
255      value = 1054;	/* --> ldclrb.  */
256      break;
257    case 1145:	/* stclrh */
258    case 1055:	/* ldclrh */
259      value = 1055;	/* --> ldclrh.  */
260      break;
261    case 1146:	/* stclr */
262    case 1056:	/* ldclr */
263      value = 1056;	/* --> ldclr.  */
264      break;
265    case 1147:	/* stclrlb */
266    case 1058:	/* ldclrlb */
267      value = 1058;	/* --> ldclrlb.  */
268      break;
269    case 1148:	/* stclrlh */
270    case 1061:	/* ldclrlh */
271      value = 1061;	/* --> ldclrlh.  */
272      break;
273    case 1149:	/* stclrl */
274    case 1064:	/* ldclrl */
275      value = 1064;	/* --> ldclrl.  */
276      break;
277    case 1150:	/* steorb */
278    case 1066:	/* ldeorb */
279      value = 1066;	/* --> ldeorb.  */
280      break;
281    case 1151:	/* steorh */
282    case 1067:	/* ldeorh */
283      value = 1067;	/* --> ldeorh.  */
284      break;
285    case 1152:	/* steor */
286    case 1068:	/* ldeor */
287      value = 1068;	/* --> ldeor.  */
288      break;
289    case 1153:	/* steorlb */
290    case 1070:	/* ldeorlb */
291      value = 1070;	/* --> ldeorlb.  */
292      break;
293    case 1154:	/* steorlh */
294    case 1073:	/* ldeorlh */
295      value = 1073;	/* --> ldeorlh.  */
296      break;
297    case 1155:	/* steorl */
298    case 1076:	/* ldeorl */
299      value = 1076;	/* --> ldeorl.  */
300      break;
301    case 1156:	/* stsetb */
302    case 1078:	/* ldsetb */
303      value = 1078;	/* --> ldsetb.  */
304      break;
305    case 1157:	/* stseth */
306    case 1079:	/* ldseth */
307      value = 1079;	/* --> ldseth.  */
308      break;
309    case 1158:	/* stset */
310    case 1080:	/* ldset */
311      value = 1080;	/* --> ldset.  */
312      break;
313    case 1159:	/* stsetlb */
314    case 1082:	/* ldsetlb */
315      value = 1082;	/* --> ldsetlb.  */
316      break;
317    case 1160:	/* stsetlh */
318    case 1085:	/* ldsetlh */
319      value = 1085;	/* --> ldsetlh.  */
320      break;
321    case 1161:	/* stsetl */
322    case 1088:	/* ldsetl */
323      value = 1088;	/* --> ldsetl.  */
324      break;
325    case 1162:	/* stsmaxb */
326    case 1090:	/* ldsmaxb */
327      value = 1090;	/* --> ldsmaxb.  */
328      break;
329    case 1163:	/* stsmaxh */
330    case 1091:	/* ldsmaxh */
331      value = 1091;	/* --> ldsmaxh.  */
332      break;
333    case 1164:	/* stsmax */
334    case 1092:	/* ldsmax */
335      value = 1092;	/* --> ldsmax.  */
336      break;
337    case 1165:	/* stsmaxlb */
338    case 1094:	/* ldsmaxlb */
339      value = 1094;	/* --> ldsmaxlb.  */
340      break;
341    case 1166:	/* stsmaxlh */
342    case 1097:	/* ldsmaxlh */
343      value = 1097;	/* --> ldsmaxlh.  */
344      break;
345    case 1167:	/* stsmaxl */
346    case 1100:	/* ldsmaxl */
347      value = 1100;	/* --> ldsmaxl.  */
348      break;
349    case 1168:	/* stsminb */
350    case 1102:	/* ldsminb */
351      value = 1102;	/* --> ldsminb.  */
352      break;
353    case 1169:	/* stsminh */
354    case 1103:	/* ldsminh */
355      value = 1103;	/* --> ldsminh.  */
356      break;
357    case 1170:	/* stsmin */
358    case 1104:	/* ldsmin */
359      value = 1104;	/* --> ldsmin.  */
360      break;
361    case 1171:	/* stsminlb */
362    case 1106:	/* ldsminlb */
363      value = 1106;	/* --> ldsminlb.  */
364      break;
365    case 1172:	/* stsminlh */
366    case 1109:	/* ldsminlh */
367      value = 1109;	/* --> ldsminlh.  */
368      break;
369    case 1173:	/* stsminl */
370    case 1112:	/* ldsminl */
371      value = 1112;	/* --> ldsminl.  */
372      break;
373    case 1174:	/* stumaxb */
374    case 1114:	/* ldumaxb */
375      value = 1114;	/* --> ldumaxb.  */
376      break;
377    case 1175:	/* stumaxh */
378    case 1115:	/* ldumaxh */
379      value = 1115;	/* --> ldumaxh.  */
380      break;
381    case 1176:	/* stumax */
382    case 1116:	/* ldumax */
383      value = 1116;	/* --> ldumax.  */
384      break;
385    case 1177:	/* stumaxlb */
386    case 1118:	/* ldumaxlb */
387      value = 1118;	/* --> ldumaxlb.  */
388      break;
389    case 1178:	/* stumaxlh */
390    case 1121:	/* ldumaxlh */
391      value = 1121;	/* --> ldumaxlh.  */
392      break;
393    case 1179:	/* stumaxl */
394    case 1124:	/* ldumaxl */
395      value = 1124;	/* --> ldumaxl.  */
396      break;
397    case 1180:	/* stuminb */
398    case 1126:	/* lduminb */
399      value = 1126;	/* --> lduminb.  */
400      break;
401    case 1181:	/* stuminh */
402    case 1127:	/* lduminh */
403      value = 1127;	/* --> lduminh.  */
404      break;
405    case 1182:	/* stumin */
406    case 1128:	/* ldumin */
407      value = 1128;	/* --> ldumin.  */
408      break;
409    case 1183:	/* stuminlb */
410    case 1130:	/* lduminlb */
411      value = 1130;	/* --> lduminlb.  */
412      break;
413    case 1184:	/* stuminlh */
414    case 1133:	/* lduminlh */
415      value = 1133;	/* --> lduminlh.  */
416      break;
417    case 1185:	/* stuminl */
418    case 1136:	/* lduminl */
419      value = 1136;	/* --> lduminl.  */
420      break;
421    case 1207:	/* mov */
422    case 1206:	/* movn */
423      value = 1206;	/* --> movn.  */
424      break;
425    case 1209:	/* mov */
426    case 1208:	/* movz */
427      value = 1208;	/* --> movz.  */
428      break;
429    case 3205:	/* clrbhb */
430    case 1288:	/* autibsp */
431    case 1287:	/* autibz */
432    case 1286:	/* autiasp */
433    case 1285:	/* autiaz */
434    case 1284:	/* pacibsp */
435    case 1283:	/* pacibz */
436    case 1282:	/* paciasp */
437    case 1281:	/* paciaz */
438    case 1261:	/* gcsb */
439    case 1241:	/* clearbhb */
440    case 1240:	/* tsb */
441    case 1239:	/* psb */
442    case 1238:	/* esb */
443    case 1237:	/* autib1716 */
444    case 1236:	/* autia1716 */
445    case 1235:	/* pacib1716 */
446    case 1234:	/* pacia1716 */
447    case 1233:	/* xpaclri */
448    case 1231:	/* sevl */
449    case 1230:	/* sev */
450    case 1229:	/* wfi */
451    case 1228:	/* wfe */
452    case 1227:	/* yield */
453    case 1226:	/* bti */
454    case 1225:	/* csdb */
455    case 1224:	/* nop */
456    case 1223:	/* hint */
457      value = 1223;	/* --> hint.  */
458      break;
459    case 1247:	/* pssbb */
460    case 1246:	/* ssbb */
461    case 1245:	/* dfb */
462    case 1243:	/* dsb */
463      value = 1243;	/* --> dsb.  */
464      break;
465    case 1244:	/* dsb */
466      value = 1244;	/* --> dsb.  */
467      break;
468    case 3206:	/* trcit */
469    case 1274:	/* cosp */
470    case 1273:	/* cpp */
471    case 1272:	/* dvp */
472    case 1271:	/* cfp */
473    case 1267:	/* tlbi */
474    case 1266:	/* ic */
475    case 1265:	/* dc */
476    case 1264:	/* at */
477    case 1262:	/* sys */
478      value = 1262;	/* --> sys.  */
479      break;
480    case 1268:	/* tlbip */
481    case 1263:	/* sysp */
482      value = 1263;	/* --> sysp.  */
483      break;
484    case 1269:	/* wfet */
485      value = 1269;	/* --> wfet.  */
486      break;
487    case 1270:	/* wfit */
488      value = 1270;	/* --> wfit.  */
489      break;
490    case 2090:	/* bic */
491    case 1337:	/* and */
492      value = 1337;	/* --> and.  */
493      break;
494    case 1320:	/* mov */
495    case 1339:	/* and */
496      value = 1339;	/* --> and.  */
497      break;
498    case 1324:	/* movs */
499    case 1340:	/* ands */
500      value = 1340;	/* --> ands.  */
501      break;
502    case 2091:	/* cmple */
503    case 1375:	/* cmpge */
504      value = 1375;	/* --> cmpge.  */
505      break;
506    case 2094:	/* cmplt */
507    case 1378:	/* cmpgt */
508      value = 1378;	/* --> cmpgt.  */
509      break;
510    case 2092:	/* cmplo */
511    case 1380:	/* cmphi */
512      value = 1380;	/* --> cmphi.  */
513      break;
514    case 2093:	/* cmpls */
515    case 1383:	/* cmphs */
516      value = 1383;	/* --> cmphs.  */
517      break;
518    case 1317:	/* mov */
519    case 1405:	/* cpy */
520      value = 1405;	/* --> cpy.  */
521      break;
522    case 1319:	/* mov */
523    case 1406:	/* cpy */
524      value = 1406;	/* --> cpy.  */
525      break;
526    case 2101:	/* fmov */
527    case 1322:	/* mov */
528    case 1407:	/* cpy */
529      value = 1407;	/* --> cpy.  */
530      break;
531    case 1311:	/* mov */
532    case 1419:	/* dup */
533      value = 1419;	/* --> dup.  */
534      break;
535    case 1314:	/* mov */
536    case 1310:	/* mov */
537    case 1420:	/* dup */
538      value = 1420;	/* --> dup.  */
539      break;
540    case 2100:	/* fmov */
541    case 1316:	/* mov */
542    case 1421:	/* dup */
543      value = 1421;	/* --> dup.  */
544      break;
545    case 1315:	/* mov */
546    case 1422:	/* dupm */
547      value = 1422;	/* --> dupm.  */
548      break;
549    case 2095:	/* eon */
550    case 1424:	/* eor */
551      value = 1424;	/* --> eor.  */
552      break;
553    case 1325:	/* not */
554    case 1426:	/* eor */
555      value = 1426;	/* --> eor.  */
556      break;
557    case 1326:	/* nots */
558    case 1427:	/* eors */
559      value = 1427;	/* --> eors.  */
560      break;
561    case 2096:	/* facle */
562    case 1432:	/* facge */
563      value = 1432;	/* --> facge.  */
564      break;
565    case 2097:	/* faclt */
566    case 1433:	/* facgt */
567      value = 1433;	/* --> facgt.  */
568      break;
569    case 2098:	/* fcmle */
570    case 1446:	/* fcmge */
571      value = 1446;	/* --> fcmge.  */
572      break;
573    case 2099:	/* fcmlt */
574    case 1448:	/* fcmgt */
575      value = 1448;	/* --> fcmgt.  */
576      break;
577    case 1308:	/* fmov */
578    case 1454:	/* fcpy */
579      value = 1454;	/* --> fcpy.  */
580      break;
581    case 1307:	/* fmov */
582    case 1477:	/* fdup */
583      value = 1477;	/* --> fdup.  */
584      break;
585    case 1309:	/* mov */
586    case 1809:	/* orr */
587      value = 1809;	/* --> orr.  */
588      break;
589    case 2102:	/* orn */
590    case 1810:	/* orr */
591      value = 1810;	/* --> orr.  */
592      break;
593    case 1313:	/* mov */
594    case 1312:	/* mov */
595    case 1812:	/* orr */
596      value = 1812;	/* --> orr.  */
597      break;
598    case 1323:	/* movs */
599    case 1813:	/* orrs */
600      value = 1813;	/* --> orrs.  */
601      break;
602    case 1318:	/* mov */
603    case 1876:	/* sel */
604      value = 1876;	/* --> sel.  */
605      break;
606    case 1321:	/* mov */
607    case 1877:	/* sel */
608      value = 1877;	/* --> sel.  */
609      break;
610    default: return NULL;
611    }
612
613  return aarch64_opcode_table + value;
614}
615
616bool
617aarch64_insert_operand (const aarch64_operand *self,
618			   const aarch64_opnd_info *info,
619			   aarch64_insn *code, const aarch64_inst *inst,
620			   aarch64_operand_error *errors)
621{
622  /* Use the index as the key.  */
623  int key = self - aarch64_operands;
624  switch (key)
625    {
626    case 1:
627    case 2:
628    case 3:
629    case 4:
630    case 5:
631    case 7:
632    case 8:
633    case 9:
634    case 10:
635    case 11:
636    case 12:
637    case 13:
638    case 14:
639    case 19:
640    case 20:
641    case 21:
642    case 22:
643    case 24:
644    case 25:
645    case 26:
646    case 27:
647    case 28:
648    case 29:
649    case 30:
650    case 31:
651    case 32:
652    case 33:
653    case 116:
654    case 117:
655    case 175:
656    case 176:
657    case 177:
658    case 178:
659    case 179:
660    case 180:
661    case 181:
662    case 182:
663    case 183:
664    case 184:
665    case 185:
666    case 186:
667    case 187:
668    case 188:
669    case 203:
670    case 204:
671    case 205:
672    case 206:
673    case 215:
674    case 216:
675    case 217:
676    case 218:
677    case 219:
678    case 227:
679    case 231:
680    case 235:
681    case 242:
682    case 243:
683    case 250:
684    case 251:
685    case 252:
686    case 253:
687      return aarch64_ins_regno (self, info, code, inst, errors);
688    case 6:
689    case 113:
690    case 114:
691    case 285:
692    case 287:
693      return aarch64_ins_none (self, info, code, inst, errors);
694    case 17:
695      return aarch64_ins_reg_extended (self, info, code, inst, errors);
696    case 18:
697      return aarch64_ins_reg_shifted (self, info, code, inst, errors);
698    case 23:
699      return aarch64_ins_ft (self, info, code, inst, errors);
700    case 34:
701    case 35:
702    case 36:
703    case 37:
704    case 289:
705      return aarch64_ins_reglane (self, info, code, inst, errors);
706    case 38:
707      return aarch64_ins_reglist (self, info, code, inst, errors);
708    case 39:
709      return aarch64_ins_ldst_reglist (self, info, code, inst, errors);
710    case 40:
711      return aarch64_ins_ldst_reglist_r (self, info, code, inst, errors);
712    case 41:
713      return aarch64_ins_ldst_elemlist (self, info, code, inst, errors);
714    case 42:
715    case 43:
716    case 44:
717    case 45:
718    case 55:
719    case 56:
720    case 57:
721    case 58:
722    case 59:
723    case 60:
724    case 61:
725    case 62:
726    case 63:
727    case 64:
728    case 65:
729    case 66:
730    case 67:
731    case 68:
732    case 69:
733    case 70:
734    case 71:
735    case 83:
736    case 84:
737    case 85:
738    case 86:
739    case 112:
740    case 172:
741    case 174:
742    case 195:
743    case 196:
744    case 197:
745    case 198:
746    case 199:
747    case 200:
748    case 201:
749    case 202:
750    case 256:
751    case 283:
752    case 284:
753    case 286:
754    case 288:
755    case 293:
756    case 294:
757      return aarch64_ins_imm (self, info, code, inst, errors);
758    case 46:
759    case 47:
760      return aarch64_ins_advsimd_imm_shift (self, info, code, inst, errors);
761    case 48:
762    case 49:
763    case 50:
764      return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors);
765    case 54:
766    case 162:
767      return aarch64_ins_fpimm (self, info, code, inst, errors);
768    case 72:
769    case 170:
770      return aarch64_ins_limm (self, info, code, inst, errors);
771    case 73:
772      return aarch64_ins_aimm (self, info, code, inst, errors);
773    case 74:
774      return aarch64_ins_imm_half (self, info, code, inst, errors);
775    case 75:
776      return aarch64_ins_fbits (self, info, code, inst, errors);
777    case 77:
778    case 78:
779    case 167:
780      return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
781    case 79:
782    case 166:
783    case 168:
784      return aarch64_ins_imm_rotate1 (self, info, code, inst, errors);
785    case 80:
786    case 81:
787      return aarch64_ins_cond (self, info, code, inst, errors);
788    case 87:
789    case 96:
790      return aarch64_ins_addr_simple (self, info, code, inst, errors);
791    case 88:
792      return aarch64_ins_addr_regoff (self, info, code, inst, errors);
793    case 89:
794    case 90:
795    case 91:
796    case 93:
797    case 95:
798      return aarch64_ins_addr_simm (self, info, code, inst, errors);
799    case 92:
800      return aarch64_ins_addr_simm10 (self, info, code, inst, errors);
801    case 94:
802      return aarch64_ins_addr_uimm12 (self, info, code, inst, errors);
803    case 97:
804      return aarch64_ins_addr_offset (self, info, code, inst, errors);
805    case 98:
806      return aarch64_ins_simd_addr_post (self, info, code, inst, errors);
807    case 99:
808    case 100:
809      return aarch64_ins_sysreg (self, info, code, inst, errors);
810    case 101:
811      return aarch64_ins_pstatefield (self, info, code, inst, errors);
812    case 102:
813    case 103:
814    case 104:
815    case 105:
816    case 106:
817    case 107:
818      return aarch64_ins_sysins_op (self, info, code, inst, errors);
819    case 108:
820    case 110:
821      return aarch64_ins_barrier (self, info, code, inst, errors);
822    case 109:
823      return aarch64_ins_barrier_dsb_nxs (self, info, code, inst, errors);
824    case 111:
825      return aarch64_ins_prfop (self, info, code, inst, errors);
826    case 115:
827      return aarch64_ins_hint (self, info, code, inst, errors);
828    case 118:
829    case 119:
830      return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors);
831    case 120:
832    case 121:
833    case 122:
834    case 123:
835      return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors);
836    case 124:
837      return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors);
838    case 125:
839      return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors);
840    case 126:
841    case 127:
842    case 128:
843    case 129:
844      return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors);
845    case 130:
846    case 131:
847    case 132:
848    case 133:
849    case 134:
850    case 135:
851    case 136:
852    case 137:
853    case 138:
854    case 139:
855    case 140:
856    case 141:
857    case 142:
858    case 143:
859    case 144:
860      return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors);
861    case 145:
862    case 146:
863    case 147:
864    case 148:
865    case 149:
866    case 150:
867    case 151:
868    case 152:
869      return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors);
870    case 153:
871    case 154:
872    case 155:
873    case 156:
874      return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors);
875    case 157:
876      return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors);
877    case 158:
878      return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors);
879    case 159:
880      return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors);
881    case 160:
882      return aarch64_ins_sve_aimm (self, info, code, inst, errors);
883    case 161:
884      return aarch64_ins_sve_asimm (self, info, code, inst, errors);
885    case 163:
886      return aarch64_ins_sve_float_half_one (self, info, code, inst, errors);
887    case 164:
888      return aarch64_ins_sve_float_half_two (self, info, code, inst, errors);
889    case 165:
890      return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors);
891    case 169:
892      return aarch64_ins_inv_limm (self, info, code, inst, errors);
893    case 171:
894      return aarch64_ins_sve_limm_mov (self, info, code, inst, errors);
895    case 173:
896      return aarch64_ins_sve_scale (self, info, code, inst, errors);
897    case 189:
898    case 190:
899    case 191:
900      return aarch64_ins_sve_shlimm (self, info, code, inst, errors);
901    case 192:
902    case 193:
903    case 194:
904    case 269:
905      return aarch64_ins_sve_shrimm (self, info, code, inst, errors);
906    case 207:
907    case 208:
908    case 209:
909    case 210:
910      return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors);
911    case 211:
912    case 212:
913    case 213:
914    case 214:
915      return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors);
916    case 220:
917    case 221:
918    case 222:
919    case 223:
920    case 224:
921    case 225:
922    case 226:
923      return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
924    case 228:
925      return aarch64_ins_sve_index_imm (self, info, code, inst, errors);
926    case 229:
927      return aarch64_ins_sve_index (self, info, code, inst, errors);
928    case 230:
929    case 232:
930    case 249:
931    case 295:
932    case 296:
933    case 297:
934      return aarch64_ins_sve_reglist (self, info, code, inst, errors);
935    case 233:
936    case 234:
937    case 236:
938    case 237:
939    case 238:
940    case 239:
941    case 248:
942      return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors);
943    case 240:
944    case 241:
945      return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors);
946    case 244:
947    case 246:
948    case 257:
949      return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
950    case 245:
951    case 247:
952      return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors);
953    case 254:
954    case 255:
955    case 270:
956    case 271:
957    case 272:
958    case 273:
959    case 274:
960    case 275:
961    case 276:
962    case 277:
963    case 278:
964    case 279:
965    case 280:
966    case 281:
967    case 282:
968      return aarch64_ins_simple_index (self, info, code, inst, errors);
969    case 258:
970    case 259:
971    case 260:
972    case 261:
973    case 262:
974    case 263:
975    case 264:
976      return aarch64_ins_sme_za_array (self, info, code, inst, errors);
977    case 265:
978      return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors);
979    case 266:
980      return aarch64_ins_sme_sm_za (self, info, code, inst, errors);
981    case 267:
982      return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors);
983    case 268:
984      return aarch64_ins_plain_shrimm (self, info, code, inst, errors);
985    case 290:
986    case 291:
987    case 292:
988      return aarch64_ins_x0_to_x30 (self, info, code, inst, errors);
989    case 298:
990    case 299:
991    case 300:
992    case 301:
993      return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors);
994    case 302:
995      return aarch64_ins_rcpc3_addr_offset (self, info, code, inst, errors);
996    default: assert (0); abort ();
997    }
998}
999