opcodes/
[external/binutils.git] / opcodes / aarch64-dis-2.c
1 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
2 /* Copyright 2012, 2013  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-dis.h"
23
24 /* Called by aarch64_opcode_lookup.  */
25
26 static int
27 aarch64_opcode_lookup_1 (uint32_t word)
28 {
29   if (((word >> 26) & 0x1) == 0)
30     {
31       if (((word >> 25) & 0x1) == 0)
32         {
33           if (((word >> 27) & 0x1) == 0)
34             {
35               if (((word >> 24) & 0x1) == 0)
36                 {
37                   if (((word >> 31) & 0x1) == 0)
38                     {
39                       /* 33222222222211111111110000000000
40                          10987654321098765432109876543210
41                          xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
42                          adr.  */
43                       return 781;
44                     }
45                   else
46                     {
47                       /* 33222222222211111111110000000000
48                          10987654321098765432109876543210
49                          xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
50                          adrp.  */
51                       return 782;
52                     }
53                 }
54               else
55                 {
56                   if (((word >> 29) & 0x1) == 0)
57                     {
58                       if (((word >> 30) & 0x1) == 0)
59                         {
60                           /* 33222222222211111111110000000000
61                              10987654321098765432109876543210
62                              xxxxxxxxxxxxxxxxxxxxxxxx1000x00x
63                              add.  */
64                           return 12;
65                         }
66                       else
67                         {
68                           /* 33222222222211111111110000000000
69                              10987654321098765432109876543210
70                              xxxxxxxxxxxxxxxxxxxxxxxx1000x01x
71                              sub.  */
72                           return 16;
73                         }
74                     }
75                   else
76                     {
77                       if (((word >> 30) & 0x1) == 0)
78                         {
79                           /* 33222222222211111111110000000000
80                              10987654321098765432109876543210
81                              xxxxxxxxxxxxxxxxxxxxxxxx1000x10x
82                              adds.  */
83                           return 14;
84                         }
85                       else
86                         {
87                           /* 33222222222211111111110000000000
88                              10987654321098765432109876543210
89                              xxxxxxxxxxxxxxxxxxxxxxxx1000x11x
90                              subs.  */
91                           return 17;
92                         }
93                     }
94                 }
95             }
96           else
97             {
98               if (((word >> 28) & 0x1) == 0)
99                 {
100                   if (((word >> 22) & 0x1) == 0)
101                     {
102                       if (((word >> 23) & 0x1) == 0)
103                         {
104                           if (((word >> 29) & 0x1) == 0)
105                             {
106                               if (((word >> 15) & 0x1) == 0)
107                                 {
108                                   if (((word >> 21) & 0x1) == 0)
109                                     {
110                                       if (((word >> 31) & 0x1) == 0)
111                                         {
112                                           if (((word >> 30) & 0x1) == 0)
113                                             {
114                                               /* 33222222222211111111110000000000
115                                                  10987654321098765432109876543210
116                                                  xxxxxxxxxxxxxxx0xxxxx000x0010000
117                                                  stxrb.  */
118                                               return 717;
119                                             }
120                                           else
121                                             {
122                                               /* 33222222222211111111110000000000
123                                                  10987654321098765432109876543210
124                                                  xxxxxxxxxxxxxxx0xxxxx000x0010010
125                                                  stxrh.  */
126                                               return 723;
127                                             }
128                                         }
129                                       else
130                                         {
131                                           /* 33222222222211111111110000000000
132                                              10987654321098765432109876543210
133                                              xxxxxxxxxxxxxxx0xxxxx000x00100x1
134                                              stxr.  */
135                                           return 729;
136                                         }
137                                     }
138                                   else
139                                     {
140                                       /* 33222222222211111111110000000000
141                                          10987654321098765432109876543210
142                                          xxxxxxxxxxxxxxx0xxxxx100x00100xx
143                                          stxp.  */
144                                       return 731;
145                                     }
146                                 }
147                               else
148                                 {
149                                   if (((word >> 21) & 0x1) == 0)
150                                     {
151                                       if (((word >> 31) & 0x1) == 0)
152                                         {
153                                           if (((word >> 30) & 0x1) == 0)
154                                             {
155                                               /* 33222222222211111111110000000000
156                                                  10987654321098765432109876543210
157                                                  xxxxxxxxxxxxxxx1xxxxx000x0010000
158                                                  stlxrb.  */
159                                               return 718;
160                                             }
161                                           else
162                                             {
163                                               /* 33222222222211111111110000000000
164                                                  10987654321098765432109876543210
165                                                  xxxxxxxxxxxxxxx1xxxxx000x0010010
166                                                  stlxrh.  */
167                                               return 724;
168                                             }
169                                         }
170                                       else
171                                         {
172                                           /* 33222222222211111111110000000000
173                                              10987654321098765432109876543210
174                                              xxxxxxxxxxxxxxx1xxxxx000x00100x1
175                                              stlxr.  */
176                                           return 730;
177                                         }
178                                     }
179                                   else
180                                     {
181                                       /* 33222222222211111111110000000000
182                                          10987654321098765432109876543210
183                                          xxxxxxxxxxxxxxx1xxxxx100x00100xx
184                                          stlxp.  */
185                                       return 732;
186                                     }
187                                 }
188                             }
189                           else
190                             {
191                               /* 33222222222211111111110000000000
192                                  10987654321098765432109876543210
193                                  xxxxxxxxxxxxxxxxxxxxxx00x00101xx
194                                  stnp.  */
195                               return 739;
196                             }
197                         }
198                       else
199                         {
200                           if (((word >> 29) & 0x1) == 0)
201                             {
202                               if (((word >> 31) & 0x1) == 0)
203                                 {
204                                   if (((word >> 30) & 0x1) == 0)
205                                     {
206                                       /* 33222222222211111111110000000000
207                                          10987654321098765432109876543210
208                                          xxxxxxxxxxxxxxxxxxxxxx01x0010000
209                                          stlrb.  */
210                                       return 721;
211                                     }
212                                   else
213                                     {
214                                       /* 33222222222211111111110000000000
215                                          10987654321098765432109876543210
216                                          xxxxxxxxxxxxxxxxxxxxxx01x0010010
217                                          stlrh.  */
218                                       return 727;
219                                     }
220                                 }
221                               else
222                                 {
223                                   /* 33222222222211111111110000000000
224                                      10987654321098765432109876543210
225                                      xxxxxxxxxxxxxxxxxxxxxx01x00100x1
226                                      stlr.  */
227                                   return 737;
228                                 }
229                             }
230                           else
231                             {
232                               /* 33222222222211111111110000000000
233                                  10987654321098765432109876543210
234                                  xxxxxxxxxxxxxxxxxxxxxx01x00101xx
235                                  stp.  */
236                               return 748;
237                             }
238                         }
239                     }
240                   else
241                     {
242                       if (((word >> 23) & 0x1) == 0)
243                         {
244                           if (((word >> 29) & 0x1) == 0)
245                             {
246                               if (((word >> 15) & 0x1) == 0)
247                                 {
248                                   if (((word >> 21) & 0x1) == 0)
249                                     {
250                                       if (((word >> 31) & 0x1) == 0)
251                                         {
252                                           if (((word >> 30) & 0x1) == 0)
253                                             {
254                                               /* 33222222222211111111110000000000
255                                                  10987654321098765432109876543210
256                                                  xxxxxxxxxxxxxxx0xxxxx010x0010000
257                                                  ldxrb.  */
258                                               return 719;
259                                             }
260                                           else
261                                             {
262                                               /* 33222222222211111111110000000000
263                                                  10987654321098765432109876543210
264                                                  xxxxxxxxxxxxxxx0xxxxx010x0010010
265                                                  ldxrh.  */
266                                               return 725;
267                                             }
268                                         }
269                                       else
270                                         {
271                                           /* 33222222222211111111110000000000
272                                              10987654321098765432109876543210
273                                              xxxxxxxxxxxxxxx0xxxxx010x00100x1
274                                              ldxr.  */
275                                           return 733;
276                                         }
277                                     }
278                                   else
279                                     {
280                                       /* 33222222222211111111110000000000
281                                          10987654321098765432109876543210
282                                          xxxxxxxxxxxxxxx0xxxxx110x00100xx
283                                          ldxp.  */
284                                       return 735;
285                                     }
286                                 }
287                               else
288                                 {
289                                   if (((word >> 21) & 0x1) == 0)
290                                     {
291                                       if (((word >> 31) & 0x1) == 0)
292                                         {
293                                           if (((word >> 30) & 0x1) == 0)
294                                             {
295                                               /* 33222222222211111111110000000000
296                                                  10987654321098765432109876543210
297                                                  xxxxxxxxxxxxxxx1xxxxx010x0010000
298                                                  ldaxrb.  */
299                                               return 720;
300                                             }
301                                           else
302                                             {
303                                               /* 33222222222211111111110000000000
304                                                  10987654321098765432109876543210
305                                                  xxxxxxxxxxxxxxx1xxxxx010x0010010
306                                                  ldaxrh.  */
307                                               return 726;
308                                             }
309                                         }
310                                       else
311                                         {
312                                           /* 33222222222211111111110000000000
313                                              10987654321098765432109876543210
314                                              xxxxxxxxxxxxxxx1xxxxx010x00100x1
315                                              ldaxr.  */
316                                           return 734;
317                                         }
318                                     }
319                                   else
320                                     {
321                                       /* 33222222222211111111110000000000
322                                          10987654321098765432109876543210
323                                          xxxxxxxxxxxxxxx1xxxxx110x00100xx
324                                          ldaxp.  */
325                                       return 736;
326                                     }
327                                 }
328                             }
329                           else
330                             {
331                               if (((word >> 30) & 0x1) == 0)
332                                 {
333                                   /* 33222222222211111111110000000000
334                                      10987654321098765432109876543210
335                                      xxxxxxxxxxxxxxxxxxxxxx10x001010x
336                                      ldnp.  */
337                                   return 740;
338                                 }
339                               else
340                                 {
341                                   /* 33222222222211111111110000000000
342                                      10987654321098765432109876543210
343                                      xxxxxxxxxxxxxxxxxxxxxx10x001011x
344                                      ldpsw.  */
345                                   return 747;
346                                 }
347                             }
348                         }
349                       else
350                         {
351                           if (((word >> 29) & 0x1) == 0)
352                             {
353                               if (((word >> 31) & 0x1) == 0)
354                                 {
355                                   if (((word >> 30) & 0x1) == 0)
356                                     {
357                                       /* 33222222222211111111110000000000
358                                          10987654321098765432109876543210
359                                          xxxxxxxxxxxxxxxxxxxxxx11x0010000
360                                          ldarb.  */
361                                       return 722;
362                                     }
363                                   else
364                                     {
365                                       /* 33222222222211111111110000000000
366                                          10987654321098765432109876543210
367                                          xxxxxxxxxxxxxxxxxxxxxx11x0010010
368                                          ldarh.  */
369                                       return 728;
370                                     }
371                                 }
372                               else
373                                 {
374                                   /* 33222222222211111111110000000000
375                                      10987654321098765432109876543210
376                                      xxxxxxxxxxxxxxxxxxxxxx11x00100x1
377                                      ldar.  */
378                                   return 738;
379                                 }
380                             }
381                           else
382                             {
383                               if (((word >> 30) & 0x1) == 0)
384                                 {
385                                   /* 33222222222211111111110000000000
386                                      10987654321098765432109876543210
387                                      xxxxxxxxxxxxxxxxxxxxxx11x001010x
388                                      ldp.  */
389                                   return 749;
390                                 }
391                               else
392                                 {
393                                   /* 33222222222211111111110000000000
394                                      10987654321098765432109876543210
395                                      xxxxxxxxxxxxxxxxxxxxxx11x001011x
396                                      ldpsw.  */
397                                   return 752;
398                                 }
399                             }
400                         }
401                     }
402                 }
403               else
404                 {
405                   if (((word >> 24) & 0x1) == 0)
406                     {
407                       if (((word >> 29) & 0x1) == 0)
408                         {
409                           if (((word >> 31) & 0x1) == 0)
410                             {
411                               /* 33222222222211111111110000000000
412                                  10987654321098765432109876543210
413                                  xxxxxxxxxxxxxxxxxxxxxxxx000110x0
414                                  ldr.  */
415                               return 753;
416                             }
417                           else
418                             {
419                               if (((word >> 30) & 0x1) == 0)
420                                 {
421                                   /* 33222222222211111111110000000000
422                                      10987654321098765432109876543210
423                                      xxxxxxxxxxxxxxxxxxxxxxxx00011001
424                                      ldrsw.  */
425                                   return 755;
426                                 }
427                               else
428                                 {
429                                   /* 33222222222211111111110000000000
430                                      10987654321098765432109876543210
431                                      xxxxxxxxxxxxxxxxxxxxxxxx00011011
432                                      prfm.  */
433                                   return 756;
434                                 }
435                             }
436                         }
437                       else
438                         {
439                           if (((word >> 10) & 0x1) == 0)
440                             {
441                               if (((word >> 11) & 0x1) == 0)
442                                 {
443                                   if (((word >> 23) & 0x1) == 0)
444                                     {
445                                       if (((word >> 22) & 0x1) == 0)
446                                         {
447                                           if (((word >> 31) & 0x1) == 0)
448                                             {
449                                               if (((word >> 30) & 0x1) == 0)
450                                                 {
451                                                   /* 33222222222211111111110000000000
452                                                      10987654321098765432109876543210
453                                                      xxxxxxxxxx00xxxxxxxxxx0000011100
454                                                      sturb.  */
455                                                   return 693;
456                                                 }
457                                               else
458                                                 {
459                                                   /* 33222222222211111111110000000000
460                                                      10987654321098765432109876543210
461                                                      xxxxxxxxxx00xxxxxxxxxx0000011110
462                                                      sturh.  */
463                                                   return 703;
464                                                 }
465                                             }
466                                           else
467                                             {
468                                               /* 33222222222211111111110000000000
469                                                  10987654321098765432109876543210
470                                                  xxxxxxxxxx00xxxxxxxxxx00000111x1
471                                                  stur.  */
472                                               return 709;
473                                             }
474                                         }
475                                       else
476                                         {
477                                           if (((word >> 31) & 0x1) == 0)
478                                             {
479                                               if (((word >> 30) & 0x1) == 0)
480                                                 {
481                                                   /* 33222222222211111111110000000000
482                                                      10987654321098765432109876543210
483                                                      xxxxxxxxxx00xxxxxxxxxx1000011100
484                                                      ldurb.  */
485                                                   return 694;
486                                                 }
487                                               else
488                                                 {
489                                                   /* 33222222222211111111110000000000
490                                                      10987654321098765432109876543210
491                                                      xxxxxxxxxx00xxxxxxxxxx1000011110
492                                                      ldurh.  */
493                                                   return 704;
494                                                 }
495                                             }
496                                           else
497                                             {
498                                               /* 33222222222211111111110000000000
499                                                  10987654321098765432109876543210
500                                                  xxxxxxxxxx00xxxxxxxxxx10000111x1
501                                                  ldur.  */
502                                               return 710;
503                                             }
504                                         }
505                                     }
506                                   else
507                                     {
508                                       if (((word >> 30) & 0x1) == 0)
509                                         {
510                                           if (((word >> 31) & 0x1) == 0)
511                                             {
512                                               /* 33222222222211111111110000000000
513                                                  10987654321098765432109876543210
514                                                  xxxxxxxxxx00xxxxxxxxxxx100011100
515                                                  ldursb.  */
516                                               return 697;
517                                             }
518                                           else
519                                             {
520                                               /* 33222222222211111111110000000000
521                                                  10987654321098765432109876543210
522                                                  xxxxxxxxxx00xxxxxxxxxxx100011101
523                                                  ldursw.  */
524                                               return 713;
525                                             }
526                                         }
527                                       else
528                                         {
529                                           if (((word >> 31) & 0x1) == 0)
530                                             {
531                                               /* 33222222222211111111110000000000
532                                                  10987654321098765432109876543210
533                                                  xxxxxxxxxx00xxxxxxxxxxx100011110
534                                                  ldursh.  */
535                                               return 707;
536                                             }
537                                           else
538                                             {
539                                               /* 33222222222211111111110000000000
540                                                  10987654321098765432109876543210
541                                                  xxxxxxxxxx00xxxxxxxxxxx100011111
542                                                  prfum.  */
543                                               return 715;
544                                             }
545                                         }
546                                     }
547                                 }
548                               else
549                                 {
550                                   if (((word >> 21) & 0x1) == 0)
551                                     {
552                                       if (((word >> 23) & 0x1) == 0)
553                                         {
554                                           if (((word >> 22) & 0x1) == 0)
555                                             {
556                                               if (((word >> 31) & 0x1) == 0)
557                                                 {
558                                                   if (((word >> 30) & 0x1) == 0)
559                                                     {
560                                                       /* 33222222222211111111110000000000
561                                                          10987654321098765432109876543210
562                                                          xxxxxxxxxx01xxxxxxxxx00000011100
563                                                          sttrb.  */
564                                                       return 684;
565                                                     }
566                                                   else
567                                                     {
568                                                       /* 33222222222211111111110000000000
569                                                          10987654321098765432109876543210
570                                                          xxxxxxxxxx01xxxxxxxxx00000011110
571                                                          sttrh.  */
572                                                       return 687;
573                                                     }
574                                                 }
575                                               else
576                                                 {
577                                                   /* 33222222222211111111110000000000
578                                                      10987654321098765432109876543210
579                                                      xxxxxxxxxx01xxxxxxxxx000000111x1
580                                                      sttr.  */
581                                                   return 690;
582                                                 }
583                                             }
584                                           else
585                                             {
586                                               if (((word >> 31) & 0x1) == 0)
587                                                 {
588                                                   if (((word >> 30) & 0x1) == 0)
589                                                     {
590                                                       /* 33222222222211111111110000000000
591                                                          10987654321098765432109876543210
592                                                          xxxxxxxxxx01xxxxxxxxx01000011100
593                                                          ldtrb.  */
594                                                       return 685;
595                                                     }
596                                                   else
597                                                     {
598                                                       /* 33222222222211111111110000000000
599                                                          10987654321098765432109876543210
600                                                          xxxxxxxxxx01xxxxxxxxx01000011110
601                                                          ldtrh.  */
602                                                       return 688;
603                                                     }
604                                                 }
605                                               else
606                                                 {
607                                                   /* 33222222222211111111110000000000
608                                                      10987654321098765432109876543210
609                                                      xxxxxxxxxx01xxxxxxxxx010000111x1
610                                                      ldtr.  */
611                                                   return 691;
612                                                 }
613                                             }
614                                         }
615                                       else
616                                         {
617                                           if (((word >> 30) & 0x1) == 0)
618                                             {
619                                               if (((word >> 31) & 0x1) == 0)
620                                                 {
621                                                   /* 33222222222211111111110000000000
622                                                      10987654321098765432109876543210
623                                                      xxxxxxxxxx01xxxxxxxxx0x100011100
624                                                      ldtrsb.  */
625                                                   return 686;
626                                                 }
627                                               else
628                                                 {
629                                                   /* 33222222222211111111110000000000
630                                                      10987654321098765432109876543210
631                                                      xxxxxxxxxx01xxxxxxxxx0x100011101
632                                                      ldtrsw.  */
633                                                   return 692;
634                                                 }
635                                             }
636                                           else
637                                             {
638                                               /* 33222222222211111111110000000000
639                                                  10987654321098765432109876543210
640                                                  xxxxxxxxxx01xxxxxxxxx0x10001111x
641                                                  ldtrsh.  */
642                                               return 689;
643                                             }
644                                         }
645                                     }
646                                   else
647                                     {
648                                       if (((word >> 23) & 0x1) == 0)
649                                         {
650                                           if (((word >> 22) & 0x1) == 0)
651                                             {
652                                               if (((word >> 31) & 0x1) == 0)
653                                                 {
654                                                   if (((word >> 30) & 0x1) == 0)
655                                                     {
656                                                       /* 33222222222211111111110000000000
657                                                          10987654321098765432109876543210
658                                                          xxxxxxxxxx01xxxxxxxxx10000011100
659                                                          strb.  */
660                                                       return 672;
661                                                     }
662                                                   else
663                                                     {
664                                                       /* 33222222222211111111110000000000
665                                                          10987654321098765432109876543210
666                                                          xxxxxxxxxx01xxxxxxxxx10000011110
667                                                          strh.  */
668                                                       return 677;
669                                                     }
670                                                 }
671                                               else
672                                                 {
673                                                   /* 33222222222211111111110000000000
674                                                      10987654321098765432109876543210
675                                                      xxxxxxxxxx01xxxxxxxxx100000111x1
676                                                      str.  */
677                                                   return 680;
678                                                 }
679                                             }
680                                           else
681                                             {
682                                               if (((word >> 31) & 0x1) == 0)
683                                                 {
684                                                   if (((word >> 30) & 0x1) == 0)
685                                                     {
686                                                       /* 33222222222211111111110000000000
687                                                          10987654321098765432109876543210
688                                                          xxxxxxxxxx01xxxxxxxxx11000011100
689                                                          ldrb.  */
690                                                       return 673;
691                                                     }
692                                                   else
693                                                     {
694                                                       /* 33222222222211111111110000000000
695                                                          10987654321098765432109876543210
696                                                          xxxxxxxxxx01xxxxxxxxx11000011110
697                                                          ldrh.  */
698                                                       return 678;
699                                                     }
700                                                 }
701                                               else
702                                                 {
703                                                   /* 33222222222211111111110000000000
704                                                      10987654321098765432109876543210
705                                                      xxxxxxxxxx01xxxxxxxxx110000111x1
706                                                      ldr.  */
707                                                   return 681;
708                                                 }
709                                             }
710                                         }
711                                       else
712                                         {
713                                           if (((word >> 30) & 0x1) == 0)
714                                             {
715                                               if (((word >> 31) & 0x1) == 0)
716                                                 {
717                                                   /* 33222222222211111111110000000000
718                                                      10987654321098765432109876543210
719                                                      xxxxxxxxxx01xxxxxxxxx1x100011100
720                                                      ldrsb.  */
721                                                   return 674;
722                                                 }
723                                               else
724                                                 {
725                                                   /* 33222222222211111111110000000000
726                                                      10987654321098765432109876543210
727                                                      xxxxxxxxxx01xxxxxxxxx1x100011101
728                                                      ldrsw.  */
729                                                   return 682;
730                                                 }
731                                             }
732                                           else
733                                             {
734                                               if (((word >> 31) & 0x1) == 0)
735                                                 {
736                                                   /* 33222222222211111111110000000000
737                                                      10987654321098765432109876543210
738                                                      xxxxxxxxxx01xxxxxxxxx1x100011110
739                                                      ldrsh.  */
740                                                   return 679;
741                                                 }
742                                               else
743                                                 {
744                                                   /* 33222222222211111111110000000000
745                                                      10987654321098765432109876543210
746                                                      xxxxxxxxxx01xxxxxxxxx1x100011111
747                                                      prfm.  */
748                                                   return 683;
749                                                 }
750                                             }
751                                         }
752                                     }
753                                 }
754                             }
755                           else
756                             {
757                               if (((word >> 23) & 0x1) == 0)
758                                 {
759                                   if (((word >> 22) & 0x1) == 0)
760                                     {
761                                       if (((word >> 31) & 0x1) == 0)
762                                         {
763                                           if (((word >> 30) & 0x1) == 0)
764                                             {
765                                               /* 33222222222211111111110000000000
766                                                  10987654321098765432109876543210
767                                                  xxxxxxxxxx1xxxxxxxxxxx0000011100
768                                                  strb.  */
769                                               return 649;
770                                             }
771                                           else
772                                             {
773                                               /* 33222222222211111111110000000000
774                                                  10987654321098765432109876543210
775                                                  xxxxxxxxxx1xxxxxxxxxxx0000011110
776                                                  strh.  */
777                                               return 654;
778                                             }
779                                         }
780                                       else
781                                         {
782                                           /* 33222222222211111111110000000000
783                                              10987654321098765432109876543210
784                                              xxxxxxxxxx1xxxxxxxxxxx00000111x1
785                                              str.  */
786                                           return 657;
787                                         }
788                                     }
789                                   else
790                                     {
791                                       if (((word >> 31) & 0x1) == 0)
792                                         {
793                                           if (((word >> 30) & 0x1) == 0)
794                                             {
795                                               /* 33222222222211111111110000000000
796                                                  10987654321098765432109876543210
797                                                  xxxxxxxxxx1xxxxxxxxxxx1000011100
798                                                  ldrb.  */
799                                               return 650;
800                                             }
801                                           else
802                                             {
803                                               /* 33222222222211111111110000000000
804                                                  10987654321098765432109876543210
805                                                  xxxxxxxxxx1xxxxxxxxxxx1000011110
806                                                  ldrh.  */
807                                               return 655;
808                                             }
809                                         }
810                                       else
811                                         {
812                                           /* 33222222222211111111110000000000
813                                              10987654321098765432109876543210
814                                              xxxxxxxxxx1xxxxxxxxxxx10000111x1
815                                              ldr.  */
816                                           return 658;
817                                         }
818                                     }
819                                 }
820                               else
821                                 {
822                                   if (((word >> 30) & 0x1) == 0)
823                                     {
824                                       if (((word >> 31) & 0x1) == 0)
825                                         {
826                                           /* 33222222222211111111110000000000
827                                              10987654321098765432109876543210
828                                              xxxxxxxxxx1xxxxxxxxxxxx100011100
829                                              ldrsb.  */
830                                           return 651;
831                                         }
832                                       else
833                                         {
834                                           /* 33222222222211111111110000000000
835                                              10987654321098765432109876543210
836                                              xxxxxxxxxx1xxxxxxxxxxxx100011101
837                                              ldrsw.  */
838                                           return 659;
839                                         }
840                                     }
841                                   else
842                                     {
843                                       /* 33222222222211111111110000000000
844                                          10987654321098765432109876543210
845                                          xxxxxxxxxx1xxxxxxxxxxxx10001111x
846                                          ldrsh.  */
847                                       return 656;
848                                     }
849                                 }
850                             }
851                         }
852                     }
853                   else
854                     {
855                       if (((word >> 23) & 0x1) == 0)
856                         {
857                           if (((word >> 22) & 0x1) == 0)
858                             {
859                               if (((word >> 31) & 0x1) == 0)
860                                 {
861                                   if (((word >> 30) & 0x1) == 0)
862                                     {
863                                       /* 33222222222211111111110000000000
864                                          10987654321098765432109876543210
865                                          xxxxxxxxxxxxxxxxxxxxxx0010011x00
866                                          strb.  */
867                                       return 660;
868                                     }
869                                   else
870                                     {
871                                       /* 33222222222211111111110000000000
872                                          10987654321098765432109876543210
873                                          xxxxxxxxxxxxxxxxxxxxxx0010011x10
874                                          strh.  */
875                                       return 665;
876                                     }
877                                 }
878                               else
879                                 {
880                                   /* 33222222222211111111110000000000
881                                      10987654321098765432109876543210
882                                      xxxxxxxxxxxxxxxxxxxxxx0010011xx1
883                                      str.  */
884                                   return 668;
885                                 }
886                             }
887                           else
888                             {
889                               if (((word >> 31) & 0x1) == 0)
890                                 {
891                                   if (((word >> 30) & 0x1) == 0)
892                                     {
893                                       /* 33222222222211111111110000000000
894                                          10987654321098765432109876543210
895                                          xxxxxxxxxxxxxxxxxxxxxx1010011x00
896                                          ldrb.  */
897                                       return 661;
898                                     }
899                                   else
900                                     {
901                                       /* 33222222222211111111110000000000
902                                          10987654321098765432109876543210
903                                          xxxxxxxxxxxxxxxxxxxxxx1010011x10
904                                          ldrh.  */
905                                       return 666;
906                                     }
907                                 }
908                               else
909                                 {
910                                   /* 33222222222211111111110000000000
911                                      10987654321098765432109876543210
912                                      xxxxxxxxxxxxxxxxxxxxxx1010011xx1
913                                      ldr.  */
914                                   return 669;
915                                 }
916                             }
917                         }
918                       else
919                         {
920                           if (((word >> 30) & 0x1) == 0)
921                             {
922                               if (((word >> 31) & 0x1) == 0)
923                                 {
924                                   /* 33222222222211111111110000000000
925                                      10987654321098765432109876543210
926                                      xxxxxxxxxxxxxxxxxxxxxxx110011x00
927                                      ldrsb.  */
928                                   return 662;
929                                 }
930                               else
931                                 {
932                                   /* 33222222222211111111110000000000
933                                      10987654321098765432109876543210
934                                      xxxxxxxxxxxxxxxxxxxxxxx110011x01
935                                      ldrsw.  */
936                                   return 670;
937                                 }
938                             }
939                           else
940                             {
941                               if (((word >> 31) & 0x1) == 0)
942                                 {
943                                   /* 33222222222211111111110000000000
944                                      10987654321098765432109876543210
945                                      xxxxxxxxxxxxxxxxxxxxxxx110011x10
946                                      ldrsh.  */
947                                   return 667;
948                                 }
949                               else
950                                 {
951                                   /* 33222222222211111111110000000000
952                                      10987654321098765432109876543210
953                                      xxxxxxxxxxxxxxxxxxxxxxx110011x11
954                                      prfm.  */
955                                   return 671;
956                                 }
957                             }
958                         }
959                     }
960                 }
961             }
962         }
963       else
964         {
965           if (((word >> 24) & 0x1) == 0)
966             {
967               if (((word >> 27) & 0x1) == 0)
968                 {
969                   if (((word >> 23) & 0x1) == 0)
970                     {
971                       if (((word >> 29) & 0x1) == 0)
972                         {
973                           if (((word >> 30) & 0x1) == 0)
974                             {
975                               /* 33222222222211111111110000000000
976                                  10987654321098765432109876543210
977                                  xxxxxxxxxxxxxxxxxxxxxxx00100x00x
978                                  and.  */
979                               return 757;
980                             }
981                           else
982                             {
983                               /* 33222222222211111111110000000000
984                                  10987654321098765432109876543210
985                                  xxxxxxxxxxxxxxxxxxxxxxx00100x01x
986                                  eor.  */
987                               return 761;
988                             }
989                         }
990                       else
991                         {
992                           if (((word >> 30) & 0x1) == 0)
993                             {
994                               /* 33222222222211111111110000000000
995                                  10987654321098765432109876543210
996                                  xxxxxxxxxxxxxxxxxxxxxxx00100x10x
997                                  orr.  */
998                               return 759;
999                             }
1000                           else
1001                             {
1002                               /* 33222222222211111111110000000000
1003                                  10987654321098765432109876543210
1004                                  xxxxxxxxxxxxxxxxxxxxxxx00100x11x
1005                                  ands.  */
1006                               return 762;
1007                             }
1008                         }
1009                     }
1010                   else
1011                     {
1012                       if (((word >> 29) & 0x1) == 0)
1013                         {
1014                           if (((word >> 30) & 0x1) == 0)
1015                             {
1016                               /* 33222222222211111111110000000000
1017                                  10987654321098765432109876543210
1018                                  xxxxxxxxxxxxxxxxxxxxxxx10100x00x
1019                                  movn.  */
1020                               return 776;
1021                             }
1022                           else
1023                             {
1024                               /* 33222222222211111111110000000000
1025                                  10987654321098765432109876543210
1026                                  xxxxxxxxxxxxxxxxxxxxxxx10100x01x
1027                                  movz.  */
1028                               return 778;
1029                             }
1030                         }
1031                       else
1032                         {
1033                           /* 33222222222211111111110000000000
1034                              10987654321098765432109876543210
1035                              xxxxxxxxxxxxxxxxxxxxxxx10100x1xx
1036                              movk.  */
1037                           return 780;
1038                         }
1039                     }
1040                 }
1041               else
1042                 {
1043                   if (((word >> 21) & 0x1) == 0)
1044                     {
1045                       if (((word >> 28) & 0x1) == 0)
1046                         {
1047                           if (((word >> 29) & 0x1) == 0)
1048                             {
1049                               if (((word >> 30) & 0x1) == 0)
1050                                 {
1051                                   /* 33222222222211111111110000000000
1052                                      10987654321098765432109876543210
1053                                      xxxxxxxxxxxxxxxxxxxxx0xx0101000x
1054                                      and.  */
1055                                   return 764;
1056                                 }
1057                               else
1058                                 {
1059                                   /* 33222222222211111111110000000000
1060                                      10987654321098765432109876543210
1061                                      xxxxxxxxxxxxxxxxxxxxx0xx0101001x
1062                                      eor.  */
1063                                   return 771;
1064                                 }
1065                             }
1066                           else
1067                             {
1068                               if (((word >> 30) & 0x1) == 0)
1069                                 {
1070                                   /* 33222222222211111111110000000000
1071                                      10987654321098765432109876543210
1072                                      xxxxxxxxxxxxxxxxxxxxx0xx0101010x
1073                                      orr.  */
1074                                   return 766;
1075                                 }
1076                               else
1077                                 {
1078                                   /* 33222222222211111111110000000000
1079                                      10987654321098765432109876543210
1080                                      xxxxxxxxxxxxxxxxxxxxx0xx0101011x
1081                                      ands.  */
1082                                   return 773;
1083                                 }
1084                             }
1085                         }
1086                       else
1087                         {
1088                           if (((word >> 10) & 0x1) == 0)
1089                             {
1090                               if (((word >> 11) & 0x1) == 0)
1091                                 {
1092                                   if (((word >> 22) & 0x1) == 0)
1093                                     {
1094                                       if (((word >> 23) & 0x1) == 0)
1095                                         {
1096                                           if (((word >> 29) & 0x1) == 0)
1097                                             {
1098                                               if (((word >> 30) & 0x1) == 0)
1099                                                 {
1100                                                   /* 33222222222211111111110000000000
1101                                                      10987654321098765432109876543210
1102                                                      xxxxxxxxxx00xxxxxxxxx0000101100x
1103                                                      adc.  */
1104                                                   return 0;
1105                                                 }
1106                                               else
1107                                                 {
1108                                                   /* 33222222222211111111110000000000
1109                                                      10987654321098765432109876543210
1110                                                      xxxxxxxxxx00xxxxxxxxx0000101101x
1111                                                      sbc.  */
1112                                                   return 2;
1113                                                 }
1114                                             }
1115                                           else
1116                                             {
1117                                               if (((word >> 30) & 0x1) == 0)
1118                                                 {
1119                                                   /* 33222222222211111111110000000000
1120                                                      10987654321098765432109876543210
1121                                                      xxxxxxxxxx00xxxxxxxxx0000101110x
1122                                                      adcs.  */
1123                                                   return 1;
1124                                                 }
1125                                               else
1126                                                 {
1127                                                   /* 33222222222211111111110000000000
1128                                                      10987654321098765432109876543210
1129                                                      xxxxxxxxxx00xxxxxxxxx0000101111x
1130                                                      sbcs.  */
1131                                                   return 4;
1132                                                 }
1133                                             }
1134                                         }
1135                                       else
1136                                         {
1137                                           if (((word >> 30) & 0x1) == 0)
1138                                             {
1139                                               /* 33222222222211111111110000000000
1140                                                  10987654321098765432109876543210
1141                                                  xxxxxxxxxx00xxxxxxxxx00101011x0x
1142                                                  csel.  */
1143                                               return 524;
1144                                             }
1145                                           else
1146                                             {
1147                                               /* 33222222222211111111110000000000
1148                                                  10987654321098765432109876543210
1149                                                  xxxxxxxxxx00xxxxxxxxx00101011x1x
1150                                                  csinv.  */
1151                                               return 528;
1152                                             }
1153                                         }
1154                                     }
1155                                   else
1156                                     {
1157                                       if (((word >> 23) & 0x1) == 0)
1158                                         {
1159                                           if (((word >> 30) & 0x1) == 0)
1160                                             {
1161                                               /* 33222222222211111111110000000000
1162                                                  10987654321098765432109876543210
1163                                                  xxxxxxxxxx00xxxxxxxxx01001011x0x
1164                                                  ccmn.  */
1165                                               return 522;
1166                                             }
1167                                           else
1168                                             {
1169                                               /* 33222222222211111111110000000000
1170                                                  10987654321098765432109876543210
1171                                                  xxxxxxxxxx00xxxxxxxxx01001011x1x
1172                                                  ccmp.  */
1173                                               return 523;
1174                                             }
1175                                         }
1176                                       else
1177                                         {
1178                                           if (((word >> 12) & 0x1) == 0)
1179                                             {
1180                                               if (((word >> 13) & 0x1) == 0)
1181                                                 {
1182                                                   if (((word >> 14) & 0x1) == 0)
1183                                                     {
1184                                                       /* 33222222222211111111110000000000
1185                                                          10987654321098765432109876543210
1186                                                          xxxxxxxxxx00000xxxxxx01101011xxx
1187                                                          rbit.  */
1188                                                       return 547;
1189                                                     }
1190                                                   else
1191                                                     {
1192                                                       /* 33222222222211111111110000000000
1193                                                          10987654321098765432109876543210
1194                                                          xxxxxxxxxx00001xxxxxx01101011xxx
1195                                                          crc32b.  */
1196                                                       return 564;
1197                                                     }
1198                                                 }
1199                                               else
1200                                                 {
1201                                                   /* 33222222222211111111110000000000
1202                                                      10987654321098765432109876543210
1203                                                      xxxxxxxxxx0001xxxxxxx01101011xxx
1204                                                      lslv.  */
1205                                                   return 556;
1206                                                 }
1207                                             }
1208                                           else
1209                                             {
1210                                               if (((word >> 14) & 0x1) == 0)
1211                                                 {
1212                                                   /* 33222222222211111111110000000000
1213                                                      10987654321098765432109876543210
1214                                                      xxxxxxxxxx001x0xxxxxx01101011xxx
1215                                                      clz.  */
1216                                                   return 551;
1217                                                 }
1218                                               else
1219                                                 {
1220                                                   /* 33222222222211111111110000000000
1221                                                      10987654321098765432109876543210
1222                                                      xxxxxxxxxx001x1xxxxxx01101011xxx
1223                                                      crc32cb.  */
1224                                                   return 568;
1225                                                 }
1226                                             }
1227                                         }
1228                                     }
1229                                 }
1230                               else
1231                                 {
1232                                   if (((word >> 23) & 0x1) == 0)
1233                                     {
1234                                       if (((word >> 30) & 0x1) == 0)
1235                                         {
1236                                           /* 33222222222211111111110000000000
1237                                              10987654321098765432109876543210
1238                                              xxxxxxxxxx01xxxxxxxxx0x001011x0x
1239                                              ccmn.  */
1240                                           return 520;
1241                                         }
1242                                       else
1243                                         {
1244                                           /* 33222222222211111111110000000000
1245                                              10987654321098765432109876543210
1246                                              xxxxxxxxxx01xxxxxxxxx0x001011x1x
1247                                              ccmp.  */
1248                                           return 521;
1249                                         }
1250                                     }
1251                                   else
1252                                     {
1253                                       if (((word >> 12) & 0x1) == 0)
1254                                         {
1255                                           if (((word >> 13) & 0x1) == 0)
1256                                             {
1257                                               if (((word >> 14) & 0x1) == 0)
1258                                                 {
1259                                                   if (((word >> 30) & 0x1) == 0)
1260                                                     {
1261                                                       /* 33222222222211111111110000000000
1262                                                          10987654321098765432109876543210
1263                                                          xxxxxxxxxx01000xxxxxx0x101011x0x
1264                                                          udiv.  */
1265                                                       return 554;
1266                                                     }
1267                                                   else
1268                                                     {
1269                                                       if (((word >> 31) & 0x1) == 0)
1270                                                         {
1271                                                           /* 33222222222211111111110000000000
1272                                                              10987654321098765432109876543210
1273                                                              xxxxxxxxxx01000xxxxxx0x101011x10
1274                                                              rev.  */
1275                                                           return 549;
1276                                                         }
1277                                                       else
1278                                                         {
1279                                                           /* 33222222222211111111110000000000
1280                                                              10987654321098765432109876543210
1281                                                              xxxxxxxxxx01000xxxxxx0x101011x11
1282                                                              rev32.  */
1283                                                           return 553;
1284                                                         }
1285                                                     }
1286                                                 }
1287                                               else
1288                                                 {
1289                                                   /* 33222222222211111111110000000000
1290                                                      10987654321098765432109876543210
1291                                                      xxxxxxxxxx01001xxxxxx0x101011xxx
1292                                                      crc32w.  */
1293                                                   return 566;
1294                                                 }
1295                                             }
1296                                           else
1297                                             {
1298                                               /* 33222222222211111111110000000000
1299                                                  10987654321098765432109876543210
1300                                                  xxxxxxxxxx0101xxxxxxx0x101011xxx
1301                                                  asrv.  */
1302                                               return 560;
1303                                             }
1304                                         }
1305                                       else
1306                                         {
1307                                           /* 33222222222211111111110000000000
1308                                              10987654321098765432109876543210
1309                                              xxxxxxxxxx011xxxxxxxx0x101011xxx
1310                                              crc32cw.  */
1311                                           return 570;
1312                                         }
1313                                     }
1314                                 }
1315                             }
1316                           else
1317                             {
1318                               if (((word >> 11) & 0x1) == 0)
1319                                 {
1320                                   if (((word >> 22) & 0x1) == 0)
1321                                     {
1322                                       if (((word >> 30) & 0x1) == 0)
1323                                         {
1324                                           /* 33222222222211111111110000000000
1325                                              10987654321098765432109876543210
1326                                              xxxxxxxxxx10xxxxxxxxx00x01011x0x
1327                                              csinc.  */
1328                                           return 525;
1329                                         }
1330                                       else
1331                                         {
1332                                           /* 33222222222211111111110000000000
1333                                              10987654321098765432109876543210
1334                                              xxxxxxxxxx10xxxxxxxxx00x01011x1x
1335                                              csneg.  */
1336                                           return 531;
1337                                         }
1338                                     }
1339                                   else
1340                                     {
1341                                       if (((word >> 12) & 0x1) == 0)
1342                                         {
1343                                           if (((word >> 13) & 0x1) == 0)
1344                                             {
1345                                               if (((word >> 14) & 0x1) == 0)
1346                                                 {
1347                                                   /* 33222222222211111111110000000000
1348                                                      10987654321098765432109876543210
1349                                                      xxxxxxxxxx10000xxxxxx01x01011xxx
1350                                                      rev16.  */
1351                                                   return 548;
1352                                                 }
1353                                               else
1354                                                 {
1355                                                   /* 33222222222211111111110000000000
1356                                                      10987654321098765432109876543210
1357                                                      xxxxxxxxxx10001xxxxxx01x01011xxx
1358                                                      crc32h.  */
1359                                                   return 565;
1360                                                 }
1361                                             }
1362                                           else
1363                                             {
1364                                               /* 33222222222211111111110000000000
1365                                                  10987654321098765432109876543210
1366                                                  xxxxxxxxxx1001xxxxxxx01x01011xxx
1367                                                  lsrv.  */
1368                                               return 558;
1369                                             }
1370                                         }
1371                                       else
1372                                         {
1373                                           if (((word >> 14) & 0x1) == 0)
1374                                             {
1375                                               /* 33222222222211111111110000000000
1376                                                  10987654321098765432109876543210
1377                                                  xxxxxxxxxx101x0xxxxxx01x01011xxx
1378                                                  cls.  */
1379                                               return 552;
1380                                             }
1381                                           else
1382                                             {
1383                                               /* 33222222222211111111110000000000
1384                                                  10987654321098765432109876543210
1385                                                  xxxxxxxxxx101x1xxxxxx01x01011xxx
1386                                                  crc32ch.  */
1387                                               return 569;
1388                                             }
1389                                         }
1390                                     }
1391                                 }
1392                               else
1393                                 {
1394                                   if (((word >> 12) & 0x1) == 0)
1395                                     {
1396                                       if (((word >> 13) & 0x1) == 0)
1397                                         {
1398                                           if (((word >> 14) & 0x1) == 0)
1399                                             {
1400                                               if (((word >> 30) & 0x1) == 0)
1401                                                 {
1402                                                   /* 33222222222211111111110000000000
1403                                                      10987654321098765432109876543210
1404                                                      xxxxxxxxxx11000xxxxxx0xx01011x0x
1405                                                      sdiv.  */
1406                                                   return 555;
1407                                                 }
1408                                               else
1409                                                 {
1410                                                   /* 33222222222211111111110000000000
1411                                                      10987654321098765432109876543210
1412                                                      xxxxxxxxxx11000xxxxxx0xx01011x1x
1413                                                      rev.  */
1414                                                   return 550;
1415                                                 }
1416                                             }
1417                                           else
1418                                             {
1419                                               /* 33222222222211111111110000000000
1420                                                  10987654321098765432109876543210
1421                                                  xxxxxxxxxx11001xxxxxx0xx01011xxx
1422                                                  crc32x.  */
1423                                               return 567;
1424                                             }
1425                                         }
1426                                       else
1427                                         {
1428                                           /* 33222222222211111111110000000000
1429                                              10987654321098765432109876543210
1430                                              xxxxxxxxxx1101xxxxxxx0xx01011xxx
1431                                              rorv.  */
1432                                           return 562;
1433                                         }
1434                                     }
1435                                   else
1436                                     {
1437                                       /* 33222222222211111111110000000000
1438                                          10987654321098765432109876543210
1439                                          xxxxxxxxxx111xxxxxxxx0xx01011xxx
1440                                          crc32cx.  */
1441                                       return 571;
1442                                     }
1443                                 }
1444                             }
1445                         }
1446                     }
1447                   else
1448                     {
1449                       if (((word >> 29) & 0x1) == 0)
1450                         {
1451                           if (((word >> 30) & 0x1) == 0)
1452                             {
1453                               /* 33222222222211111111110000000000
1454                                  10987654321098765432109876543210
1455                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x00x
1456                                  bic.  */
1457                               return 765;
1458                             }
1459                           else
1460                             {
1461                               /* 33222222222211111111110000000000
1462                                  10987654321098765432109876543210
1463                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x01x
1464                                  eon.  */
1465                               return 772;
1466                             }
1467                         }
1468                       else
1469                         {
1470                           if (((word >> 30) & 0x1) == 0)
1471                             {
1472                               /* 33222222222211111111110000000000
1473                                  10987654321098765432109876543210
1474                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x10x
1475                                  orn.  */
1476                               return 769;
1477                             }
1478                           else
1479                             {
1480                               /* 33222222222211111111110000000000
1481                                  10987654321098765432109876543210
1482                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x11x
1483                                  bics.  */
1484                               return 775;
1485                             }
1486                         }
1487                     }
1488                 }
1489             }
1490           else
1491             {
1492               if (((word >> 27) & 0x1) == 0)
1493                 {
1494                   if (((word >> 23) & 0x1) == 0)
1495                     {
1496                       if (((word >> 29) & 0x1) == 0)
1497                         {
1498                           if (((word >> 30) & 0x1) == 0)
1499                             {
1500                               /* 33222222222211111111110000000000
1501                                  10987654321098765432109876543210
1502                                  xxxxxxxxxxxxxxxxxxxxxxx01100x00x
1503                                  sbfm.  */
1504                               return 493;
1505                             }
1506                           else
1507                             {
1508                               /* 33222222222211111111110000000000
1509                                  10987654321098765432109876543210
1510                                  xxxxxxxxxxxxxxxxxxxxxxx01100x01x
1511                                  ubfm.  */
1512                               return 503;
1513                             }
1514                         }
1515                       else
1516                         {
1517                           /* 33222222222211111111110000000000
1518                              10987654321098765432109876543210
1519                              xxxxxxxxxxxxxxxxxxxxxxx01100x1xx
1520                              bfm.  */
1521                           return 500;
1522                         }
1523                     }
1524                   else
1525                     {
1526                       /* 33222222222211111111110000000000
1527                          10987654321098765432109876543210
1528                          xxxxxxxxxxxxxxxxxxxxxxx11100xxxx
1529                          extr.  */
1530                       return 594;
1531                     }
1532                 }
1533               else
1534                 {
1535                   if (((word >> 21) & 0x1) == 0)
1536                     {
1537                       if (((word >> 28) & 0x1) == 0)
1538                         {
1539                           if (((word >> 29) & 0x1) == 0)
1540                             {
1541                               if (((word >> 30) & 0x1) == 0)
1542                                 {
1543                                   /* 33222222222211111111110000000000
1544                                      10987654321098765432109876543210
1545                                      xxxxxxxxxxxxxxxxxxxxx0xx1101000x
1546                                      add.  */
1547                                   return 19;
1548                                 }
1549                               else
1550                                 {
1551                                   /* 33222222222211111111110000000000
1552                                      10987654321098765432109876543210
1553                                      xxxxxxxxxxxxxxxxxxxxx0xx1101001x
1554                                      sub.  */
1555                                   return 22;
1556                                 }
1557                             }
1558                           else
1559                             {
1560                               if (((word >> 30) & 0x1) == 0)
1561                                 {
1562                                   /* 33222222222211111111110000000000
1563                                      10987654321098765432109876543210
1564                                      xxxxxxxxxxxxxxxxxxxxx0xx1101010x
1565                                      adds.  */
1566                                   return 20;
1567                                 }
1568                               else
1569                                 {
1570                                   /* 33222222222211111111110000000000
1571                                      10987654321098765432109876543210
1572                                      xxxxxxxxxxxxxxxxxxxxx0xx1101011x
1573                                      subs.  */
1574                                   return 24;
1575                                 }
1576                             }
1577                         }
1578                       else
1579                         {
1580                           if (((word >> 15) & 0x1) == 0)
1581                             {
1582                               if (((word >> 22) & 0x1) == 0)
1583                                 {
1584                                   /* 33222222222211111111110000000000
1585                                      10987654321098765432109876543210
1586                                      xxxxxxxxxxxxxxx0xxxxx00x11011xxx
1587                                      madd.  */
1588                                   return 572;
1589                                 }
1590                               else
1591                                 {
1592                                   if (((word >> 23) & 0x1) == 0)
1593                                     {
1594                                       /* 33222222222211111111110000000000
1595                                          10987654321098765432109876543210
1596                                          xxxxxxxxxxxxxxx0xxxxx01011011xxx
1597                                          smulh.  */
1598                                       return 580;
1599                                     }
1600                                   else
1601                                     {
1602                                       /* 33222222222211111111110000000000
1603                                          10987654321098765432109876543210
1604                                          xxxxxxxxxxxxxxx0xxxxx01111011xxx
1605                                          umulh.  */
1606                                       return 585;
1607                                     }
1608                                 }
1609                             }
1610                           else
1611                             {
1612                               /* 33222222222211111111110000000000
1613                                  10987654321098765432109876543210
1614                                  xxxxxxxxxxxxxxx1xxxxx0xx11011xxx
1615                                  msub.  */
1616                               return 574;
1617                             }
1618                         }
1619                     }
1620                   else
1621                     {
1622                       if (((word >> 23) & 0x1) == 0)
1623                         {
1624                           if (((word >> 28) & 0x1) == 0)
1625                             {
1626                               if (((word >> 29) & 0x1) == 0)
1627                                 {
1628                                   if (((word >> 30) & 0x1) == 0)
1629                                     {
1630                                       /* 33222222222211111111110000000000
1631                                          10987654321098765432109876543210
1632                                          xxxxxxxxxxxxxxxxxxxxx1x01101000x
1633                                          add.  */
1634                                       return 6;
1635                                     }
1636                                   else
1637                                     {
1638                                       /* 33222222222211111111110000000000
1639                                          10987654321098765432109876543210
1640                                          xxxxxxxxxxxxxxxxxxxxx1x01101001x
1641                                          sub.  */
1642                                       return 9;
1643                                     }
1644                                 }
1645                               else
1646                                 {
1647                                   if (((word >> 30) & 0x1) == 0)
1648                                     {
1649                                       /* 33222222222211111111110000000000
1650                                          10987654321098765432109876543210
1651                                          xxxxxxxxxxxxxxxxxxxxx1x01101010x
1652                                          adds.  */
1653                                       return 7;
1654                                     }
1655                                   else
1656                                     {
1657                                       /* 33222222222211111111110000000000
1658                                          10987654321098765432109876543210
1659                                          xxxxxxxxxxxxxxxxxxxxx1x01101011x
1660                                          subs.  */
1661                                       return 10;
1662                                     }
1663                                 }
1664                             }
1665                           else
1666                             {
1667                               if (((word >> 15) & 0x1) == 0)
1668                                 {
1669                                   /* 33222222222211111111110000000000
1670                                      10987654321098765432109876543210
1671                                      xxxxxxxxxxxxxxx0xxxxx1x011011xxx
1672                                      smaddl.  */
1673                                   return 576;
1674                                 }
1675                               else
1676                                 {
1677                                   /* 33222222222211111111110000000000
1678                                      10987654321098765432109876543210
1679                                      xxxxxxxxxxxxxxx1xxxxx1x011011xxx
1680                                      smsubl.  */
1681                                   return 578;
1682                                 }
1683                             }
1684                         }
1685                       else
1686                         {
1687                           if (((word >> 15) & 0x1) == 0)
1688                             {
1689                               /* 33222222222211111111110000000000
1690                                  10987654321098765432109876543210
1691                                  xxxxxxxxxxxxxxx0xxxxx1x11101xxxx
1692                                  umaddl.  */
1693                               return 581;
1694                             }
1695                           else
1696                             {
1697                               /* 33222222222211111111110000000000
1698                                  10987654321098765432109876543210
1699                                  xxxxxxxxxxxxxxx1xxxxx1x11101xxxx
1700                                  umsubl.  */
1701                               return 583;
1702                             }
1703                         }
1704                     }
1705                 }
1706             }
1707         }
1708     }
1709   else
1710     {
1711       if (((word >> 27) & 0x1) == 0)
1712         {
1713           if (((word >> 29) & 0x1) == 0)
1714             {
1715               if (((word >> 30) & 0x1) == 0)
1716                 {
1717                   if (((word >> 31) & 0x1) == 0)
1718                     {
1719                       /* 33222222222211111111110000000000
1720                          10987654321098765432109876543210
1721                          xxxxxxxxxxxxxxxxxxxxxxxxxx10x000
1722                          b.  */
1723                       return 510;
1724                     }
1725                   else
1726                     {
1727                       /* 33222222222211111111110000000000
1728                          10987654321098765432109876543210
1729                          xxxxxxxxxxxxxxxxxxxxxxxxxx10x001
1730                          bl.  */
1731                       return 511;
1732                     }
1733                 }
1734               else
1735                 {
1736                   if (((word >> 24) & 0x1) == 0)
1737                     {
1738                       if (((word >> 25) & 0x1) == 0)
1739                         {
1740                           if (((word >> 31) & 0x1) == 0)
1741                             {
1742                               /* 33222222222211111111110000000000
1743                                  10987654321098765432109876543210
1744                                  xxxxxxxxxxxxxxxxxxxxxxxx0010x010
1745                                  b.c.  */
1746                               return 519;
1747                             }
1748                           else
1749                             {
1750                               if (((word >> 0) & 0x1) == 0)
1751                                 {
1752                                   if (((word >> 1) & 0x1) == 0)
1753                                     {
1754                                       if (((word >> 21) & 0x1) == 0)
1755                                         {
1756                                           /* 33222222222211111111110000000000
1757                                              10987654321098765432109876543210
1758                                              00xxxxxxxxxxxxxxxxxxx0xx0010x011
1759                                              hlt.  */
1760                                           return 590;
1761                                         }
1762                                       else
1763                                         {
1764                                           /* 33222222222211111111110000000000
1765                                              10987654321098765432109876543210
1766                                              00xxxxxxxxxxxxxxxxxxx1xx0010x011
1767                                              brk.  */
1768                                           return 589;
1769                                         }
1770                                     }
1771                                   else
1772                                     {
1773                                       if (((word >> 21) & 0x1) == 0)
1774                                         {
1775                                           /* 33222222222211111111110000000000
1776                                              10987654321098765432109876543210
1777                                              01xxxxxxxxxxxxxxxxxxx0xx0010x011
1778                                              hvc.  */
1779                                           return 587;
1780                                         }
1781                                       else
1782                                         {
1783                                           /* 33222222222211111111110000000000
1784                                              10987654321098765432109876543210
1785                                              01xxxxxxxxxxxxxxxxxxx1xx0010x011
1786                                              dcps2.  */
1787                                           return 592;
1788                                         }
1789                                     }
1790                                 }
1791                               else
1792                                 {
1793                                   if (((word >> 1) & 0x1) == 0)
1794                                     {
1795                                       if (((word >> 21) & 0x1) == 0)
1796                                         {
1797                                           /* 33222222222211111111110000000000
1798                                              10987654321098765432109876543210
1799                                              10xxxxxxxxxxxxxxxxxxx0xx0010x011
1800                                              svc.  */
1801                                           return 586;
1802                                         }
1803                                       else
1804                                         {
1805                                           /* 33222222222211111111110000000000
1806                                              10987654321098765432109876543210
1807                                              10xxxxxxxxxxxxxxxxxxx1xx0010x011
1808                                              dcps1.  */
1809                                           return 591;
1810                                         }
1811                                     }
1812                                   else
1813                                     {
1814                                       if (((word >> 21) & 0x1) == 0)
1815                                         {
1816                                           /* 33222222222211111111110000000000
1817                                              10987654321098765432109876543210
1818                                              11xxxxxxxxxxxxxxxxxxx0xx0010x011
1819                                              smc.  */
1820                                           return 588;
1821                                         }
1822                                       else
1823                                         {
1824                                           /* 33222222222211111111110000000000
1825                                              10987654321098765432109876543210
1826                                              11xxxxxxxxxxxxxxxxxxx1xx0010x011
1827                                              dcps3.  */
1828                                           return 593;
1829                                         }
1830                                     }
1831                                 }
1832                             }
1833                         }
1834                       else
1835                         {
1836                           if (((word >> 21) & 0x1) == 0)
1837                             {
1838                               if (((word >> 22) & 0x1) == 0)
1839                                 {
1840                                   if (((word >> 23) & 0x1) == 0)
1841                                     {
1842                                       /* 33222222222211111111110000000000
1843                                          10987654321098765432109876543210
1844                                          xxxxxxxxxxxxxxxxxxxxx0000110x01x
1845                                          br.  */
1846                                       return 512;
1847                                     }
1848                                   else
1849                                     {
1850                                       /* 33222222222211111111110000000000
1851                                          10987654321098765432109876543210
1852                                          xxxxxxxxxxxxxxxxxxxxx0010110x01x
1853                                          eret.  */
1854                                       return 515;
1855                                     }
1856                                 }
1857                               else
1858                                 {
1859                                   /* 33222222222211111111110000000000
1860                                      10987654321098765432109876543210
1861                                      xxxxxxxxxxxxxxxxxxxxx01x0110x01x
1862                                      ret.  */
1863                                   return 514;
1864                                 }
1865                             }
1866                           else
1867                             {
1868                               if (((word >> 23) & 0x1) == 0)
1869                                 {
1870                                   /* 33222222222211111111110000000000
1871                                      10987654321098765432109876543210
1872                                      xxxxxxxxxxxxxxxxxxxxx1x00110x01x
1873                                      blr.  */
1874                                   return 513;
1875                                 }
1876                               else
1877                                 {
1878                                   /* 33222222222211111111110000000000
1879                                      10987654321098765432109876543210
1880                                      xxxxxxxxxxxxxxxxxxxxx1x10110x01x
1881                                      drps.  */
1882                                   return 516;
1883                                 }
1884                             }
1885                         }
1886                     }
1887                   else
1888                     {
1889                       if (((word >> 20) & 0x1) == 0)
1890                         {
1891                           if (((word >> 19) & 0x1) == 0)
1892                             {
1893                               if (((word >> 12) & 0x1) == 0)
1894                                 {
1895                                   if (((word >> 13) & 0x1) == 0)
1896                                     {
1897                                       /* 33222222222211111111110000000000
1898                                          10987654321098765432109876543210
1899                                          xxxxxxxxxxxx00xxxxx00xxx1x10x01x
1900                                          msr.  */
1901                                       return 783;
1902                                     }
1903                                   else
1904                                     {
1905                                       /* 33222222222211111111110000000000
1906                                          10987654321098765432109876543210
1907                                          xxxxxxxxxxxx01xxxxx00xxx1x10x01x
1908                                          hint.  */
1909                                       return 784;
1910                                     }
1911                                 }
1912                               else
1913                                 {
1914                                   if (((word >> 5) & 0x1) == 0)
1915                                     {
1916                                       if (((word >> 6) & 0x1) == 0)
1917                                         {
1918                                           /* 33222222222211111111110000000000
1919                                              10987654321098765432109876543210
1920                                              xxxxx00xxxxx1xxxxxx00xxx1x10x01x
1921                                              dsb.  */
1922                                           return 792;
1923                                         }
1924                                       else
1925                                         {
1926                                           if (((word >> 7) & 0x1) == 0)
1927                                             {
1928                                               /* 33222222222211111111110000000000
1929                                                  10987654321098765432109876543210
1930                                                  xxxxx010xxxx1xxxxxx00xxx1x10x01x
1931                                                  clrex.  */
1932                                               return 791;
1933                                             }
1934                                           else
1935                                             {
1936                                               /* 33222222222211111111110000000000
1937                                                  10987654321098765432109876543210
1938                                                  xxxxx011xxxx1xxxxxx00xxx1x10x01x
1939                                                  isb.  */
1940                                               return 794;
1941                                             }
1942                                         }
1943                                     }
1944                                   else
1945                                     {
1946                                       /* 33222222222211111111110000000000
1947                                          10987654321098765432109876543210
1948                                          xxxxx1xxxxxx1xxxxxx00xxx1x10x01x
1949                                          dmb.  */
1950                                       return 793;
1951                                     }
1952                                 }
1953                             }
1954                           else
1955                             {
1956                               if (((word >> 21) & 0x1) == 0)
1957                                 {
1958                                   /* 33222222222211111111110000000000
1959                                      10987654321098765432109876543210
1960                                      xxxxxxxxxxxxxxxxxxx100xx1x10x01x
1961                                      sys.  */
1962                                   return 795;
1963                                 }
1964                               else
1965                                 {
1966                                   /* 33222222222211111111110000000000
1967                                      10987654321098765432109876543210
1968                                      xxxxxxxxxxxxxxxxxxx101xx1x10x01x
1969                                      sysl.  */
1970                                   return 801;
1971                                 }
1972                             }
1973                         }
1974                       else
1975                         {
1976                           if (((word >> 21) & 0x1) == 0)
1977                             {
1978                               /* 33222222222211111111110000000000
1979                                  10987654321098765432109876543210
1980                                  xxxxxxxxxxxxxxxxxxxx10xx1x10x01x
1981                                  msr.  */
1982                               return 800;
1983                             }
1984                           else
1985                             {
1986                               /* 33222222222211111111110000000000
1987                                  10987654321098765432109876543210
1988                                  xxxxxxxxxxxxxxxxxxxx11xx1x10x01x
1989                                  mrs.  */
1990                               return 802;
1991                             }
1992                         }
1993                     }
1994                 }
1995             }
1996           else
1997             {
1998               if (((word >> 24) & 0x1) == 0)
1999                 {
2000                   if (((word >> 25) & 0x1) == 0)
2001                     {
2002                       /* 33222222222211111111110000000000
2003                          10987654321098765432109876543210
2004                          xxxxxxxxxxxxxxxxxxxxxxxx0010x1xx
2005                          cbz.  */
2006                       return 517;
2007                     }
2008                   else
2009                     {
2010                       /* 33222222222211111111110000000000
2011                          10987654321098765432109876543210
2012                          xxxxxxxxxxxxxxxxxxxxxxxx0110x1xx
2013                          tbz.  */
2014                       return 803;
2015                     }
2016                 }
2017               else
2018                 {
2019                   if (((word >> 25) & 0x1) == 0)
2020                     {
2021                       /* 33222222222211111111110000000000
2022                          10987654321098765432109876543210
2023                          xxxxxxxxxxxxxxxxxxxxxxxx1010x1xx
2024                          cbnz.  */
2025                       return 518;
2026                     }
2027                   else
2028                     {
2029                       /* 33222222222211111111110000000000
2030                          10987654321098765432109876543210
2031                          xxxxxxxxxxxxxxxxxxxxxxxx1110x1xx
2032                          tbnz.  */
2033                       return 804;
2034                     }
2035                 }
2036             }
2037         }
2038       else
2039         {
2040           if (((word >> 25) & 0x1) == 0)
2041             {
2042               if (((word >> 28) & 0x1) == 0)
2043                 {
2044                   if (((word >> 22) & 0x1) == 0)
2045                     {
2046                       if (((word >> 23) & 0x1) == 0)
2047                         {
2048                           if (((word >> 24) & 0x1) == 0)
2049                             {
2050                               if (((word >> 29) & 0x1) == 0)
2051                                 {
2052                                   /* 33222222222211111111110000000000
2053                                      10987654321098765432109876543210
2054                                      xxxxxxxxxxxxxxxxxxxxxx00001100xx
2055                                      st4.  */
2056                                   return 355;
2057                                 }
2058                               else
2059                                 {
2060                                   /* 33222222222211111111110000000000
2061                                      10987654321098765432109876543210
2062                                      xxxxxxxxxxxxxxxxxxxxxx00001101xx
2063                                      stnp.  */
2064                                   return 741;
2065                                 }
2066                             }
2067                           else
2068                             {
2069                               if (((word >> 29) & 0x1) == 0)
2070                                 {
2071                                   if (((word >> 13) & 0x1) == 0)
2072                                     {
2073                                       if (((word >> 21) & 0x1) == 0)
2074                                         {
2075                                           /* 33222222222211111111110000000000
2076                                              10987654321098765432109876543210
2077                                              xxxxxxxxxxxxx0xxxxxxx000101100xx
2078                                              st1.  */
2079                                           return 371;
2080                                         }
2081                                       else
2082                                         {
2083                                           /* 33222222222211111111110000000000
2084                                              10987654321098765432109876543210
2085                                              xxxxxxxxxxxxx0xxxxxxx100101100xx
2086                                              st2.  */
2087                                           return 373;
2088                                         }
2089                                     }
2090                                   else
2091                                     {
2092                                       if (((word >> 21) & 0x1) == 0)
2093                                         {
2094                                           /* 33222222222211111111110000000000
2095                                              10987654321098765432109876543210
2096                                              xxxxxxxxxxxxx1xxxxxxx000101100xx
2097                                              st3.  */
2098                                           return 372;
2099                                         }
2100                                       else
2101                                         {
2102                                           /* 33222222222211111111110000000000
2103                                              10987654321098765432109876543210
2104                                              xxxxxxxxxxxxx1xxxxxxx100101100xx
2105                                              st4.  */
2106                                           return 374;
2107                                         }
2108                                     }
2109                                 }
2110                               else
2111                                 {
2112                                   /* 33222222222211111111110000000000
2113                                      10987654321098765432109876543210
2114                                      xxxxxxxxxxxxxxxxxxxxxx00101101xx
2115                                      stp.  */
2116                                   return 745;
2117                                 }
2118                             }
2119                         }
2120                       else
2121                         {
2122                           if (((word >> 29) & 0x1) == 0)
2123                             {
2124                               if (((word >> 21) & 0x1) == 0)
2125                                 {
2126                                   if (((word >> 24) & 0x1) == 0)
2127                                     {
2128                                       /* 33222222222211111111110000000000
2129                                          10987654321098765432109876543210
2130                                          xxxxxxxxxxxxxxxxxxxxx001001100xx
2131                                          st4.  */
2132                                       return 363;
2133                                     }
2134                                   else
2135                                     {
2136                                       if (((word >> 13) & 0x1) == 0)
2137                                         {
2138                                           /* 33222222222211111111110000000000
2139                                              10987654321098765432109876543210
2140                                              xxxxxxxxxxxxx0xxxxxxx001101100xx
2141                                              st1.  */
2142                                           return 383;
2143                                         }
2144                                       else
2145                                         {
2146                                           /* 33222222222211111111110000000000
2147                                              10987654321098765432109876543210
2148                                              xxxxxxxxxxxxx1xxxxxxx001101100xx
2149                                              st3.  */
2150                                           return 384;
2151                                         }
2152                                     }
2153                                 }
2154                               else
2155                                 {
2156                                   if (((word >> 13) & 0x1) == 0)
2157                                     {
2158                                       /* 33222222222211111111110000000000
2159                                          10987654321098765432109876543210
2160                                          xxxxxxxxxxxxx0xxxxxxx101x01100xx
2161                                          st2.  */
2162                                       return 385;
2163                                     }
2164                                   else
2165                                     {
2166                                       /* 33222222222211111111110000000000
2167                                          10987654321098765432109876543210
2168                                          xxxxxxxxxxxxx1xxxxxxx101x01100xx
2169                                          st4.  */
2170                                       return 386;
2171                                     }
2172                                 }
2173                             }
2174                           else
2175                             {
2176                               /* 33222222222211111111110000000000
2177                                  10987654321098765432109876543210
2178                                  xxxxxxxxxxxxxxxxxxxxxx01x01101xx
2179                                  stp.  */
2180                               return 750;
2181                             }
2182                         }
2183                     }
2184                   else
2185                     {
2186                       if (((word >> 23) & 0x1) == 0)
2187                         {
2188                           if (((word >> 24) & 0x1) == 0)
2189                             {
2190                               if (((word >> 29) & 0x1) == 0)
2191                                 {
2192                                   /* 33222222222211111111110000000000
2193                                      10987654321098765432109876543210
2194                                      xxxxxxxxxxxxxxxxxxxxxx10001100xx
2195                                      ld4.  */
2196                                   return 359;
2197                                 }
2198                               else
2199                                 {
2200                                   /* 33222222222211111111110000000000
2201                                      10987654321098765432109876543210
2202                                      xxxxxxxxxxxxxxxxxxxxxx10001101xx
2203                                      ldnp.  */
2204                                   return 742;
2205                                 }
2206                             }
2207                           else
2208                             {
2209                               if (((word >> 29) & 0x1) == 0)
2210                                 {
2211                                   if (((word >> 13) & 0x1) == 0)
2212                                     {
2213                                       if (((word >> 21) & 0x1) == 0)
2214                                         {
2215                                           /* 33222222222211111111110000000000
2216                                              10987654321098765432109876543210
2217                                              xxxxxxxxxxxxx0xxxxxxx010101100xx
2218                                              ld1.  */
2219                                           return 375;
2220                                         }
2221                                       else
2222                                         {
2223                                           /* 33222222222211111111110000000000
2224                                              10987654321098765432109876543210
2225                                              xxxxxxxxxxxxx0xxxxxxx110101100xx
2226                                              ld2.  */
2227                                           return 379;
2228                                         }
2229                                     }
2230                                   else
2231                                     {
2232                                       if (((word >> 21) & 0x1) == 0)
2233                                         {
2234                                           /* 33222222222211111111110000000000
2235                                              10987654321098765432109876543210
2236                                              xxxxxxxxxxxxx1xxxxxxx010101100xx
2237                                              ld3.  */
2238                                           return 376;
2239                                         }
2240                                       else
2241                                         {
2242                                           /* 33222222222211111111110000000000
2243                                              10987654321098765432109876543210
2244                                              xxxxxxxxxxxxx1xxxxxxx110101100xx
2245                                              ld4.  */
2246                                           return 380;
2247                                         }
2248                                     }
2249                                 }
2250                               else
2251                                 {
2252                                   /* 33222222222211111111110000000000
2253                                      10987654321098765432109876543210
2254                                      xxxxxxxxxxxxxxxxxxxxxx10101101xx
2255                                      ldp.  */
2256                                   return 746;
2257                                 }
2258                             }
2259                         }
2260                       else
2261                         {
2262                           if (((word >> 29) & 0x1) == 0)
2263                             {
2264                               if (((word >> 21) & 0x1) == 0)
2265                                 {
2266                                   if (((word >> 24) & 0x1) == 0)
2267                                     {
2268                                       /* 33222222222211111111110000000000
2269                                          10987654321098765432109876543210
2270                                          xxxxxxxxxxxxxxxxxxxxx011001100xx
2271                                          ld4.  */
2272                                       return 367;
2273                                     }
2274                                   else
2275                                     {
2276                                       if (((word >> 13) & 0x1) == 0)
2277                                         {
2278                                           /* 33222222222211111111110000000000
2279                                              10987654321098765432109876543210
2280                                              xxxxxxxxxxxxx0xxxxxxx011101100xx
2281                                              ld1.  */
2282                                           return 387;
2283                                         }
2284                                       else
2285                                         {
2286                                           /* 33222222222211111111110000000000
2287                                              10987654321098765432109876543210
2288                                              xxxxxxxxxxxxx1xxxxxxx011101100xx
2289                                              ld3.  */
2290                                           return 388;
2291                                         }
2292                                     }
2293                                 }
2294                               else
2295                                 {
2296                                   if (((word >> 13) & 0x1) == 0)
2297                                     {
2298                                       /* 33222222222211111111110000000000
2299                                          10987654321098765432109876543210
2300                                          xxxxxxxxxxxxx0xxxxxxx111x01100xx
2301                                          ld2.  */
2302                                       return 391;
2303                                     }
2304                                   else
2305                                     {
2306                                       /* 33222222222211111111110000000000
2307                                          10987654321098765432109876543210
2308                                          xxxxxxxxxxxxx1xxxxxxx111x01100xx
2309                                          ld4.  */
2310                                       return 392;
2311                                     }
2312                                 }
2313                             }
2314                           else
2315                             {
2316                               /* 33222222222211111111110000000000
2317                                  10987654321098765432109876543210
2318                                  xxxxxxxxxxxxxxxxxxxxxx11x01101xx
2319                                  ldp.  */
2320                               return 751;
2321                             }
2322                         }
2323                     }
2324                 }
2325               else
2326                 {
2327                   if (((word >> 24) & 0x1) == 0)
2328                     {
2329                       if (((word >> 29) & 0x1) == 0)
2330                         {
2331                           /* 33222222222211111111110000000000
2332                              10987654321098765432109876543210
2333                              xxxxxxxxxxxxxxxxxxxxxxxx001110xx
2334                              ldr.  */
2335                           return 754;
2336                         }
2337                       else
2338                         {
2339                           if (((word >> 10) & 0x1) == 0)
2340                             {
2341                               if (((word >> 11) & 0x1) == 0)
2342                                 {
2343                                   if (((word >> 22) & 0x1) == 0)
2344                                     {
2345                                       /* 33222222222211111111110000000000
2346                                          10987654321098765432109876543210
2347                                          xxxxxxxxxx00xxxxxxxxxx0x001111xx
2348                                          stur.  */
2349                                       return 699;
2350                                     }
2351                                   else
2352                                     {
2353                                       /* 33222222222211111111110000000000
2354                                          10987654321098765432109876543210
2355                                          xxxxxxxxxx00xxxxxxxxxx1x001111xx
2356                                          ldur.  */
2357                                       return 700;
2358                                     }
2359                                 }
2360                               else
2361                                 {
2362                                   if (((word >> 22) & 0x1) == 0)
2363                                     {
2364                                       /* 33222222222211111111110000000000
2365                                          10987654321098765432109876543210
2366                                          xxxxxxxxxx01xxxxxxxxxx0x001111xx
2367                                          str.  */
2368                                       return 675;
2369                                     }
2370                                   else
2371                                     {
2372                                       /* 33222222222211111111110000000000
2373                                          10987654321098765432109876543210
2374                                          xxxxxxxxxx01xxxxxxxxxx1x001111xx
2375                                          ldr.  */
2376                                       return 676;
2377                                     }
2378                                 }
2379                             }
2380                           else
2381                             {
2382                               if (((word >> 22) & 0x1) == 0)
2383                                 {
2384                                   /* 33222222222211111111110000000000
2385                                      10987654321098765432109876543210
2386                                      xxxxxxxxxx1xxxxxxxxxxx0x001111xx
2387                                      str.  */
2388                                   return 652;
2389                                 }
2390                               else
2391                                 {
2392                                   /* 33222222222211111111110000000000
2393                                      10987654321098765432109876543210
2394                                      xxxxxxxxxx1xxxxxxxxxxx1x001111xx
2395                                      ldr.  */
2396                                   return 653;
2397                                 }
2398                             }
2399                         }
2400                     }
2401                   else
2402                     {
2403                       if (((word >> 22) & 0x1) == 0)
2404                         {
2405                           /* 33222222222211111111110000000000
2406                              10987654321098765432109876543210
2407                              xxxxxxxxxxxxxxxxxxxxxx0x10111xxx
2408                              str.  */
2409                           return 663;
2410                         }
2411                       else
2412                         {
2413                           /* 33222222222211111111110000000000
2414                              10987654321098765432109876543210
2415                              xxxxxxxxxxxxxxxxxxxxxx1x10111xxx
2416                              ldr.  */
2417                           return 664;
2418                         }
2419                     }
2420                 }
2421             }
2422           else
2423             {
2424               if (((word >> 24) & 0x1) == 0)
2425                 {
2426                   if (((word >> 21) & 0x1) == 0)
2427                     {
2428                       if (((word >> 28) & 0x1) == 0)
2429                         {
2430                           if (((word >> 10) & 0x1) == 0)
2431                             {
2432                               if (((word >> 29) & 0x1) == 0)
2433                                 {
2434                                   if (((word >> 11) & 0x1) == 0)
2435                                     {
2436                                       if (((word >> 12) & 0x1) == 0)
2437                                         {
2438                                           /* 33222222222211111111110000000000
2439                                              10987654321098765432109876543210
2440                                              xxxxxxxxxx000xxxxxxxx0xx011100xx
2441                                              tbl.  */
2442                                           return 341;
2443                                         }
2444                                       else
2445                                         {
2446                                           /* 33222222222211111111110000000000
2447                                              10987654321098765432109876543210
2448                                              xxxxxxxxxx001xxxxxxxx0xx011100xx
2449                                              tbx.  */
2450                                           return 342;
2451                                         }
2452                                     }
2453                                   else
2454                                     {
2455                                       if (((word >> 12) & 0x1) == 0)
2456                                         {
2457                                           if (((word >> 14) & 0x1) == 0)
2458                                             {
2459                                               /* 33222222222211111111110000000000
2460                                                  10987654321098765432109876543210
2461                                                  xxxxxxxxxx010x0xxxxxx0xx011100xx
2462                                                  trn1.  */
2463                                               return 216;
2464                                             }
2465                                           else
2466                                             {
2467                                               /* 33222222222211111111110000000000
2468                                                  10987654321098765432109876543210
2469                                                  xxxxxxxxxx010x1xxxxxx0xx011100xx
2470                                                  trn2.  */
2471                                               return 219;
2472                                             }
2473                                         }
2474                                       else
2475                                         {
2476                                           if (((word >> 13) & 0x1) == 0)
2477                                             {
2478                                               if (((word >> 14) & 0x1) == 0)
2479                                                 {
2480                                                   /* 33222222222211111111110000000000
2481                                                      10987654321098765432109876543210
2482                                                      xxxxxxxxxx01100xxxxxx0xx011100xx
2483                                                      uzp1.  */
2484                                                   return 215;
2485                                                 }
2486                                               else
2487                                                 {
2488                                                   /* 33222222222211111111110000000000
2489                                                      10987654321098765432109876543210
2490                                                      xxxxxxxxxx01101xxxxxx0xx011100xx
2491                                                      uzp2.  */
2492                                                   return 218;
2493                                                 }
2494                                             }
2495                                           else
2496                                             {
2497                                               if (((word >> 14) & 0x1) == 0)
2498                                                 {
2499                                                   /* 33222222222211111111110000000000
2500                                                      10987654321098765432109876543210
2501                                                      xxxxxxxxxx01110xxxxxx0xx011100xx
2502                                                      zip1.  */
2503                                                   return 217;
2504                                                 }
2505                                               else
2506                                                 {
2507                                                   /* 33222222222211111111110000000000
2508                                                      10987654321098765432109876543210
2509                                                      xxxxxxxxxx01111xxxxxx0xx011100xx
2510                                                      zip2.  */
2511                                                   return 220;
2512                                                 }
2513                                             }
2514                                         }
2515                                     }
2516                                 }
2517                               else
2518                                 {
2519                                   /* 33222222222211111111110000000000
2520                                      10987654321098765432109876543210
2521                                      xxxxxxxxxx0xxxxxxxxxx0xx011101xx
2522                                      ext.  */
2523                                   return 119;
2524                                 }
2525                             }
2526                           else
2527                             {
2528                               if (((word >> 29) & 0x1) == 0)
2529                                 {
2530                                   if (((word >> 11) & 0x1) == 0)
2531                                     {
2532                                       /* 33222222222211111111110000000000
2533                                          10987654321098765432109876543210
2534                                          xxxxxxxxxx10xxxxxxxxx0xx011100xx
2535                                          dup.  */
2536                                       return 135;
2537                                     }
2538                                   else
2539                                     {
2540                                       if (((word >> 12) & 0x1) == 0)
2541                                         {
2542                                           if (((word >> 13) & 0x1) == 0)
2543                                             {
2544                                               /* 33222222222211111111110000000000
2545                                                  10987654321098765432109876543210
2546                                                  xxxxxxxxxx1100xxxxxxx0xx011100xx
2547                                                  dup.  */
2548                                               return 136;
2549                                             }
2550                                           else
2551                                             {
2552                                               /* 33222222222211111111110000000000
2553                                                  10987654321098765432109876543210
2554                                                  xxxxxxxxxx1101xxxxxxx0xx011100xx
2555                                                  smov.  */
2556                                               return 137;
2557                                             }
2558                                         }
2559                                       else
2560                                         {
2561                                           if (((word >> 13) & 0x1) == 0)
2562                                             {
2563                                               /* 33222222222211111111110000000000
2564                                                  10987654321098765432109876543210
2565                                                  xxxxxxxxxx1110xxxxxxx0xx011100xx
2566                                                  ins.  */
2567                                               return 140;
2568                                             }
2569                                           else
2570                                             {
2571                                               /* 33222222222211111111110000000000
2572                                                  10987654321098765432109876543210
2573                                                  xxxxxxxxxx1111xxxxxxx0xx011100xx
2574                                                  umov.  */
2575                                               return 138;
2576                                             }
2577                                         }
2578                                     }
2579                                 }
2580                               else
2581                                 {
2582                                   /* 33222222222211111111110000000000
2583                                      10987654321098765432109876543210
2584                                      xxxxxxxxxx1xxxxxxxxxx0xx011101xx
2585                                      ins.  */
2586                                   return 142;
2587                                 }
2588                             }
2589                         }
2590                       else
2591                         {
2592                           if (((word >> 30) & 0x1) == 0)
2593                             {
2594                               if (((word >> 16) & 0x1) == 0)
2595                                 {
2596                                   if (((word >> 17) & 0x1) == 0)
2597                                     {
2598                                       /* 33222222222211111111110000000000
2599                                          10987654321098765432109876543210
2600                                          xxxxxxxxxxxxxxxx00xxx0xx01111x0x
2601                                          fcvtzs.  */
2602                                       return 598;
2603                                     }
2604                                   else
2605                                     {
2606                                       /* 33222222222211111111110000000000
2607                                          10987654321098765432109876543210
2608                                          xxxxxxxxxxxxxxxx01xxx0xx01111x0x
2609                                          scvtf.  */
2610                                       return 596;
2611                                     }
2612                                 }
2613                               else
2614                                 {
2615                                   if (((word >> 17) & 0x1) == 0)
2616                                     {
2617                                       /* 33222222222211111111110000000000
2618                                          10987654321098765432109876543210
2619                                          xxxxxxxxxxxxxxxx10xxx0xx01111x0x
2620                                          fcvtzu.  */
2621                                       return 599;
2622                                     }
2623                                   else
2624                                     {
2625                                       /* 33222222222211111111110000000000
2626                                          10987654321098765432109876543210
2627                                          xxxxxxxxxxxxxxxx11xxx0xx01111x0x
2628                                          ucvtf.  */
2629                                       return 597;
2630                                     }
2631                                 }
2632                             }
2633                           else
2634                             {
2635                               if (((word >> 10) & 0x1) == 0)
2636                                 {
2637                                   if (((word >> 12) & 0x1) == 0)
2638                                     {
2639                                       if (((word >> 13) & 0x1) == 0)
2640                                         {
2641                                           if (((word >> 14) & 0x1) == 0)
2642                                             {
2643                                               /* 33222222222211111111110000000000
2644                                                  10987654321098765432109876543210
2645                                                  xxxxxxxxxx0x000xxxxxx0xx01111x1x
2646                                                  sha1c.  */
2647                                               return 540;
2648                                             }
2649                                           else
2650                                             {
2651                                               /* 33222222222211111111110000000000
2652                                                  10987654321098765432109876543210
2653                                                  xxxxxxxxxx0x001xxxxxx0xx01111x1x
2654                                                  sha256h.  */
2655                                               return 544;
2656                                             }
2657                                         }
2658                                       else
2659                                         {
2660                                           if (((word >> 14) & 0x1) == 0)
2661                                             {
2662                                               /* 33222222222211111111110000000000
2663                                                  10987654321098765432109876543210
2664                                                  xxxxxxxxxx0x010xxxxxx0xx01111x1x
2665                                                  sha1m.  */
2666                                               return 542;
2667                                             }
2668                                           else
2669                                             {
2670                                               /* 33222222222211111111110000000000
2671                                                  10987654321098765432109876543210
2672                                                  xxxxxxxxxx0x011xxxxxx0xx01111x1x
2673                                                  sha256su1.  */
2674                                               return 546;
2675                                             }
2676                                         }
2677                                     }
2678                                   else
2679                                     {
2680                                       if (((word >> 13) & 0x1) == 0)
2681                                         {
2682                                           if (((word >> 14) & 0x1) == 0)
2683                                             {
2684                                               /* 33222222222211111111110000000000
2685                                                  10987654321098765432109876543210
2686                                                  xxxxxxxxxx0x100xxxxxx0xx01111x1x
2687                                                  sha1p.  */
2688                                               return 541;
2689                                             }
2690                                           else
2691                                             {
2692                                               /* 33222222222211111111110000000000
2693                                                  10987654321098765432109876543210
2694                                                  xxxxxxxxxx0x101xxxxxx0xx01111x1x
2695                                                  sha256h2.  */
2696                                               return 545;
2697                                             }
2698                                         }
2699                                       else
2700                                         {
2701                                           /* 33222222222211111111110000000000
2702                                              10987654321098765432109876543210
2703                                              xxxxxxxxxx0x11xxxxxxx0xx01111x1x
2704                                              sha1su0.  */
2705                                           return 543;
2706                                         }
2707                                     }
2708                                 }
2709                               else
2710                                 {
2711                                   /* 33222222222211111111110000000000
2712                                      10987654321098765432109876543210
2713                                      xxxxxxxxxx1xxxxxxxxxx0xx01111x1x
2714                                      dup.  */
2715                                   return 430;
2716                                 }
2717                             }
2718                         }
2719                     }
2720                   else
2721                     {
2722                       if (((word >> 10) & 0x1) == 0)
2723                         {
2724                           if (((word >> 11) & 0x1) == 0)
2725                             {
2726                               if (((word >> 12) & 0x1) == 0)
2727                                 {
2728                                   if (((word >> 13) & 0x1) == 0)
2729                                     {
2730                                       if (((word >> 14) & 0x1) == 0)
2731                                         {
2732                                           if (((word >> 15) & 0x1) == 0)
2733                                             {
2734                                               if (((word >> 28) & 0x1) == 0)
2735                                                 {
2736                                                   if (((word >> 29) & 0x1) == 0)
2737                                                     {
2738                                                       if (((word >> 30) & 0x1) == 0)
2739                                                         {
2740                                                           /* 33222222222211111111110000000000
2741                                                              10987654321098765432109876543210
2742                                                              xxxxxxxxxx000000xxxxx1xx0111000x
2743                                                              saddl.  */
2744                                                           return 38;
2745                                                         }
2746                                                       else
2747                                                         {
2748                                                           /* 33222222222211111111110000000000
2749                                                              10987654321098765432109876543210
2750                                                              xxxxxxxxxx000000xxxxx1xx0111001x
2751                                                              saddl2.  */
2752                                                           return 39;
2753                                                         }
2754                                                     }
2755                                                   else
2756                                                     {
2757                                                       if (((word >> 30) & 0x1) == 0)
2758                                                         {
2759                                                           /* 33222222222211111111110000000000
2760                                                              10987654321098765432109876543210
2761                                                              xxxxxxxxxx000000xxxxx1xx0111010x
2762                                                              uaddl.  */
2763                                                           return 70;
2764                                                         }
2765                                                       else
2766                                                         {
2767                                                           /* 33222222222211111111110000000000
2768                                                              10987654321098765432109876543210
2769                                                              xxxxxxxxxx000000xxxxx1xx0111011x
2770                                                              uaddl2.  */
2771                                                           return 71;
2772                                                         }
2773                                                     }
2774                                                 }
2775                                               else
2776                                                 {
2777                                                   if (((word >> 16) & 0x1) == 0)
2778                                                     {
2779                                                       if (((word >> 17) & 0x1) == 0)
2780                                                         {
2781                                                           if (((word >> 18) & 0x1) == 0)
2782                                                             {
2783                                                               if (((word >> 19) & 0x1) == 0)
2784                                                                 {
2785                                                                   if (((word >> 20) & 0x1) == 0)
2786                                                                     {
2787                                                                       /* 33222222222211111111110000000000
2788                                                                          10987654321098765432109876543210
2789                                                                          xxxxxxxxxx000000000001xx01111xxx
2790                                                                          fcvtns.  */
2791                                                                       return 600;
2792                                                                     }
2793                                                                   else
2794                                                                     {
2795                                                                       /* 33222222222211111111110000000000
2796                                                                          10987654321098765432109876543210
2797                                                                          xxxxxxxxxx000000000011xx01111xxx
2798                                                                          fcvtms.  */
2799                                                                       return 610;
2800                                                                     }
2801                                                                 }
2802                                                               else
2803                                                                 {
2804                                                                   if (((word >> 20) & 0x1) == 0)
2805                                                                     {
2806                                                                       /* 33222222222211111111110000000000
2807                                                                          10987654321098765432109876543210
2808                                                                          xxxxxxxxxx000000000101xx01111xxx
2809                                                                          fcvtps.  */
2810                                                                       return 608;
2811                                                                     }
2812                                                                   else
2813                                                                     {
2814                                                                       /* 33222222222211111111110000000000
2815                                                                          10987654321098765432109876543210
2816                                                                          xxxxxxxxxx000000000111xx01111xxx
2817                                                                          fcvtzs.  */
2818                                                                       return 612;
2819                                                                     }
2820                                                                 }
2821                                                             }
2822                                                           else
2823                                                             {
2824                                                               /* 33222222222211111111110000000000
2825                                                                  10987654321098765432109876543210
2826                                                                  xxxxxxxxxx000000001xx1xx01111xxx
2827                                                                  fcvtas.  */
2828                                                               return 604;
2829                                                             }
2830                                                         }
2831                                                       else
2832                                                         {
2833                                                           if (((word >> 18) & 0x1) == 0)
2834                                                             {
2835                                                               /* 33222222222211111111110000000000
2836                                                                  10987654321098765432109876543210
2837                                                                  xxxxxxxxxx000000010xx1xx01111xxx
2838                                                                  scvtf.  */
2839                                                               return 602;
2840                                                             }
2841                                                           else
2842                                                             {
2843                                                               if (((word >> 19) & 0x1) == 0)
2844                                                                 {
2845                                                                   /* 33222222222211111111110000000000
2846                                                                      10987654321098765432109876543210
2847                                                                      xxxxxxxxxx0000000110x1xx01111xxx
2848                                                                      fmov.  */
2849                                                                   return 606;
2850                                                                 }
2851                                                               else
2852                                                                 {
2853                                                                   /* 33222222222211111111110000000000
2854                                                                      10987654321098765432109876543210
2855                                                                      xxxxxxxxxx0000000111x1xx01111xxx
2856                                                                      fmov.  */
2857                                                                   return 614;
2858                                                                 }
2859                                                             }
2860                                                         }
2861                                                     }
2862                                                   else
2863                                                     {
2864                                                       if (((word >> 17) & 0x1) == 0)
2865                                                         {
2866                                                           if (((word >> 18) & 0x1) == 0)
2867                                                             {
2868                                                               if (((word >> 19) & 0x1) == 0)
2869                                                                 {
2870                                                                   if (((word >> 20) & 0x1) == 0)
2871                                                                     {
2872                                                                       /* 33222222222211111111110000000000
2873                                                                          10987654321098765432109876543210
2874                                                                          xxxxxxxxxx000000100001xx01111xxx
2875                                                                          fcvtnu.  */
2876                                                                       return 601;
2877                                                                     }
2878                                                                   else
2879                                                                     {
2880                                                                       /* 33222222222211111111110000000000
2881                                                                          10987654321098765432109876543210
2882                                                                          xxxxxxxxxx000000100011xx01111xxx
2883                                                                          fcvtmu.  */
2884                                                                       return 611;
2885                                                                     }
2886                                                                 }
2887                                                               else
2888                                                                 {
2889                                                                   if (((word >> 20) & 0x1) == 0)
2890                                                                     {
2891                                                                       /* 33222222222211111111110000000000
2892                                                                          10987654321098765432109876543210
2893                                                                          xxxxxxxxxx000000100101xx01111xxx
2894                                                                          fcvtpu.  */
2895                                                                       return 609;
2896                                                                     }
2897                                                                   else
2898                                                                     {
2899                                                                       /* 33222222222211111111110000000000
2900                                                                          10987654321098765432109876543210
2901                                                                          xxxxxxxxxx000000100111xx01111xxx
2902                                                                          fcvtzu.  */
2903                                                                       return 613;
2904                                                                     }
2905                                                                 }
2906                                                             }
2907                                                           else
2908                                                             {
2909                                                               /* 33222222222211111111110000000000
2910                                                                  10987654321098765432109876543210
2911                                                                  xxxxxxxxxx000000101xx1xx01111xxx
2912                                                                  fcvtau.  */
2913                                                               return 605;
2914                                                             }
2915                                                         }
2916                                                       else
2917                                                         {
2918                                                           if (((word >> 18) & 0x1) == 0)
2919                                                             {
2920                                                               /* 33222222222211111111110000000000
2921                                                                  10987654321098765432109876543210
2922                                                                  xxxxxxxxxx000000110xx1xx01111xxx
2923                                                                  ucvtf.  */
2924                                                               return 603;
2925                                                             }
2926                                                           else
2927                                                             {
2928                                                               if (((word >> 19) & 0x1) == 0)
2929                                                                 {
2930                                                                   /* 33222222222211111111110000000000
2931                                                                      10987654321098765432109876543210
2932                                                                      xxxxxxxxxx0000001110x1xx01111xxx
2933                                                                      fmov.  */
2934                                                                   return 607;
2935                                                                 }
2936                                                               else
2937                                                                 {
2938                                                                   /* 33222222222211111111110000000000
2939                                                                      10987654321098765432109876543210
2940                                                                      xxxxxxxxxx0000001111x1xx01111xxx
2941                                                                      fmov.  */
2942                                                                   return 615;
2943                                                                 }
2944                                                             }
2945                                                         }
2946                                                     }
2947                                                 }
2948                                             }
2949                                           else
2950                                             {
2951                                               if (((word >> 29) & 0x1) == 0)
2952                                                 {
2953                                                   if (((word >> 30) & 0x1) == 0)
2954                                                     {
2955                                                       /* 33222222222211111111110000000000
2956                                                          10987654321098765432109876543210
2957                                                          xxxxxxxxxx000001xxxxx1xx0111x00x
2958                                                          smlal.  */
2959                                                       return 54;
2960                                                     }
2961                                                   else
2962                                                     {
2963                                                       /* 33222222222211111111110000000000
2964                                                          10987654321098765432109876543210
2965                                                          xxxxxxxxxx000001xxxxx1xx0111x01x
2966                                                          smlal2.  */
2967                                                       return 55;
2968                                                     }
2969                                                 }
2970                                               else
2971                                                 {
2972                                                   if (((word >> 30) & 0x1) == 0)
2973                                                     {
2974                                                       /* 33222222222211111111110000000000
2975                                                          10987654321098765432109876543210
2976                                                          xxxxxxxxxx000001xxxxx1xx0111x10x
2977                                                          umlal.  */
2978                                                       return 86;
2979                                                     }
2980                                                   else
2981                                                     {
2982                                                       /* 33222222222211111111110000000000
2983                                                          10987654321098765432109876543210
2984                                                          xxxxxxxxxx000001xxxxx1xx0111x11x
2985                                                          umlal2.  */
2986                                                       return 87;
2987                                                     }
2988                                                 }
2989                                             }
2990                                         }
2991                                       else
2992                                         {
2993                                           if (((word >> 28) & 0x1) == 0)
2994                                             {
2995                                               if (((word >> 15) & 0x1) == 0)
2996                                                 {
2997                                                   if (((word >> 29) & 0x1) == 0)
2998                                                     {
2999                                                       if (((word >> 30) & 0x1) == 0)
3000                                                         {
3001                                                           /* 33222222222211111111110000000000
3002                                                              10987654321098765432109876543210
3003                                                              xxxxxxxxxx000010xxxxx1xx0111000x
3004                                                              addhn.  */
3005                                                           return 46;
3006                                                         }
3007                                                       else
3008                                                         {
3009                                                           /* 33222222222211111111110000000000
3010                                                              10987654321098765432109876543210
3011                                                              xxxxxxxxxx000010xxxxx1xx0111001x
3012                                                              addhn2.  */
3013                                                           return 47;
3014                                                         }
3015                                                     }
3016                                                   else
3017                                                     {
3018                                                       if (((word >> 30) & 0x1) == 0)
3019                                                         {
3020                                                           /* 33222222222211111111110000000000
3021                                                              10987654321098765432109876543210
3022                                                              xxxxxxxxxx000010xxxxx1xx0111010x
3023                                                              raddhn.  */
3024                                                           return 78;
3025                                                         }
3026                                                       else
3027                                                         {
3028                                                           /* 33222222222211111111110000000000
3029                                                              10987654321098765432109876543210
3030                                                              xxxxxxxxxx000010xxxxx1xx0111011x
3031                                                              raddhn2.  */
3032                                                           return 79;
3033                                                         }
3034                                                     }
3035                                                 }
3036                                               else
3037                                                 {
3038                                                   if (((word >> 29) & 0x1) == 0)
3039                                                     {
3040                                                       if (((word >> 30) & 0x1) == 0)
3041                                                         {
3042                                                           /* 33222222222211111111110000000000
3043                                                              10987654321098765432109876543210
3044                                                              xxxxxxxxxx000011xxxxx1xx0111000x
3045                                                              smull.  */
3046                                                           return 62;
3047                                                         }
3048                                                       else
3049                                                         {
3050                                                           /* 33222222222211111111110000000000
3051                                                              10987654321098765432109876543210
3052                                                              xxxxxxxxxx000011xxxxx1xx0111001x
3053                                                              smull2.  */
3054                                                           return 63;
3055                                                         }
3056                                                     }
3057                                                   else
3058                                                     {
3059                                                       if (((word >> 30) & 0x1) == 0)
3060                                                         {
3061                                                           /* 33222222222211111111110000000000
3062                                                              10987654321098765432109876543210
3063                                                              xxxxxxxxxx000011xxxxx1xx0111010x
3064                                                              umull.  */
3065                                                           return 90;
3066                                                         }
3067                                                       else
3068                                                         {
3069                                                           /* 33222222222211111111110000000000
3070                                                              10987654321098765432109876543210
3071                                                              xxxxxxxxxx000011xxxxx1xx0111011x
3072                                                              umull2.  */
3073                                                           return 91;
3074                                                         }
3075                                                     }
3076                                                 }
3077                                             }
3078                                           else
3079                                             {
3080                                               if (((word >> 17) & 0x1) == 0)
3081                                                 {
3082                                                   if (((word >> 15) & 0x1) == 0)
3083                                                     {
3084                                                       if (((word >> 16) & 0x1) == 0)
3085                                                         {
3086                                                           if (((word >> 18) & 0x1) == 0)
3087                                                             {
3088                                                               /* 33222222222211111111110000000000
3089                                                                  10987654321098765432109876543210
3090                                                                  xxxxxxxxxx000010000xx1xx01111xxx
3091                                                                  fmov.  */
3092                                                               return 622;
3093                                                             }
3094                                                           else
3095                                                             {
3096                                                               /* 33222222222211111111110000000000
3097                                                                  10987654321098765432109876543210
3098                                                                  xxxxxxxxxx000010001xx1xx01111xxx
3099                                                                  frintn.  */
3100                                                               return 627;
3101                                                             }
3102                                                         }
3103                                                       else
3104                                                         {
3105                                                           if (((word >> 18) & 0x1) == 0)
3106                                                             {
3107                                                               /* 33222222222211111111110000000000
3108                                                                  10987654321098765432109876543210
3109                                                                  xxxxxxxxxx000010100xx1xx01111xxx
3110                                                                  fneg.  */
3111                                                               return 624;
3112                                                             }
3113                                                           else
3114                                                             {
3115                                                               /* 33222222222211111111110000000000
3116                                                                  10987654321098765432109876543210
3117                                                                  xxxxxxxxxx000010101xx1xx01111xxx
3118                                                                  frintm.  */
3119                                                               return 629;
3120                                                             }
3121                                                         }
3122                                                     }
3123                                                   else
3124                                                     {
3125                                                       if (((word >> 16) & 0x1) == 0)
3126                                                         {
3127                                                           if (((word >> 18) & 0x1) == 0)
3128                                                             {
3129                                                               /* 33222222222211111111110000000000
3130                                                                  10987654321098765432109876543210
3131                                                                  xxxxxxxxxx000011000xx1xx01111xxx
3132                                                                  fabs.  */
3133                                                               return 623;
3134                                                             }
3135                                                           else
3136                                                             {
3137                                                               /* 33222222222211111111110000000000
3138                                                                  10987654321098765432109876543210
3139                                                                  xxxxxxxxxx000011001xx1xx01111xxx
3140                                                                  frintp.  */
3141                                                               return 628;
3142                                                             }
3143                                                         }
3144                                                       else
3145                                                         {
3146                                                           if (((word >> 18) & 0x1) == 0)
3147                                                             {
3148                                                               /* 33222222222211111111110000000000
3149                                                                  10987654321098765432109876543210
3150                                                                  xxxxxxxxxx000011100xx1xx01111xxx
3151                                                                  fsqrt.  */
3152                                                               return 625;
3153                                                             }
3154                                                           else
3155                                                             {
3156                                                               /* 33222222222211111111110000000000
3157                                                                  10987654321098765432109876543210
3158                                                                  xxxxxxxxxx000011101xx1xx01111xxx
3159                                                                  frintz.  */
3160                                                               return 630;
3161                                                             }
3162                                                         }
3163                                                     }
3164                                                 }
3165                                               else
3166                                                 {
3167                                                   if (((word >> 18) & 0x1) == 0)
3168                                                     {
3169                                                       /* 33222222222211111111110000000000
3170                                                          10987654321098765432109876543210
3171                                                          xxxxxxxxxx00001xx10xx1xx01111xxx
3172                                                          fcvt.  */
3173                                                       return 626;
3174                                                     }
3175                                                   else
3176                                                     {
3177                                                       if (((word >> 15) & 0x1) == 0)
3178                                                         {
3179                                                           if (((word >> 16) & 0x1) == 0)
3180                                                             {
3181                                                               /* 33222222222211111111110000000000
3182                                                                  10987654321098765432109876543210
3183                                                                  xxxxxxxxxx000010011xx1xx01111xxx
3184                                                                  frinta.  */
3185                                                               return 631;
3186                                                             }
3187                                                           else
3188                                                             {
3189                                                               /* 33222222222211111111110000000000
3190                                                                  10987654321098765432109876543210
3191                                                                  xxxxxxxxxx000010111xx1xx01111xxx
3192                                                                  frintx.  */
3193                                                               return 632;
3194                                                             }
3195                                                         }
3196                                                       else
3197                                                         {
3198                                                           /* 33222222222211111111110000000000
3199                                                              10987654321098765432109876543210
3200                                                              xxxxxxxxxx000011x11xx1xx01111xxx
3201                                                              frinti.  */
3202                                                           return 633;
3203                                                         }
3204                                                     }
3205                                                 }
3206                                             }
3207                                         }
3208                                     }
3209                                   else
3210                                     {
3211                                       if (((word >> 14) & 0x1) == 0)
3212                                         {
3213                                           if (((word >> 15) & 0x1) == 0)
3214                                             {
3215                                               if (((word >> 28) & 0x1) == 0)
3216                                                 {
3217                                                   if (((word >> 29) & 0x1) == 0)
3218                                                     {
3219                                                       if (((word >> 30) & 0x1) == 0)
3220                                                         {
3221                                                           /* 33222222222211111111110000000000
3222                                                              10987654321098765432109876543210
3223                                                              xxxxxxxxxx000100xxxxx1xx0111000x
3224                                                              ssubl.  */
3225                                                           return 42;
3226                                                         }
3227                                                       else
3228                                                         {
3229                                                           /* 33222222222211111111110000000000
3230                                                              10987654321098765432109876543210
3231                                                              xxxxxxxxxx000100xxxxx1xx0111001x
3232                                                              ssubl2.  */
3233                                                           return 43;
3234                                                         }
3235                                                     }
3236                                                   else
3237                                                     {
3238                                                       if (((word >> 30) & 0x1) == 0)
3239                                                         {
3240                                                           /* 33222222222211111111110000000000
3241                                                              10987654321098765432109876543210
3242                                                              xxxxxxxxxx000100xxxxx1xx0111010x
3243                                                              usubl.  */
3244                                                           return 74;
3245                                                         }
3246                                                       else
3247                                                         {
3248                                                           /* 33222222222211111111110000000000
3249                                                              10987654321098765432109876543210
3250                                                              xxxxxxxxxx000100xxxxx1xx0111011x
3251                                                              usubl2.  */
3252                                                           return 75;
3253                                                         }
3254                                                     }
3255                                                 }
3256                                               else
3257                                                 {
3258                                                   if (((word >> 3) & 0x1) == 0)
3259                                                     {
3260                                                       if (((word >> 4) & 0x1) == 0)
3261                                                         {
3262                                                           /* 33222222222211111111110000000000
3263                                                              10987654321098765432109876543210
3264                                                              xxx00xxxxx000100xxxxx1xx01111xxx
3265                                                              fcmp.  */
3266                                                           return 618;
3267                                                         }
3268                                                       else
3269                                                         {
3270                                                           /* 33222222222211111111110000000000
3271                                                              10987654321098765432109876543210
3272                                                              xxx01xxxxx000100xxxxx1xx01111xxx
3273                                                              fcmpe.  */
3274                                                           return 619;
3275                                                         }
3276                                                     }
3277                                                   else
3278                                                     {
3279                                                       if (((word >> 4) & 0x1) == 0)
3280                                                         {
3281                                                           /* 33222222222211111111110000000000
3282                                                              10987654321098765432109876543210
3283                                                              xxx10xxxxx000100xxxxx1xx01111xxx
3284                                                              fcmp.  */
3285                                                           return 620;
3286                                                         }
3287                                                       else
3288                                                         {
3289                                                           /* 33222222222211111111110000000000
3290                                                              10987654321098765432109876543210
3291                                                              xxx11xxxxx000100xxxxx1xx01111xxx
3292                                                              fcmpe.  */
3293                                                           return 621;
3294                                                         }
3295                                                     }
3296                                                 }
3297                                             }
3298                                           else
3299                                             {
3300                                               if (((word >> 29) & 0x1) == 0)
3301                                                 {
3302                                                   if (((word >> 30) & 0x1) == 0)
3303                                                     {
3304                                                       /* 33222222222211111111110000000000
3305                                                          10987654321098765432109876543210
3306                                                          xxxxxxxxxx000101xxxxx1xx0111x00x
3307                                                          smlsl.  */
3308                                                       return 58;
3309                                                     }
3310                                                   else
3311                                                     {
3312                                                       /* 33222222222211111111110000000000
3313                                                          10987654321098765432109876543210
3314                                                          xxxxxxxxxx000101xxxxx1xx0111x01x
3315                                                          smlsl2.  */
3316                                                       return 59;
3317                                                     }
3318                                                 }
3319                                               else
3320                                                 {
3321                                                   if (((word >> 30) & 0x1) == 0)
3322                                                     {
3323                                                       /* 33222222222211111111110000000000
3324                                                          10987654321098765432109876543210
3325                                                          xxxxxxxxxx000101xxxxx1xx0111x10x
3326                                                          umlsl.  */
3327                                                       return 88;
3328                                                     }
3329                                                   else
3330                                                     {
3331                                                       /* 33222222222211111111110000000000
3332                                                          10987654321098765432109876543210
3333                                                          xxxxxxxxxx000101xxxxx1xx0111x11x
3334                                                          umlsl2.  */
3335                                                       return 89;
3336                                                     }
3337                                                 }
3338                                             }
3339                                         }
3340                                       else
3341                                         {
3342                                           if (((word >> 15) & 0x1) == 0)
3343                                             {
3344                                               if (((word >> 29) & 0x1) == 0)
3345                                                 {
3346                                                   if (((word >> 30) & 0x1) == 0)
3347                                                     {
3348                                                       /* 33222222222211111111110000000000
3349                                                          10987654321098765432109876543210
3350                                                          xxxxxxxxxx000110xxxxx1xx0111x00x
3351                                                          subhn.  */
3352                                                       return 50;
3353                                                     }
3354                                                   else
3355                                                     {
3356                                                       /* 33222222222211111111110000000000
3357                                                          10987654321098765432109876543210
3358                                                          xxxxxxxxxx000110xxxxx1xx0111x01x
3359                                                          subhn2.  */
3360                                                       return 51;
3361                                                     }
3362                                                 }
3363                                               else
3364                                                 {
3365                                                   if (((word >> 30) & 0x1) == 0)
3366                                                     {
3367                                                       /* 33222222222211111111110000000000
3368                                                          10987654321098765432109876543210
3369                                                          xxxxxxxxxx000110xxxxx1xx0111x10x
3370                                                          rsubhn.  */
3371                                                       return 82;
3372                                                     }
3373                                                   else
3374                                                     {
3375                                                       /* 33222222222211111111110000000000
3376                                                          10987654321098765432109876543210
3377                                                          xxxxxxxxxx000110xxxxx1xx0111x11x
3378                                                          rsubhn2.  */
3379                                                       return 83;
3380                                                     }
3381                                                 }
3382                                             }
3383                                           else
3384                                             {
3385                                               if (((word >> 22) & 0x1) == 0)
3386                                                 {
3387                                                   if (((word >> 30) & 0x1) == 0)
3388                                                     {
3389                                                       /* 33222222222211111111110000000000
3390                                                          10987654321098765432109876543210
3391                                                          xxxxxxxxxx000111xxxxx10x0111xx0x
3392                                                          pmull.  */
3393                                                       return 66;
3394                                                     }
3395                                                   else
3396                                                     {
3397                                                       /* 33222222222211111111110000000000
3398                                                          10987654321098765432109876543210
3399                                                          xxxxxxxxxx000111xxxxx10x0111xx1x
3400                                                          pmull2.  */
3401                                                       return 68;
3402                                                     }
3403                                                 }
3404                                               else
3405                                                 {
3406                                                   if (((word >> 30) & 0x1) == 0)
3407                                                     {
3408                                                       /* 33222222222211111111110000000000
3409                                                          10987654321098765432109876543210
3410                                                          xxxxxxxxxx000111xxxxx11x0111xx0x
3411                                                          pmull.  */
3412                                                       return 67;
3413                                                     }
3414                                                   else
3415                                                     {
3416                                                       /* 33222222222211111111110000000000
3417                                                          10987654321098765432109876543210
3418                                                          xxxxxxxxxx000111xxxxx11x0111xx1x
3419                                                          pmull2.  */
3420                                                       return 69;
3421                                                     }
3422                                                 }
3423                                             }
3424                                         }
3425                                     }
3426                                 }
3427                               else
3428                                 {
3429                                   if (((word >> 28) & 0x1) == 0)
3430                                     {
3431                                       if (((word >> 13) & 0x1) == 0)
3432                                         {
3433                                           if (((word >> 14) & 0x1) == 0)
3434                                             {
3435                                               if (((word >> 15) & 0x1) == 0)
3436                                                 {
3437                                                   if (((word >> 29) & 0x1) == 0)
3438                                                     {
3439                                                       if (((word >> 30) & 0x1) == 0)
3440                                                         {
3441                                                           /* 33222222222211111111110000000000
3442                                                              10987654321098765432109876543210
3443                                                              xxxxxxxxxx001000xxxxx1xx0111000x
3444                                                              saddw.  */
3445                                                           return 40;
3446                                                         }
3447                                                       else
3448                                                         {
3449                                                           /* 33222222222211111111110000000000
3450                                                              10987654321098765432109876543210
3451                                                              xxxxxxxxxx001000xxxxx1xx0111001x
3452                                                              saddw2.  */
3453                                                           return 41;
3454                                                         }
3455                                                     }
3456                                                   else
3457                                                     {
3458                                                       if (((word >> 30) & 0x1) == 0)
3459                                                         {
3460                                                           /* 33222222222211111111110000000000
3461                                                              10987654321098765432109876543210
3462                                                              xxxxxxxxxx001000xxxxx1xx0111010x
3463                                                              uaddw.  */
3464                                                           return 72;
3465                                                         }
3466                                                       else
3467                                                         {
3468                                                           /* 33222222222211111111110000000000
3469                                                              10987654321098765432109876543210
3470                                                              xxxxxxxxxx001000xxxxx1xx0111011x
3471                                                              uaddw2.  */
3472                                                           return 73;
3473                                                         }
3474                                                     }
3475                                                 }
3476                                               else
3477                                                 {
3478                                                   if (((word >> 30) & 0x1) == 0)
3479                                                     {
3480                                                       /* 33222222222211111111110000000000
3481                                                          10987654321098765432109876543210
3482                                                          xxxxxxxxxx001001xxxxx1xx01110x0x
3483                                                          sqdmlal.  */
3484                                                       return 56;
3485                                                     }
3486                                                   else
3487                                                     {
3488                                                       /* 33222222222211111111110000000000
3489                                                          10987654321098765432109876543210
3490                                                          xxxxxxxxxx001001xxxxx1xx01110x1x
3491                                                          sqdmlal2.  */
3492                                                       return 57;
3493                                                     }
3494                                                 }
3495                                             }
3496                                           else
3497                                             {
3498                                               if (((word >> 15) & 0x1) == 0)
3499                                                 {
3500                                                   if (((word >> 29) & 0x1) == 0)
3501                                                     {
3502                                                       if (((word >> 30) & 0x1) == 0)
3503                                                         {
3504                                                           /* 33222222222211111111110000000000
3505                                                              10987654321098765432109876543210
3506                                                              xxxxxxxxxx001010xxxxx1xx0111000x
3507                                                              sabal.  */
3508                                                           return 48;
3509                                                         }
3510                                                       else
3511                                                         {
3512                                                           /* 33222222222211111111110000000000
3513                                                              10987654321098765432109876543210
3514                                                              xxxxxxxxxx001010xxxxx1xx0111001x
3515                                                              sabal2.  */
3516                                                           return 49;
3517                                                         }
3518                                                     }
3519                                                   else
3520                                                     {
3521                                                       if (((word >> 30) & 0x1) == 0)
3522                                                         {
3523                                                           /* 33222222222211111111110000000000
3524                                                              10987654321098765432109876543210
3525                                                              xxxxxxxxxx001010xxxxx1xx0111010x
3526                                                              uabal.  */
3527                                                           return 80;
3528                                                         }
3529                                                       else
3530                                                         {
3531                                                           /* 33222222222211111111110000000000
3532                                                              10987654321098765432109876543210
3533                                                              xxxxxxxxxx001010xxxxx1xx0111011x
3534                                                              uabal2.  */
3535                                                           return 81;
3536                                                         }
3537                                                     }
3538                                                 }
3539                                               else
3540                                                 {
3541                                                   if (((word >> 30) & 0x1) == 0)
3542                                                     {
3543                                                       /* 33222222222211111111110000000000
3544                                                          10987654321098765432109876543210
3545                                                          xxxxxxxxxx001011xxxxx1xx01110x0x
3546                                                          sqdmull.  */
3547                                                       return 64;
3548                                                     }
3549                                                   else
3550                                                     {
3551                                                       /* 33222222222211111111110000000000
3552                                                          10987654321098765432109876543210
3553                                                          xxxxxxxxxx001011xxxxx1xx01110x1x
3554                                                          sqdmull2.  */
3555                                                       return 65;
3556                                                     }
3557                                                 }
3558                                             }
3559                                         }
3560                                       else
3561                                         {
3562                                           if (((word >> 14) & 0x1) == 0)
3563                                             {
3564                                               if (((word >> 15) & 0x1) == 0)
3565                                                 {
3566                                                   if (((word >> 29) & 0x1) == 0)
3567                                                     {
3568                                                       if (((word >> 30) & 0x1) == 0)
3569                                                         {
3570                                                           /* 33222222222211111111110000000000
3571                                                              10987654321098765432109876543210
3572                                                              xxxxxxxxxx001100xxxxx1xx0111000x
3573                                                              ssubw.  */
3574                                                           return 44;
3575                                                         }
3576                                                       else
3577                                                         {
3578                                                           /* 33222222222211111111110000000000
3579                                                              10987654321098765432109876543210
3580                                                              xxxxxxxxxx001100xxxxx1xx0111001x
3581                                                              ssubw2.  */
3582                                                           return 45;
3583                                                         }
3584                                                     }
3585                                                   else
3586                                                     {
3587                                                       if (((word >> 30) & 0x1) == 0)
3588                                                         {
3589                                                           /* 33222222222211111111110000000000
3590                                                              10987654321098765432109876543210
3591                                                              xxxxxxxxxx001100xxxxx1xx0111010x
3592                                                              usubw.  */
3593                                                           return 76;
3594                                                         }
3595                                                       else
3596                                                         {
3597                                                           /* 33222222222211111111110000000000
3598                                                              10987654321098765432109876543210
3599                                                              xxxxxxxxxx001100xxxxx1xx0111011x
3600                                                              usubw2.  */
3601                                                           return 77;
3602                                                         }
3603                                                     }
3604                                                 }
3605                                               else
3606                                                 {
3607                                                   if (((word >> 30) & 0x1) == 0)
3608                                                     {
3609                                                       /* 33222222222211111111110000000000
3610                                                          10987654321098765432109876543210
3611                                                          xxxxxxxxxx001101xxxxx1xx01110x0x
3612                                                          sqdmlsl.  */
3613                                                       return 60;
3614                                                     }
3615                                                   else
3616                                                     {
3617                                                       /* 33222222222211111111110000000000
3618                                                          10987654321098765432109876543210
3619                                                          xxxxxxxxxx001101xxxxx1xx01110x1x
3620                                                          sqdmlsl2.  */
3621                                                       return 61;
3622                                                     }
3623                                                 }
3624                                             }
3625                                           else
3626                                             {
3627                                               if (((word >> 29) & 0x1) == 0)
3628                                                 {
3629                                                   if (((word >> 30) & 0x1) == 0)
3630                                                     {
3631                                                       /* 33222222222211111111110000000000
3632                                                          10987654321098765432109876543210
3633                                                          xxxxxxxxxx00111xxxxxx1xx0111000x
3634                                                          sabdl.  */
3635                                                       return 52;
3636                                                     }
3637                                                   else
3638                                                     {
3639                                                       /* 33222222222211111111110000000000
3640                                                          10987654321098765432109876543210
3641                                                          xxxxxxxxxx00111xxxxxx1xx0111001x
3642                                                          sabdl2.  */
3643                                                       return 53;
3644                                                     }
3645                                                 }
3646                                               else
3647                                                 {
3648                                                   if (((word >> 30) & 0x1) == 0)
3649                                                     {
3650                                                       /* 33222222222211111111110000000000
3651                                                          10987654321098765432109876543210
3652                                                          xxxxxxxxxx00111xxxxxx1xx0111010x
3653                                                          uabdl.  */
3654                                                       return 84;
3655                                                     }
3656                                                   else
3657                                                     {
3658                                                       /* 33222222222211111111110000000000
3659                                                          10987654321098765432109876543210
3660                                                          xxxxxxxxxx00111xxxxxx1xx0111011x
3661                                                          uabdl2.  */
3662                                                       return 85;
3663                                                     }
3664                                                 }
3665                                             }
3666                                         }
3667                                     }
3668                                   else
3669                                     {
3670                                       if (((word >> 30) & 0x1) == 0)
3671                                         {
3672                                           /* 33222222222211111111110000000000
3673                                              10987654321098765432109876543210
3674                                              xxxxxxxxxx001xxxxxxxx1xx01111x0x
3675                                              fmov.  */
3676                                           return 647;
3677                                         }
3678                                       else
3679                                         {
3680                                           if (((word >> 13) & 0x1) == 0)
3681                                             {
3682                                               if (((word >> 14) & 0x1) == 0)
3683                                                 {
3684                                                   /* 33222222222211111111110000000000
3685                                                      10987654321098765432109876543210
3686                                                      xxxxxxxxxx00100xxxxxx1xx01111x1x
3687                                                      sqdmlal.  */
3688                                                   return 343;
3689                                                 }
3690                                               else
3691                                                 {
3692                                                   /* 33222222222211111111110000000000
3693                                                      10987654321098765432109876543210
3694                                                      xxxxxxxxxx00101xxxxxx1xx01111x1x
3695                                                      sqdmull.  */
3696                                                   return 345;
3697                                                 }
3698                                             }
3699                                           else
3700                                             {
3701                                               /* 33222222222211111111110000000000
3702                                                  10987654321098765432109876543210
3703                                                  xxxxxxxxxx0011xxxxxxx1xx01111x1x
3704                                                  sqdmlsl.  */
3705                                               return 344;
3706                                             }
3707                                         }
3708                                     }
3709                                 }
3710                             }
3711                           else
3712                             {
3713                               if (((word >> 12) & 0x1) == 0)
3714                                 {
3715                                   if (((word >> 13) & 0x1) == 0)
3716                                     {
3717                                       if (((word >> 14) & 0x1) == 0)
3718                                         {
3719                                           if (((word >> 15) & 0x1) == 0)
3720                                             {
3721                                               if (((word >> 28) & 0x1) == 0)
3722                                                 {
3723                                                   if (((word >> 29) & 0x1) == 0)
3724                                                     {
3725                                                       /* 33222222222211111111110000000000
3726                                                          10987654321098765432109876543210
3727                                                          xxxxxxxxxx010000xxxxx1xx011100xx
3728                                                          rev64.  */
3729                                                       return 144;
3730                                                     }
3731                                                   else
3732                                                     {
3733                                                       /* 33222222222211111111110000000000
3734                                                          10987654321098765432109876543210
3735                                                          xxxxxxxxxx010000xxxxx1xx011101xx
3736                                                          rev32.  */
3737                                                       return 180;
3738                                                     }
3739                                                 }
3740                                               else
3741                                                 {
3742                                                   if (((word >> 30) & 0x1) == 0)
3743                                                     {
3744                                                       /* 33222222222211111111110000000000
3745                                                          10987654321098765432109876543210
3746                                                          xxxxxxxxxx010000xxxxx1xx01111x0x
3747                                                          fmul.  */
3748                                                       return 634;
3749                                                     }
3750                                                   else
3751                                                     {
3752                                                       /* 33222222222211111111110000000000
3753                                                          10987654321098765432109876543210
3754                                                          xxxxxxxxxx010000xxxxx1xx01111x1x
3755                                                          sha1h.  */
3756                                                       return 537;
3757                                                     }
3758                                                 }
3759                                             }
3760                                           else
3761                                             {
3762                                               if (((word >> 28) & 0x1) == 0)
3763                                                 {
3764                                                   if (((word >> 16) & 0x1) == 0)
3765                                                     {
3766                                                       if (((word >> 29) & 0x1) == 0)
3767                                                         {
3768                                                           /* 33222222222211111111110000000000
3769                                                              10987654321098765432109876543210
3770                                                              xxxxxxxxxx0100010xxxx1xx011100xx
3771                                                              cmgt.  */
3772                                                           return 152;
3773                                                         }
3774                                                       else
3775                                                         {
3776                                                           /* 33222222222211111111110000000000
3777                                                              10987654321098765432109876543210
3778                                                              xxxxxxxxxx0100010xxxx1xx011101xx
3779                                                              cmge.  */
3780                                                           return 186;
3781                                                         }
3782                                                     }
3783                                                   else
3784                                                     {
3785                                                       if (((word >> 23) & 0x1) == 0)
3786                                                         {
3787                                                           if (((word >> 29) & 0x1) == 0)
3788                                                             {
3789                                                               /* 33222222222211111111110000000000
3790                                                                  10987654321098765432109876543210
3791                                                                  xxxxxxxxxx0100011xxxx1x0011100xx
3792                                                                  frintn.  */
3793                                                               return 164;
3794                                                             }
3795                                                           else
3796                                                             {
3797                                                               /* 33222222222211111111110000000000
3798                                                                  10987654321098765432109876543210
3799                                                                  xxxxxxxxxx0100011xxxx1x0011101xx
3800                                                                  frinta.  */
3801                                                               return 197;
3802                                                             }
3803                                                         }
3804                                                       else
3805                                                         {
3806                                                           /* 33222222222211111111110000000000
3807                                                              10987654321098765432109876543210
3808                                                              xxxxxxxxxx0100011xxxx1x101110xxx
3809                                                              frintp.  */
3810                                                           return 174;
3811                                                         }
3812                                                     }
3813                                                 }
3814                                               else
3815                                                 {
3816                                                   if (((word >> 29) & 0x1) == 0)
3817                                                     {
3818                                                       if (((word >> 30) & 0x1) == 0)
3819                                                         {
3820                                                           /* 33222222222211111111110000000000
3821                                                              10987654321098765432109876543210
3822                                                              xxxxxxxxxx010001xxxxx1xx0111100x
3823                                                              fnmul.  */
3824                                                           return 642;
3825                                                         }
3826                                                       else
3827                                                         {
3828                                                           /* 33222222222211111111110000000000
3829                                                              10987654321098765432109876543210
3830                                                              xxxxxxxxxx010001xxxxx1xx0111101x
3831                                                              cmgt.  */
3832                                                           return 397;
3833                                                         }
3834                                                     }
3835                                                   else
3836                                                     {
3837                                                       /* 33222222222211111111110000000000
3838                                                          10987654321098765432109876543210
3839                                                          xxxxxxxxxx010001xxxxx1xx011111xx
3840                                                          cmge.  */
3841                                                       return 415;
3842                                                     }
3843                                                 }
3844                                             }
3845                                         }
3846                                       else
3847                                         {
3848                                           if (((word >> 15) & 0x1) == 0)
3849                                             {
3850                                               if (((word >> 28) & 0x1) == 0)
3851                                                 {
3852                                                   if (((word >> 16) & 0x1) == 0)
3853                                                     {
3854                                                       if (((word >> 19) & 0x1) == 0)
3855                                                         {
3856                                                           if (((word >> 29) & 0x1) == 0)
3857                                                             {
3858                                                               /* 33222222222211111111110000000000
3859                                                                  10987654321098765432109876543210
3860                                                                  xxxxxxxxxx0100100xx0x1xx011100xx
3861                                                                  cls.  */
3862                                                               return 148;
3863                                                             }
3864                                                           else
3865                                                             {
3866                                                               /* 33222222222211111111110000000000
3867                                                                  10987654321098765432109876543210
3868                                                                  xxxxxxxxxx0100100xx0x1xx011101xx
3869                                                                  clz.  */
3870                                                               return 183;
3871                                                             }
3872                                                         }
3873                                                       else
3874                                                         {
3875                                                           /* 33222222222211111111110000000000
3876                                                              10987654321098765432109876543210
3877                                                              xxxxxxxxxx0100100xx1x1xx01110xxx
3878                                                              aese.  */
3879                                                           return 533;
3880                                                         }
3881                                                     }
3882                                                   else
3883                                                     {
3884                                                       if (((word >> 29) & 0x1) == 0)
3885                                                         {
3886                                                           if (((word >> 30) & 0x1) == 0)
3887                                                             {
3888                                                               /* 33222222222211111111110000000000
3889                                                                  10987654321098765432109876543210
3890                                                                  xxxxxxxxxx0100101xxxx1xx0111000x
3891                                                                  sqxtn.  */
3892                                                               return 158;
3893                                                             }
3894                                                           else
3895                                                             {
3896                                                               /* 33222222222211111111110000000000
3897                                                                  10987654321098765432109876543210
3898                                                                  xxxxxxxxxx0100101xxxx1xx0111001x
3899                                                                  sqxtn2.  */
3900                                                               return 159;
3901                                                             }
3902                                                         }
3903                                                       else
3904                                                         {
3905                                                           if (((word >> 30) & 0x1) == 0)
3906                                                             {
3907                                                               /* 33222222222211111111110000000000
3908                                                                  10987654321098765432109876543210
3909                                                                  xxxxxxxxxx0100101xxxx1xx0111010x
3910                                                                  uqxtn.  */
3911                                                               return 193;
3912                                                             }
3913                                                           else
3914                                                             {
3915                                                               /* 33222222222211111111110000000000
3916                                                                  10987654321098765432109876543210
3917                                                                  xxxxxxxxxx0100101xxxx1xx0111011x
3918                                                                  uqxtn2.  */
3919                                                               return 194;
3920                                                             }
3921                                                         }
3922                                                     }
3923                                                 }
3924                                               else
3925                                                 {
3926                                                   if (((word >> 29) & 0x1) == 0)
3927                                                     {
3928                                                       if (((word >> 30) & 0x1) == 0)
3929                                                         {
3930                                                           /* 33222222222211111111110000000000
3931                                                              10987654321098765432109876543210
3932                                                              xxxxxxxxxx010010xxxxx1xx0111100x
3933                                                              fmax.  */
3934                                                           return 638;
3935                                                         }
3936                                                       else
3937                                                         {
3938                                                           /* 33222222222211111111110000000000
3939                                                              10987654321098765432109876543210
3940                                                              xxxxxxxxxx010010xxxxx1xx0111101x
3941                                                              sqxtn.  */
3942                                                           return 401;
3943                                                         }
3944                                                     }
3945                                                   else
3946                                                     {
3947                                                       /* 33222222222211111111110000000000
3948                                                          10987654321098765432109876543210
3949                                                          xxxxxxxxxx010010xxxxx1xx011111xx
3950                                                          uqxtn.  */
3951                                                       return 419;
3952                                                     }
3953                                                 }
3954                                             }
3955                                           else
3956                                             {
3957                                               if (((word >> 16) & 0x1) == 0)
3958                                                 {
3959                                                   if (((word >> 20) & 0x1) == 0)
3960                                                     {
3961                                                       if (((word >> 28) & 0x1) == 0)
3962                                                         {
3963                                                           if (((word >> 29) & 0x1) == 0)
3964                                                             {
3965                                                               /* 33222222222211111111110000000000
3966                                                                  10987654321098765432109876543210
3967                                                                  xxxxxxxxxx0100110xxx01xx011100xx
3968                                                                  fcmgt.  */
3969                                                               return 170;
3970                                                             }
3971                                                           else
3972                                                             {
3973                                                               /* 33222222222211111111110000000000
3974                                                                  10987654321098765432109876543210
3975                                                                  xxxxxxxxxx0100110xxx01xx011101xx
3976                                                                  fcmge.  */
3977                                                               return 206;
3978                                                             }
3979                                                         }
3980                                                       else
3981                                                         {
3982                                                           if (((word >> 29) & 0x1) == 0)
3983                                                             {
3984                                                               /* 33222222222211111111110000000000
3985                                                                  10987654321098765432109876543210
3986                                                                  xxxxxxxxxx0100110xxx01xx011110xx
3987                                                                  fcmgt.  */
3988                                                               return 406;
3989                                                             }
3990                                                           else
3991                                                             {
3992                                                               /* 33222222222211111111110000000000
3993                                                                  10987654321098765432109876543210
3994                                                                  xxxxxxxxxx0100110xxx01xx011111xx
3995                                                                  fcmge.  */
3996                                                               return 425;
3997                                                             }
3998                                                         }
3999                                                     }
4000                                                   else
4001                                                     {
4002                                                       if (((word >> 23) & 0x1) == 0)
4003                                                         {
4004                                                           if (((word >> 28) & 0x1) == 0)
4005                                                             {
4006                                                               /* 33222222222211111111110000000000
4007                                                                  10987654321098765432109876543210
4008                                                                  xxxxxxxxxx0100110xxx11x001110xxx
4009                                                                  fmaxnmv.  */
4010                                                               return 34;
4011                                                             }
4012                                                           else
4013                                                             {
4014                                                               /* 33222222222211111111110000000000
4015                                                                  10987654321098765432109876543210
4016                                                                  xxxxxxxxxx0100110xxx11x001111xxx
4017                                                                  fmaxnmp.  */
4018                                                               return 433;
4019                                                             }
4020                                                         }
4021                                                       else
4022                                                         {
4023                                                           if (((word >> 28) & 0x1) == 0)
4024                                                             {
4025                                                               /* 33222222222211111111110000000000
4026                                                                  10987654321098765432109876543210
4027                                                                  xxxxxxxxxx0100110xxx11x101110xxx
4028                                                                  fminnmv.  */
4029                                                               return 36;
4030                                                             }
4031                                                           else
4032                                                             {
4033                                                               /* 33222222222211111111110000000000
4034                                                                  10987654321098765432109876543210
4035                                                                  xxxxxxxxxx0100110xxx11x101111xxx
4036                                                                  fminnmp.  */
4037                                                               return 436;
4038                                                             }
4039                                                         }
4040                                                     }
4041                                                 }
4042                                               else
4043                                                 {
4044                                                   if (((word >> 23) & 0x1) == 0)
4045                                                     {
4046                                                       if (((word >> 28) & 0x1) == 0)
4047                                                         {
4048                                                           if (((word >> 29) & 0x1) == 0)
4049                                                             {
4050                                                               /* 33222222222211111111110000000000
4051                                                                  10987654321098765432109876543210
4052                                                                  xxxxxxxxxx0100111xxxx1x0011100xx
4053                                                                  fcvtas.  */
4054                                                               return 168;
4055                                                             }
4056                                                           else
4057                                                             {
4058                                                               /* 33222222222211111111110000000000
4059                                                                  10987654321098765432109876543210
4060                                                                  xxxxxxxxxx0100111xxxx1x0011101xx
4061                                                                  fcvtau.  */
4062                                                               return 201;
4063                                                             }
4064                                                         }
4065                                                       else
4066                                                         {
4067                                                           if (((word >> 29) & 0x1) == 0)
4068                                                             {
4069                                                               /* 33222222222211111111110000000000
4070                                                                  10987654321098765432109876543210
4071                                                                  xxxxxxxxxx0100111xxxx1x0011110xx
4072                                                                  fcvtas.  */
4073                                                               return 404;
4074                                                             }
4075                                                           else
4076                                                             {
4077                                                               /* 33222222222211111111110000000000
4078                                                                  10987654321098765432109876543210
4079                                                                  xxxxxxxxxx0100111xxxx1x0011111xx
4080                                                                  fcvtau.  */
4081                                                               return 423;
4082                                                             }
4083                                                         }
4084                                                     }
4085                                                   else
4086                                                     {
4087                                                       if (((word >> 29) & 0x1) == 0)
4088                                                         {
4089                                                           /* 33222222222211111111110000000000
4090                                                              10987654321098765432109876543210
4091                                                              xxxxxxxxxx0100111xxxx1x10111x0xx
4092                                                              urecpe.  */
4093                                                           return 178;
4094                                                         }
4095                                                       else
4096                                                         {
4097                                                           /* 33222222222211111111110000000000
4098                                                              10987654321098765432109876543210
4099                                                              xxxxxxxxxx0100111xxxx1x10111x1xx
4100                                                              ursqrte.  */
4101                                                           return 212;
4102                                                         }
4103                                                     }
4104                                                 }
4105                                             }
4106                                         }
4107                                     }
4108                                   else
4109                                     {
4110                                       if (((word >> 14) & 0x1) == 0)
4111                                         {
4112                                           if (((word >> 15) & 0x1) == 0)
4113                                             {
4114                                               if (((word >> 28) & 0x1) == 0)
4115                                                 {
4116                                                   if (((word >> 16) & 0x1) == 0)
4117                                                     {
4118                                                       if (((word >> 29) & 0x1) == 0)
4119                                                         {
4120                                                           /* 33222222222211111111110000000000
4121                                                              10987654321098765432109876543210
4122                                                              xxxxxxxxxx0101000xxxx1xx011100xx
4123                                                              saddlp.  */
4124                                                           return 146;
4125                                                         }
4126                                                       else
4127                                                         {
4128                                                           /* 33222222222211111111110000000000
4129                                                              10987654321098765432109876543210
4130                                                              xxxxxxxxxx0101000xxxx1xx011101xx
4131                                                              uaddlp.  */
4132                                                           return 181;
4133                                                         }
4134                                                     }
4135                                                   else
4136                                                     {
4137                                                       if (((word >> 29) & 0x1) == 0)
4138                                                         {
4139                                                           if (((word >> 30) & 0x1) == 0)
4140                                                             {
4141                                                               /* 33222222222211111111110000000000
4142                                                                  10987654321098765432109876543210
4143                                                                  xxxxxxxxxx0101001xxxx1xx0111000x
4144                                                                  xtn.  */
4145                                                               return 156;
4146                                                             }
4147                                                           else
4148                                                             {
4149                                                               /* 33222222222211111111110000000000
4150                                                                  10987654321098765432109876543210
4151                                                                  xxxxxxxxxx0101001xxxx1xx0111001x
4152                                                                  xtn2.  */
4153                                                               return 157;
4154                                                             }
4155                                                         }
4156                                                       else
4157                                                         {
4158                                                           if (((word >> 30) & 0x1) == 0)
4159                                                             {
4160                                                               /* 33222222222211111111110000000000
4161                                                                  10987654321098765432109876543210
4162                                                                  xxxxxxxxxx0101001xxxx1xx0111010x
4163                                                                  sqxtun.  */
4164                                                               return 189;
4165                                                             }
4166                                                           else
4167                                                             {
4168                                                               /* 33222222222211111111110000000000
4169                                                                  10987654321098765432109876543210
4170                                                                  xxxxxxxxxx0101001xxxx1xx0111011x
4171                                                                  sqxtun2.  */
4172                                                               return 190;
4173                                                             }
4174                                                         }
4175                                                     }
4176                                                 }
4177                                               else
4178                                                 {
4179                                                   if (((word >> 29) & 0x1) == 0)
4180                                                     {
4181                                                       if (((word >> 30) & 0x1) == 0)
4182                                                         {
4183                                                           /* 33222222222211111111110000000000
4184                                                              10987654321098765432109876543210
4185                                                              xxxxxxxxxx010100xxxxx1xx0111100x
4186                                                              fadd.  */
4187                                                           return 636;
4188                                                         }
4189                                                       else
4190                                                         {
4191                                                           /* 33222222222211111111110000000000
4192                                                              10987654321098765432109876543210
4193                                                              xxxxxxxxxx010100xxxxx1xx0111101x
4194                                                              sha256su0.  */
4195                                                           return 539;
4196                                                         }
4197                                                     }
4198                                                   else
4199                                                     {
4200                                                       /* 33222222222211111111110000000000
4201                                                          10987654321098765432109876543210
4202                                                          xxxxxxxxxx010100xxxxx1xx011111xx
4203                                                          sqxtun.  */
4204                                                       return 418;
4205                                                     }
4206                                                 }
4207                                             }
4208                                           else
4209                                             {
4210                                               if (((word >> 16) & 0x1) == 0)
4211                                                 {
4212                                                   if (((word >> 20) & 0x1) == 0)
4213                                                     {
4214                                                       if (((word >> 28) & 0x1) == 0)
4215                                                         {
4216                                                           /* 33222222222211111111110000000000
4217                                                              10987654321098765432109876543210
4218                                                              xxxxxxxxxx0101010xxx01xx01110xxx
4219                                                              cmlt.  */
4220                                                           return 154;
4221                                                         }
4222                                                       else
4223                                                         {
4224                                                           /* 33222222222211111111110000000000
4225                                                              10987654321098765432109876543210
4226                                                              xxxxxxxxxx0101010xxx01xx01111xxx
4227                                                              cmlt.  */
4228                                                           return 399;
4229                                                         }
4230                                                     }
4231                                                   else
4232                                                     {
4233                                                       if (((word >> 29) & 0x1) == 0)
4234                                                         {
4235                                                           /* 33222222222211111111110000000000
4236                                                              10987654321098765432109876543210
4237                                                              xxxxxxxxxx0101010xxx11xx0111x0xx
4238                                                              smaxv.  */
4239                                                           return 28;
4240                                                         }
4241                                                       else
4242                                                         {
4243                                                           /* 33222222222211111111110000000000
4244                                                              10987654321098765432109876543210
4245                                                              xxxxxxxxxx0101010xxx11xx0111x1xx
4246                                                              umaxv.  */
4247                                                           return 32;
4248                                                         }
4249                                                     }
4250                                                 }
4251                                               else
4252                                                 {
4253                                                   if (((word >> 20) & 0x1) == 0)
4254                                                     {
4255                                                       if (((word >> 23) & 0x1) == 0)
4256                                                         {
4257                                                           if (((word >> 28) & 0x1) == 0)
4258                                                             {
4259                                                               if (((word >> 29) & 0x1) == 0)
4260                                                                 {
4261                                                                   /* 33222222222211111111110000000000
4262                                                                      10987654321098765432109876543210
4263                                                                      xxxxxxxxxx0101011xxx01x0011100xx
4264                                                                      fcvtns.  */
4265                                                                   return 166;
4266                                                                 }
4267                                                               else
4268                                                                 {
4269                                                                   /* 33222222222211111111110000000000
4270                                                                      10987654321098765432109876543210
4271                                                                      xxxxxxxxxx0101011xxx01x0011101xx
4272                                                                      fcvtnu.  */
4273                                                                   return 199;
4274                                                                 }
4275                                                             }
4276                                                           else
4277                                                             {
4278                                                               if (((word >> 29) & 0x1) == 0)
4279                                                                 {
4280                                                                   /* 33222222222211111111110000000000
4281                                                                      10987654321098765432109876543210
4282                                                                      xxxxxxxxxx0101011xxx01x0011110xx
4283                                                                      fcvtns.  */
4284                                                                   return 402;
4285                                                                 }
4286                                                               else
4287                                                                 {
4288                                                                   /* 33222222222211111111110000000000
4289                                                                      10987654321098765432109876543210
4290                                                                      xxxxxxxxxx0101011xxx01x0011111xx
4291                                                                      fcvtnu.  */
4292                                                                   return 421;
4293                                                                 }
4294                                                             }
4295                                                         }
4296                                                       else
4297                                                         {
4298                                                           if (((word >> 28) & 0x1) == 0)
4299                                                             {
4300                                                               if (((word >> 29) & 0x1) == 0)
4301                                                                 {
4302                                                                   /* 33222222222211111111110000000000
4303                                                                      10987654321098765432109876543210
4304                                                                      xxxxxxxxxx0101011xxx01x1011100xx
4305                                                                      fcvtps.  */
4306                                                                   return 176;
4307                                                                 }
4308                                                               else
4309                                                                 {
4310                                                                   /* 33222222222211111111110000000000
4311                                                                      10987654321098765432109876543210
4312                                                                      xxxxxxxxxx0101011xxx01x1011101xx
4313                                                                      fcvtpu.  */
4314                                                                   return 210;
4315                                                                 }
4316                                                             }
4317                                                           else
4318                                                             {
4319                                                               if (((word >> 29) & 0x1) == 0)
4320                                                                 {
4321                                                                   /* 33222222222211111111110000000000
4322                                                                      10987654321098765432109876543210
4323                                                                      xxxxxxxxxx0101011xxx01x1011110xx
4324                                                                      fcvtps.  */
4325                                                                   return 409;
4326                                                                 }
4327                                                               else
4328                                                                 {
4329                                                                   /* 33222222222211111111110000000000
4330                                                                      10987654321098765432109876543210
4331                                                                      xxxxxxxxxx0101011xxx01x1011111xx
4332                                                                      fcvtpu.  */
4333                                                                   return 427;
4334                                                                 }
4335                                                             }
4336                                                         }
4337                                                     }
4338                                                   else
4339                                                     {
4340                                                       if (((word >> 29) & 0x1) == 0)
4341                                                         {
4342                                                           /* 33222222222211111111110000000000
4343                                                              10987654321098765432109876543210
4344                                                              xxxxxxxxxx0101011xxx11xx0111x0xx
4345                                                              sminv.  */
4346                                                           return 29;
4347                                                         }
4348                                                       else
4349                                                         {
4350                                                           /* 33222222222211111111110000000000
4351                                                              10987654321098765432109876543210
4352                                                              xxxxxxxxxx0101011xxx11xx0111x1xx
4353                                                              uminv.  */
4354                                                           return 33;
4355                                                         }
4356                                                     }
4357                                                 }
4358                                             }
4359                                         }
4360                                       else
4361                                         {
4362                                           if (((word >> 15) & 0x1) == 0)
4363                                             {
4364                                               if (((word >> 28) & 0x1) == 0)
4365                                                 {
4366                                                   if (((word >> 16) & 0x1) == 0)
4367                                                     {
4368                                                       if (((word >> 19) & 0x1) == 0)
4369                                                         {
4370                                                           if (((word >> 29) & 0x1) == 0)
4371                                                             {
4372                                                               /* 33222222222211111111110000000000
4373                                                                  10987654321098765432109876543210
4374                                                                  xxxxxxxxxx0101100xx0x1xx011100xx
4375                                                                  sadalp.  */
4376                                                               return 150;
4377                                                             }
4378                                                           else
4379                                                             {
4380                                                               /* 33222222222211111111110000000000
4381                                                                  10987654321098765432109876543210
4382                                                                  xxxxxxxxxx0101100xx0x1xx011101xx
4383                                                                  uadalp.  */
4384                                                               return 184;
4385                                                             }
4386                                                         }
4387                                                       else
4388                                                         {
4389                                                           /* 33222222222211111111110000000000
4390                                                              10987654321098765432109876543210
4391                                                              xxxxxxxxxx0101100xx1x1xx01110xxx
4392                                                              aesmc.  */
4393                                                           return 535;
4394                                                         }
4395                                                     }
4396                                                   else
4397                                                     {
4398                                                       if (((word >> 29) & 0x1) == 0)
4399                                                         {
4400                                                           if (((word >> 30) & 0x1) == 0)
4401                                                             {
4402                                                               /* 33222222222211111111110000000000
4403                                                                  10987654321098765432109876543210
4404                                                                  xxxxxxxxxx0101101xxxx1xx0111000x
4405                                                                  fcvtn.  */
4406                                                               return 160;
4407                                                             }
4408                                                           else
4409                                                             {
4410                                                               /* 33222222222211111111110000000000
4411                                                                  10987654321098765432109876543210
4412                                                                  xxxxxxxxxx0101101xxxx1xx0111001x
4413                                                                  fcvtn2.  */
4414                                                               return 161;
4415                                                             }
4416                                                         }
4417                                                       else
4418                                                         {
4419                                                           if (((word >> 30) & 0x1) == 0)
4420                                                             {
4421                                                               /* 33222222222211111111110000000000
4422                                                                  10987654321098765432109876543210
4423                                                                  xxxxxxxxxx0101101xxxx1xx0111010x
4424                                                                  fcvtxn.  */
4425                                                               return 195;
4426                                                             }
4427                                                           else
4428                                                             {
4429                                                               /* 33222222222211111111110000000000
4430                                                                  10987654321098765432109876543210
4431                                                                  xxxxxxxxxx0101101xxxx1xx0111011x
4432                                                                  fcvtxn2.  */
4433                                                               return 196;
4434                                                             }
4435                                                         }
4436                                                     }
4437                                                 }
4438                                               else
4439                                                 {
4440                                                   if (((word >> 29) & 0x1) == 0)
4441                                                     {
4442                                                       /* 33222222222211111111110000000000
4443                                                          10987654321098765432109876543210
4444                                                          xxxxxxxxxx010110xxxxx1xx011110xx
4445                                                          fmaxnm.  */
4446                                                       return 640;
4447                                                     }
4448                                                   else
4449                                                     {
4450                                                       /* 33222222222211111111110000000000
4451                                                          10987654321098765432109876543210
4452                                                          xxxxxxxxxx010110xxxxx1xx011111xx
4453                                                          fcvtxn.  */
4454                                                       return 420;
4455                                                     }
4456                                                 }
4457                                             }
4458                                           else
4459                                             {
4460                                               if (((word >> 28) & 0x1) == 0)
4461                                                 {
4462                                                   /* 33222222222211111111110000000000
4463                                                      10987654321098765432109876543210
4464                                                      xxxxxxxxxx010111xxxxx1xx01110xxx
4465                                                      fcmlt.  */
4466                                                   return 172;
4467                                                 }
4468                                               else
4469                                                 {
4470                                                   /* 33222222222211111111110000000000
4471                                                      10987654321098765432109876543210
4472                                                      xxxxxxxxxx010111xxxxx1xx01111xxx
4473                                                      fcmlt.  */
4474                                                   return 408;
4475                                                 }
4476                                             }
4477                                         }
4478                                     }
4479                                 }
4480                               else
4481                                 {
4482                                   if (((word >> 13) & 0x1) == 0)
4483                                     {
4484                                       if (((word >> 14) & 0x1) == 0)
4485                                         {
4486                                           if (((word >> 15) & 0x1) == 0)
4487                                             {
4488                                               if (((word >> 28) & 0x1) == 0)
4489                                                 {
4490                                                   /* 33222222222211111111110000000000
4491                                                      10987654321098765432109876543210
4492                                                      xxxxxxxxxx011000xxxxx1xx01110xxx
4493                                                      rev16.  */
4494                                                   return 145;
4495                                                 }
4496                                               else
4497                                                 {
4498                                                   if (((word >> 30) & 0x1) == 0)
4499                                                     {
4500                                                       /* 33222222222211111111110000000000
4501                                                          10987654321098765432109876543210
4502                                                          xxxxxxxxxx011000xxxxx1xx01111x0x
4503                                                          fdiv.  */
4504                                                       return 635;
4505                                                     }
4506                                                   else
4507                                                     {
4508                                                       /* 33222222222211111111110000000000
4509                                                          10987654321098765432109876543210
4510                                                          xxxxxxxxxx011000xxxxx1xx01111x1x
4511                                                          sha1su1.  */
4512                                                       return 538;
4513                                                     }
4514                                                 }
4515                                             }
4516                                           else
4517                                             {
4518                                               if (((word >> 16) & 0x1) == 0)
4519                                                 {
4520                                                   if (((word >> 28) & 0x1) == 0)
4521                                                     {
4522                                                       if (((word >> 29) & 0x1) == 0)
4523                                                         {
4524                                                           /* 33222222222211111111110000000000
4525                                                              10987654321098765432109876543210
4526                                                              xxxxxxxxxx0110010xxxx1xx011100xx
4527                                                              cmeq.  */
4528                                                           return 153;
4529                                                         }
4530                                                       else
4531                                                         {
4532                                                           /* 33222222222211111111110000000000
4533                                                              10987654321098765432109876543210
4534                                                              xxxxxxxxxx0110010xxxx1xx011101xx
4535                                                              cmle.  */
4536                                                           return 187;
4537                                                         }
4538                                                     }
4539                                                   else
4540                                                     {
4541                                                       if (((word >> 29) & 0x1) == 0)
4542                                                         {
4543                                                           /* 33222222222211111111110000000000
4544                                                              10987654321098765432109876543210
4545                                                              xxxxxxxxxx0110010xxxx1xx011110xx
4546                                                              cmeq.  */
4547                                                           return 398;
4548                                                         }
4549                                                       else
4550                                                         {
4551                                                           /* 33222222222211111111110000000000
4552                                                              10987654321098765432109876543210
4553                                                              xxxxxxxxxx0110010xxxx1xx011111xx
4554                                                              cmle.  */
4555                                                           return 416;
4556                                                         }
4557                                                     }
4558                                                 }
4559                                               else
4560                                                 {
4561                                                   if (((word >> 23) & 0x1) == 0)
4562                                                     {
4563                                                       if (((word >> 29) & 0x1) == 0)
4564                                                         {
4565                                                           /* 33222222222211111111110000000000
4566                                                              10987654321098765432109876543210
4567                                                              xxxxxxxxxx0110011xxxx1x00111x0xx
4568                                                              frintm.  */
4569                                                           return 165;
4570                                                         }
4571                                                       else
4572                                                         {
4573                                                           /* 33222222222211111111110000000000
4574                                                              10987654321098765432109876543210
4575                                                              xxxxxxxxxx0110011xxxx1x00111x1xx
4576                                                              frintx.  */
4577                                                           return 198;
4578                                                         }
4579                                                     }
4580                                                   else
4581                                                     {
4582                                                       if (((word >> 29) & 0x1) == 0)
4583                                                         {
4584                                                           /* 33222222222211111111110000000000
4585                                                              10987654321098765432109876543210
4586                                                              xxxxxxxxxx0110011xxxx1x10111x0xx
4587                                                              frintz.  */
4588                                                           return 175;
4589                                                         }
4590                                                       else
4591                                                         {
4592                                                           /* 33222222222211111111110000000000
4593                                                              10987654321098765432109876543210
4594                                                              xxxxxxxxxx0110011xxxx1x10111x1xx
4595                                                              frinti.  */
4596                                                           return 209;
4597                                                         }
4598                                                     }
4599                                                 }
4600                                             }
4601                                         }
4602                                       else
4603                                         {
4604                                           if (((word >> 15) & 0x1) == 0)
4605                                             {
4606                                               if (((word >> 28) & 0x1) == 0)
4607                                                 {
4608                                                   if (((word >> 19) & 0x1) == 0)
4609                                                     {
4610                                                       if (((word >> 29) & 0x1) == 0)
4611                                                         {
4612                                                           /* 33222222222211111111110000000000
4613                                                              10987654321098765432109876543210
4614                                                              xxxxxxxxxx011010xxx0x1xx011100xx
4615                                                              cnt.  */
4616                                                           return 149;
4617                                                         }
4618                                                       else
4619                                                         {
4620                                                           if (((word >> 22) & 0x1) == 0)
4621                                                             {
4622                                                               /* 33222222222211111111110000000000
4623                                                                  10987654321098765432109876543210
4624                                                                  xxxxxxxxxx011010xxx0x10x011101xx
4625                                                                  not.  */
4626                                                               return 203;
4627                                                             }
4628                                                           else
4629                                                             {
4630                                                               /* 33222222222211111111110000000000
4631                                                                  10987654321098765432109876543210
4632                                                                  xxxxxxxxxx011010xxx0x11x011101xx
4633                                                                  rbit.  */
4634                                                               return 205;
4635                                                             }
4636                                                         }
4637                                                     }
4638                                                   else
4639                                                     {
4640                                                       /* 33222222222211111111110000000000
4641                                                          10987654321098765432109876543210
4642                                                          xxxxxxxxxx011010xxx1x1xx01110xxx
4643                                                          aesd.  */
4644                                                       return 534;
4645                                                     }
4646                                                 }
4647                                               else
4648                                                 {
4649                                                   /* 33222222222211111111110000000000
4650                                                      10987654321098765432109876543210
4651                                                      xxxxxxxxxx011010xxxxx1xx01111xxx
4652                                                      fmin.  */
4653                                                   return 639;
4654                                                 }
4655                                             }
4656                                           else
4657                                             {
4658                                               if (((word >> 16) & 0x1) == 0)
4659                                                 {
4660                                                   if (((word >> 20) & 0x1) == 0)
4661                                                     {
4662                                                       if (((word >> 28) & 0x1) == 0)
4663                                                         {
4664                                                           if (((word >> 29) & 0x1) == 0)
4665                                                             {
4666                                                               /* 33222222222211111111110000000000
4667                                                                  10987654321098765432109876543210
4668                                                                  xxxxxxxxxx0110110xxx01xx011100xx
4669                                                                  fcmeq.  */
4670                                                               return 171;
4671                                                             }
4672                                                           else
4673                                                             {
4674                                                               /* 33222222222211111111110000000000
4675                                                                  10987654321098765432109876543210
4676                                                                  xxxxxxxxxx0110110xxx01xx011101xx
4677                                                                  fcmle.  */
4678                                                               return 207;
4679                                                             }
4680                                                         }
4681                                                       else
4682                                                         {
4683                                                           if (((word >> 29) & 0x1) == 0)
4684                                                             {
4685                                                               /* 33222222222211111111110000000000
4686                                                                  10987654321098765432109876543210
4687                                                                  xxxxxxxxxx0110110xxx01xx011110xx
4688                                                                  fcmeq.  */
4689                                                               return 407;
4690                                                             }
4691                                                           else
4692                                                             {
4693                                                               /* 33222222222211111111110000000000
4694                                                                  10987654321098765432109876543210
4695                                                                  xxxxxxxxxx0110110xxx01xx011111xx
4696                                                                  fcmle.  */
4697                                                               return 426;
4698                                                             }
4699                                                         }
4700                                                     }
4701                                                   else
4702                                                     {
4703                                                       /* 33222222222211111111110000000000
4704                                                          10987654321098765432109876543210
4705                                                          xxxxxxxxxx0110110xxx11xx0111xxxx
4706                                                          faddp.  */
4707                                                       return 434;
4708                                                     }
4709                                                 }
4710                                               else
4711                                                 {
4712                                                   if (((word >> 23) & 0x1) == 0)
4713                                                     {
4714                                                       if (((word >> 28) & 0x1) == 0)
4715                                                         {
4716                                                           if (((word >> 29) & 0x1) == 0)
4717                                                             {
4718                                                               /* 33222222222211111111110000000000
4719                                                                  10987654321098765432109876543210
4720                                                                  xxxxxxxxxx0110111xxxx1x0011100xx
4721                                                                  scvtf.  */
4722                                                               return 169;
4723                                                             }
4724                                                           else
4725                                                             {
4726                                                               /* 33222222222211111111110000000000
4727                                                                  10987654321098765432109876543210
4728                                                                  xxxxxxxxxx0110111xxxx1x0011101xx
4729                                                                  ucvtf.  */
4730                                                               return 202;
4731                                                             }
4732                                                         }
4733                                                       else
4734                                                         {
4735                                                           if (((word >> 29) & 0x1) == 0)
4736                                                             {
4737                                                               /* 33222222222211111111110000000000
4738                                                                  10987654321098765432109876543210
4739                                                                  xxxxxxxxxx0110111xxxx1x0011110xx
4740                                                                  scvtf.  */
4741                                                               return 405;
4742                                                             }
4743                                                           else
4744                                                             {
4745                                                               /* 33222222222211111111110000000000
4746                                                                  10987654321098765432109876543210
4747                                                                  xxxxxxxxxx0110111xxxx1x0011111xx
4748                                                                  ucvtf.  */
4749                                                               return 424;
4750                                                             }
4751                                                         }
4752                                                     }
4753                                                   else
4754                                                     {
4755                                                       if (((word >> 28) & 0x1) == 0)
4756                                                         {
4757                                                           if (((word >> 29) & 0x1) == 0)
4758                                                             {
4759                                                               /* 33222222222211111111110000000000
4760                                                                  10987654321098765432109876543210
4761                                                                  xxxxxxxxxx0110111xxxx1x1011100xx
4762                                                                  frecpe.  */
4763                                                               return 179;
4764                                                             }
4765                                                           else
4766                                                             {
4767                                                               /* 33222222222211111111110000000000
4768                                                                  10987654321098765432109876543210
4769                                                                  xxxxxxxxxx0110111xxxx1x1011101xx
4770                                                                  frsqrte.  */
4771                                                               return 213;
4772                                                             }
4773                                                         }
4774                                                       else
4775                                                         {
4776                                                           if (((word >> 29) & 0x1) == 0)
4777                                                             {
4778                                                               /* 33222222222211111111110000000000
4779                                                                  10987654321098765432109876543210
4780                                                                  xxxxxxxxxx0110111xxxx1x1011110xx
4781                                                                  frecpe.  */
4782                                                               return 411;
4783                                                             }
4784                                                           else
4785                                                             {
4786                                                               /* 33222222222211111111110000000000
4787                                                                  10987654321098765432109876543210
4788                                                                  xxxxxxxxxx0110111xxxx1x1011111xx
4789                                                                  frsqrte.  */
4790                                                               return 429;
4791                                                             }
4792                                                         }
4793                                                     }
4794                                                 }
4795                                             }
4796                                         }
4797                                     }
4798                                   else
4799                                     {
4800                                       if (((word >> 14) & 0x1) == 0)
4801                                         {
4802                                           if (((word >> 15) & 0x1) == 0)
4803                                             {
4804                                               if (((word >> 28) & 0x1) == 0)
4805                                                 {
4806                                                   if (((word >> 16) & 0x1) == 0)
4807                                                     {
4808                                                       if (((word >> 20) & 0x1) == 0)
4809                                                         {
4810                                                           if (((word >> 29) & 0x1) == 0)
4811                                                             {
4812                                                               /* 33222222222211111111110000000000
4813                                                                  10987654321098765432109876543210
4814                                                                  xxxxxxxxxx0111000xxx01xx011100xx
4815                                                                  suqadd.  */
4816                                                               return 147;
4817                                                             }
4818                                                           else
4819                                                             {
4820                                                               /* 33222222222211111111110000000000
4821                                                                  10987654321098765432109876543210
4822                                                                  xxxxxxxxxx0111000xxx01xx011101xx
4823                                                                  usqadd.  */
4824                                                               return 182;
4825                                                             }
4826                                                         }
4827                                                       else
4828                                                         {
4829                                                           if (((word >> 29) & 0x1) == 0)
4830                                                             {
4831                                                               /* 33222222222211111111110000000000
4832                                                                  10987654321098765432109876543210
4833                                                                  xxxxxxxxxx0111000xxx11xx011100xx
4834                                                                  saddlv.  */
4835                                                               return 27;
4836                                                             }
4837                                                           else
4838                                                             {
4839                                                               /* 33222222222211111111110000000000
4840                                                                  10987654321098765432109876543210
4841                                                                  xxxxxxxxxx0111000xxx11xx011101xx
4842                                                                  uaddlv.  */
4843                                                               return 31;
4844                                                             }
4845                                                         }
4846                                                     }
4847                                                   else
4848                                                     {
4849                                                       if (((word >> 30) & 0x1) == 0)
4850                                                         {
4851                                                           /* 33222222222211111111110000000000
4852                                                              10987654321098765432109876543210
4853                                                              xxxxxxxxxx0111001xxxx1xx01110x0x
4854                                                              shll.  */
4855                                                           return 191;
4856                                                         }
4857                                                       else
4858                                                         {
4859                                                           /* 33222222222211111111110000000000
4860                                                              10987654321098765432109876543210
4861                                                              xxxxxxxxxx0111001xxxx1xx01110x1x
4862                                                              shll2.  */
4863                                                           return 192;
4864                                                         }
4865                                                     }
4866                                                 }
4867                                               else
4868                                                 {
4869                                                   if (((word >> 29) & 0x1) == 0)
4870                                                     {
4871                                                       if (((word >> 30) & 0x1) == 0)
4872                                                         {
4873                                                           /* 33222222222211111111110000000000
4874                                                              10987654321098765432109876543210
4875                                                              xxxxxxxxxx011100xxxxx1xx0111100x
4876                                                              fsub.  */
4877                                                           return 637;
4878                                                         }
4879                                                       else
4880                                                         {
4881                                                           /* 33222222222211111111110000000000
4882                                                              10987654321098765432109876543210
4883                                                              xxxxxxxxxx011100xxxxx1xx0111101x
4884                                                              suqadd.  */
4885                                                           return 395;
4886                                                         }
4887                                                     }
4888                                                   else
4889                                                     {
4890                                                       /* 33222222222211111111110000000000
4891                                                          10987654321098765432109876543210
4892                                                          xxxxxxxxxx011100xxxxx1xx011111xx
4893                                                          usqadd.  */
4894                                                       return 413;
4895                                                     }
4896                                                 }
4897                                             }
4898                                           else
4899                                             {
4900                                               if (((word >> 16) & 0x1) == 0)
4901                                                 {
4902                                                   if (((word >> 28) & 0x1) == 0)
4903                                                     {
4904                                                       if (((word >> 29) & 0x1) == 0)
4905                                                         {
4906                                                           /* 33222222222211111111110000000000
4907                                                              10987654321098765432109876543210
4908                                                              xxxxxxxxxx0111010xxxx1xx011100xx
4909                                                              abs.  */
4910                                                           return 155;
4911                                                         }
4912                                                       else
4913                                                         {
4914                                                           /* 33222222222211111111110000000000
4915                                                              10987654321098765432109876543210
4916                                                              xxxxxxxxxx0111010xxxx1xx011101xx
4917                                                              neg.  */
4918                                                           return 188;
4919                                                         }
4920                                                     }
4921                                                   else
4922                                                     {
4923                                                       if (((word >> 29) & 0x1) == 0)
4924                                                         {
4925                                                           /* 33222222222211111111110000000000
4926                                                              10987654321098765432109876543210
4927                                                              xxxxxxxxxx0111010xxxx1xx011110xx
4928                                                              abs.  */
4929                                                           return 400;
4930                                                         }
4931                                                       else
4932                                                         {
4933                                                           /* 33222222222211111111110000000000
4934                                                              10987654321098765432109876543210
4935                                                              xxxxxxxxxx0111010xxxx1xx011111xx
4936                                                              neg.  */
4937                                                           return 417;
4938                                                         }
4939                                                     }
4940                                                 }
4941                                               else
4942                                                 {
4943                                                   if (((word >> 20) & 0x1) == 0)
4944                                                     {
4945                                                       if (((word >> 23) & 0x1) == 0)
4946                                                         {
4947                                                           if (((word >> 28) & 0x1) == 0)
4948                                                             {
4949                                                               if (((word >> 29) & 0x1) == 0)
4950                                                                 {
4951                                                                   /* 33222222222211111111110000000000
4952                                                                      10987654321098765432109876543210
4953                                                                      xxxxxxxxxx0111011xxx01x0011100xx
4954                                                                      fcvtms.  */
4955                                                                   return 167;
4956                                                                 }
4957                                                               else
4958                                                                 {
4959                                                                   /* 33222222222211111111110000000000
4960                                                                      10987654321098765432109876543210
4961                                                                      xxxxxxxxxx0111011xxx01x0011101xx
4962                                                                      fcvtmu.  */
4963                                                                   return 200;
4964                                                                 }
4965                                                             }
4966                                                           else
4967                                                             {
4968                                                               if (((word >> 29) & 0x1) == 0)
4969                                                                 {
4970                                                                   /* 33222222222211111111110000000000
4971                                                                      10987654321098765432109876543210
4972                                                                      xxxxxxxxxx0111011xxx01x0011110xx
4973                                                                      fcvtms.  */
4974                                                                   return 403;
4975                                                                 }
4976                                                               else
4977                                                                 {
4978                                                                   /* 33222222222211111111110000000000
4979                                                                      10987654321098765432109876543210
4980                                                                      xxxxxxxxxx0111011xxx01x0011111xx
4981                                                                      fcvtmu.  */
4982                                                                   return 422;
4983                                                                 }
4984                                                             }
4985                                                         }
4986                                                       else
4987                                                         {
4988                                                           if (((word >> 28) & 0x1) == 0)
4989                                                             {
4990                                                               if (((word >> 29) & 0x1) == 0)
4991                                                                 {
4992                                                                   /* 33222222222211111111110000000000
4993                                                                      10987654321098765432109876543210
4994                                                                      xxxxxxxxxx0111011xxx01x1011100xx
4995                                                                      fcvtzs.  */
4996                                                                   return 177;
4997                                                                 }
4998                                                               else
4999                                                                 {
5000                                                                   /* 33222222222211111111110000000000
5001                                                                      10987654321098765432109876543210
5002                                                                      xxxxxxxxxx0111011xxx01x1011101xx
5003                                                                      fcvtzu.  */
5004                                                                   return 211;
5005                                                                 }
5006                                                             }
5007                                                           else
5008                                                             {
5009                                                               if (((word >> 29) & 0x1) == 0)
5010                                                                 {
5011                                                                   /* 33222222222211111111110000000000
5012                                                                      10987654321098765432109876543210
5013                                                                      xxxxxxxxxx0111011xxx01x1011110xx
5014                                                                      fcvtzs.  */
5015                                                                   return 410;
5016                                                                 }
5017                                                               else
5018                                                                 {
5019                                                                   /* 33222222222211111111110000000000
5020                                                                      10987654321098765432109876543210
5021                                                                      xxxxxxxxxx0111011xxx01x1011111xx
5022                                                                      fcvtzu.  */
5023                                                                   return 428;
5024                                                                 }
5025                                                             }
5026                                                         }
5027                                                     }
5028                                                   else
5029                                                     {
5030                                                       if (((word >> 28) & 0x1) == 0)
5031                                                         {
5032                                                           /* 33222222222211111111110000000000
5033                                                              10987654321098765432109876543210
5034                                                              xxxxxxxxxx0111011xxx11xx01110xxx
5035                                                              addv.  */
5036                                                           return 30;
5037                                                         }
5038                                                       else
5039                                                         {
5040                                                           /* 33222222222211111111110000000000
5041                                                              10987654321098765432109876543210
5042                                                              xxxxxxxxxx0111011xxx11xx01111xxx
5043                                                              addp.  */
5044                                                           return 432;
5045                                                         }
5046                                                     }
5047                                                 }
5048                                             }
5049                                         }
5050                                       else
5051                                         {
5052                                           if (((word >> 15) & 0x1) == 0)
5053                                             {
5054                                               if (((word >> 28) & 0x1) == 0)
5055                                                 {
5056                                                   if (((word >> 16) & 0x1) == 0)
5057                                                     {
5058                                                       if (((word >> 19) & 0x1) == 0)
5059                                                         {
5060                                                           if (((word >> 29) & 0x1) == 0)
5061                                                             {
5062                                                               /* 33222222222211111111110000000000
5063                                                                  10987654321098765432109876543210
5064                                                                  xxxxxxxxxx0111100xx0x1xx011100xx
5065                                                                  sqabs.  */
5066                                                               return 151;
5067                                                             }
5068                                                           else
5069                                                             {
5070                                                               /* 33222222222211111111110000000000
5071                                                                  10987654321098765432109876543210
5072                                                                  xxxxxxxxxx0111100xx0x1xx011101xx
5073                                                                  sqneg.  */
5074                                                               return 185;
5075                                                             }
5076                                                         }
5077                                                       else
5078                                                         {
5079                                                           /* 33222222222211111111110000000000
5080                                                              10987654321098765432109876543210
5081                                                              xxxxxxxxxx0111100xx1x1xx01110xxx
5082                                                              aesimc.  */
5083                                                           return 536;
5084                                                         }
5085                                                     }
5086                                                   else
5087                                                     {
5088                                                       if (((word >> 30) & 0x1) == 0)
5089                                                         {
5090                                                           /* 33222222222211111111110000000000
5091                                                              10987654321098765432109876543210
5092                                                              xxxxxxxxxx0111101xxxx1xx01110x0x
5093                                                              fcvtl.  */
5094                                                           return 162;
5095                                                         }
5096                                                       else
5097                                                         {
5098                                                           /* 33222222222211111111110000000000
5099                                                              10987654321098765432109876543210
5100                                                              xxxxxxxxxx0111101xxxx1xx01110x1x
5101                                                              fcvtl2.  */
5102                                                           return 163;
5103                                                         }
5104                                                     }
5105                                                 }
5106                                               else
5107                                                 {
5108                                                   if (((word >> 29) & 0x1) == 0)
5109                                                     {
5110                                                       if (((word >> 30) & 0x1) == 0)
5111                                                         {
5112                                                           /* 33222222222211111111110000000000
5113                                                              10987654321098765432109876543210
5114                                                              xxxxxxxxxx011110xxxxx1xx0111100x
5115                                                              fminnm.  */
5116                                                           return 641;
5117                                                         }
5118                                                       else
5119                                                         {
5120                                                           /* 33222222222211111111110000000000
5121                                                              10987654321098765432109876543210
5122                                                              xxxxxxxxxx011110xxxxx1xx0111101x
5123                                                              sqabs.  */
5124                                                           return 396;
5125                                                         }
5126                                                     }
5127                                                   else
5128                                                     {
5129                                                       /* 33222222222211111111110000000000
5130                                                          10987654321098765432109876543210
5131                                                          xxxxxxxxxx011110xxxxx1xx011111xx
5132                                                          sqneg.  */
5133                                                       return 414;
5134                                                     }
5135                                                 }
5136                                             }
5137                                           else
5138                                             {
5139                                               if (((word >> 16) & 0x1) == 0)
5140                                                 {
5141                                                   if (((word >> 20) & 0x1) == 0)
5142                                                     {
5143                                                       if (((word >> 29) & 0x1) == 0)
5144                                                         {
5145                                                           /* 33222222222211111111110000000000
5146                                                              10987654321098765432109876543210
5147                                                              xxxxxxxxxx0111110xxx01xx0111x0xx
5148                                                              fabs.  */
5149                                                           return 173;
5150                                                         }
5151                                                       else
5152                                                         {
5153                                                           /* 33222222222211111111110000000000
5154                                                              10987654321098765432109876543210
5155                                                              xxxxxxxxxx0111110xxx01xx0111x1xx
5156                                                              fneg.  */
5157                                                           return 208;
5158                                                         }
5159                                                     }
5160                                                   else
5161                                                     {
5162                                                       if (((word >> 23) & 0x1) == 0)
5163                                                         {
5164                                                           if (((word >> 28) & 0x1) == 0)
5165                                                             {
5166                                                               /* 33222222222211111111110000000000
5167                                                                  10987654321098765432109876543210
5168                                                                  xxxxxxxxxx0111110xxx11x001110xxx
5169                                                                  fmaxv.  */
5170                                                               return 35;
5171                                                             }
5172                                                           else
5173                                                             {
5174                                                               /* 33222222222211111111110000000000
5175                                                                  10987654321098765432109876543210
5176                                                                  xxxxxxxxxx0111110xxx11x001111xxx
5177                                                                  fmaxp.  */
5178                                                               return 435;
5179                                                             }
5180                                                         }
5181                                                       else
5182                                                         {
5183                                                           if (((word >> 28) & 0x1) == 0)
5184                                                             {
5185                                                               /* 33222222222211111111110000000000
5186                                                                  10987654321098765432109876543210
5187                                                                  xxxxxxxxxx0111110xxx11x101110xxx
5188                                                                  fminv.  */
5189                                                               return 37;
5190                                                             }
5191                                                           else
5192                                                             {
5193                                                               /* 33222222222211111111110000000000
5194                                                                  10987654321098765432109876543210
5195                                                                  xxxxxxxxxx0111110xxx11x101111xxx
5196                                                                  fminp.  */
5197                                                               return 437;
5198                                                             }
5199                                                         }
5200                                                     }
5201                                                 }
5202                                               else
5203                                                 {
5204                                                   if (((word >> 28) & 0x1) == 0)
5205                                                     {
5206                                                       /* 33222222222211111111110000000000
5207                                                          10987654321098765432109876543210
5208                                                          xxxxxxxxxx0111111xxxx1xx01110xxx
5209                                                          fsqrt.  */
5210                                                       return 214;
5211                                                     }
5212                                                   else
5213                                                     {
5214                                                       /* 33222222222211111111110000000000
5215                                                          10987654321098765432109876543210
5216                                                          xxxxxxxxxx0111111xxxx1xx01111xxx
5217                                                          frecpx.  */
5218                                                       return 412;
5219                                                     }
5220                                                 }
5221                                             }
5222                                         }
5223                                     }
5224                                 }
5225                             }
5226                         }
5227                       else
5228                         {
5229                           if (((word >> 11) & 0x1) == 0)
5230                             {
5231                               if (((word >> 28) & 0x1) == 0)
5232                                 {
5233                                   if (((word >> 12) & 0x1) == 0)
5234                                     {
5235                                       if (((word >> 13) & 0x1) == 0)
5236                                         {
5237                                           if (((word >> 14) & 0x1) == 0)
5238                                             {
5239                                               if (((word >> 15) & 0x1) == 0)
5240                                                 {
5241                                                   if (((word >> 29) & 0x1) == 0)
5242                                                     {
5243                                                       /* 33222222222211111111110000000000
5244                                                          10987654321098765432109876543210
5245                                                          xxxxxxxxxx100000xxxxx1xx011100xx
5246                                                          shadd.  */
5247                                                       return 221;
5248                                                     }
5249                                                   else
5250                                                     {
5251                                                       /* 33222222222211111111110000000000
5252                                                          10987654321098765432109876543210
5253                                                          xxxxxxxxxx100000xxxxx1xx011101xx
5254                                                          uhadd.  */
5255                                                       return 261;
5256                                                     }
5257                                                 }
5258                                               else
5259                                                 {
5260                                                   if (((word >> 29) & 0x1) == 0)
5261                                                     {
5262                                                       /* 33222222222211111111110000000000
5263                                                          10987654321098765432109876543210
5264                                                          xxxxxxxxxx100001xxxxx1xx011100xx
5265                                                          add.  */
5266                                                       return 236;
5267                                                     }
5268                                                   else
5269                                                     {
5270                                                       /* 33222222222211111111110000000000
5271                                                          10987654321098765432109876543210
5272                                                          xxxxxxxxxx100001xxxxx1xx011101xx
5273                                                          sub.  */
5274                                                       return 276;
5275                                                     }
5276                                                 }
5277                                             }
5278                                           else
5279                                             {
5280                                               if (((word >> 15) & 0x1) == 0)
5281                                                 {
5282                                                   if (((word >> 29) & 0x1) == 0)
5283                                                     {
5284                                                       /* 33222222222211111111110000000000
5285                                                          10987654321098765432109876543210
5286                                                          xxxxxxxxxx100010xxxxx1xx011100xx
5287                                                          sshl.  */
5288                                                       return 228;
5289                                                     }
5290                                                   else
5291                                                     {
5292                                                       /* 33222222222211111111110000000000
5293                                                          10987654321098765432109876543210
5294                                                          xxxxxxxxxx100010xxxxx1xx011101xx
5295                                                          ushl.  */
5296                                                       return 268;
5297                                                     }
5298                                                 }
5299                                               else
5300                                                 {
5301                                                   if (((word >> 23) & 0x1) == 0)
5302                                                     {
5303                                                       if (((word >> 29) & 0x1) == 0)
5304                                                         {
5305                                                           /* 33222222222211111111110000000000
5306                                                              10987654321098765432109876543210
5307                                                              xxxxxxxxxx100011xxxxx1x0011100xx
5308                                                              fmaxnm.  */
5309                                                           return 244;
5310                                                         }
5311                                                       else
5312                                                         {
5313                                                           /* 33222222222211111111110000000000
5314                                                              10987654321098765432109876543210
5315                                                              xxxxxxxxxx100011xxxxx1x0011101xx
5316                                                              fmaxnmp.  */
5317                                                           return 283;
5318                                                         }
5319                                                     }
5320                                                   else
5321                                                     {
5322                                                       if (((word >> 29) & 0x1) == 0)
5323                                                         {
5324                                                           /* 33222222222211111111110000000000
5325                                                              10987654321098765432109876543210
5326                                                              xxxxxxxxxx100011xxxxx1x1011100xx
5327                                                              fminnm.  */
5328                                                           return 253;
5329                                                         }
5330                                                       else
5331                                                         {
5332                                                           /* 33222222222211111111110000000000
5333                                                              10987654321098765432109876543210
5334                                                              xxxxxxxxxx100011xxxxx1x1011101xx
5335                                                              fminnmp.  */
5336                                                           return 292;
5337                                                         }
5338                                                     }
5339                                                 }
5340                                             }
5341                                         }
5342                                       else
5343                                         {
5344                                           if (((word >> 14) & 0x1) == 0)
5345                                             {
5346                                               if (((word >> 15) & 0x1) == 0)
5347                                                 {
5348                                                   if (((word >> 29) & 0x1) == 0)
5349                                                     {
5350                                                       /* 33222222222211111111110000000000
5351                                                          10987654321098765432109876543210
5352                                                          xxxxxxxxxx100100xxxxx1xx011100xx
5353                                                          shsub.  */
5354                                                       return 224;
5355                                                     }
5356                                                   else
5357                                                     {
5358                                                       /* 33222222222211111111110000000000
5359                                                          10987654321098765432109876543210
5360                                                          xxxxxxxxxx100100xxxxx1xx011101xx
5361                                                          uhsub.  */
5362                                                       return 264;
5363                                                     }
5364                                                 }
5365                                               else
5366                                                 {
5367                                                   if (((word >> 29) & 0x1) == 0)
5368                                                     {
5369                                                       /* 33222222222211111111110000000000
5370                                                          10987654321098765432109876543210
5371                                                          xxxxxxxxxx100101xxxxx1xx011100xx
5372                                                          smaxp.  */
5373                                                       return 240;
5374                                                     }
5375                                                   else
5376                                                     {
5377                                                       /* 33222222222211111111110000000000
5378                                                          10987654321098765432109876543210
5379                                                          xxxxxxxxxx100101xxxxx1xx011101xx
5380                                                          umaxp.  */
5381                                                       return 280;
5382                                                     }
5383                                                 }
5384                                             }
5385                                           else
5386                                             {
5387                                               if (((word >> 15) & 0x1) == 0)
5388                                                 {
5389                                                   if (((word >> 29) & 0x1) == 0)
5390                                                     {
5391                                                       /* 33222222222211111111110000000000
5392                                                          10987654321098765432109876543210
5393                                                          xxxxxxxxxx100110xxxxx1xx011100xx
5394                                                          smax.  */
5395                                                       return 232;
5396                                                     }
5397                                                   else
5398                                                     {
5399                                                       /* 33222222222211111111110000000000
5400                                                          10987654321098765432109876543210
5401                                                          xxxxxxxxxx100110xxxxx1xx011101xx
5402                                                          umax.  */
5403                                                       return 272;
5404                                                     }
5405                                                 }
5406                                               else
5407                                                 {
5408                                                   if (((word >> 23) & 0x1) == 0)
5409                                                     {
5410                                                       if (((word >> 29) & 0x1) == 0)
5411                                                         {
5412                                                           /* 33222222222211111111110000000000
5413                                                              10987654321098765432109876543210
5414                                                              xxxxxxxxxx100111xxxxx1x0011100xx
5415                                                              fcmeq.  */
5416                                                           return 248;
5417                                                         }
5418                                                       else
5419                                                         {
5420                                                           /* 33222222222211111111110000000000
5421                                                              10987654321098765432109876543210
5422                                                              xxxxxxxxxx100111xxxxx1x0011101xx
5423                                                              fcmge.  */
5424                                                           return 286;
5425                                                         }
5426                                                     }
5427                                                   else
5428                                                     {
5429                                                       /* 33222222222211111111110000000000
5430                                                          10987654321098765432109876543210
5431                                                          xxxxxxxxxx100111xxxxx1x101110xxx
5432                                                          fcmgt.  */
5433                                                       return 294;
5434                                                     }
5435                                                 }
5436                                             }
5437                                         }
5438                                     }
5439                                   else
5440                                     {
5441                                       if (((word >> 13) & 0x1) == 0)
5442                                         {
5443                                           if (((word >> 14) & 0x1) == 0)
5444                                             {
5445                                               if (((word >> 15) & 0x1) == 0)
5446                                                 {
5447                                                   if (((word >> 29) & 0x1) == 0)
5448                                                     {
5449                                                       /* 33222222222211111111110000000000
5450                                                          10987654321098765432109876543210
5451                                                          xxxxxxxxxx101000xxxxx1xx011100xx
5452                                                          srhadd.  */
5453                                                       return 223;
5454                                                     }
5455                                                   else
5456                                                     {
5457                                                       /* 33222222222211111111110000000000
5458                                                          10987654321098765432109876543210
5459                                                          xxxxxxxxxx101000xxxxx1xx011101xx
5460                                                          urhadd.  */
5461                                                       return 263;
5462                                                     }
5463                                                 }
5464                                               else
5465                                                 {
5466                                                   if (((word >> 29) & 0x1) == 0)
5467                                                     {
5468                                                       /* 33222222222211111111110000000000
5469                                                          10987654321098765432109876543210
5470                                                          xxxxxxxxxx101001xxxxx1xx011100xx
5471                                                          mla.  */
5472                                                       return 238;
5473                                                     }
5474                                                   else
5475                                                     {
5476                                                       /* 33222222222211111111110000000000
5477                                                          10987654321098765432109876543210
5478                                                          xxxxxxxxxx101001xxxxx1xx011101xx
5479                                                          mls.  */
5480                                                       return 278;
5481                                                     }
5482                                                 }
5483                                             }
5484                                           else
5485                                             {
5486                                               if (((word >> 15) & 0x1) == 0)
5487                                                 {
5488                                                   if (((word >> 29) & 0x1) == 0)
5489                                                     {
5490                                                       /* 33222222222211111111110000000000
5491                                                          10987654321098765432109876543210
5492                                                          xxxxxxxxxx101010xxxxx1xx011100xx
5493                                                          srshl.  */
5494                                                       return 230;
5495                                                     }
5496                                                   else
5497                                                     {
5498                                                       /* 33222222222211111111110000000000
5499                                                          10987654321098765432109876543210
5500                                                          xxxxxxxxxx101010xxxxx1xx011101xx
5501                                                          urshl.  */
5502                                                       return 270;
5503                                                     }
5504                                                 }
5505                                               else
5506                                                 {
5507                                                   if (((word >> 23) & 0x1) == 0)
5508                                                     {
5509                                                       if (((word >> 29) & 0x1) == 0)
5510                                                         {
5511                                                           /* 33222222222211111111110000000000
5512                                                              10987654321098765432109876543210
5513                                                              xxxxxxxxxx101011xxxxx1x0011100xx
5514                                                              fadd.  */
5515                                                           return 246;
5516                                                         }
5517                                                       else
5518                                                         {
5519                                                           /* 33222222222211111111110000000000
5520                                                              10987654321098765432109876543210
5521                                                              xxxxxxxxxx101011xxxxx1x0011101xx
5522                                                              faddp.  */
5523                                                           return 284;
5524                                                         }
5525                                                     }
5526                                                   else
5527                                                     {
5528                                                       if (((word >> 29) & 0x1) == 0)
5529                                                         {
5530                                                           /* 33222222222211111111110000000000
5531                                                              10987654321098765432109876543210
5532                                                              xxxxxxxxxx101011xxxxx1x1011100xx
5533                                                              fsub.  */
5534                                                           return 255;
5535                                                         }
5536                                                       else
5537                                                         {
5538                                                           /* 33222222222211111111110000000000
5539                                                              10987654321098765432109876543210
5540                                                              xxxxxxxxxx101011xxxxx1x1011101xx
5541                                                              fabd.  */
5542                                                           return 293;
5543                                                         }
5544                                                     }
5545                                                 }
5546                                             }
5547                                         }
5548                                       else
5549                                         {
5550                                           if (((word >> 14) & 0x1) == 0)
5551                                             {
5552                                               if (((word >> 15) & 0x1) == 0)
5553                                                 {
5554                                                   if (((word >> 29) & 0x1) == 0)
5555                                                     {
5556                                                       /* 33222222222211111111110000000000
5557                                                          10987654321098765432109876543210
5558                                                          xxxxxxxxxx101100xxxxx1xx011100xx
5559                                                          cmgt.  */
5560                                                       return 226;
5561                                                     }
5562                                                   else
5563                                                     {
5564                                                       /* 33222222222211111111110000000000
5565                                                          10987654321098765432109876543210
5566                                                          xxxxxxxxxx101100xxxxx1xx011101xx
5567                                                          cmhi.  */
5568                                                       return 266;
5569                                                     }
5570                                                 }
5571                                               else
5572                                                 {
5573                                                   if (((word >> 29) & 0x1) == 0)
5574                                                     {
5575                                                       /* 33222222222211111111110000000000
5576                                                          10987654321098765432109876543210
5577                                                          xxxxxxxxxx101101xxxxx1xx011100xx
5578                                                          sqdmulh.  */
5579                                                       return 242;
5580                                                     }
5581                                                   else
5582                                                     {
5583                                                       /* 33222222222211111111110000000000
5584                                                          10987654321098765432109876543210
5585                                                          xxxxxxxxxx101101xxxxx1xx011101xx
5586                                                          sqrdmulh.  */
5587                                                       return 282;
5588                                                     }
5589                                                 }
5590                                             }
5591                                           else
5592                                             {
5593                                               if (((word >> 15) & 0x1) == 0)
5594                                                 {
5595                                                   if (((word >> 29) & 0x1) == 0)
5596                                                     {
5597                                                       /* 33222222222211111111110000000000
5598                                                          10987654321098765432109876543210
5599                                                          xxxxxxxxxx101110xxxxx1xx011100xx
5600                                                          sabd.  */
5601                                                       return 234;
5602                                                     }
5603                                                   else
5604                                                     {
5605                                                       /* 33222222222211111111110000000000
5606                                                          10987654321098765432109876543210
5607                                                          xxxxxxxxxx101110xxxxx1xx011101xx
5608                                                          uabd.  */
5609                                                       return 274;
5610                                                     }
5611                                                 }
5612                                               else
5613                                                 {
5614                                                   if (((word >> 23) & 0x1) == 0)
5615                                                     {
5616                                                       if (((word >> 29) & 0x1) == 0)
5617                                                         {
5618                                                           /* 33222222222211111111110000000000
5619                                                              10987654321098765432109876543210
5620                                                              xxxxxxxxxx101111xxxxx1x0011100xx
5621                                                              fmax.  */
5622                                                           return 249;
5623                                                         }
5624                                                       else
5625                                                         {
5626                                                           /* 33222222222211111111110000000000
5627                                                              10987654321098765432109876543210
5628                                                              xxxxxxxxxx101111xxxxx1x0011101xx
5629                                                              fmaxp.  */
5630                                                           return 288;
5631                                                         }
5632                                                     }
5633                                                   else
5634                                                     {
5635                                                       if (((word >> 29) & 0x1) == 0)
5636                                                         {
5637                                                           /* 33222222222211111111110000000000
5638                                                              10987654321098765432109876543210
5639                                                              xxxxxxxxxx101111xxxxx1x1011100xx
5640                                                              fmin.  */
5641                                                           return 256;
5642                                                         }
5643                                                       else
5644                                                         {
5645                                                           /* 33222222222211111111110000000000
5646                                                              10987654321098765432109876543210
5647                                                              xxxxxxxxxx101111xxxxx1x1011101xx
5648                                                              fminp.  */
5649                                                           return 296;
5650                                                         }
5651                                                     }
5652                                                 }
5653                                             }
5654                                         }
5655                                     }
5656                                 }
5657                               else
5658                                 {
5659                                   if (((word >> 29) & 0x1) == 0)
5660                                     {
5661                                       if (((word >> 30) & 0x1) == 0)
5662                                         {
5663                                           if (((word >> 4) & 0x1) == 0)
5664                                             {
5665                                               /* 33222222222211111111110000000000
5666                                                  10987654321098765432109876543210
5667                                                  xxxx0xxxxx10xxxxxxxxx1xx0111100x
5668                                                  fccmp.  */
5669                                               return 616;
5670                                             }
5671                                           else
5672                                             {
5673                                               /* 33222222222211111111110000000000
5674                                                  10987654321098765432109876543210
5675                                                  xxxx1xxxxx10xxxxxxxxx1xx0111100x
5676                                                  fccmpe.  */
5677                                               return 617;
5678                                             }
5679                                         }
5680                                       else
5681                                         {
5682                                           if (((word >> 12) & 0x1) == 0)
5683                                             {
5684                                               if (((word >> 13) & 0x1) == 0)
5685                                                 {
5686                                                   if (((word >> 14) & 0x1) == 0)
5687                                                     {
5688                                                       /* 33222222222211111111110000000000
5689                                                          10987654321098765432109876543210
5690                                                          xxxxxxxxxx10000xxxxxx1xx0111101x
5691                                                          add.  */
5692                                                       return 451;
5693                                                     }
5694                                                   else
5695                                                     {
5696                                                       /* 33222222222211111111110000000000
5697                                                          10987654321098765432109876543210
5698                                                          xxxxxxxxxx10001xxxxxx1xx0111101x
5699                                                          sshl.  */
5700                                                       return 449;
5701                                                     }
5702                                                 }
5703                                               else
5704                                                 {
5705                                                   /* 33222222222211111111110000000000
5706                                                      10987654321098765432109876543210
5707                                                      xxxxxxxxxx1001xxxxxxx1xx0111101x
5708                                                      fcmeq.  */
5709                                                   return 444;
5710                                                 }
5711                                             }
5712                                           else
5713                                             {
5714                                               if (((word >> 13) & 0x1) == 0)
5715                                                 {
5716                                                   /* 33222222222211111111110000000000
5717                                                      10987654321098765432109876543210
5718                                                      xxxxxxxxxx1010xxxxxxx1xx0111101x
5719                                                      srshl.  */
5720                                                   return 450;
5721                                                 }
5722                                               else
5723                                                 {
5724                                                   if (((word >> 15) & 0x1) == 0)
5725                                                     {
5726                                                       /* 33222222222211111111110000000000
5727                                                          10987654321098765432109876543210
5728                                                          xxxxxxxxxx1011x0xxxxx1xx0111101x
5729                                                          cmgt.  */
5730                                                       return 447;
5731                                                     }
5732                                                   else
5733                                                     {
5734                                                       /* 33222222222211111111110000000000
5735                                                          10987654321098765432109876543210
5736                                                          xxxxxxxxxx1011x1xxxxx1xx0111101x
5737                                                          sqdmulh.  */
5738                                                       return 442;
5739                                                     }
5740                                                 }
5741                                             }
5742                                         }
5743                                     }
5744                                   else
5745                                     {
5746                                       if (((word >> 12) & 0x1) == 0)
5747                                         {
5748                                           if (((word >> 13) & 0x1) == 0)
5749                                             {
5750                                               if (((word >> 14) & 0x1) == 0)
5751                                                 {
5752                                                   /* 33222222222211111111110000000000
5753                                                      10987654321098765432109876543210
5754                                                      xxxxxxxxxx10000xxxxxx1xx011111xx
5755                                                      sub.  */
5756                                                   return 467;
5757                                                 }
5758                                               else
5759                                                 {
5760                                                   /* 33222222222211111111110000000000
5761                                                      10987654321098765432109876543210
5762                                                      xxxxxxxxxx10001xxxxxx1xx011111xx
5763                                                      ushl.  */
5764                                                   return 465;
5765                                                 }
5766                                             }
5767                                           else
5768                                             {
5769                                               if (((word >> 23) & 0x1) == 0)
5770                                                 {
5771                                                   /* 33222222222211111111110000000000
5772                                                      10987654321098765432109876543210
5773                                                      xxxxxxxxxx1001xxxxxxx1x0011111xx
5774                                                      fcmge.  */
5775                                                   return 458;
5776                                                 }
5777                                               else
5778                                                 {
5779                                                   /* 33222222222211111111110000000000
5780                                                      10987654321098765432109876543210
5781                                                      xxxxxxxxxx1001xxxxxxx1x1011111xx
5782                                                      fcmgt.  */
5783                                                   return 461;
5784                                                 }
5785                                             }
5786                                         }
5787                                       else
5788                                         {
5789                                           if (((word >> 13) & 0x1) == 0)
5790                                             {
5791                                               if (((word >> 15) & 0x1) == 0)
5792                                                 {
5793                                                   /* 33222222222211111111110000000000
5794                                                      10987654321098765432109876543210
5795                                                      xxxxxxxxxx1010x0xxxxx1xx011111xx
5796                                                      urshl.  */
5797                                                   return 466;
5798                                                 }
5799                                               else
5800                                                 {
5801                                                   /* 33222222222211111111110000000000
5802                                                      10987654321098765432109876543210
5803                                                      xxxxxxxxxx1010x1xxxxx1xx011111xx
5804                                                      fabd.  */
5805                                                   return 460;
5806                                                 }
5807                                             }
5808                                           else
5809                                             {
5810                                               if (((word >> 15) & 0x1) == 0)
5811                                                 {
5812                                                   /* 33222222222211111111110000000000
5813                                                      10987654321098765432109876543210
5814                                                      xxxxxxxxxx1011x0xxxxx1xx011111xx
5815                                                      cmhi.  */
5816                                                   return 463;
5817                                                 }
5818                                               else
5819                                                 {
5820                                                   /* 33222222222211111111110000000000
5821                                                      10987654321098765432109876543210
5822                                                      xxxxxxxxxx1011x1xxxxx1xx011111xx
5823                                                      sqrdmulh.  */
5824                                                   return 457;
5825                                                 }
5826                                             }
5827                                         }
5828                                     }
5829                                 }
5830                             }
5831                           else
5832                             {
5833                               if (((word >> 28) & 0x1) == 0)
5834                                 {
5835                                   if (((word >> 12) & 0x1) == 0)
5836                                     {
5837                                       if (((word >> 13) & 0x1) == 0)
5838                                         {
5839                                           if (((word >> 14) & 0x1) == 0)
5840                                             {
5841                                               if (((word >> 15) & 0x1) == 0)
5842                                                 {
5843                                                   if (((word >> 29) & 0x1) == 0)
5844                                                     {
5845                                                       /* 33222222222211111111110000000000
5846                                                          10987654321098765432109876543210
5847                                                          xxxxxxxxxx110000xxxxx1xx011100xx
5848                                                          sqadd.  */
5849                                                       return 222;
5850                                                     }
5851                                                   else
5852                                                     {
5853                                                       /* 33222222222211111111110000000000
5854                                                          10987654321098765432109876543210
5855                                                          xxxxxxxxxx110000xxxxx1xx011101xx
5856                                                          uqadd.  */
5857                                                       return 262;
5858                                                     }
5859                                                 }
5860                                               else
5861                                                 {
5862                                                   if (((word >> 29) & 0x1) == 0)
5863                                                     {
5864                                                       /* 33222222222211111111110000000000
5865                                                          10987654321098765432109876543210
5866                                                          xxxxxxxxxx110001xxxxx1xx011100xx
5867                                                          cmtst.  */
5868                                                       return 237;
5869                                                     }
5870                                                   else
5871                                                     {
5872                                                       /* 33222222222211111111110000000000
5873                                                          10987654321098765432109876543210
5874                                                          xxxxxxxxxx110001xxxxx1xx011101xx
5875                                                          cmeq.  */
5876                                                       return 277;
5877                                                     }
5878                                                 }
5879                                             }
5880                                           else
5881                                             {
5882                                               if (((word >> 15) & 0x1) == 0)
5883                                                 {
5884                                                   if (((word >> 29) & 0x1) == 0)
5885                                                     {
5886                                                       /* 33222222222211111111110000000000
5887                                                          10987654321098765432109876543210
5888                                                          xxxxxxxxxx110010xxxxx1xx011100xx
5889                                                          sqshl.  */
5890                                                       return 229;
5891                                                     }
5892                                                   else
5893                                                     {
5894                                                       /* 33222222222211111111110000000000
5895                                                          10987654321098765432109876543210
5896                                                          xxxxxxxxxx110010xxxxx1xx011101xx
5897                                                          uqshl.  */
5898                                                       return 269;
5899                                                     }
5900                                                 }
5901                                               else
5902                                                 {
5903                                                   if (((word >> 23) & 0x1) == 0)
5904                                                     {
5905                                                       /* 33222222222211111111110000000000
5906                                                          10987654321098765432109876543210
5907                                                          xxxxxxxxxx110011xxxxx1x001110xxx
5908                                                          fmla.  */
5909                                                       return 245;
5910                                                     }
5911                                                   else
5912                                                     {
5913                                                       /* 33222222222211111111110000000000
5914                                                          10987654321098765432109876543210
5915                                                          xxxxxxxxxx110011xxxxx1x101110xxx
5916                                                          fmls.  */
5917                                                       return 254;
5918                                                     }
5919                                                 }
5920                                             }
5921                                         }
5922                                       else
5923                                         {
5924                                           if (((word >> 14) & 0x1) == 0)
5925                                             {
5926                                               if (((word >> 15) & 0x1) == 0)
5927                                                 {
5928                                                   if (((word >> 29) & 0x1) == 0)
5929                                                     {
5930                                                       /* 33222222222211111111110000000000
5931                                                          10987654321098765432109876543210
5932                                                          xxxxxxxxxx110100xxxxx1xx011100xx
5933                                                          sqsub.  */
5934                                                       return 225;
5935                                                     }
5936                                                   else
5937                                                     {
5938                                                       /* 33222222222211111111110000000000
5939                                                          10987654321098765432109876543210
5940                                                          xxxxxxxxxx110100xxxxx1xx011101xx
5941                                                          uqsub.  */
5942                                                       return 265;
5943                                                     }
5944                                                 }
5945                                               else
5946                                                 {
5947                                                   if (((word >> 29) & 0x1) == 0)
5948                                                     {
5949                                                       /* 33222222222211111111110000000000
5950                                                          10987654321098765432109876543210
5951                                                          xxxxxxxxxx110101xxxxx1xx011100xx
5952                                                          sminp.  */
5953                                                       return 241;
5954                                                     }
5955                                                   else
5956                                                     {
5957                                                       /* 33222222222211111111110000000000
5958                                                          10987654321098765432109876543210
5959                                                          xxxxxxxxxx110101xxxxx1xx011101xx
5960                                                          uminp.  */
5961                                                       return 281;
5962                                                     }
5963                                                 }
5964                                             }
5965                                           else
5966                                             {
5967                                               if (((word >> 15) & 0x1) == 0)
5968                                                 {
5969                                                   if (((word >> 29) & 0x1) == 0)
5970                                                     {
5971                                                       /* 33222222222211111111110000000000
5972                                                          10987654321098765432109876543210
5973                                                          xxxxxxxxxx110110xxxxx1xx011100xx
5974                                                          smin.  */
5975                                                       return 233;
5976                                                     }
5977                                                   else
5978                                                     {
5979                                                       /* 33222222222211111111110000000000
5980                                                          10987654321098765432109876543210
5981                                                          xxxxxxxxxx110110xxxxx1xx011101xx
5982                                                          umin.  */
5983                                                       return 273;
5984                                                     }
5985                                                 }
5986                                               else
5987                                                 {
5988                                                   if (((word >> 23) & 0x1) == 0)
5989                                                     {
5990                                                       /* 33222222222211111111110000000000
5991                                                          10987654321098765432109876543210
5992                                                          xxxxxxxxxx110111xxxxx1x001110xxx
5993                                                          facge.  */
5994                                                       return 287;
5995                                                     }
5996                                                   else
5997                                                     {
5998                                                       /* 33222222222211111111110000000000
5999                                                          10987654321098765432109876543210
6000                                                          xxxxxxxxxx110111xxxxx1x101110xxx
6001                                                          facgt.  */
6002                                                       return 295;
6003                                                     }
6004                                                 }
6005                                             }
6006                                         }
6007                                     }
6008                                   else
6009                                     {
6010                                       if (((word >> 13) & 0x1) == 0)
6011                                         {
6012                                           if (((word >> 14) & 0x1) == 0)
6013                                             {
6014                                               if (((word >> 15) & 0x1) == 0)
6015                                                 {
6016                                                   if (((word >> 22) & 0x1) == 0)
6017                                                     {
6018                                                       if (((word >> 23) & 0x1) == 0)
6019                                                         {
6020                                                           if (((word >> 29) & 0x1) == 0)
6021                                                             {
6022                                                               /* 33222222222211111111110000000000
6023                                                                  10987654321098765432109876543210
6024                                                                  xxxxxxxxxx111000xxxxx100011100xx
6025                                                                  and.  */
6026                                                               return 251;
6027                                                             }
6028                                                           else
6029                                                             {
6030                                                               /* 33222222222211111111110000000000
6031                                                                  10987654321098765432109876543210
6032                                                                  xxxxxxxxxx111000xxxxx100011101xx
6033                                                                  eor.  */
6034                                                               return 290;
6035                                                             }
6036                                                         }
6037                                                       else
6038                                                         {
6039                                                           if (((word >> 29) & 0x1) == 0)
6040                                                             {
6041                                                               /* 33222222222211111111110000000000
6042                                                                  10987654321098765432109876543210
6043                                                                  xxxxxxxxxx111000xxxxx101011100xx
6044                                                                  orr.  */
6045                                                               return 258;
6046                                                             }
6047                                                           else
6048                                                             {
6049                                                               /* 33222222222211111111110000000000
6050                                                                  10987654321098765432109876543210
6051                                                                  xxxxxxxxxx111000xxxxx101011101xx
6052                                                                  bit.  */
6053                                                               return 297;
6054                                                             }
6055                                                         }
6056                                                     }
6057                                                   else
6058                                                     {
6059                                                       if (((word >> 23) & 0x1) == 0)
6060                                                         {
6061                                                           if (((word >> 29) & 0x1) == 0)
6062                                                             {
6063                                                               /* 33222222222211111111110000000000
6064                                                                  10987654321098765432109876543210
6065                                                                  xxxxxxxxxx111000xxxxx110011100xx
6066                                                                  bic.  */
6067                                                               return 252;
6068                                                             }
6069                                                           else
6070                                                             {
6071                                                               /* 33222222222211111111110000000000
6072                                                                  10987654321098765432109876543210
6073                                                                  xxxxxxxxxx111000xxxxx110011101xx
6074                                                                  bsl.  */
6075                                                               return 291;
6076                                                             }
6077                                                         }
6078                                                       else
6079                                                         {
6080                                                           if (((word >> 29) & 0x1) == 0)
6081                                                             {
6082                                                               /* 33222222222211111111110000000000
6083                                                                  10987654321098765432109876543210
6084                                                                  xxxxxxxxxx111000xxxxx111011100xx
6085                                                                  orn.  */
6086                                                               return 260;
6087                                                             }
6088                                                           else
6089                                                             {
6090                                                               /* 33222222222211111111110000000000
6091                                                                  10987654321098765432109876543210
6092                                                                  xxxxxxxxxx111000xxxxx111011101xx
6093                                                                  bif.  */
6094                                                               return 298;
6095                                                             }
6096                                                         }
6097                                                     }
6098                                                 }
6099                                               else
6100                                                 {
6101                                                   if (((word >> 29) & 0x1) == 0)
6102                                                     {
6103                                                       /* 33222222222211111111110000000000
6104                                                          10987654321098765432109876543210
6105                                                          xxxxxxxxxx111001xxxxx1xx011100xx
6106                                                          mul.  */
6107                                                       return 239;
6108                                                     }
6109                                                   else
6110                                                     {
6111                                                       /* 33222222222211111111110000000000
6112                                                          10987654321098765432109876543210
6113                                                          xxxxxxxxxx111001xxxxx1xx011101xx
6114                                                          pmul.  */
6115                                                       return 279;
6116                                                     }
6117                                                 }
6118                                             }
6119                                           else
6120                                             {
6121                                               if (((word >> 15) & 0x1) == 0)
6122                                                 {
6123                                                   if (((word >> 29) & 0x1) == 0)
6124                                                     {
6125                                                       /* 33222222222211111111110000000000
6126                                                          10987654321098765432109876543210
6127                                                          xxxxxxxxxx111010xxxxx1xx011100xx
6128                                                          sqrshl.  */
6129                                                       return 231;
6130                                                     }
6131                                                   else
6132                                                     {
6133                                                       /* 33222222222211111111110000000000
6134                                                          10987654321098765432109876543210
6135                                                          xxxxxxxxxx111010xxxxx1xx011101xx
6136                                                          uqrshl.  */
6137                                                       return 271;
6138                                                     }
6139                                                 }
6140                                               else
6141                                                 {
6142                                                   if (((word >> 29) & 0x1) == 0)
6143                                                     {
6144                                                       /* 33222222222211111111110000000000
6145                                                          10987654321098765432109876543210
6146                                                          xxxxxxxxxx111011xxxxx1xx011100xx
6147                                                          fmulx.  */
6148                                                       return 247;
6149                                                     }
6150                                                   else
6151                                                     {
6152                                                       /* 33222222222211111111110000000000
6153                                                          10987654321098765432109876543210
6154                                                          xxxxxxxxxx111011xxxxx1xx011101xx
6155                                                          fmul.  */
6156                                                       return 285;
6157                                                     }
6158                                                 }
6159                                             }
6160                                         }
6161                                       else
6162                                         {
6163                                           if (((word >> 14) & 0x1) == 0)
6164                                             {
6165                                               if (((word >> 15) & 0x1) == 0)
6166                                                 {
6167                                                   if (((word >> 29) & 0x1) == 0)
6168                                                     {
6169                                                       /* 33222222222211111111110000000000
6170                                                          10987654321098765432109876543210
6171                                                          xxxxxxxxxx111100xxxxx1xx011100xx
6172                                                          cmge.  */
6173                                                       return 227;
6174                                                     }
6175                                                   else
6176                                                     {
6177                                                       /* 33222222222211111111110000000000
6178                                                          10987654321098765432109876543210
6179                                                          xxxxxxxxxx111100xxxxx1xx011101xx
6180                                                          cmhs.  */
6181                                                       return 267;
6182                                                     }
6183                                                 }
6184                                               else
6185                                                 {
6186                                                   /* 33222222222211111111110000000000
6187                                                      10987654321098765432109876543210
6188                                                      xxxxxxxxxx111101xxxxx1xx01110xxx
6189                                                      addp.  */
6190                                                   return 243;
6191                                                 }
6192                                             }
6193                                           else
6194                                             {
6195                                               if (((word >> 15) & 0x1) == 0)
6196                                                 {
6197                                                   if (((word >> 29) & 0x1) == 0)
6198                                                     {
6199                                                       /* 33222222222211111111110000000000
6200                                                          10987654321098765432109876543210
6201                                                          xxxxxxxxxx111110xxxxx1xx011100xx
6202                                                          saba.  */
6203                                                       return 235;
6204                                                     }
6205                                                   else
6206                                                     {
6207                                                       /* 33222222222211111111110000000000
6208                                                          10987654321098765432109876543210
6209                                                          xxxxxxxxxx111110xxxxx1xx011101xx
6210                                                          uaba.  */
6211                                                       return 275;
6212                                                     }
6213                                                 }
6214                                               else
6215                                                 {
6216                                                   if (((word >> 23) & 0x1) == 0)
6217                                                     {
6218                                                       if (((word >> 29) & 0x1) == 0)
6219                                                         {
6220                                                           /* 33222222222211111111110000000000
6221                                                              10987654321098765432109876543210
6222                                                              xxxxxxxxxx111111xxxxx1x0011100xx
6223                                                              frecps.  */
6224                                                           return 250;
6225                                                         }
6226                                                       else
6227                                                         {
6228                                                           /* 33222222222211111111110000000000
6229                                                              10987654321098765432109876543210
6230                                                              xxxxxxxxxx111111xxxxx1x0011101xx
6231                                                              fdiv.  */
6232                                                           return 289;
6233                                                         }
6234                                                     }
6235                                                   else
6236                                                     {
6237                                                       /* 33222222222211111111110000000000
6238                                                          10987654321098765432109876543210
6239                                                          xxxxxxxxxx111111xxxxx1x101110xxx
6240                                                          frsqrts.  */
6241                                                       return 257;
6242                                                     }
6243                                                 }
6244                                             }
6245                                         }
6246                                     }
6247                                 }
6248                               else
6249                                 {
6250                                   if (((word >> 29) & 0x1) == 0)
6251                                     {
6252                                       if (((word >> 30) & 0x1) == 0)
6253                                         {
6254                                           /* 33222222222211111111110000000000
6255                                              10987654321098765432109876543210
6256                                              xxxxxxxxxx11xxxxxxxxx1xx0111100x
6257                                              fcsel.  */
6258                                           return 648;
6259                                         }
6260                                       else
6261                                         {
6262                                           if (((word >> 12) & 0x1) == 0)
6263                                             {
6264                                               if (((word >> 13) & 0x1) == 0)
6265                                                 {
6266                                                   if (((word >> 14) & 0x1) == 0)
6267                                                     {
6268                                                       if (((word >> 15) & 0x1) == 0)
6269                                                         {
6270                                                           /* 33222222222211111111110000000000
6271                                                              10987654321098765432109876543210
6272                                                              xxxxxxxxxx110000xxxxx1xx0111101x
6273                                                              sqadd.  */
6274                                                           return 438;
6275                                                         }
6276                                                       else
6277                                                         {
6278                                                           /* 33222222222211111111110000000000
6279                                                              10987654321098765432109876543210
6280                                                              xxxxxxxxxx110001xxxxx1xx0111101x
6281                                                              cmtst.  */
6282                                                           return 452;
6283                                                         }
6284                                                     }
6285                                                   else
6286                                                     {
6287                                                       /* 33222222222211111111110000000000
6288                                                          10987654321098765432109876543210
6289                                                          xxxxxxxxxx11001xxxxxx1xx0111101x
6290                                                          sqshl.  */
6291                                                       return 440;
6292                                                     }
6293                                                 }
6294                                               else
6295                                                 {
6296                                                   /* 33222222222211111111110000000000
6297                                                      10987654321098765432109876543210
6298                                                      xxxxxxxxxx1101xxxxxxx1xx0111101x
6299                                                      sqsub.  */
6300                                                   return 439;
6301                                                 }
6302                                             }
6303                                           else
6304                                             {
6305                                               if (((word >> 13) & 0x1) == 0)
6306                                                 {
6307                                                   if (((word >> 15) & 0x1) == 0)
6308                                                     {
6309                                                       /* 33222222222211111111110000000000
6310                                                          10987654321098765432109876543210
6311                                                          xxxxxxxxxx1110x0xxxxx1xx0111101x
6312                                                          sqrshl.  */
6313                                                       return 441;
6314                                                     }
6315                                                   else
6316                                                     {
6317                                                       /* 33222222222211111111110000000000
6318                                                          10987654321098765432109876543210
6319                                                          xxxxxxxxxx1110x1xxxxx1xx0111101x
6320                                                          fmulx.  */
6321                                                       return 443;
6322                                                     }
6323                                                 }
6324                                               else
6325                                                 {
6326                                                   if (((word >> 14) & 0x1) == 0)
6327                                                     {
6328                                                       /* 33222222222211111111110000000000
6329                                                          10987654321098765432109876543210
6330                                                          xxxxxxxxxx11110xxxxxx1xx0111101x
6331                                                          cmge.  */
6332                                                       return 448;
6333                                                     }
6334                                                   else
6335                                                     {
6336                                                       if (((word >> 23) & 0x1) == 0)
6337                                                         {
6338                                                           /* 33222222222211111111110000000000
6339                                                              10987654321098765432109876543210
6340                                                              xxxxxxxxxx11111xxxxxx1x00111101x
6341                                                              frecps.  */
6342                                                           return 445;
6343                                                         }
6344                                                       else
6345                                                         {
6346                                                           /* 33222222222211111111110000000000
6347                                                              10987654321098765432109876543210
6348                                                              xxxxxxxxxx11111xxxxxx1x10111101x
6349                                                              frsqrts.  */
6350                                                           return 446;
6351                                                         }
6352                                                     }
6353                                                 }
6354                                             }
6355                                         }
6356                                     }
6357                                   else
6358                                     {
6359                                       if (((word >> 12) & 0x1) == 0)
6360                                         {
6361                                           if (((word >> 13) & 0x1) == 0)
6362                                             {
6363                                               if (((word >> 14) & 0x1) == 0)
6364                                                 {
6365                                                   if (((word >> 15) & 0x1) == 0)
6366                                                     {
6367                                                       /* 33222222222211111111110000000000
6368                                                          10987654321098765432109876543210
6369                                                          xxxxxxxxxx110000xxxxx1xx011111xx
6370                                                          uqadd.  */
6371                                                       return 453;
6372                                                     }
6373                                                   else
6374                                                     {
6375                                                       /* 33222222222211111111110000000000
6376                                                          10987654321098765432109876543210
6377                                                          xxxxxxxxxx110001xxxxx1xx011111xx
6378                                                          cmeq.  */
6379                                                       return 468;
6380                                                     }
6381                                                 }
6382                                               else
6383                                                 {
6384                                                   /* 33222222222211111111110000000000
6385                                                      10987654321098765432109876543210
6386                                                      xxxxxxxxxx11001xxxxxx1xx011111xx
6387                                                      uqshl.  */
6388                                                   return 455;
6389                                                 }
6390                                             }
6391                                           else
6392                                             {
6393                                               if (((word >> 14) & 0x1) == 0)
6394                                                 {
6395                                                   /* 33222222222211111111110000000000
6396                                                      10987654321098765432109876543210
6397                                                      xxxxxxxxxx11010xxxxxx1xx011111xx
6398                                                      uqsub.  */
6399                                                   return 454;
6400                                                 }
6401                                               else
6402                                                 {
6403                                                   if (((word >> 23) & 0x1) == 0)
6404                                                     {
6405                                                       /* 33222222222211111111110000000000
6406                                                          10987654321098765432109876543210
6407                                                          xxxxxxxxxx11011xxxxxx1x0011111xx
6408                                                          facge.  */
6409                                                       return 459;
6410                                                     }
6411                                                   else
6412                                                     {
6413                                                       /* 33222222222211111111110000000000
6414                                                          10987654321098765432109876543210
6415                                                          xxxxxxxxxx11011xxxxxx1x1011111xx
6416                                                          facgt.  */
6417                                                       return 462;
6418                                                     }
6419                                                 }
6420                                             }
6421                                         }
6422                                       else
6423                                         {
6424                                           if (((word >> 13) & 0x1) == 0)
6425                                             {
6426                                               /* 33222222222211111111110000000000
6427                                                  10987654321098765432109876543210
6428                                                  xxxxxxxxxx1110xxxxxxx1xx011111xx
6429                                                  uqrshl.  */
6430                                               return 456;
6431                                             }
6432                                           else
6433                                             {
6434                                               /* 33222222222211111111110000000000
6435                                                  10987654321098765432109876543210
6436                                                  xxxxxxxxxx1111xxxxxxx1xx011111xx
6437                                                  cmhs.  */
6438                                               return 464;
6439                                             }
6440                                         }
6441                                     }
6442                                 }
6443                             }
6444                         }
6445                     }
6446                 }
6447               else
6448                 {
6449                   if (((word >> 15) & 0x1) == 0)
6450                     {
6451                       if (((word >> 28) & 0x1) == 0)
6452                         {
6453                           if (((word >> 10) & 0x1) == 0)
6454                             {
6455                               if (((word >> 12) & 0x1) == 0)
6456                                 {
6457                                   if (((word >> 13) & 0x1) == 0)
6458                                     {
6459                                       if (((word >> 14) & 0x1) == 0)
6460                                         {
6461                                           /* 33222222222211111111110000000000
6462                                              10987654321098765432109876543210
6463                                              xxxxxxxxxx0x0000xxxxxxxx11110xxx
6464                                              mla.  */
6465                                           return 110;
6466                                         }
6467                                       else
6468                                         {
6469                                           /* 33222222222211111111110000000000
6470                                              10987654321098765432109876543210
6471                                              xxxxxxxxxx0x0010xxxxxxxx11110xxx
6472                                              mls.  */
6473                                           return 113;
6474                                         }
6475                                     }
6476                                   else
6477                                     {
6478                                       if (((word >> 14) & 0x1) == 0)
6479                                         {
6480                                           if (((word >> 29) & 0x1) == 0)
6481                                             {
6482                                               if (((word >> 30) & 0x1) == 0)
6483                                                 {
6484                                                   /* 33222222222211111111110000000000
6485                                                      10987654321098765432109876543210
6486                                                      xxxxxxxxxx0x0100xxxxxxxx1111000x
6487                                                      smlal.  */
6488                                                   return 92;
6489                                                 }
6490                                               else
6491                                                 {
6492                                                   /* 33222222222211111111110000000000
6493                                                      10987654321098765432109876543210
6494                                                      xxxxxxxxxx0x0100xxxxxxxx1111001x
6495                                                      smlal2.  */
6496                                                   return 93;
6497                                                 }
6498                                             }
6499                                           else
6500                                             {
6501                                               if (((word >> 30) & 0x1) == 0)
6502                                                 {
6503                                                   /* 33222222222211111111110000000000
6504                                                      10987654321098765432109876543210
6505                                                      xxxxxxxxxx0x0100xxxxxxxx1111010x
6506                                                      umlal.  */
6507                                                   return 111;
6508                                                 }
6509                                               else
6510                                                 {
6511                                                   /* 33222222222211111111110000000000
6512                                                      10987654321098765432109876543210
6513                                                      xxxxxxxxxx0x0100xxxxxxxx1111011x
6514                                                      umlal2.  */
6515                                                   return 112;
6516                                                 }
6517                                             }
6518                                         }
6519                                       else
6520                                         {
6521                                           if (((word >> 29) & 0x1) == 0)
6522                                             {
6523                                               if (((word >> 30) & 0x1) == 0)
6524                                                 {
6525                                                   /* 33222222222211111111110000000000
6526                                                      10987654321098765432109876543210
6527                                                      xxxxxxxxxx0x0110xxxxxxxx1111000x
6528                                                      smlsl.  */
6529                                                   return 96;
6530                                                 }
6531                                               else
6532                                                 {
6533                                                   /* 33222222222211111111110000000000
6534                                                      10987654321098765432109876543210
6535                                                      xxxxxxxxxx0x0110xxxxxxxx1111001x
6536                                                      smlsl2.  */
6537                                                   return 97;
6538                                                 }
6539                                             }
6540                                           else
6541                                             {
6542                                               if (((word >> 30) & 0x1) == 0)
6543                                                 {
6544                                                   /* 33222222222211111111110000000000
6545                                                      10987654321098765432109876543210
6546                                                      xxxxxxxxxx0x0110xxxxxxxx1111010x
6547                                                      umlsl.  */
6548                                                   return 114;
6549                                                 }
6550                                               else
6551                                                 {
6552                                                   /* 33222222222211111111110000000000
6553                                                      10987654321098765432109876543210
6554                                                      xxxxxxxxxx0x0110xxxxxxxx1111011x
6555                                                      umlsl2.  */
6556                                                   return 115;
6557                                                 }
6558                                             }
6559                                         }
6560                                     }
6561                                 }
6562                               else
6563                                 {
6564                                   if (((word >> 13) & 0x1) == 0)
6565                                     {
6566                                       if (((word >> 14) & 0x1) == 0)
6567                                         {
6568                                           /* 33222222222211111111110000000000
6569                                              10987654321098765432109876543210
6570                                              xxxxxxxxxx0x1000xxxxxxxx11110xxx
6571                                              fmla.  */
6572                                           return 107;
6573                                         }
6574                                       else
6575                                         {
6576                                           /* 33222222222211111111110000000000
6577                                              10987654321098765432109876543210
6578                                              xxxxxxxxxx0x1010xxxxxxxx11110xxx
6579                                              fmls.  */
6580                                           return 108;
6581                                         }
6582                                     }
6583                                   else
6584                                     {
6585                                       if (((word >> 14) & 0x1) == 0)
6586                                         {
6587                                           if (((word >> 30) & 0x1) == 0)
6588                                             {
6589                                               /* 33222222222211111111110000000000
6590                                                  10987654321098765432109876543210
6591                                                  xxxxxxxxxx0x1100xxxxxxxx11110x0x
6592                                                  sqdmlal.  */
6593                                               return 94;
6594                                             }
6595                                           else
6596                                             {
6597                                               /* 33222222222211111111110000000000
6598                                                  10987654321098765432109876543210
6599                                                  xxxxxxxxxx0x1100xxxxxxxx11110x1x
6600                                                  sqdmlal2.  */
6601                                               return 95;
6602                                             }
6603                                         }
6604                                       else
6605                                         {
6606                                           if (((word >> 30) & 0x1) == 0)
6607                                             {
6608                                               /* 33222222222211111111110000000000
6609                                                  10987654321098765432109876543210
6610                                                  xxxxxxxxxx0x1110xxxxxxxx11110x0x
6611                                                  sqdmlsl.  */
6612                                               return 98;
6613                                             }
6614                                           else
6615                                             {
6616                                               /* 33222222222211111111110000000000
6617                                                  10987654321098765432109876543210
6618                                                  xxxxxxxxxx0x1110xxxxxxxx11110x1x
6619                                                  sqdmlsl2.  */
6620                                               return 99;
6621                                             }
6622                                         }
6623                                     }
6624                                 }
6625                             }
6626                           else
6627                             {
6628                               if (((word >> 12) & 0x1) == 0)
6629                                 {
6630                                   if (((word >> 29) & 0x1) == 0)
6631                                     {
6632                                       /* 33222222222211111111110000000000
6633                                          10987654321098765432109876543210
6634                                          xxxxxxxxxx1x0xx0xxxxxxxx111100xx
6635                                          movi.  */
6636                                       return 120;
6637                                     }
6638                                   else
6639                                     {
6640                                       /* 33222222222211111111110000000000
6641                                          10987654321098765432109876543210
6642                                          xxxxxxxxxx1x0xx0xxxxxxxx111101xx
6643                                          mvni.  */
6644                                       return 127;
6645                                     }
6646                                 }
6647                               else
6648                                 {
6649                                   if (((word >> 29) & 0x1) == 0)
6650                                     {
6651                                       /* 33222222222211111111110000000000
6652                                          10987654321098765432109876543210
6653                                          xxxxxxxxxx1x1xx0xxxxxxxx111100xx
6654                                          orr.  */
6655                                       return 121;
6656                                     }
6657                                   else
6658                                     {
6659                                       /* 33222222222211111111110000000000
6660                                          10987654321098765432109876543210
6661                                          xxxxxxxxxx1x1xx0xxxxxxxx111101xx
6662                                          bic.  */
6663                                       return 128;
6664                                     }
6665                                 }
6666                             }
6667                         }
6668                       else
6669                         {
6670                           if (((word >> 29) & 0x1) == 0)
6671                             {
6672                               if (((word >> 30) & 0x1) == 0)
6673                                 {
6674                                   if (((word >> 21) & 0x1) == 0)
6675                                     {
6676                                       /* 33222222222211111111110000000000
6677                                          10987654321098765432109876543210
6678                                          xxxxxxxxxxxxxxx0xxxxx0xx1111100x
6679                                          fmadd.  */
6680                                       return 643;
6681                                     }
6682                                   else
6683                                     {
6684                                       /* 33222222222211111111110000000000
6685                                          10987654321098765432109876543210
6686                                          xxxxxxxxxxxxxxx0xxxxx1xx1111100x
6687                                          fnmadd.  */
6688                                       return 645;
6689                                     }
6690                                 }
6691                               else
6692                                 {
6693                                   if (((word >> 10) & 0x1) == 0)
6694                                     {
6695                                       if (((word >> 13) & 0x1) == 0)
6696                                         {
6697                                           if (((word >> 14) & 0x1) == 0)
6698                                             {
6699                                               /* 33222222222211111111110000000000
6700                                                  10987654321098765432109876543210
6701                                                  xxxxxxxxxx0xx000xxxxxxxx1111101x
6702                                                  fmla.  */
6703                                               return 351;
6704                                             }
6705                                           else
6706                                             {
6707                                               /* 33222222222211111111110000000000
6708                                                  10987654321098765432109876543210
6709                                                  xxxxxxxxxx0xx010xxxxxxxx1111101x
6710                                                  fmls.  */
6711                                               return 352;
6712                                             }
6713                                         }
6714                                       else
6715                                         {
6716                                           if (((word >> 14) & 0x1) == 0)
6717                                             {
6718                                               /* 33222222222211111111110000000000
6719                                                  10987654321098765432109876543210
6720                                                  xxxxxxxxxx0xx100xxxxxxxx1111101x
6721                                                  sqdmlal.  */
6722                                               return 346;
6723                                             }
6724                                           else
6725                                             {
6726                                               /* 33222222222211111111110000000000
6727                                                  10987654321098765432109876543210
6728                                                  xxxxxxxxxx0xx110xxxxxxxx1111101x
6729                                                  sqdmlsl.  */
6730                                               return 347;
6731                                             }
6732                                         }
6733                                     }
6734                                   else
6735                                     {
6736                                       if (((word >> 12) & 0x1) == 0)
6737                                         {
6738                                           if (((word >> 13) & 0x1) == 0)
6739                                             {
6740                                               /* 33222222222211111111110000000000
6741                                                  10987654321098765432109876543210
6742                                                  xxxxxxxxxx1x00x0xxxxxxxx1111101x
6743                                                  sshr.  */
6744                                               return 469;
6745                                             }
6746                                           else
6747                                             {
6748                                               /* 33222222222211111111110000000000
6749                                                  10987654321098765432109876543210
6750                                                  xxxxxxxxxx1x01x0xxxxxxxx1111101x
6751                                                  srshr.  */
6752                                               return 471;
6753                                             }
6754                                         }
6755                                       else
6756                                         {
6757                                           if (((word >> 13) & 0x1) == 0)
6758                                             {
6759                                               if (((word >> 14) & 0x1) == 0)
6760                                                 {
6761                                                   /* 33222222222211111111110000000000
6762                                                      10987654321098765432109876543210
6763                                                      xxxxxxxxxx1x1000xxxxxxxx1111101x
6764                                                      ssra.  */
6765                                                   return 470;
6766                                                 }
6767                                               else
6768                                                 {
6769                                                   /* 33222222222211111111110000000000
6770                                                      10987654321098765432109876543210
6771                                                      xxxxxxxxxx1x1010xxxxxxxx1111101x
6772                                                      shl.  */
6773                                                   return 473;
6774                                                 }
6775                                             }
6776                                           else
6777                                             {
6778                                               if (((word >> 14) & 0x1) == 0)
6779                                                 {
6780                                                   /* 33222222222211111111110000000000
6781                                                      10987654321098765432109876543210
6782                                                      xxxxxxxxxx1x1100xxxxxxxx1111101x
6783                                                      srsra.  */
6784                                                   return 472;
6785                                                 }
6786                                               else
6787                                                 {
6788                                                   /* 33222222222211111111110000000000
6789                                                      10987654321098765432109876543210
6790                                                      xxxxxxxxxx1x1110xxxxxxxx1111101x
6791                                                      sqshl.  */
6792                                                   return 474;
6793                                                 }
6794                                             }
6795                                         }
6796                                     }
6797                                 }
6798                             }
6799                           else
6800                             {
6801                               if (((word >> 12) & 0x1) == 0)
6802                                 {
6803                                   if (((word >> 13) & 0x1) == 0)
6804                                     {
6805                                       if (((word >> 14) & 0x1) == 0)
6806                                         {
6807                                           /* 33222222222211111111110000000000
6808                                              10987654321098765432109876543210
6809                                              xxxxxxxxxxxx0000xxxxxxxx111111xx
6810                                              ushr.  */
6811                                           return 479;
6812                                         }
6813                                       else
6814                                         {
6815                                           /* 33222222222211111111110000000000
6816                                              10987654321098765432109876543210
6817                                              xxxxxxxxxxxx0010xxxxxxxx111111xx
6818                                              sri.  */
6819                                           return 483;
6820                                         }
6821                                     }
6822                                   else
6823                                     {
6824                                       if (((word >> 14) & 0x1) == 0)
6825                                         {
6826                                           /* 33222222222211111111110000000000
6827                                              10987654321098765432109876543210
6828                                              xxxxxxxxxxxx0100xxxxxxxx111111xx
6829                                              urshr.  */
6830                                           return 481;
6831                                         }
6832                                       else
6833                                         {
6834                                           /* 33222222222211111111110000000000
6835                                              10987654321098765432109876543210
6836                                              xxxxxxxxxxxx0110xxxxxxxx111111xx
6837                                              sqshlu.  */
6838                                           return 485;
6839                                         }
6840                                     }
6841                                 }
6842                               else
6843                                 {
6844                                   if (((word >> 13) & 0x1) == 0)
6845                                     {
6846                                       if (((word >> 14) & 0x1) == 0)
6847                                         {
6848                                           /* 33222222222211111111110000000000
6849                                              10987654321098765432109876543210
6850                                              xxxxxxxxxxxx1000xxxxxxxx111111xx
6851                                              usra.  */
6852                                           return 480;
6853                                         }
6854                                       else
6855                                         {
6856                                           /* 33222222222211111111110000000000
6857                                              10987654321098765432109876543210
6858                                              xxxxxxxxxxxx1010xxxxxxxx111111xx
6859                                              sli.  */
6860                                           return 484;
6861                                         }
6862                                     }
6863                                   else
6864                                     {
6865                                       if (((word >> 14) & 0x1) == 0)
6866                                         {
6867                                           /* 33222222222211111111110000000000
6868                                              10987654321098765432109876543210
6869                                              xxxxxxxxxxxx1100xxxxxxxx111111xx
6870                                              ursra.  */
6871                                           return 482;
6872                                         }
6873                                       else
6874                                         {
6875                                           /* 33222222222211111111110000000000
6876                                              10987654321098765432109876543210
6877                                              xxxxxxxxxxxx1110xxxxxxxx111111xx
6878                                              uqshl.  */
6879                                           return 486;
6880                                         }
6881                                     }
6882                                 }
6883                             }
6884                         }
6885                     }
6886                   else
6887                     {
6888                       if (((word >> 28) & 0x1) == 0)
6889                         {
6890                           if (((word >> 10) & 0x1) == 0)
6891                             {
6892                               if (((word >> 12) & 0x1) == 0)
6893                                 {
6894                                   if (((word >> 13) & 0x1) == 0)
6895                                     {
6896                                       if (((word >> 14) & 0x1) == 0)
6897                                         {
6898                                           /* 33222222222211111111110000000000
6899                                              10987654321098765432109876543210
6900                                              xxxxxxxxxx0x0001xxxxxxxx11110xxx
6901                                              mul.  */
6902                                           return 100;
6903                                         }
6904                                       else
6905                                         {
6906                                           /* 33222222222211111111110000000000
6907                                              10987654321098765432109876543210
6908                                              xxxxxxxxxx0x0011xxxxxxxx11110xxx
6909                                              sqdmulh.  */
6910                                           return 105;
6911                                         }
6912                                     }
6913                                   else
6914                                     {
6915                                       if (((word >> 29) & 0x1) == 0)
6916                                         {
6917                                           if (((word >> 30) & 0x1) == 0)
6918                                             {
6919                                               /* 33222222222211111111110000000000
6920                                                  10987654321098765432109876543210
6921                                                  xxxxxxxxxx0x01x1xxxxxxxx1111000x
6922                                                  smull.  */
6923                                               return 101;
6924                                             }
6925                                           else
6926                                             {
6927                                               /* 33222222222211111111110000000000
6928                                                  10987654321098765432109876543210
6929                                                  xxxxxxxxxx0x01x1xxxxxxxx1111001x
6930                                                  smull2.  */
6931                                               return 102;
6932                                             }
6933                                         }
6934                                       else
6935                                         {
6936                                           if (((word >> 30) & 0x1) == 0)
6937                                             {
6938                                               /* 33222222222211111111110000000000
6939                                                  10987654321098765432109876543210
6940                                                  xxxxxxxxxx0x01x1xxxxxxxx1111010x
6941                                                  umull.  */
6942                                               return 116;
6943                                             }
6944                                           else
6945                                             {
6946                                               /* 33222222222211111111110000000000
6947                                                  10987654321098765432109876543210
6948                                                  xxxxxxxxxx0x01x1xxxxxxxx1111011x
6949                                                  umull2.  */
6950                                               return 117;
6951                                             }
6952                                         }
6953                                     }
6954                                 }
6955                               else
6956                                 {
6957                                   if (((word >> 13) & 0x1) == 0)
6958                                     {
6959                                       if (((word >> 14) & 0x1) == 0)
6960                                         {
6961                                           if (((word >> 29) & 0x1) == 0)
6962                                             {
6963                                               /* 33222222222211111111110000000000
6964                                                  10987654321098765432109876543210
6965                                                  xxxxxxxxxx0x1001xxxxxxxx111100xx
6966                                                  fmul.  */
6967                                               return 109;
6968                                             }
6969                                           else
6970                                             {
6971                                               /* 33222222222211111111110000000000
6972                                                  10987654321098765432109876543210
6973                                                  xxxxxxxxxx0x1001xxxxxxxx111101xx
6974                                                  fmulx.  */
6975                                               return 118;
6976                                             }
6977                                         }
6978                                       else
6979                                         {
6980                                           /* 33222222222211111111110000000000
6981                                              10987654321098765432109876543210
6982                                              xxxxxxxxxx0x1011xxxxxxxx11110xxx
6983                                              sqrdmulh.  */
6984                                           return 106;
6985                                         }
6986                                     }
6987                                   else
6988                                     {
6989                                       if (((word >> 30) & 0x1) == 0)
6990                                         {
6991                                           /* 33222222222211111111110000000000
6992                                              10987654321098765432109876543210
6993                                              xxxxxxxxxx0x11x1xxxxxxxx11110x0x
6994                                              sqdmull.  */
6995                                           return 103;
6996                                         }
6997                                       else
6998                                         {
6999                                           /* 33222222222211111111110000000000
7000                                              10987654321098765432109876543210
7001                                              xxxxxxxxxx0x11x1xxxxxxxx11110x1x
7002                                              sqdmull2.  */
7003                                           return 104;
7004                                         }
7005                                     }
7006                                 }
7007                             }
7008                           else
7009                             {
7010                               if (((word >> 11) & 0x1) == 0)
7011                                 {
7012                                   if (((word >> 14) & 0x1) == 0)
7013                                     {
7014                                       if (((word >> 12) & 0x1) == 0)
7015                                         {
7016                                           if (((word >> 29) & 0x1) == 0)
7017                                             {
7018                                               /* 33222222222211111111110000000000
7019                                                  10987654321098765432109876543210
7020                                                  xxxxxxxxxx100x01xxxxxxxx111100xx
7021                                                  movi.  */
7022                                               return 122;
7023                                             }
7024                                           else
7025                                             {
7026                                               /* 33222222222211111111110000000000
7027                                                  10987654321098765432109876543210
7028                                                  xxxxxxxxxx100x01xxxxxxxx111101xx
7029                                                  mvni.  */
7030                                               return 129;
7031                                             }
7032                                         }
7033                                       else
7034                                         {
7035                                           if (((word >> 29) & 0x1) == 0)
7036                                             {
7037                                               /* 33222222222211111111110000000000
7038                                                  10987654321098765432109876543210
7039                                                  xxxxxxxxxx101x01xxxxxxxx111100xx
7040                                                  orr.  */
7041                                               return 123;
7042                                             }
7043                                           else
7044                                             {
7045                                               /* 33222222222211111111110000000000
7046                                                  10987654321098765432109876543210
7047                                                  xxxxxxxxxx101x01xxxxxxxx111101xx
7048                                                  bic.  */
7049                                               return 130;
7050                                             }
7051                                         }
7052                                     }
7053                                   else
7054                                     {
7055                                       if (((word >> 13) & 0x1) == 0)
7056                                         {
7057                                           if (((word >> 29) & 0x1) == 0)
7058                                             {
7059                                               /* 33222222222211111111110000000000
7060                                                  10987654321098765432109876543210
7061                                                  xxxxxxxxxx10x011xxxxxxxx111100xx
7062                                                  movi.  */
7063                                               return 124;
7064                                             }
7065                                           else
7066                                             {
7067                                               /* 33222222222211111111110000000000
7068                                                  10987654321098765432109876543210
7069                                                  xxxxxxxxxx10x011xxxxxxxx111101xx
7070                                                  mvni.  */
7071                                               return 131;
7072                                             }
7073                                         }
7074                                       else
7075                                         {
7076                                           if (((word >> 12) & 0x1) == 0)
7077                                             {
7078                                               if (((word >> 29) & 0x1) == 0)
7079                                                 {
7080                                                   /* 33222222222211111111110000000000
7081                                                      10987654321098765432109876543210
7082                                                      xxxxxxxxxx100111xxxxxxxx111100xx
7083                                                      movi.  */
7084                                                   return 125;
7085                                                 }
7086                                               else
7087                                                 {
7088                                                   /* 33222222222211111111110000000000
7089                                                      10987654321098765432109876543210
7090                                                      xxxxxxxxxx100111xxxxxxxx111101xx
7091                                                      movi.  */
7092                                                   return 132;
7093                                                 }
7094                                             }
7095                                           else
7096                                             {
7097                                               if (((word >> 29) & 0x1) == 0)
7098                                                 {
7099                                                   /* 33222222222211111111110000000000
7100                                                      10987654321098765432109876543210
7101                                                      xxxxxxxxxx101111xxxxxxxx111100xx
7102                                                      fmov.  */
7103                                                   return 126;
7104                                                 }
7105                                               else
7106                                                 {
7107                                                   /* 33222222222211111111110000000000
7108                                                      10987654321098765432109876543210
7109                                                      xxxxxxxxxx101111xxxxxxxx111101xx
7110                                                      fmov.  */
7111                                                   return 134;
7112                                                 }
7113                                             }
7114                                         }
7115                                     }
7116                                 }
7117                               else
7118                                 {
7119                                   if (((word >> 12) & 0x1) == 0)
7120                                     {
7121                                       if (((word >> 29) & 0x1) == 0)
7122                                         {
7123                                           if (((word >> 30) & 0x1) == 0)
7124                                             {
7125                                               /* 33222222222211111111110000000000
7126                                                  10987654321098765432109876543210
7127                                                  xxxxxxxxxx110xx1xxxxxxxx1111000x
7128                                                  rshrn.  */
7129                                               return 307;
7130                                             }
7131                                           else
7132                                             {
7133                                               /* 33222222222211111111110000000000
7134                                                  10987654321098765432109876543210
7135                                                  xxxxxxxxxx110xx1xxxxxxxx1111001x
7136                                                  rshrn2.  */
7137                                               return 308;
7138                                             }
7139                                         }
7140                                       else
7141                                         {
7142                                           if (((word >> 30) & 0x1) == 0)
7143                                             {
7144                                               /* 33222222222211111111110000000000
7145                                                  10987654321098765432109876543210
7146                                                  xxxxxxxxxx110xx1xxxxxxxx1111010x
7147                                                  sqrshrun.  */
7148                                               return 329;
7149                                             }
7150                                           else
7151                                             {
7152                                               /* 33222222222211111111110000000000
7153                                                  10987654321098765432109876543210
7154                                                  xxxxxxxxxx110xx1xxxxxxxx1111011x
7155                                                  sqrshrun2.  */
7156                                               return 330;
7157                                             }
7158                                         }
7159                                     }
7160                                   else
7161                                     {
7162                                       if (((word >> 13) & 0x1) == 0)
7163                                         {
7164                                           if (((word >> 29) & 0x1) == 0)
7165                                             {
7166                                               if (((word >> 30) & 0x1) == 0)
7167                                                 {
7168                                                   /* 33222222222211111111110000000000
7169                                                      10987654321098765432109876543210
7170                                                      xxxxxxxxxx1110x1xxxxxxxx1111000x
7171                                                      sqrshrn.  */
7172                                                   return 311;
7173                                                 }
7174                                               else
7175                                                 {
7176                                                   /* 33222222222211111111110000000000
7177                                                      10987654321098765432109876543210
7178                                                      xxxxxxxxxx1110x1xxxxxxxx1111001x
7179                                                      sqrshrn2.  */
7180                                                   return 312;
7181                                                 }
7182                                             }
7183                                           else
7184                                             {
7185                                               if (((word >> 30) & 0x1) == 0)
7186                                                 {
7187                                                   /* 33222222222211111111110000000000
7188                                                      10987654321098765432109876543210
7189                                                      xxxxxxxxxx1110x1xxxxxxxx1111010x
7190                                                      uqrshrn.  */
7191                                                   return 333;
7192                                                 }
7193                                               else
7194                                                 {
7195                                                   /* 33222222222211111111110000000000
7196                                                      10987654321098765432109876543210
7197                                                      xxxxxxxxxx1110x1xxxxxxxx1111011x
7198                                                      uqrshrn2.  */
7199                                                   return 334;
7200                                                 }
7201                                             }
7202                                         }
7203                                       else
7204                                         {
7205                                           if (((word >> 29) & 0x1) == 0)
7206                                             {
7207                                               /* 33222222222211111111110000000000
7208                                                  10987654321098765432109876543210
7209                                                  xxxxxxxxxx1111x1xxxxxxxx111100xx
7210                                                  fcvtzs.  */
7211                                               return 318;
7212                                             }
7213                                           else
7214                                             {
7215                                               /* 33222222222211111111110000000000
7216                                                  10987654321098765432109876543210
7217                                                  xxxxxxxxxx1111x1xxxxxxxx111101xx
7218                                                  fcvtzu.  */
7219                                               return 340;
7220                                             }
7221                                         }
7222                                     }
7223                                 }
7224                             }
7225                         }
7226                       else
7227                         {
7228                           if (((word >> 29) & 0x1) == 0)
7229                             {
7230                               if (((word >> 30) & 0x1) == 0)
7231                                 {
7232                                   if (((word >> 21) & 0x1) == 0)
7233                                     {
7234                                       /* 33222222222211111111110000000000
7235                                          10987654321098765432109876543210
7236                                          xxxxxxxxxxxxxxx1xxxxx0xx1111100x
7237                                          fmsub.  */
7238                                       return 644;
7239                                     }
7240                                   else
7241                                     {
7242                                       /* 33222222222211111111110000000000
7243                                          10987654321098765432109876543210
7244                                          xxxxxxxxxxxxxxx1xxxxx1xx1111100x
7245                                          fnmsub.  */
7246                                       return 646;
7247                                     }
7248                                 }
7249                               else
7250                                 {
7251                                   if (((word >> 10) & 0x1) == 0)
7252                                     {
7253                                       if (((word >> 12) & 0x1) == 0)
7254                                         {
7255                                           /* 33222222222211111111110000000000
7256                                              10987654321098765432109876543210
7257                                              xxxxxxxxxx0x0xx1xxxxxxxx1111101x
7258                                              sqdmulh.  */
7259                                           return 349;
7260                                         }
7261                                       else
7262                                         {
7263                                           if (((word >> 13) & 0x1) == 0)
7264                                             {
7265                                               if (((word >> 14) & 0x1) == 0)
7266                                                 {
7267                                                   /* 33222222222211111111110000000000
7268                                                      10987654321098765432109876543210
7269                                                      xxxxxxxxxx0x1001xxxxxxxx1111101x
7270                                                      fmul.  */
7271                                                   return 353;
7272                                                 }
7273                                               else
7274                                                 {
7275                                                   /* 33222222222211111111110000000000
7276                                                      10987654321098765432109876543210
7277                                                      xxxxxxxxxx0x1011xxxxxxxx1111101x
7278                                                      sqrdmulh.  */
7279                                                   return 350;
7280                                                 }
7281                                             }
7282                                           else
7283                                             {
7284                                               /* 33222222222211111111110000000000
7285                                                  10987654321098765432109876543210
7286                                                  xxxxxxxxxx0x11x1xxxxxxxx1111101x
7287                                                  sqdmull.  */
7288                                               return 348;
7289                                             }
7290                                         }
7291                                     }
7292                                   else
7293                                     {
7294                                       if (((word >> 11) & 0x1) == 0)
7295                                         {
7296                                           if (((word >> 12) & 0x1) == 0)
7297                                             {
7298                                               /* 33222222222211111111110000000000
7299                                                  10987654321098765432109876543210
7300                                                  xxxxxxxxxx100xx1xxxxxxxx1111101x
7301                                                  scvtf.  */
7302                                               return 477;
7303                                             }
7304                                           else
7305                                             {
7306                                               /* 33222222222211111111110000000000
7307                                                  10987654321098765432109876543210
7308                                                  xxxxxxxxxx101xx1xxxxxxxx1111101x
7309                                                  sqshrn.  */
7310                                               return 475;
7311                                             }
7312                                         }
7313                                       else
7314                                         {
7315                                           if (((word >> 13) & 0x1) == 0)
7316                                             {
7317                                               /* 33222222222211111111110000000000
7318                                                  10987654321098765432109876543210
7319                                                  xxxxxxxxxx11x0x1xxxxxxxx1111101x
7320                                                  sqrshrn.  */
7321                                               return 476;
7322                                             }
7323                                           else
7324                                             {
7325                                               /* 33222222222211111111110000000000
7326                                                  10987654321098765432109876543210
7327                                                  xxxxxxxxxx11x1x1xxxxxxxx1111101x
7328                                                  fcvtzs.  */
7329                                               return 478;
7330                                             }
7331                                         }
7332                                     }
7333                                 }
7334                             }
7335                           else
7336                             {
7337                               if (((word >> 10) & 0x1) == 0)
7338                                 {
7339                                   /* 33222222222211111111110000000000
7340                                      10987654321098765432109876543210
7341                                      xxxxxxxxxx0xxxx1xxxxxxxx111111xx
7342                                      fmulx.  */
7343                                   return 354;
7344                                 }
7345                               else
7346                                 {
7347                                   if (((word >> 11) & 0x1) == 0)
7348                                     {
7349                                       if (((word >> 12) & 0x1) == 0)
7350                                         {
7351                                           if (((word >> 13) & 0x1) == 0)
7352                                             {
7353                                               /* 33222222222211111111110000000000
7354                                                  10987654321098765432109876543210
7355                                                  xxxxxxxxxx1000x1xxxxxxxx111111xx
7356                                                  sqshrun.  */
7357                                               return 487;
7358                                             }
7359                                           else
7360                                             {
7361                                               /* 33222222222211111111110000000000
7362                                                  10987654321098765432109876543210
7363                                                  xxxxxxxxxx1001x1xxxxxxxx111111xx
7364                                                  ucvtf.  */
7365                                               return 491;
7366                                             }
7367                                         }
7368                                       else
7369                                         {
7370                                           /* 33222222222211111111110000000000
7371                                              10987654321098765432109876543210
7372                                              xxxxxxxxxx101xx1xxxxxxxx111111xx
7373                                              uqshrn.  */
7374                                           return 489;
7375                                         }
7376                                     }
7377                                   else
7378                                     {
7379                                       if (((word >> 12) & 0x1) == 0)
7380                                         {
7381                                           /* 33222222222211111111110000000000
7382                                              10987654321098765432109876543210
7383                                              xxxxxxxxxx110xx1xxxxxxxx111111xx
7384                                              sqrshrun.  */
7385                                           return 488;
7386                                         }
7387                                       else
7388                                         {
7389                                           if (((word >> 13) & 0x1) == 0)
7390                                             {
7391                                               /* 33222222222211111111110000000000
7392                                                  10987654321098765432109876543210
7393                                                  xxxxxxxxxx1110x1xxxxxxxx111111xx
7394                                                  uqrshrn.  */
7395                                               return 490;
7396                                             }
7397                                           else
7398                                             {
7399                                               /* 33222222222211111111110000000000
7400                                                  10987654321098765432109876543210
7401                                                  xxxxxxxxxx1111x1xxxxxxxx111111xx
7402                                                  fcvtzu.  */
7403                                               return 492;
7404                                             }
7405                                         }
7406                                     }
7407                                 }
7408                             }
7409                         }
7410                     }
7411                 }
7412             }
7413         }
7414     }
7415 }
7416
7417 /* Lookup opcode WORD in the opcode table.  N.B. all alias
7418    opcodes are ignored here.  */
7419
7420 const aarch64_opcode *
7421 aarch64_opcode_lookup (uint32_t word)
7422 {
7423   return aarch64_opcode_table + aarch64_opcode_lookup_1 (word);
7424 }
7425
7426 const aarch64_opcode *
7427 aarch64_find_next_opcode (const aarch64_opcode *opcode)
7428 {
7429   /* Use the index as the key to locate the next opcode.  */
7430   int key = opcode - aarch64_opcode_table;
7431   int value;
7432   switch (key)
7433     {
7434     case 739: value = 743; break;       /* stnp --> stp.  */
7435     case 743: return NULL;              /* stp --> NULL.  */
7436     case 740: value = 744; break;       /* ldnp --> ldp.  */
7437     case 744: return NULL;              /* ldp --> NULL.  */
7438     case 355: value = 356; break;       /* st4 --> st1.  */
7439     case 356: value = 357; break;       /* st1 --> st2.  */
7440     case 357: value = 358; break;       /* st2 --> st3.  */
7441     case 358: return NULL;              /* st3 --> NULL.  */
7442     case 363: value = 364; break;       /* st4 --> st1.  */
7443     case 364: value = 365; break;       /* st1 --> st2.  */
7444     case 365: value = 366; break;       /* st2 --> st3.  */
7445     case 366: return NULL;              /* st3 --> NULL.  */
7446     case 359: value = 360; break;       /* ld4 --> ld1.  */
7447     case 360: value = 361; break;       /* ld1 --> ld2.  */
7448     case 361: value = 362; break;       /* ld2 --> ld3.  */
7449     case 362: return NULL;              /* ld3 --> NULL.  */
7450     case 375: value = 377; break;       /* ld1 --> ld1r.  */
7451     case 377: return NULL;              /* ld1r --> NULL.  */
7452     case 379: value = 381; break;       /* ld2 --> ld2r.  */
7453     case 381: return NULL;              /* ld2r --> NULL.  */
7454     case 376: value = 378; break;       /* ld3 --> ld3r.  */
7455     case 378: return NULL;              /* ld3r --> NULL.  */
7456     case 380: value = 382; break;       /* ld4 --> ld4r.  */
7457     case 382: return NULL;              /* ld4r --> NULL.  */
7458     case 367: value = 368; break;       /* ld4 --> ld1.  */
7459     case 368: value = 369; break;       /* ld1 --> ld2.  */
7460     case 369: value = 370; break;       /* ld2 --> ld3.  */
7461     case 370: return NULL;              /* ld3 --> NULL.  */
7462     case 387: value = 389; break;       /* ld1 --> ld1r.  */
7463     case 389: return NULL;              /* ld1r --> NULL.  */
7464     case 388: value = 390; break;       /* ld3 --> ld3r.  */
7465     case 390: return NULL;              /* ld3r --> NULL.  */
7466     case 391: value = 393; break;       /* ld2 --> ld2r.  */
7467     case 393: return NULL;              /* ld2r --> NULL.  */
7468     case 392: value = 394; break;       /* ld4 --> ld4r.  */
7469     case 394: return NULL;              /* ld4r --> NULL.  */
7470     case 120: value = 299; break;       /* movi --> sshr.  */
7471     case 299: value = 301; break;       /* sshr --> srshr.  */
7472     case 301: return NULL;              /* srshr --> NULL.  */
7473     case 127: value = 319; break;       /* mvni --> ushr.  */
7474     case 319: value = 321; break;       /* ushr --> urshr.  */
7475     case 321: value = 323; break;       /* urshr --> sri.  */
7476     case 323: value = 325; break;       /* sri --> sqshlu.  */
7477     case 325: return NULL;              /* sqshlu --> NULL.  */
7478     case 121: value = 300; break;       /* orr --> ssra.  */
7479     case 300: value = 302; break;       /* ssra --> srsra.  */
7480     case 302: value = 303; break;       /* srsra --> shl.  */
7481     case 303: value = 304; break;       /* shl --> sqshl.  */
7482     case 304: return NULL;              /* sqshl --> NULL.  */
7483     case 128: value = 320; break;       /* bic --> usra.  */
7484     case 320: value = 322; break;       /* usra --> ursra.  */
7485     case 322: value = 324; break;       /* ursra --> sli.  */
7486     case 324: value = 326; break;       /* sli --> uqshl.  */
7487     case 326: return NULL;              /* uqshl --> NULL.  */
7488     case 122: value = 305; break;       /* movi --> shrn.  */
7489     case 305: value = 306; break;       /* shrn --> shrn2.  */
7490     case 306: value = 313; break;       /* shrn2 --> sshll.  */
7491     case 313: value = 315; break;       /* sshll --> sshll2.  */
7492     case 315: return NULL;              /* sshll2 --> NULL.  */
7493     case 129: value = 327; break;       /* mvni --> sqshrun.  */
7494     case 327: value = 328; break;       /* sqshrun --> sqshrun2.  */
7495     case 328: value = 335; break;       /* sqshrun2 --> ushll.  */
7496     case 335: value = 337; break;       /* ushll --> ushll2.  */
7497     case 337: return NULL;              /* ushll2 --> NULL.  */
7498     case 123: value = 309; break;       /* orr --> sqshrn.  */
7499     case 309: value = 310; break;       /* sqshrn --> sqshrn2.  */
7500     case 310: return NULL;              /* sqshrn2 --> NULL.  */
7501     case 130: value = 331; break;       /* bic --> uqshrn.  */
7502     case 331: value = 332; break;       /* uqshrn --> uqshrn2.  */
7503     case 332: return NULL;              /* uqshrn2 --> NULL.  */
7504     case 125: value = 317; break;       /* movi --> scvtf.  */
7505     case 317: return NULL;              /* scvtf --> NULL.  */
7506     case 132: value = 133; break;       /* movi --> movi.  */
7507     case 133: value = 339; break;       /* movi --> ucvtf.  */
7508     case 339: return NULL;              /* ucvtf --> NULL.  */
7509     default: return NULL;
7510     }
7511
7512   return aarch64_opcode_table + value;
7513 }
7514
7515 const aarch64_opcode *
7516 aarch64_find_alias_opcode (const aarch64_opcode *opcode)
7517 {
7518   /* Use the index as the key to locate the alias opcode.  */
7519   int key = opcode - aarch64_opcode_table;
7520   int value;
7521   switch (key)
7522     {
7523     case 2: value = 3; break;   /* sbc --> ngc.  */
7524     case 4: value = 5; break;   /* sbcs --> ngcs.  */
7525     case 7: value = 8; break;   /* adds --> cmn.  */
7526     case 10: value = 11; break; /* subs --> cmp.  */
7527     case 12: value = 13; break; /* add --> mov.  */
7528     case 14: value = 15; break; /* adds --> cmn.  */
7529     case 17: value = 18; break; /* subs --> cmp.  */
7530     case 20: value = 21; break; /* adds --> cmn.  */
7531     case 22: value = 23; break; /* sub --> neg.  */
7532     case 24: value = 26; break; /* subs --> negs.  */
7533     case 138: value = 139; break;       /* umov --> mov.  */
7534     case 140: value = 141; break;       /* ins --> mov.  */
7535     case 142: value = 143; break;       /* ins --> mov.  */
7536     case 203: value = 204; break;       /* not --> mvn.  */
7537     case 258: value = 259; break;       /* orr --> mov.  */
7538     case 313: value = 314; break;       /* sshll --> sxtl.  */
7539     case 315: value = 316; break;       /* sshll2 --> sxtl2.  */
7540     case 335: value = 336; break;       /* ushll --> uxtl.  */
7541     case 337: value = 338; break;       /* ushll2 --> uxtl2.  */
7542     case 430: value = 431; break;       /* dup --> mov.  */
7543     case 493: value = 498; break;       /* sbfm --> sxtw.  */
7544     case 500: value = 502; break;       /* bfm --> bfxil.  */
7545     case 503: value = 507; break;       /* ubfm --> uxth.  */
7546     case 525: value = 527; break;       /* csinc --> cset.  */
7547     case 528: value = 530; break;       /* csinv --> csetm.  */
7548     case 531: value = 532; break;       /* csneg --> cneg.  */
7549     case 556: value = 557; break;       /* lslv --> lsl.  */
7550     case 558: value = 559; break;       /* lsrv --> lsr.  */
7551     case 560: value = 561; break;       /* asrv --> asr.  */
7552     case 562: value = 563; break;       /* rorv --> ror.  */
7553     case 572: value = 573; break;       /* madd --> mul.  */
7554     case 574: value = 575; break;       /* msub --> mneg.  */
7555     case 576: value = 577; break;       /* smaddl --> smull.  */
7556     case 578: value = 579; break;       /* smsubl --> smnegl.  */
7557     case 581: value = 582; break;       /* umaddl --> umull.  */
7558     case 583: value = 584; break;       /* umsubl --> umnegl.  */
7559     case 594: value = 595; break;       /* extr --> ror.  */
7560     case 693: value = 695; break;       /* sturb --> strb.  */
7561     case 694: value = 696; break;       /* ldurb --> ldrb.  */
7562     case 697: value = 698; break;       /* ldursb --> ldrsb.  */
7563     case 699: value = 701; break;       /* stur --> str.  */
7564     case 700: value = 702; break;       /* ldur --> ldr.  */
7565     case 703: value = 705; break;       /* sturh --> strh.  */
7566     case 704: value = 706; break;       /* ldurh --> ldrh.  */
7567     case 707: value = 708; break;       /* ldursh --> ldrsh.  */
7568     case 709: value = 711; break;       /* stur --> str.  */
7569     case 710: value = 712; break;       /* ldur --> ldr.  */
7570     case 713: value = 714; break;       /* ldursw --> ldrsw.  */
7571     case 715: value = 716; break;       /* prfum --> prfm.  */
7572     case 757: value = 758; break;       /* and --> bic.  */
7573     case 759: value = 760; break;       /* orr --> mov.  */
7574     case 762: value = 763; break;       /* ands --> tst.  */
7575     case 766: value = 768; break;       /* orr --> uxtw.  */
7576     case 769: value = 770; break;       /* orn --> mvn.  */
7577     case 773: value = 774; break;       /* ands --> tst.  */
7578     case 776: value = 777; break;       /* movn --> mov.  */
7579     case 778: value = 779; break;       /* movz --> mov.  */
7580     case 784: value = 790; break;       /* hint --> sevl.  */
7581     case 795: value = 799; break;       /* sys --> tlbi.  */
7582     default: return NULL;
7583     }
7584
7585   return aarch64_opcode_table + value;
7586 }
7587
7588 const aarch64_opcode *
7589 aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
7590 {
7591   /* Use the index as the key to locate the next opcode.  */
7592   int key = opcode - aarch64_opcode_table;
7593   int value;
7594   switch (key)
7595     {
7596     case 26: value = 25; break; /* negs --> cmp.  */
7597     case 498: value = 497; break;       /* sxtw --> sxth.  */
7598     case 497: value = 496; break;       /* sxth --> sxtb.  */
7599     case 496: value = 499; break;       /* sxtb --> asr.  */
7600     case 499: value = 495; break;       /* asr --> sbfx.  */
7601     case 495: value = 494; break;       /* sbfx --> sbfiz.  */
7602     case 502: value = 501; break;       /* bfxil --> bfi.  */
7603     case 507: value = 506; break;       /* uxth --> uxtb.  */
7604     case 506: value = 509; break;       /* uxtb --> lsr.  */
7605     case 509: value = 508; break;       /* lsr --> lsl.  */
7606     case 508: value = 505; break;       /* lsl --> ubfx.  */
7607     case 505: value = 504; break;       /* ubfx --> ubfiz.  */
7608     case 527: value = 526; break;       /* cset --> cinc.  */
7609     case 530: value = 529; break;       /* csetm --> cinv.  */
7610     case 768: value = 767; break;       /* uxtw --> mov.  */
7611     case 790: value = 789; break;       /* sevl --> sev.  */
7612     case 789: value = 788; break;       /* sev --> wfi.  */
7613     case 788: value = 787; break;       /* wfi --> wfe.  */
7614     case 787: value = 786; break;       /* wfe --> yield.  */
7615     case 786: value = 785; break;       /* yield --> nop.  */
7616     case 799: value = 798; break;       /* tlbi --> ic.  */
7617     case 798: value = 797; break;       /* ic --> dc.  */
7618     case 797: value = 796; break;       /* dc --> at.  */
7619     default: return NULL;
7620     }
7621
7622   return aarch64_opcode_table + value;
7623 }
7624
7625 int
7626 aarch64_extract_operand (const aarch64_operand *self,
7627                            aarch64_opnd_info *info,
7628                            aarch64_insn code, const aarch64_inst *inst)
7629 {
7630   /* Use the index as the key.  */
7631   int key = self - aarch64_operands;
7632   switch (key)
7633     {
7634     case 1:
7635     case 2:
7636     case 3:
7637     case 4:
7638     case 5:
7639     case 6:
7640     case 7:
7641     case 9:
7642     case 10:
7643     case 13:
7644     case 14:
7645     case 15:
7646     case 16:
7647     case 18:
7648     case 19:
7649     case 20:
7650     case 21:
7651     case 22:
7652     case 23:
7653     case 24:
7654     case 25:
7655     case 26:
7656     case 34:
7657     case 35:
7658       return aarch64_ext_regno (self, info, code, inst);
7659     case 8:
7660       return aarch64_ext_regrt_sysins (self, info, code, inst);
7661     case 11:
7662       return aarch64_ext_reg_extended (self, info, code, inst);
7663     case 12:
7664       return aarch64_ext_reg_shifted (self, info, code, inst);
7665     case 17:
7666       return aarch64_ext_ft (self, info, code, inst);
7667     case 27:
7668     case 28:
7669     case 29:
7670       return aarch64_ext_reglane (self, info, code, inst);
7671     case 30:
7672       return aarch64_ext_reglist (self, info, code, inst);
7673     case 31:
7674       return aarch64_ext_ldst_reglist (self, info, code, inst);
7675     case 32:
7676       return aarch64_ext_ldst_reglist_r (self, info, code, inst);
7677     case 33:
7678       return aarch64_ext_ldst_elemlist (self, info, code, inst);
7679     case 36:
7680     case 45:
7681     case 46:
7682     case 47:
7683     case 48:
7684     case 49:
7685     case 50:
7686     case 51:
7687     case 52:
7688     case 53:
7689     case 54:
7690     case 55:
7691     case 56:
7692     case 57:
7693     case 64:
7694     case 65:
7695     case 66:
7696     case 67:
7697     case 68:
7698       return aarch64_ext_imm (self, info, code, inst);
7699     case 37:
7700     case 38:
7701       return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
7702     case 39:
7703     case 40:
7704     case 41:
7705       return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
7706     case 42:
7707       return aarch64_ext_shll_imm (self, info, code, inst);
7708     case 58:
7709       return aarch64_ext_limm (self, info, code, inst);
7710     case 59:
7711       return aarch64_ext_aimm (self, info, code, inst);
7712     case 60:
7713       return aarch64_ext_imm_half (self, info, code, inst);
7714     case 61:
7715       return aarch64_ext_fbits (self, info, code, inst);
7716     case 63:
7717       return aarch64_ext_cond (self, info, code, inst);
7718     case 69:
7719     case 75:
7720       return aarch64_ext_addr_simple (self, info, code, inst);
7721     case 70:
7722       return aarch64_ext_addr_regoff (self, info, code, inst);
7723     case 71:
7724     case 72:
7725     case 73:
7726       return aarch64_ext_addr_simm (self, info, code, inst);
7727     case 74:
7728       return aarch64_ext_addr_uimm12 (self, info, code, inst);
7729     case 76:
7730       return aarch64_ext_simd_addr_post (self, info, code, inst);
7731     case 77:
7732       return aarch64_ext_sysreg (self, info, code, inst);
7733     case 78:
7734       return aarch64_ext_pstatefield (self, info, code, inst);
7735     case 79:
7736     case 80:
7737     case 81:
7738     case 82:
7739       return aarch64_ext_sysins_op (self, info, code, inst);
7740     case 83:
7741     case 84:
7742       return aarch64_ext_barrier (self, info, code, inst);
7743     case 85:
7744       return aarch64_ext_prfop (self, info, code, inst);
7745     default: assert (0); abort ();
7746     }
7747 }