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