Add comments on using board file remote-gdbserver-on-localhost.exp
[deliverable/binutils-gdb.git] / opcodes / aarch64-dis-2.c
index cf508aed0ca5ae78add97845d45972f661a84311..3c7d5c6a4b7bd4e77e818e295d30451738dcb450 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright 2012  Free Software Foundation, Inc.
+/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -40,7 +40,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
                          adr.  */
-                      return 769;
+                      return 955;
                     }
                   else
                     {
@@ -48,7 +48,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
                          adrp.  */
-                      return 770;
+                      return 956;
                     }
                 }
               else
@@ -115,7 +115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx0xxxxx000x0010000
                                                  stxrb.  */
-                                              return 705;
+                                              return 713;
                                             }
                                           else
                                             {
@@ -123,7 +123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx0xxxxx000x0010010
                                                  stxrh.  */
-                                              return 711;
+                                              return 719;
                                             }
                                         }
                                       else
@@ -132,16 +132,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxxxx0xxxxx000x00100x1
                                              stxr.  */
-                                          return 717;
+                                          return 725;
                                         }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx100x00100xx
-                                         stxp.  */
-                                      return 719;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx100x00100x0
+                                             casp.  */
+                                          return 790;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx100x00100x1
+                                             stxp.  */
+                                          return 727;
+                                        }
                                     }
                                 }
                               else
@@ -156,7 +167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx1xxxxx000x0010000
                                                  stlxrb.  */
-                                              return 706;
+                                              return 714;
                                             }
                                           else
                                             {
@@ -164,7 +175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx1xxxxx000x0010010
                                                  stlxrh.  */
-                                              return 712;
+                                              return 720;
                                             }
                                         }
                                       else
@@ -173,16 +184,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxxxx1xxxxx000x00100x1
                                              stlxr.  */
-                                          return 718;
+                                          return 726;
                                         }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx100x00100xx
-                                         stlxp.  */
-                                      return 720;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx100x00100x0
+                                             caspl.  */
+                                          return 792;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx100x00100x1
+                                             stlxp.  */
+                                          return 728;
+                                        }
                                     }
                                 }
                             }
@@ -192,39 +214,127 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxx00x00101xx
                                  stnp.  */
-                              return 727;
+                              return 741;
                             }
                         }
                       else
                         {
                           if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 15) & 0x1) == 0)
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx01x0010000
-                                         stlrb.  */
-                                      return 709;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx001x00100x0
+                                             stllrb.  */
+                                          return 739;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx001x00100x1
+                                             stllr.  */
+                                          return 738;
+                                        }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx01x0010010
-                                         stlrh.  */
-                                      return 715;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx101x0010000
+                                                 casb.  */
+                                              return 778;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx101x0010010
+                                                 cash.  */
+                                              return 779;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx101x00100x1
+                                             cas.  */
+                                          return 780;
+                                        }
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx01x00100x1
-                                     stlr.  */
-                                  return 725;
+                                  if (((word >> 21) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx001x0010000
+                                                 stlrb.  */
+                                              return 717;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx001x0010010
+                                                 stlrh.  */
+                                              return 723;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx001x00100x1
+                                             stlr.  */
+                                          return 733;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx101x0010000
+                                                 caslb.  */
+                                              return 782;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx101x0010010
+                                                 caslh.  */
+                                              return 785;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx101x00100x1
+                                             casl.  */
+                                          return 788;
+                                        }
+                                    }
                                 }
                             }
                           else
@@ -233,7 +343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxx01x00101xx
                                  stp.  */
-                              return 736;
+                              return 750;
                             }
                         }
                     }
@@ -255,7 +365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx0xxxxx010x0010000
                                                  ldxrb.  */
-                                              return 707;
+                                              return 715;
                                             }
                                           else
                                             {
@@ -263,7 +373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx0xxxxx010x0010010
                                                  ldxrh.  */
-                                              return 713;
+                                              return 721;
                                             }
                                         }
                                       else
@@ -272,16 +382,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxxxx0xxxxx010x00100x1
                                              ldxr.  */
-                                          return 721;
+                                          return 729;
                                         }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx110x00100xx
-                                         ldxp.  */
-                                      return 723;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx110x00100x0
+                                             caspa.  */
+                                          return 791;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx110x00100x1
+                                             ldxp.  */
+                                          return 731;
+                                        }
                                     }
                                 }
                               else
@@ -296,7 +417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx1xxxxx010x0010000
                                                  ldaxrb.  */
-                                              return 708;
+                                              return 716;
                                             }
                                           else
                                             {
@@ -304,7 +425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxxxxxxx1xxxxx010x0010010
                                                  ldaxrh.  */
-                                              return 714;
+                                              return 722;
                                             }
                                         }
                                       else
@@ -313,16 +434,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxxxx1xxxxx010x00100x1
                                              ldaxr.  */
-                                          return 722;
+                                          return 730;
                                         }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx110x00100xx
-                                         ldaxp.  */
-                                      return 724;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx110x00100x0
+                                             caspal.  */
+                                          return 793;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx110x00100x1
+                                             ldaxp.  */
+                                          return 732;
+                                        }
                                     }
                                 }
                             }
@@ -334,7 +466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx10x001010x
                                      ldnp.  */
-                                  return 728;
+                                  return 742;
                                 }
                               else
                                 {
@@ -342,7 +474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx10x001011x
                                      ldpsw.  */
-                                  return 735;
+                                  return 749;
                                 }
                             }
                         }
@@ -350,32 +482,131 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 15) & 0x1) == 0)
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx11x0010000
-                                         ldarb.  */
-                                      return 710;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx011x0010000
+                                                 ldlarb.  */
+                                              return 736;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx011x0010010
+                                                 ldlarh.  */
+                                              return 737;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx011x00100x1
+                                             ldlar.  */
+                                          return 735;
+                                        }
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx11x0010010
-                                         ldarh.  */
-                                      return 716;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx111x0010000
+                                                 casab.  */
+                                              return 781;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx0xxxxx111x0010010
+                                                 casah.  */
+                                              return 784;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx0xxxxx111x00100x1
+                                             casa.  */
+                                          return 787;
+                                        }
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx11x00100x1
-                                     ldar.  */
-                                  return 726;
+                                  if (((word >> 21) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx011x0010000
+                                                 ldarb.  */
+                                              return 718;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx011x0010010
+                                                 ldarh.  */
+                                              return 724;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx011x00100x1
+                                             ldar.  */
+                                          return 734;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx111x0010000
+                                                 casalb.  */
+                                              return 783;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxxxxxxx1xxxxx111x0010010
+                                                 casalh.  */
+                                              return 786;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxx1xxxxx111x00100x1
+                                             casal.  */
+                                          return 789;
+                                        }
+                                    }
                                 }
                             }
                           else
@@ -386,7 +617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx11x001010x
                                      ldp.  */
-                                  return 737;
+                                  return 751;
                                 }
                               else
                                 {
@@ -394,7 +625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx11x001011x
                                      ldpsw.  */
-                                  return 740;
+                                  return 754;
                                 }
                             }
                         }
@@ -412,7 +643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxxx000110x0
                                  ldr.  */
-                              return 741;
+                              return 755;
                             }
                           else
                             {
@@ -422,7 +653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxxx00011001
                                      ldrsw.  */
-                                  return 743;
+                                  return 757;
                                 }
                               else
                                 {
@@ -430,7 +661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxxx00011011
                                      prfm.  */
-                                  return 744;
+                                  return 758;
                                 }
                             }
                         }
@@ -440,108 +671,1296 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               if (((word >> 11) & 0x1) == 0)
                                 {
-                                  if (((word >> 23) & 0x1) == 0)
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
-                                      if (((word >> 22) & 0x1) == 0)
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxxx0000011100
-                                                     sturb.  */
-                                                  return 681;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00xxxxxxxxx00000011100
+                                                         sturb.  */
+                                                      return 701;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00xxxxxxxxx00000011110
+                                                         sturh.  */
+                                                      return 706;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxxx0000011110
-                                                     sturh.  */
-                                                  return 691;
+                                                     xxxxxxxxxx00xxxxxxxxx000000111x1
+                                                     stur.  */
+                                                  return 709;
                                                 }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxx00000111x1
-                                                 stur.  */
-                                              return 697;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00xxxxxxxxx01000011100
+                                                         ldurb.  */
+                                                      return 702;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00xxxxxxxxx01000011110
+                                                         ldurh.  */
+                                                      return 707;
+                                                    }
+                                                }
+                                              else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxxx1000011100
-                                                     ldurb.  */
-                                                  return 682;
+                                                     xxxxxxxxxx00xxxxxxxxx010000111x1
+                                                     ldur.  */
+                                                  return 710;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx00xxxxxxxxx0x100011100
+                                                     ldursb.  */
+                                                  return 703;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx00xxxxxxxxx0x100011101
+                                                     ldursw.  */
+                                                  return 711;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx00xxxxxxxxx0x100011110
+                                                     ldursh.  */
+                                                  return 708;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxxx1000011110
-                                                     ldurh.  */
-                                                  return 692;
+                                                     xxxxxxxxxx00xxxxxxxxx0x100011111
+                                                     prfum.  */
+                                                  return 712;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 15) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx10000011100
+                                                                         ldaddb.  */
+                                                                      return 806;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx10000011110
+                                                                         ldaddh.  */
+                                                                      return 807;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000000xxxxx100000111x1
+                                                                     ldadd.  */
+                                                                  return 808;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx10100011100
+                                                                         ldaddab.  */
+                                                                      return 809;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx10100011110
+                                                                         ldaddah.  */
+                                                                      return 812;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000000xxxxx101000111x1
+                                                                     ldadda.  */
+                                                                  return 815;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx11000011100
+                                                                         ldaddlb.  */
+                                                                      return 810;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx11000011110
+                                                                         ldaddlh.  */
+                                                                      return 813;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000000xxxxx110000111x1
+                                                                     ldaddl.  */
+                                                                  return 816;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx11100011100
+                                                                         ldaddalb.  */
+                                                                      return 811;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000000xxxxx11100011110
+                                                                         ldaddalh.  */
+                                                                      return 814;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000000xxxxx111000111x1
+                                                                     ldaddal.  */
+                                                                  return 817;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx10000011100
+                                                                         swpb.  */
+                                                                      return 794;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx10000011110
+                                                                         swph.  */
+                                                                      return 795;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000001xxxxx100000111x1
+                                                                     swp.  */
+                                                                  return 796;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx10100011100
+                                                                         swpab.  */
+                                                                      return 797;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx10100011110
+                                                                         swpah.  */
+                                                                      return 800;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000001xxxxx101000111x1
+                                                                     swpa.  */
+                                                                  return 803;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx11000011100
+                                                                         swplb.  */
+                                                                      return 798;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx11000011110
+                                                                         swplh.  */
+                                                                      return 801;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000001xxxxx110000111x1
+                                                                     swpl.  */
+                                                                  return 804;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx11100011100
+                                                                         swpalb.  */
+                                                                      return 799;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xxxxxxxxxx000001xxxxx11100011110
+                                                                         swpalh.  */
+                                                                      return 802;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx000001xxxxx111000111x1
+                                                                     swpal.  */
+                                                                  return 805;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx10000011100
+                                                                     ldsmaxb.  */
+                                                                  return 854;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx10000011110
+                                                                     ldsmaxh.  */
+                                                                  return 855;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00001xxxxxx100000111x1
+                                                                 ldsmax.  */
+                                                              return 856;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx10100011100
+                                                                     ldsmaxab.  */
+                                                                  return 857;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx10100011110
+                                                                     ldsmaxah.  */
+                                                                  return 860;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00001xxxxxx101000111x1
+                                                                 ldsmaxa.  */
+                                                              return 863;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx11000011100
+                                                                     ldsmaxlb.  */
+                                                                  return 858;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx11000011110
+                                                                     ldsmaxlh.  */
+                                                                  return 861;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00001xxxxxx110000111x1
+                                                                 ldsmaxl.  */
+                                                              return 864;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx11100011100
+                                                                     ldsmaxalb.  */
+                                                                  return 859;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00001xxxxxx11100011110
+                                                                     ldsmaxalh.  */
+                                                                  return 862;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00001xxxxxx111000111x1
+                                                                 ldsmaxal.  */
+                                                              return 865;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx10000011100
+                                                                     ldeorb.  */
+                                                                  return 830;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx10000011110
+                                                                     ldeorh.  */
+                                                                  return 831;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00010xxxxxx100000111x1
+                                                                 ldeor.  */
+                                                              return 832;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx10100011100
+                                                                     ldeorab.  */
+                                                                  return 833;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx10100011110
+                                                                     ldeorah.  */
+                                                                  return 836;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00010xxxxxx101000111x1
+                                                                 ldeora.  */
+                                                              return 839;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx11000011100
+                                                                     ldeorlb.  */
+                                                                  return 834;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx11000011110
+                                                                     ldeorlh.  */
+                                                                  return 837;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00010xxxxxx110000111x1
+                                                                 ldeorl.  */
+                                                              return 840;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx11100011100
+                                                                     ldeoralb.  */
+                                                                  return 835;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00010xxxxxx11100011110
+                                                                     ldeoralh.  */
+                                                                  return 838;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00010xxxxxx111000111x1
+                                                                 ldeoral.  */
+                                                              return 841;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx10000011100
+                                                                     ldumaxb.  */
+                                                                  return 878;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx10000011110
+                                                                     ldumaxh.  */
+                                                                  return 879;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00011xxxxxx100000111x1
+                                                                 ldumax.  */
+                                                              return 880;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx10100011100
+                                                                     ldumaxab.  */
+                                                                  return 881;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx10100011110
+                                                                     ldumaxah.  */
+                                                                  return 884;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00011xxxxxx101000111x1
+                                                                 ldumaxa.  */
+                                                              return 887;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx11000011100
+                                                                     ldumaxlb.  */
+                                                                  return 882;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx11000011110
+                                                                     ldumaxlh.  */
+                                                                  return 885;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00011xxxxxx110000111x1
+                                                                 ldumaxl.  */
+                                                              return 888;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx11100011100
+                                                                     ldumaxalb.  */
+                                                                  return 883;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00011xxxxxx11100011110
+                                                                     ldumaxalh.  */
+                                                                  return 886;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00011xxxxxx111000111x1
+                                                                 ldumaxal.  */
+                                                              return 889;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx10000011100
+                                                                     ldclrb.  */
+                                                                  return 818;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx10000011110
+                                                                     ldclrh.  */
+                                                                  return 819;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00100xxxxxx100000111x1
+                                                                 ldclr.  */
+                                                              return 820;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx10100011100
+                                                                     ldclrab.  */
+                                                                  return 821;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx10100011110
+                                                                     ldclrah.  */
+                                                                  return 824;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00100xxxxxx101000111x1
+                                                                 ldclra.  */
+                                                              return 827;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx11000011100
+                                                                     ldclrlb.  */
+                                                                  return 822;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx11000011110
+                                                                     ldclrlh.  */
+                                                                  return 825;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00100xxxxxx110000111x1
+                                                                 ldclrl.  */
+                                                              return 828;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx11100011100
+                                                                     ldclralb.  */
+                                                                  return 823;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00100xxxxxx11100011110
+                                                                     ldclralh.  */
+                                                                  return 826;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00100xxxxxx111000111x1
+                                                                 ldclral.  */
+                                                              return 829;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx10000011100
+                                                                     ldsminb.  */
+                                                                  return 866;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx10000011110
+                                                                     ldsminh.  */
+                                                                  return 867;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00101xxxxxx100000111x1
+                                                                 ldsmin.  */
+                                                              return 868;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx10100011100
+                                                                     ldsminab.  */
+                                                                  return 869;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx10100011110
+                                                                     ldsminah.  */
+                                                                  return 872;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00101xxxxxx101000111x1
+                                                                 ldsmina.  */
+                                                              return 875;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx11000011100
+                                                                     ldsminlb.  */
+                                                                  return 870;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx11000011110
+                                                                     ldsminlh.  */
+                                                                  return 873;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00101xxxxxx110000111x1
+                                                                 ldsminl.  */
+                                                              return 876;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx11100011100
+                                                                     ldsminalb.  */
+                                                                  return 871;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00101xxxxxx11100011110
+                                                                     ldsminalh.  */
+                                                                  return 874;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00101xxxxxx111000111x1
+                                                                 ldsminal.  */
+                                                              return 877;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx10000011100
+                                                                     ldsetb.  */
+                                                                  return 842;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx10000011110
+                                                                     ldseth.  */
+                                                                  return 843;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00110xxxxxx100000111x1
+                                                                 ldset.  */
+                                                              return 844;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx10100011100
+                                                                     ldsetab.  */
+                                                                  return 845;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx10100011110
+                                                                     ldsetah.  */
+                                                                  return 848;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00110xxxxxx101000111x1
+                                                                 ldseta.  */
+                                                              return 851;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx11000011100
+                                                                     ldsetlb.  */
+                                                                  return 846;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx11000011110
+                                                                     ldsetlh.  */
+                                                                  return 849;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00110xxxxxx110000111x1
+                                                                 ldsetl.  */
+                                                              return 852;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx11100011100
+                                                                     ldsetalb.  */
+                                                                  return 847;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00110xxxxxx11100011110
+                                                                     ldsetalh.  */
+                                                                  return 850;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00110xxxxxx111000111x1
+                                                                 ldsetal.  */
+                                                              return 853;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx10000011100
+                                                                     lduminb.  */
+                                                                  return 890;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx10000011110
+                                                                     lduminh.  */
+                                                                  return 891;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00111xxxxxx100000111x1
+                                                                 ldumin.  */
+                                                              return 892;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx10100011100
+                                                                     lduminab.  */
+                                                                  return 893;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx10100011110
+                                                                     lduminah.  */
+                                                                  return 896;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00111xxxxxx101000111x1
+                                                                 ldumina.  */
+                                                              return 899;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx11000011100
+                                                                     lduminlb.  */
+                                                                  return 894;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx11000011110
+                                                                     lduminlh.  */
+                                                                  return 897;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00111xxxxxx110000111x1
+                                                                 lduminl.  */
+                                                              return 900;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx11100011100
+                                                                     lduminalb.  */
+                                                                  return 895;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxxxxxxxxx00111xxxxxx11100011110
+                                                                     lduminalh.  */
+                                                                  return 898;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxxxxxxxxx00111xxxxxx111000111x1
+                                                                 lduminal.  */
+                                                              return 901;
+                                                            }
+                                                        }
+                                                    }
                                                 }
                                             }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxx10000111x1
-                                                 ldur.  */
-                                              return 698;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxxx100011100
-                                                 ldursb.  */
-                                              return 685;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxxx100011101
-                                                 ldursw.  */
-                                              return 701;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxxx100011110
-                                                 ldursh.  */
-                                              return 695;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxxxx100011111
-                                                 prfum.  */
-                                              return 703;
-                                            }
                                         }
                                     }
                                 }
@@ -561,7 +1980,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx00000011100
                                                          sttrb.  */
-                                                      return 672;
+                                                      return 692;
                                                     }
                                                   else
                                                     {
@@ -569,7 +1988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx00000011110
                                                          sttrh.  */
-                                                      return 675;
+                                                      return 695;
                                                     }
                                                 }
                                               else
@@ -578,7 +1997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx000000111x1
                                                      sttr.  */
-                                                  return 678;
+                                                  return 698;
                                                 }
                                             }
                                           else
@@ -591,7 +2010,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx01000011100
                                                          ldtrb.  */
-                                                      return 673;
+                                                      return 693;
                                                     }
                                                   else
                                                     {
@@ -599,7 +2018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx01000011110
                                                          ldtrh.  */
-                                                      return 676;
+                                                      return 696;
                                                     }
                                                 }
                                               else
@@ -608,7 +2027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx010000111x1
                                                      ldtr.  */
-                                                  return 679;
+                                                  return 699;
                                                 }
                                             }
                                         }
@@ -622,7 +2041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx0x100011100
                                                      ldtrsb.  */
-                                                  return 674;
+                                                  return 694;
                                                 }
                                               else
                                                 {
@@ -630,7 +2049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx0x100011101
                                                      ldtrsw.  */
-                                                  return 680;
+                                                  return 700;
                                                 }
                                             }
                                           else
@@ -639,7 +2058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx01xxxxxxxxx0x10001111x
                                                  ldtrsh.  */
-                                              return 677;
+                                              return 697;
                                             }
                                         }
                                     }
@@ -657,7 +2076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx10000011100
                                                          strb.  */
-                                                      return 660;
+                                                      return 680;
                                                     }
                                                   else
                                                     {
@@ -665,7 +2084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx10000011110
                                                          strh.  */
-                                                      return 665;
+                                                      return 685;
                                                     }
                                                 }
                                               else
@@ -674,7 +2093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx100000111x1
                                                      str.  */
-                                                  return 668;
+                                                  return 688;
                                                 }
                                             }
                                           else
@@ -687,7 +2106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx11000011100
                                                          ldrb.  */
-                                                      return 661;
+                                                      return 681;
                                                     }
                                                   else
                                                     {
@@ -695,7 +2114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx01xxxxxxxxx11000011110
                                                          ldrh.  */
-                                                      return 666;
+                                                      return 686;
                                                     }
                                                 }
                                               else
@@ -704,7 +2123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx110000111x1
                                                      ldr.  */
-                                                  return 669;
+                                                  return 689;
                                                 }
                                             }
                                         }
@@ -718,7 +2137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx1x100011100
                                                      ldrsb.  */
-                                                  return 662;
+                                                  return 682;
                                                 }
                                               else
                                                 {
@@ -726,7 +2145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx1x100011101
                                                      ldrsw.  */
-                                                  return 670;
+                                                  return 690;
                                                 }
                                             }
                                           else
@@ -737,7 +2156,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx1x100011110
                                                      ldrsh.  */
-                                                  return 667;
+                                                  return 687;
                                                 }
                                               else
                                                 {
@@ -745,7 +2164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01xxxxxxxxx1x100011111
                                                      prfm.  */
-                                                  return 671;
+                                                  return 691;
                                                 }
                                             }
                                         }
@@ -766,7 +2185,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1xxxxxxxxxxx0000011100
                                                  strb.  */
-                                              return 637;
+                                              return 657;
                                             }
                                           else
                                             {
@@ -774,7 +2193,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1xxxxxxxxxxx0000011110
                                                  strh.  */
-                                              return 642;
+                                              return 662;
                                             }
                                         }
                                       else
@@ -783,7 +2202,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx1xxxxxxxxxxx00000111x1
                                              str.  */
-                                          return 645;
+                                          return 665;
                                         }
                                     }
                                   else
@@ -796,7 +2215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1xxxxxxxxxxx1000011100
                                                  ldrb.  */
-                                              return 638;
+                                              return 658;
                                             }
                                           else
                                             {
@@ -804,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1xxxxxxxxxxx1000011110
                                                  ldrh.  */
-                                              return 643;
+                                              return 663;
                                             }
                                         }
                                       else
@@ -813,7 +2232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx1xxxxxxxxxxx10000111x1
                                              ldr.  */
-                                          return 646;
+                                          return 666;
                                         }
                                     }
                                 }
@@ -827,7 +2246,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx1xxxxxxxxxxxx100011100
                                              ldrsb.  */
-                                          return 639;
+                                          return 659;
                                         }
                                       else
                                         {
@@ -835,7 +2254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx1xxxxxxxxxxxx100011101
                                              ldrsw.  */
-                                          return 647;
+                                          return 667;
                                         }
                                     }
                                   else
@@ -844,7 +2263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx1xxxxxxxxxxxx10001111x
                                          ldrsh.  */
-                                      return 644;
+                                      return 664;
                                     }
                                 }
                             }
@@ -864,7 +2283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxxx0010011x00
                                          strb.  */
-                                      return 648;
+                                      return 668;
                                     }
                                   else
                                     {
@@ -872,7 +2291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxxx0010011x10
                                          strh.  */
-                                      return 653;
+                                      return 673;
                                     }
                                 }
                               else
@@ -881,7 +2300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx0010011xx1
                                      str.  */
-                                  return 656;
+                                  return 676;
                                 }
                             }
                           else
@@ -894,7 +2313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxxx1010011x00
                                          ldrb.  */
-                                      return 649;
+                                      return 669;
                                     }
                                   else
                                     {
@@ -902,7 +2321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxxx1010011x10
                                          ldrh.  */
-                                      return 654;
+                                      return 674;
                                     }
                                 }
                               else
@@ -911,7 +2330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx1010011xx1
                                      ldr.  */
-                                  return 657;
+                                  return 677;
                                 }
                             }
                         }
@@ -925,7 +2344,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxx110011x00
                                      ldrsb.  */
-                                  return 650;
+                                  return 670;
                                 }
                               else
                                 {
@@ -933,7 +2352,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxx110011x01
                                      ldrsw.  */
-                                  return 658;
+                                  return 678;
                                 }
                             }
                           else
@@ -944,7 +2363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxx110011x10
                                      ldrsh.  */
-                                  return 655;
+                                  return 675;
                                 }
                               else
                                 {
@@ -952,7 +2371,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxxx110011x11
                                      prfm.  */
-                                  return 659;
+                                  return 679;
                                 }
                             }
                         }
@@ -976,7 +2395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx00100x00x
                                  and.  */
-                              return 745;
+                              return 759;
                             }
                           else
                             {
@@ -984,7 +2403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx00100x01x
                                  eor.  */
-                              return 749;
+                              return 763;
                             }
                         }
                       else
@@ -995,7 +2414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx00100x10x
                                  orr.  */
-                              return 747;
+                              return 761;
                             }
                           else
                             {
@@ -1003,7 +2422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx00100x11x
                                  ands.  */
-                              return 750;
+                              return 764;
                             }
                         }
                     }
@@ -1017,7 +2436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx10100x00x
                                  movn.  */
-                              return 764;
+                              return 950;
                             }
                           else
                             {
@@ -1025,7 +2444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx10100x01x
                                  movz.  */
-                              return 766;
+                              return 952;
                             }
                         }
                       else
@@ -1034,7 +2453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxxxxxxxxxxxxxxxxxxxxxx10100x1xx
                              movk.  */
-                          return 768;
+                          return 954;
                         }
                     }
                 }
@@ -1052,7 +2471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx0xx0101000x
                                      and.  */
-                                  return 752;
+                                  return 766;
                                 }
                               else
                                 {
@@ -1060,7 +2479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx0xx0101001x
                                      eor.  */
-                                  return 759;
+                                  return 773;
                                 }
                             }
                           else
@@ -1071,7 +2490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx0xx0101010x
                                      orr.  */
-                                  return 754;
+                                  return 768;
                                 }
                               else
                                 {
@@ -1079,7 +2498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx0xx0101011x
                                      ands.  */
-                                  return 761;
+                                  return 775;
                                 }
                             }
                         }
@@ -1140,7 +2559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx00xxxxxxxxx00101011x0x
                                                  csel.  */
-                                              return 520;
+                                              return 532;
                                             }
                                           else
                                             {
@@ -1148,7 +2567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx00xxxxxxxxx00101011x1x
                                                  csinv.  */
-                                              return 524;
+                                              return 536;
                                             }
                                         }
                                     }
@@ -1162,7 +2581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx00xxxxxxxxx01001011x0x
                                                  ccmn.  */
-                                              return 518;
+                                              return 530;
                                             }
                                           else
                                             {
@@ -1170,7 +2589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx00xxxxxxxxx01001011x1x
                                                  ccmp.  */
-                                              return 519;
+                                              return 531;
                                             }
                                         }
                                       else
@@ -1179,11 +2598,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx0000xxxxxxx01101011xxx
-                                                     rbit.  */
-                                                  return 543;
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00000xxxxxx01101011xxx
+                                                         rbit.  */
+                                                      return 555;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx00001xxxxxx01101011xxx
+                                                         crc32b.  */
+                                                      return 572;
+                                                    }
                                                 }
                                               else
                                                 {
@@ -1191,16 +2621,27 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx0001xxxxxxx01101011xxx
                                                      lslv.  */
-                                                  return 552;
+                                                  return 564;
                                                 }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx001xxxxxxxx01101011xxx
-                                                 clz.  */
-                                              return 547;
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx001x0xxxxxx01101011xxx
+                                                     clz.  */
+                                                  return 559;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx001x1xxxxxx01101011xxx
+                                                     crc32cb.  */
+                                                  return 576;
+                                                }
                                             }
                                         }
                                     }
@@ -1215,7 +2656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx01xxxxxxxxx0x001011x0x
                                              ccmn.  */
-                                          return 516;
+                                          return 528;
                                         }
                                       else
                                         {
@@ -1223,48 +2664,70 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx01xxxxxxxxx0x001011x1x
                                              ccmp.  */
-                                          return 517;
+                                          return 529;
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx01x0xxxxxxx0x101011x0x
-                                                 udiv.  */
-                                              return 550;
-                                            }
-                                          else
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01x0xxxxxxx0x101011x10
-                                                     rev.  */
-                                                  return 545;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxxxxxxxxx01000xxxxxx0x101011x0x
+                                                         udiv.  */
+                                                      return 562;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxxxxxxxxx01000xxxxxx0x101011x10
+                                                             rev.  */
+                                                          return 557;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxxxxxxxxx01000xxxxxx0x101011x11
+                                                             rev32.  */
+                                                          return 561;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01x0xxxxxxx0x101011x11
-                                                     rev32.  */
-                                                  return 549;
+                                                     xxxxxxxxxx01001xxxxxx0x101011xxx
+                                                     crc32w.  */
+                                                  return 574;
                                                 }
                                             }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx0101xxxxxxx0x101011xxx
+                                                 asrv.  */
+                                              return 568;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx01x1xxxxxxx0x101011xxx
-                                             asrv.  */
-                                          return 556;
+                                             xxxxxxxxxx011xxxxxxxx0x101011xxx
+                                             crc32cw.  */
+                                          return 578;
                                         }
                                     }
                                 }
@@ -1281,7 +2744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx10xxxxxxxxx00x01011x0x
                                              csinc.  */
-                                          return 521;
+                                          return 533;
                                         }
                                       else
                                         {
@@ -1289,7 +2752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx10xxxxxxxxx00x01011x1x
                                              csneg.  */
-                                          return 527;
+                                          return 539;
                                         }
                                     }
                                   else
@@ -1298,11 +2761,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           if (((word >> 13) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1000xxxxxxx01x01011xxx
-                                                 rev16.  */
-                                              return 544;
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx10000xxxxxx01x01011xxx
+                                                     rev16.  */
+                                                  return 556;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx10001xxxxxx01x01011xxx
+                                                     crc32h.  */
+                                                  return 573;
+                                                }
                                             }
                                           else
                                             {
@@ -1310,47 +2784,80 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1001xxxxxxx01x01011xxx
                                                  lsrv.  */
-                                              return 554;
+                                              return 566;
                                             }
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx101xxxxxxxx01x01011xxx
-                                             cls.  */
-                                          return 548;
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx101x0xxxxxx01x01011xxx
+                                                 cls.  */
+                                              return 560;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx101x1xxxxxx01x01011xxx
+                                                 crc32ch.  */
+                                              return 577;
+                                            }
                                         }
                                     }
                                 }
                               else
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  if (((word >> 12) & 0x1) == 0)
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx11x0xxxxxxx0xx01011x0x
-                                             sdiv.  */
-                                          return 551;
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx11000xxxxxx0xx01011x0x
+                                                     sdiv.  */
+                                                  return 563;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx11000xxxxxx0xx01011x1x
+                                                     rev.  */
+                                                  return 558;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx11001xxxxxx0xx01011xxx
+                                                 crc32x.  */
+                                              return 575;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx11x0xxxxxxx0xx01011x1x
-                                             rev.  */
-                                          return 546;
+                                             xxxxxxxxxx1101xxxxxxx0xx01011xxx
+                                             rorv.  */
+                                          return 570;
                                         }
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx11x1xxxxxxx0xx01011xxx
-                                         rorv.  */
-                                      return 558;
+                                         xxxxxxxxxx111xxxxxxxx0xx01011xxx
+                                         crc32cx.  */
+                                      return 579;
                                     }
                                 }
                             }
@@ -1366,7 +2873,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x00x
                                  bic.  */
-                              return 753;
+                              return 767;
                             }
                           else
                             {
@@ -1374,7 +2881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x01x
                                  eon.  */
-                              return 760;
+                              return 774;
                             }
                         }
                       else
@@ -1385,7 +2892,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x10x
                                  orn.  */
-                              return 757;
+                              return 771;
                             }
                           else
                             {
@@ -1393,7 +2900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxx1xx0101x11x
                                  bics.  */
-                              return 763;
+                              return 777;
                             }
                         }
                     }
@@ -1413,7 +2920,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx01100x00x
                                  sbfm.  */
-                              return 489;
+                              return 501;
                             }
                           else
                             {
@@ -1421,7 +2928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxx01100x01x
                                  ubfm.  */
-                              return 499;
+                              return 511;
                             }
                         }
                       else
@@ -1430,7 +2937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxxxxxxxxxxxxxxxxxxxxxx01100x1xx
                              bfm.  */
-                          return 496;
+                          return 508;
                         }
                     }
                   else
@@ -1439,7 +2946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxx11100xxxx
                          extr.  */
-                      return 582;
+                      return 602;
                     }
                 }
               else
@@ -1497,7 +3004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxx0xxxxx00x11011xxx
                                      madd.  */
-                                  return 560;
+                                  return 580;
                                 }
                               else
                                 {
@@ -1507,7 +3014,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx0xxxxx01011011xxx
                                          smulh.  */
-                                      return 568;
+                                      return 588;
                                     }
                                   else
                                     {
@@ -1515,7 +3022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx0xxxxx01111011xxx
                                          umulh.  */
-                                      return 573;
+                                      return 593;
                                     }
                                 }
                             }
@@ -1525,7 +3032,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxx1xxxxx0xx11011xxx
                                  msub.  */
-                              return 562;
+                              return 582;
                             }
                         }
                     }
@@ -1582,7 +3089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxx0xxxxx1x011011xxx
                                      smaddl.  */
-                                  return 564;
+                                  return 584;
                                 }
                               else
                                 {
@@ -1590,7 +3097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxx1xxxxx1x011011xxx
                                      smsubl.  */
-                                  return 566;
+                                  return 586;
                                 }
                             }
                         }
@@ -1602,7 +3109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxx0xxxxx1x11101xxxx
                                  umaddl.  */
-                              return 569;
+                              return 589;
                             }
                           else
                             {
@@ -1610,7 +3117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxx1xxxxx1x11101xxxx
                                  umsubl.  */
-                              return 571;
+                              return 591;
                             }
                         }
                     }
@@ -1632,7 +3139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxxxx10x000
                          b.  */
-                      return 506;
+                      return 518;
                     }
                   else
                     {
@@ -1640,7 +3147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxxxx10x001
                          bl.  */
-                      return 507;
+                      return 519;
                     }
                 }
               else
@@ -1655,7 +3162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxxxx0010x010
                                  b.c.  */
-                              return 515;
+                              return 527;
                             }
                           else
                             {
@@ -1669,7 +3176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              00xxxxxxxxxxxxxxxxxxx0xx0010x011
                                              hlt.  */
-                                          return 578;
+                                          return 598;
                                         }
                                       else
                                         {
@@ -1677,7 +3184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              00xxxxxxxxxxxxxxxxxxx1xx0010x011
                                              brk.  */
-                                          return 577;
+                                          return 597;
                                         }
                                     }
                                   else
@@ -1688,7 +3195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              01xxxxxxxxxxxxxxxxxxx0xx0010x011
                                              hvc.  */
-                                          return 575;
+                                          return 595;
                                         }
                                       else
                                         {
@@ -1696,7 +3203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              01xxxxxxxxxxxxxxxxxxx1xx0010x011
                                              dcps2.  */
-                                          return 580;
+                                          return 600;
                                         }
                                     }
                                 }
@@ -1710,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              10xxxxxxxxxxxxxxxxxxx0xx0010x011
                                              svc.  */
-                                          return 574;
+                                          return 594;
                                         }
                                       else
                                         {
@@ -1718,7 +3225,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              10xxxxxxxxxxxxxxxxxxx1xx0010x011
                                              dcps1.  */
-                                          return 579;
+                                          return 599;
                                         }
                                     }
                                   else
@@ -1729,7 +3236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              11xxxxxxxxxxxxxxxxxxx0xx0010x011
                                              smc.  */
-                                          return 576;
+                                          return 596;
                                         }
                                       else
                                         {
@@ -1737,7 +3244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              11xxxxxxxxxxxxxxxxxxx1xx0010x011
                                              dcps3.  */
-                                          return 581;
+                                          return 601;
                                         }
                                     }
                                 }
@@ -1755,7 +3262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxx0000110x01x
                                          br.  */
-                                      return 508;
+                                      return 520;
                                     }
                                   else
                                     {
@@ -1763,7 +3270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxx0010110x01x
                                          eret.  */
-                                      return 511;
+                                      return 523;
                                     }
                                 }
                               else
@@ -1772,7 +3279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx01x0110x01x
                                      ret.  */
-                                  return 510;
+                                  return 522;
                                 }
                             }
                           else
@@ -1783,7 +3290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx1x00110x01x
                                      blr.  */
-                                  return 509;
+                                  return 521;
                                 }
                               else
                                 {
@@ -1791,116 +3298,28 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxx1x10110x01x
                                      drps.  */
-                                  return 512;
+                                  return 524;
                                 }
                             }
                         }
                     }
                   else
                     {
-                      if (((word >> 20) & 0x1) == 0)
-                        {
-                          if (((word >> 19) & 0x1) == 0)
-                            {
-                              if (((word >> 12) & 0x1) == 0)
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxx00xxxxx00xxx1x10x01x
-                                         msr.  */
-                                      return 771;
-                                    }
-                                  else
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxx01xxxxx00xxx1x10x01x
-                                         hint.  */
-                                      return 772;
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 5) & 0x1) == 0)
-                                    {
-                                      if (((word >> 6) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxx00xxxxx1xxxxxx00xxx1x10x01x
-                                             dsb.  */
-                                          return 780;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 7) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxx010xxxx1xxxxxx00xxx1x10x01x
-                                                 clrex.  */
-                                              return 779;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxx011xxxx1xxxxxx00xxx1x10x01x
-                                                 isb.  */
-                                              return 782;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxx1xxxxxx1xxxxxx00xxx1x10x01x
-                                         dmb.  */
-                                      return 781;
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 21) & 0x1) == 0)
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxx100xx1x10x01x
-                                     sys.  */
-                                  return 783;
-                                }
-                              else
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxx101xx1x10x01x
-                                     sysl.  */
-                                  return 789;
-                                }
-                            }
+                      if (((word >> 21) & 0x1) == 0)
+                        {
+                          /* 33222222222211111111110000000000
+                             10987654321098765432109876543210
+                             xxxxxxxxxxxxxxxxxxxxx0xx1x10x01x
+                             msr.  */
+                          return 957;
                         }
                       else
                         {
-                          if (((word >> 21) & 0x1) == 0)
-                            {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxx10xx1x10x01x
-                                 msr.  */
-                              return 788;
-                            }
-                          else
-                            {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxx11xx1x10x01x
-                                 mrs.  */
-                              return 790;
-                            }
+                          /* 33222222222211111111110000000000
+                             10987654321098765432109876543210
+                             xxxxxxxxxxxxxxxxxxxxx1xx1x10x01x
+                             sysl.  */
+                          return 975;
                         }
                     }
                 }
@@ -1915,7 +3334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx0010x1xx
                          cbz.  */
-                      return 513;
+                      return 525;
                     }
                   else
                     {
@@ -1923,7 +3342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx0110x1xx
                          tbz.  */
-                      return 791;
+                      return 977;
                     }
                 }
               else
@@ -1934,7 +3353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx1010x1xx
                          cbnz.  */
-                      return 514;
+                      return 526;
                     }
                   else
                     {
@@ -1942,7 +3361,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxxxxxxxxxxxxxxxxxxxxxx1110x1xx
                          tbnz.  */
-                      return 792;
+                      return 978;
                     }
                 }
             }
@@ -1965,7 +3384,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx00001100xx
                                      st4.  */
-                                  return 351;
+                                  return 361;
                                 }
                               else
                                 {
@@ -1973,7 +3392,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx00001101xx
                                      stnp.  */
-                                  return 729;
+                                  return 743;
                                 }
                             }
                           else
@@ -1988,7 +3407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx000101100xx
                                              st1.  */
-                                          return 367;
+                                          return 377;
                                         }
                                       else
                                         {
@@ -1996,7 +3415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx100101100xx
                                              st2.  */
-                                          return 369;
+                                          return 379;
                                         }
                                     }
                                   else
@@ -2007,7 +3426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx000101100xx
                                              st3.  */
-                                          return 368;
+                                          return 378;
                                         }
                                       else
                                         {
@@ -2015,7 +3434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx100101100xx
                                              st4.  */
-                                          return 370;
+                                          return 380;
                                         }
                                     }
                                 }
@@ -2025,7 +3444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx00101101xx
                                      stp.  */
-                                  return 733;
+                                  return 747;
                                 }
                             }
                         }
@@ -2041,7 +3460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxx001001100xx
                                          st4.  */
-                                      return 359;
+                                      return 369;
                                     }
                                   else
                                     {
@@ -2051,7 +3470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx001101100xx
                                              st1.  */
-                                          return 379;
+                                          return 389;
                                         }
                                       else
                                         {
@@ -2059,7 +3478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx001101100xx
                                              st3.  */
-                                          return 380;
+                                          return 390;
                                         }
                                     }
                                 }
@@ -2071,7 +3490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxx0xxxxxxx101x01100xx
                                          st2.  */
-                                      return 381;
+                                      return 391;
                                     }
                                   else
                                     {
@@ -2079,7 +3498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxx1xxxxxxx101x01100xx
                                          st4.  */
-                                      return 382;
+                                      return 392;
                                     }
                                 }
                             }
@@ -2089,7 +3508,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxx01x01101xx
                                  stp.  */
-                              return 738;
+                              return 752;
                             }
                         }
                     }
@@ -2105,7 +3524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx10001100xx
                                      ld4.  */
-                                  return 355;
+                                  return 365;
                                 }
                               else
                                 {
@@ -2113,7 +3532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx10001101xx
                                      ldnp.  */
-                                  return 730;
+                                  return 744;
                                 }
                             }
                           else
@@ -2128,7 +3547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx010101100xx
                                              ld1.  */
-                                          return 371;
+                                          return 381;
                                         }
                                       else
                                         {
@@ -2136,7 +3555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx110101100xx
                                              ld2.  */
-                                          return 375;
+                                          return 385;
                                         }
                                     }
                                   else
@@ -2147,7 +3566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx010101100xx
                                              ld3.  */
-                                          return 372;
+                                          return 382;
                                         }
                                       else
                                         {
@@ -2155,7 +3574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx110101100xx
                                              ld4.  */
-                                          return 376;
+                                          return 386;
                                         }
                                     }
                                 }
@@ -2165,7 +3584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxxxxxxxxxxxxxx10101101xx
                                      ldp.  */
-                                  return 734;
+                                  return 748;
                                 }
                             }
                         }
@@ -2181,7 +3600,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxxxxxxxx011001100xx
                                          ld4.  */
-                                      return 363;
+                                      return 373;
                                     }
                                   else
                                     {
@@ -2191,7 +3610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx0xxxxxxx011101100xx
                                              ld1.  */
-                                          return 383;
+                                          return 393;
                                         }
                                       else
                                         {
@@ -2199,7 +3618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxxx1xxxxxxx011101100xx
                                              ld3.  */
-                                          return 384;
+                                          return 394;
                                         }
                                     }
                                 }
@@ -2211,7 +3630,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxx0xxxxxxx111x01100xx
                                          ld2.  */
-                                      return 387;
+                                      return 397;
                                     }
                                   else
                                     {
@@ -2219,7 +3638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxx1xxxxxxx111x01100xx
                                          ld4.  */
-                                      return 388;
+                                      return 398;
                                     }
                                 }
                             }
@@ -2229,7 +3648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xxxxxxxxxxxxxxxxxxxxxx11x01101xx
                                  ldp.  */
-                              return 739;
+                              return 753;
                             }
                         }
                     }
@@ -2244,7 +3663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxxxxxxxxxxxxxxxxxxxxxxx001110xx
                              ldr.  */
-                          return 742;
+                          return 756;
                         }
                       else
                         {
@@ -2258,7 +3677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx00xxxxxxxxxx0x001111xx
                                          stur.  */
-                                      return 687;
+                                      return 704;
                                     }
                                   else
                                     {
@@ -2266,7 +3685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx00xxxxxxxxxx1x001111xx
                                          ldur.  */
-                                      return 688;
+                                      return 705;
                                     }
                                 }
                               else
@@ -2277,7 +3696,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx01xxxxxxxxxx0x001111xx
                                          str.  */
-                                      return 663;
+                                      return 683;
                                     }
                                   else
                                     {
@@ -2285,7 +3704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx01xxxxxxxxxx1x001111xx
                                          ldr.  */
-                                      return 664;
+                                      return 684;
                                     }
                                 }
                             }
@@ -2297,7 +3716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxx1xxxxxxxxxxx0x001111xx
                                      str.  */
-                                  return 640;
+                                  return 660;
                                 }
                               else
                                 {
@@ -2305,7 +3724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxx1xxxxxxxxxxx1x001111xx
                                      ldr.  */
-                                  return 641;
+                                  return 661;
                                 }
                             }
                         }
@@ -2318,7 +3737,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxxxxxxxxxxxxxxxxxxxxx0x10111xxx
                              str.  */
-                          return 651;
+                          return 671;
                         }
                       else
                         {
@@ -2326,7 +3745,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxxxxxxxxxxxxxxxxxxxxx1x10111xxx
                              ldr.  */
-                          return 652;
+                          return 672;
                         }
                     }
                 }
@@ -2351,7 +3770,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx000xxxxxxxx0xx011100xx
                                              tbl.  */
-                                          return 337;
+                                          return 345;
                                         }
                                       else
                                         {
@@ -2359,7 +3778,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx001xxxxxxxx0xx011100xx
                                              tbx.  */
-                                          return 338;
+                                          return 346;
                                         }
                                     }
                                   else
@@ -2372,7 +3791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx010x0xxxxxx0xx011100xx
                                                  trn1.  */
-                                              return 216;
+                                              return 218;
                                             }
                                           else
                                             {
@@ -2380,7 +3799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx010x1xxxxxx0xx011100xx
                                                  trn2.  */
-                                              return 219;
+                                              return 221;
                                             }
                                         }
                                       else
@@ -2393,7 +3812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01100xxxxxx0xx011100xx
                                                      uzp1.  */
-                                                  return 215;
+                                                  return 217;
                                                 }
                                               else
                                                 {
@@ -2401,7 +3820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01101xxxxxx0xx011100xx
                                                      uzp2.  */
-                                                  return 218;
+                                                  return 220;
                                                 }
                                             }
                                           else
@@ -2412,7 +3831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01110xxxxxx0xx011100xx
                                                      zip1.  */
-                                                  return 217;
+                                                  return 219;
                                                 }
                                               else
                                                 {
@@ -2420,7 +3839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx01111xxxxxx0xx011100xx
                                                      zip2.  */
-                                                  return 220;
+                                                  return 222;
                                                 }
                                             }
                                         }
@@ -2432,199 +3851,243 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xxxxxxxxxx0xxxxxxxxxx0xx011101xx
                                      ext.  */
-                                  return 119;
+                                  return 121;
                                 }
                             }
                           else
                             {
-                              if (((word >> 29) & 0x1) == 0)
+                              if (((word >> 15) & 0x1) == 0)
                                 {
-                                  if (((word >> 11) & 0x1) == 0)
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxx10xxxxxxxxx0xx011100xx
-                                         dup.  */
-                                      return 135;
-                                    }
-                                  else
+                                  if (((word >> 29) & 0x1) == 0)
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1100xxxxxxx0xx011100xx
-                                                 dup.  */
-                                              return 136;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1101xxxxxxx0xx011100xx
-                                                 smov.  */
-                                              return 137;
-                                            }
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxx10xxx0xxxxx0xx011100xx
+                                             dup.  */
+                                          return 137;
                                         }
                                       else
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1110xxxxxxx0xx011100xx
-                                                 ins.  */
-                                              return 140;
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx1100x0xxxxx0xx011100xx
+                                                     dup.  */
+                                                  return 138;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx1101x0xxxxx0xx011100xx
+                                                     smov.  */
+                                                  return 139;
+                                                }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1111xxxxxxx0xx011100xx
-                                                 umov.  */
-                                              return 138;
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx1110x0xxxxx0xx011100xx
+                                                     ins.  */
+                                                  return 142;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx1111x0xxxxx0xx011100xx
+                                                     umov.  */
+                                                  return 140;
+                                                }
                                             }
                                         }
                                     }
-                                }
-                              else
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxx0xx011101xx
-                                     ins.  */
-                                  return 142;
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 30) & 0x1) == 0)
-                            {
-                              if (((word >> 16) & 0x1) == 0)
-                                {
-                                  if (((word >> 17) & 0x1) == 0)
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxx00xxx0xx01111x0x
-                                         fcvtzs.  */
-                                      return 586;
-                                    }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxx01xxx0xx01111x0x
-                                         scvtf.  */
-                                      return 584;
+                                         xxxxxxxxxx1xxxx0xxxxx0xx011101xx
+                                         ins.  */
+                                      return 144;
                                     }
                                 }
                               else
                                 {
-                                  if (((word >> 17) & 0x1) == 0)
+                                  if (((word >> 11) & 0x1) == 0)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxx10xxx0xx01111x0x
-                                         fcvtzu.  */
-                                      return 587;
+                                         xxxxxxxxxx10xxx1xxxxx0xx01110xxx
+                                         sqrdmlah.  */
+                                      return 301;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxx11xxx0xx01111x0x
-                                         ucvtf.  */
-                                      return 585;
+                                         xxxxxxxxxx11xxx1xxxxx0xx01110xxx
+                                         sqrdmlsh.  */
+                                      return 302;
                                     }
                                 }
                             }
-                          else
+                        }
+                      else
+                        {
+                          if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 10) & 0x1) == 0)
+                              if (((word >> 30) & 0x1) == 0)
                                 {
-                                  if (((word >> 12) & 0x1) == 0)
+                                  if (((word >> 16) & 0x1) == 0)
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 17) & 0x1) == 0)
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxxx00xxx0xx0111100x
+                                             fcvtzs.  */
+                                          return 606;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxxx01xxx0xx0111100x
+                                             scvtf.  */
+                                          return 604;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 17) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxxx10xxx0xx0111100x
+                                             fcvtzu.  */
+                                          return 607;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxxxxxxxx11xxx0xx0111100x
+                                             ucvtf.  */
+                                          return 605;
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 10) & 0x1) == 0)
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x000xxxxxx0xx01111x1x
-                                                 sha1c.  */
-                                              return 536;
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x000xxxxxx0xx0111101x
+                                                     sha1c.  */
+                                                  return 548;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x001xxxxxx0xx0111101x
+                                                     sha256h.  */
+                                                  return 552;
+                                                }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x001xxxxxx0xx01111x1x
-                                                 sha256h.  */
-                                              return 540;
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x010xxxxxx0xx0111101x
+                                                     sha1m.  */
+                                                  return 550;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x011xxxxxx0xx0111101x
+                                                     sha256su1.  */
+                                                  return 554;
+                                                }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x010xxxxxx0xx01111x1x
-                                                 sha1m.  */
-                                              return 538;
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x100xxxxxx0xx0111101x
+                                                     sha1p.  */
+                                                  return 549;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxxxxxxxxx0x101xxxxxx0xx0111101x
+                                                     sha256h2.  */
+                                                  return 553;
+                                                }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x011xxxxxx0xx01111x1x
-                                                 sha256su1.  */
-                                              return 542;
+                                                 xxxxxxxxxx0x11xxxxxxx0xx0111101x
+                                                 sha1su0.  */
+                                              return 551;
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x100xxxxxx0xx01111x1x
-                                                 sha1p.  */
-                                              return 537;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x101xxxxxx0xx01111x1x
-                                                 sha256h2.  */
-                                              return 541;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x11xxxxxxx0xx01111x1x
-                                             sha1su0.  */
-                                          return 539;
-                                        }
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xxxxxxxxxx1xxxxxxxxxx0xx0111101x
+                                         dup.  */
+                                      return 436;
                                     }
                                 }
+                            }
+                          else
+                            {
+                              if (((word >> 11) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     xxxxxxxxxxx0xxxxxxxxx0xx011111xx
+                                     sqrdmlah.  */
+                                  return 475;
+                                }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxx0xx01111x1x
-                                     dup.  */
-                                  return 426;
+                                     xxxxxxxxxxx1xxxxxxxxx0xx011111xx
+                                     sqrdmlsh.  */
+                                  return 476;
                                 }
                             }
                         }
@@ -2700,7 +4163,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000000001xx01111xxx
                                                                          fcvtns.  */
-                                                                      return 588;
+                                                                      return 608;
                                                                     }
                                                                   else
                                                                     {
@@ -2708,7 +4171,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000000011xx01111xxx
                                                                          fcvtms.  */
-                                                                      return 598;
+                                                                      return 618;
                                                                     }
                                                                 }
                                                               else
@@ -2719,7 +4182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000000101xx01111xxx
                                                                          fcvtps.  */
-                                                                      return 596;
+                                                                      return 616;
                                                                     }
                                                                   else
                                                                     {
@@ -2727,7 +4190,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000000111xx01111xxx
                                                                          fcvtzs.  */
-                                                                      return 600;
+                                                                      return 620;
                                                                     }
                                                                 }
                                                             }
@@ -2737,7 +4200,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000000001xx1xx01111xxx
                                                                  fcvtas.  */
-                                                              return 592;
+                                                              return 612;
                                                             }
                                                         }
                                                       else
@@ -2748,7 +4211,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000000010xx1xx01111xxx
                                                                  scvtf.  */
-                                                              return 590;
+                                                              return 610;
                                                             }
                                                           else
                                                             {
@@ -2758,7 +4221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0000000110x1xx01111xxx
                                                                      fmov.  */
-                                                                  return 594;
+                                                                  return 614;
                                                                 }
                                                               else
                                                                 {
@@ -2766,7 +4229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0000000111x1xx01111xxx
                                                                      fmov.  */
-                                                                  return 602;
+                                                                  return 622;
                                                                 }
                                                             }
                                                         }
@@ -2785,7 +4248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000100001xx01111xxx
                                                                          fcvtnu.  */
-                                                                      return 589;
+                                                                      return 609;
                                                                     }
                                                                   else
                                                                     {
@@ -2793,7 +4256,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000100011xx01111xxx
                                                                          fcvtmu.  */
-                                                                      return 599;
+                                                                      return 619;
                                                                     }
                                                                 }
                                                               else
@@ -2804,7 +4267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000100101xx01111xxx
                                                                          fcvtpu.  */
-                                                                      return 597;
+                                                                      return 617;
                                                                     }
                                                                   else
                                                                     {
@@ -2812,7 +4275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          xxxxxxxxxx000000100111xx01111xxx
                                                                          fcvtzu.  */
-                                                                      return 601;
+                                                                      return 621;
                                                                     }
                                                                 }
                                                             }
@@ -2822,7 +4285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000000101xx1xx01111xxx
                                                                  fcvtau.  */
-                                                              return 593;
+                                                              return 613;
                                                             }
                                                         }
                                                       else
@@ -2833,7 +4296,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000000110xx1xx01111xxx
                                                                  ucvtf.  */
-                                                              return 591;
+                                                              return 611;
                                                             }
                                                           else
                                                             {
@@ -2843,7 +4306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0000001110x1xx01111xxx
                                                                      fmov.  */
-                                                                  return 595;
+                                                                  return 615;
                                                                 }
                                                               else
                                                                 {
@@ -2851,7 +4314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0000001111x1xx01111xxx
                                                                      fmov.  */
-                                                                  return 603;
+                                                                  return 623;
                                                                 }
                                                             }
                                                         }
@@ -3001,7 +4464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010000xx1xx01111xxx
                                                                  fmov.  */
-                                                              return 610;
+                                                              return 630;
                                                             }
                                                           else
                                                             {
@@ -3009,7 +4472,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010001xx1xx01111xxx
                                                                  frintn.  */
-                                                              return 615;
+                                                              return 635;
                                                             }
                                                         }
                                                       else
@@ -3020,7 +4483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010100xx1xx01111xxx
                                                                  fneg.  */
-                                                              return 612;
+                                                              return 632;
                                                             }
                                                           else
                                                             {
@@ -3028,7 +4491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010101xx1xx01111xxx
                                                                  frintm.  */
-                                                              return 617;
+                                                              return 637;
                                                             }
                                                         }
                                                     }
@@ -3042,7 +4505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000011000xx1xx01111xxx
                                                                  fabs.  */
-                                                              return 611;
+                                                              return 631;
                                                             }
                                                           else
                                                             {
@@ -3050,7 +4513,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000011001xx1xx01111xxx
                                                                  frintp.  */
-                                                              return 616;
+                                                              return 636;
                                                             }
                                                         }
                                                       else
@@ -3061,7 +4524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000011100xx1xx01111xxx
                                                                  fsqrt.  */
-                                                              return 613;
+                                                              return 633;
                                                             }
                                                           else
                                                             {
@@ -3069,7 +4532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000011101xx1xx01111xxx
                                                                  frintz.  */
-                                                              return 618;
+                                                              return 638;
                                                             }
                                                         }
                                                     }
@@ -3082,7 +4545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx00001xx10xx1xx01111xxx
                                                          fcvt.  */
-                                                      return 614;
+                                                      return 634;
                                                     }
                                                   else
                                                     {
@@ -3094,7 +4557,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010011xx1xx01111xxx
                                                                  frinta.  */
-                                                              return 619;
+                                                              return 639;
                                                             }
                                                           else
                                                             {
@@ -3102,7 +4565,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx000010111xx1xx01111xxx
                                                                  frintx.  */
-                                                              return 620;
+                                                              return 640;
                                                             }
                                                         }
                                                       else
@@ -3111,7 +4574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx000011x11xx1xx01111xxx
                                                              frinti.  */
-                                                          return 621;
+                                                          return 641;
                                                         }
                                                     }
                                                 }
@@ -3175,7 +4638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx00xxxxx000100xxxxx1xx01111xxx
                                                              fcmp.  */
-                                                          return 606;
+                                                          return 626;
                                                         }
                                                       else
                                                         {
@@ -3183,7 +4646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx01xxxxx000100xxxxx1xx01111xxx
                                                              fcmpe.  */
-                                                          return 607;
+                                                          return 627;
                                                         }
                                                     }
                                                   else
@@ -3194,7 +4657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx10xxxxx000100xxxxx1xx01111xxx
                                                              fcmp.  */
-                                                          return 608;
+                                                          return 628;
                                                         }
                                                       else
                                                         {
@@ -3202,7 +4665,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11xxxxx000100xxxxx1xx01111xxx
                                                              fcmpe.  */
-                                                          return 609;
+                                                          return 629;
                                                         }
                                                     }
                                                 }
@@ -3585,7 +5048,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx001xxxxxxxx1xx01111x0x
                                              fmov.  */
-                                          return 635;
+                                          return 655;
                                         }
                                       else
                                         {
@@ -3597,7 +5060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx00100xxxxxx1xx01111x1x
                                                      sqdmlal.  */
-                                                  return 339;
+                                                  return 347;
                                                 }
                                               else
                                                 {
@@ -3605,7 +5068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx00101xxxxxx1xx01111x1x
                                                      sqdmull.  */
-                                                  return 341;
+                                                  return 349;
                                                 }
                                             }
                                           else
@@ -3614,7 +5077,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0011xxxxxxx1xx01111x1x
                                                  sqdmlsl.  */
-                                              return 340;
+                                              return 348;
                                             }
                                         }
                                     }
@@ -3638,7 +5101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010000xxxxx1xx011100xx
                                                          rev64.  */
-                                                      return 144;
+                                                      return 146;
                                                     }
                                                   else
                                                     {
@@ -3646,7 +5109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010000xxxxx1xx011101xx
                                                          rev32.  */
-                                                      return 180;
+                                                      return 182;
                                                     }
                                                 }
                                               else
@@ -3657,7 +5120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010000xxxxx1xx01111x0x
                                                          fmul.  */
-                                                      return 622;
+                                                      return 642;
                                                     }
                                                   else
                                                     {
@@ -3665,7 +5128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010000xxxxx1xx01111x1x
                                                          sha1h.  */
-                                                      return 533;
+                                                      return 545;
                                                     }
                                                 }
                                             }
@@ -3681,7 +5144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100010xxxx1xx011100xx
                                                              cmgt.  */
-                                                          return 152;
+                                                          return 154;
                                                         }
                                                       else
                                                         {
@@ -3689,7 +5152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100010xxxx1xx011101xx
                                                              cmge.  */
-                                                          return 186;
+                                                          return 188;
                                                         }
                                                     }
                                                   else
@@ -3702,7 +5165,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100011xxxx1x0011100xx
                                                                  frintn.  */
-                                                              return 164;
+                                                              return 166;
                                                             }
                                                           else
                                                             {
@@ -3710,7 +5173,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100011xxxx1x0011101xx
                                                                  frinta.  */
-                                                              return 197;
+                                                              return 199;
                                                             }
                                                         }
                                                       else
@@ -3719,7 +5182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100011xxxx1x101110xxx
                                                              frintp.  */
-                                                          return 174;
+                                                          return 176;
                                                         }
                                                     }
                                                 }
@@ -3733,7 +5196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010001xxxxx1xx0111100x
                                                              fnmul.  */
-                                                          return 630;
+                                                          return 650;
                                                         }
                                                       else
                                                         {
@@ -3741,7 +5204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010001xxxxx1xx0111101x
                                                              cmgt.  */
-                                                          return 393;
+                                                          return 403;
                                                         }
                                                     }
                                                   else
@@ -3750,7 +5213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010001xxxxx1xx011111xx
                                                          cmge.  */
-                                                      return 411;
+                                                      return 421;
                                                     }
                                                 }
                                             }
@@ -3771,7 +5234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100100xx0x1xx011100xx
                                                                  cls.  */
-                                                              return 148;
+                                                              return 150;
                                                             }
                                                           else
                                                             {
@@ -3779,7 +5242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100100xx0x1xx011101xx
                                                                  clz.  */
-                                                              return 183;
+                                                              return 185;
                                                             }
                                                         }
                                                       else
@@ -3788,7 +5251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100100xx1x1xx01110xxx
                                                              aese.  */
-                                                          return 529;
+                                                          return 541;
                                                         }
                                                     }
                                                   else
@@ -3801,7 +5264,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100101xxxx1xx0111000x
                                                                  sqxtn.  */
-                                                              return 158;
+                                                              return 160;
                                                             }
                                                           else
                                                             {
@@ -3809,7 +5272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100101xxxx1xx0111001x
                                                                  sqxtn2.  */
-                                                              return 159;
+                                                              return 161;
                                                             }
                                                         }
                                                       else
@@ -3820,7 +5283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100101xxxx1xx0111010x
                                                                  uqxtn.  */
-                                                              return 193;
+                                                              return 195;
                                                             }
                                                           else
                                                             {
@@ -3828,7 +5291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100101xxxx1xx0111011x
                                                                  uqxtn2.  */
-                                                              return 194;
+                                                              return 196;
                                                             }
                                                         }
                                                     }
@@ -3843,7 +5306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010010xxxxx1xx0111100x
                                                              fmax.  */
-                                                          return 626;
+                                                          return 646;
                                                         }
                                                       else
                                                         {
@@ -3851,7 +5314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010010xxxxx1xx0111101x
                                                              sqxtn.  */
-                                                          return 397;
+                                                          return 407;
                                                         }
                                                     }
                                                   else
@@ -3860,7 +5323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010010xxxxx1xx011111xx
                                                          uqxtn.  */
-                                                      return 415;
+                                                      return 425;
                                                     }
                                                 }
                                             }
@@ -3878,7 +5341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx01xx011100xx
                                                                  fcmgt.  */
-                                                              return 170;
+                                                              return 172;
                                                             }
                                                           else
                                                             {
@@ -3886,7 +5349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx01xx011101xx
                                                                  fcmge.  */
-                                                              return 206;
+                                                              return 208;
                                                             }
                                                         }
                                                       else
@@ -3897,7 +5360,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx01xx011110xx
                                                                  fcmgt.  */
-                                                              return 402;
+                                                              return 412;
                                                             }
                                                           else
                                                             {
@@ -3905,7 +5368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx01xx011111xx
                                                                  fcmge.  */
-                                                              return 421;
+                                                              return 431;
                                                             }
                                                         }
                                                     }
@@ -3927,7 +5390,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx11x001111xxx
                                                                  fmaxnmp.  */
-                                                              return 429;
+                                                              return 439;
                                                             }
                                                         }
                                                       else
@@ -3946,7 +5409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100110xxx11x101111xxx
                                                                  fminnmp.  */
-                                                              return 432;
+                                                              return 442;
                                                             }
                                                         }
                                                     }
@@ -3963,7 +5426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100111xxxx1x0011100xx
                                                                  fcvtas.  */
-                                                              return 168;
+                                                              return 170;
                                                             }
                                                           else
                                                             {
@@ -3971,7 +5434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100111xxxx1x0011101xx
                                                                  fcvtau.  */
-                                                              return 201;
+                                                              return 203;
                                                             }
                                                         }
                                                       else
@@ -3982,7 +5445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100111xxxx1x0011110xx
                                                                  fcvtas.  */
-                                                              return 400;
+                                                              return 410;
                                                             }
                                                           else
                                                             {
@@ -3990,7 +5453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0100111xxxx1x0011111xx
                                                                  fcvtau.  */
-                                                              return 419;
+                                                              return 429;
                                                             }
                                                         }
                                                     }
@@ -4002,7 +5465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100111xxxx1x10111x0xx
                                                              urecpe.  */
-                                                          return 178;
+                                                          return 180;
                                                         }
                                                       else
                                                         {
@@ -4010,7 +5473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0100111xxxx1x10111x1xx
                                                              ursqrte.  */
-                                                          return 212;
+                                                          return 214;
                                                         }
                                                     }
                                                 }
@@ -4033,7 +5496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0101000xxxx1xx011100xx
                                                              saddlp.  */
-                                                          return 146;
+                                                          return 148;
                                                         }
                                                       else
                                                         {
@@ -4041,7 +5504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0101000xxxx1xx011101xx
                                                              uaddlp.  */
-                                                          return 181;
+                                                          return 183;
                                                         }
                                                     }
                                                   else
@@ -4054,7 +5517,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101001xxxx1xx0111000x
                                                                  xtn.  */
-                                                              return 156;
+                                                              return 158;
                                                             }
                                                           else
                                                             {
@@ -4062,7 +5525,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101001xxxx1xx0111001x
                                                                  xtn2.  */
-                                                              return 157;
+                                                              return 159;
                                                             }
                                                         }
                                                       else
@@ -4073,7 +5536,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101001xxxx1xx0111010x
                                                                  sqxtun.  */
-                                                              return 189;
+                                                              return 191;
                                                             }
                                                           else
                                                             {
@@ -4081,7 +5544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101001xxxx1xx0111011x
                                                                  sqxtun2.  */
-                                                              return 190;
+                                                              return 192;
                                                             }
                                                         }
                                                     }
@@ -4096,7 +5559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010100xxxxx1xx0111100x
                                                              fadd.  */
-                                                          return 624;
+                                                          return 644;
                                                         }
                                                       else
                                                         {
@@ -4104,7 +5567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx010100xxxxx1xx0111101x
                                                              sha256su0.  */
-                                                          return 535;
+                                                          return 547;
                                                         }
                                                     }
                                                   else
@@ -4113,7 +5576,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010100xxxxx1xx011111xx
                                                          sqxtun.  */
-                                                      return 414;
+                                                      return 424;
                                                     }
                                                 }
                                             }
@@ -4129,7 +5592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0101010xxx01xx01110xxx
                                                              cmlt.  */
-                                                          return 154;
+                                                          return 156;
                                                         }
                                                       else
                                                         {
@@ -4137,7 +5600,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0101010xxx01xx01111xxx
                                                              cmlt.  */
-                                                          return 395;
+                                                          return 405;
                                                         }
                                                     }
                                                   else
@@ -4174,7 +5637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x0011100xx
                                                                      fcvtns.  */
-                                                                  return 166;
+                                                                  return 168;
                                                                 }
                                                               else
                                                                 {
@@ -4182,7 +5645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x0011101xx
                                                                      fcvtnu.  */
-                                                                  return 199;
+                                                                  return 201;
                                                                 }
                                                             }
                                                           else
@@ -4193,7 +5656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x0011110xx
                                                                      fcvtns.  */
-                                                                  return 398;
+                                                                  return 408;
                                                                 }
                                                               else
                                                                 {
@@ -4201,7 +5664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x0011111xx
                                                                      fcvtnu.  */
-                                                                  return 417;
+                                                                  return 427;
                                                                 }
                                                             }
                                                         }
@@ -4215,7 +5678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x1011100xx
                                                                      fcvtps.  */
-                                                                  return 176;
+                                                                  return 178;
                                                                 }
                                                               else
                                                                 {
@@ -4223,7 +5686,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x1011101xx
                                                                      fcvtpu.  */
-                                                                  return 210;
+                                                                  return 212;
                                                                 }
                                                             }
                                                           else
@@ -4234,7 +5697,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x1011110xx
                                                                      fcvtps.  */
-                                                                  return 405;
+                                                                  return 415;
                                                                 }
                                                               else
                                                                 {
@@ -4242,7 +5705,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0101011xxx01x1011111xx
                                                                      fcvtpu.  */
-                                                                  return 423;
+                                                                  return 433;
                                                                 }
                                                             }
                                                         }
@@ -4285,7 +5748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101100xx0x1xx011100xx
                                                                  sadalp.  */
-                                                              return 150;
+                                                              return 152;
                                                             }
                                                           else
                                                             {
@@ -4293,7 +5756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101100xx0x1xx011101xx
                                                                  uadalp.  */
-                                                              return 184;
+                                                              return 186;
                                                             }
                                                         }
                                                       else
@@ -4302,7 +5765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0101100xx1x1xx01110xxx
                                                              aesmc.  */
-                                                          return 531;
+                                                          return 543;
                                                         }
                                                     }
                                                   else
@@ -4315,7 +5778,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101101xxxx1xx0111000x
                                                                  fcvtn.  */
-                                                              return 160;
+                                                              return 162;
                                                             }
                                                           else
                                                             {
@@ -4323,7 +5786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101101xxxx1xx0111001x
                                                                  fcvtn2.  */
-                                                              return 161;
+                                                              return 163;
                                                             }
                                                         }
                                                       else
@@ -4334,7 +5797,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101101xxxx1xx0111010x
                                                                  fcvtxn.  */
-                                                              return 195;
+                                                              return 197;
                                                             }
                                                           else
                                                             {
@@ -4342,7 +5805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0101101xxxx1xx0111011x
                                                                  fcvtxn2.  */
-                                                              return 196;
+                                                              return 198;
                                                             }
                                                         }
                                                     }
@@ -4355,7 +5818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010110xxxxx1xx011110xx
                                                          fmaxnm.  */
-                                                      return 628;
+                                                      return 648;
                                                     }
                                                   else
                                                     {
@@ -4363,7 +5826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx010110xxxxx1xx011111xx
                                                          fcvtxn.  */
-                                                      return 416;
+                                                      return 426;
                                                     }
                                                 }
                                             }
@@ -4375,7 +5838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx010111xxxxx1xx01110xxx
                                                      fcmlt.  */
-                                                  return 172;
+                                                  return 174;
                                                 }
                                               else
                                                 {
@@ -4383,7 +5846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx010111xxxxx1xx01111xxx
                                                      fcmlt.  */
-                                                  return 404;
+                                                  return 414;
                                                 }
                                             }
                                         }
@@ -4403,7 +5866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx011000xxxxx1xx01110xxx
                                                      rev16.  */
-                                                  return 145;
+                                                  return 147;
                                                 }
                                               else
                                                 {
@@ -4413,7 +5876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx011000xxxxx1xx01111x0x
                                                          fdiv.  */
-                                                      return 623;
+                                                      return 643;
                                                     }
                                                   else
                                                     {
@@ -4421,7 +5884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx011000xxxxx1xx01111x1x
                                                          sha1su1.  */
-                                                      return 534;
+                                                      return 546;
                                                     }
                                                 }
                                             }
@@ -4437,7 +5900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110010xxxx1xx011100xx
                                                              cmeq.  */
-                                                          return 153;
+                                                          return 155;
                                                         }
                                                       else
                                                         {
@@ -4445,7 +5908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110010xxxx1xx011101xx
                                                              cmle.  */
-                                                          return 187;
+                                                          return 189;
                                                         }
                                                     }
                                                   else
@@ -4456,7 +5919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110010xxxx1xx011110xx
                                                              cmeq.  */
-                                                          return 394;
+                                                          return 404;
                                                         }
                                                       else
                                                         {
@@ -4464,7 +5927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110010xxxx1xx011111xx
                                                              cmle.  */
-                                                          return 412;
+                                                          return 422;
                                                         }
                                                     }
                                                 }
@@ -4478,7 +5941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110011xxxx1x00111x0xx
                                                              frintm.  */
-                                                          return 165;
+                                                          return 167;
                                                         }
                                                       else
                                                         {
@@ -4486,7 +5949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110011xxxx1x00111x1xx
                                                              frintx.  */
-                                                          return 198;
+                                                          return 200;
                                                         }
                                                     }
                                                   else
@@ -4497,7 +5960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110011xxxx1x10111x0xx
                                                              frintz.  */
-                                                          return 175;
+                                                          return 177;
                                                         }
                                                       else
                                                         {
@@ -4505,7 +5968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0110011xxxx1x10111x1xx
                                                              frinti.  */
-                                                          return 209;
+                                                          return 211;
                                                         }
                                                     }
                                                 }
@@ -4525,7 +5988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx011010xxx0x1xx011100xx
                                                              cnt.  */
-                                                          return 149;
+                                                          return 151;
                                                         }
                                                       else
                                                         {
@@ -4535,7 +5998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx011010xxx0x10x011101xx
                                                                  not.  */
-                                                              return 203;
+                                                              return 205;
                                                             }
                                                           else
                                                             {
@@ -4543,7 +6006,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx011010xxx0x11x011101xx
                                                                  rbit.  */
-                                                              return 205;
+                                                              return 207;
                                                             }
                                                         }
                                                     }
@@ -4553,7 +6016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx011010xxx1x1xx01110xxx
                                                          aesd.  */
-                                                      return 530;
+                                                      return 542;
                                                     }
                                                 }
                                               else
@@ -4562,7 +6025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx011010xxxxx1xx01111xxx
                                                      fmin.  */
-                                                  return 627;
+                                                  return 647;
                                                 }
                                             }
                                           else
@@ -4579,7 +6042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110110xxx01xx011100xx
                                                                  fcmeq.  */
-                                                              return 171;
+                                                              return 173;
                                                             }
                                                           else
                                                             {
@@ -4587,7 +6050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110110xxx01xx011101xx
                                                                  fcmle.  */
-                                                              return 207;
+                                                              return 209;
                                                             }
                                                         }
                                                       else
@@ -4598,7 +6061,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110110xxx01xx011110xx
                                                                  fcmeq.  */
-                                                              return 403;
+                                                              return 413;
                                                             }
                                                           else
                                                             {
@@ -4606,7 +6069,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110110xxx01xx011111xx
                                                                  fcmle.  */
-                                                              return 422;
+                                                              return 432;
                                                             }
                                                         }
                                                     }
@@ -4616,7 +6079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx0110110xxx11xx0111xxxx
                                                          faddp.  */
-                                                      return 430;
+                                                      return 440;
                                                     }
                                                 }
                                               else
@@ -4631,7 +6094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x0011100xx
                                                                  scvtf.  */
-                                                              return 169;
+                                                              return 171;
                                                             }
                                                           else
                                                             {
@@ -4639,7 +6102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x0011101xx
                                                                  ucvtf.  */
-                                                              return 202;
+                                                              return 204;
                                                             }
                                                         }
                                                       else
@@ -4650,7 +6113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x0011110xx
                                                                  scvtf.  */
-                                                              return 401;
+                                                              return 411;
                                                             }
                                                           else
                                                             {
@@ -4658,7 +6121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x0011111xx
                                                                  ucvtf.  */
-                                                              return 420;
+                                                              return 430;
                                                             }
                                                         }
                                                     }
@@ -4672,7 +6135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x1011100xx
                                                                  frecpe.  */
-                                                              return 179;
+                                                              return 181;
                                                             }
                                                           else
                                                             {
@@ -4680,7 +6143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x1011101xx
                                                                  frsqrte.  */
-                                                              return 213;
+                                                              return 215;
                                                             }
                                                         }
                                                       else
@@ -4691,7 +6154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x1011110xx
                                                                  frecpe.  */
-                                                              return 407;
+                                                              return 417;
                                                             }
                                                           else
                                                             {
@@ -4699,7 +6162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0110111xxxx1x1011111xx
                                                                  frsqrte.  */
-                                                              return 425;
+                                                              return 435;
                                                             }
                                                         }
                                                     }
@@ -4725,7 +6188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111000xxx01xx011100xx
                                                                  suqadd.  */
-                                                              return 147;
+                                                              return 149;
                                                             }
                                                           else
                                                             {
@@ -4733,7 +6196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111000xxx01xx011101xx
                                                                  usqadd.  */
-                                                              return 182;
+                                                              return 184;
                                                             }
                                                         }
                                                       else
@@ -4764,7 +6227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111001xxxx1xx01110x0x
                                                              shll.  */
-                                                          return 191;
+                                                          return 193;
                                                         }
                                                       else
                                                         {
@@ -4772,7 +6235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111001xxxx1xx01110x1x
                                                              shll2.  */
-                                                          return 192;
+                                                          return 194;
                                                         }
                                                     }
                                                 }
@@ -4786,7 +6249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx011100xxxxx1xx0111100x
                                                              fsub.  */
-                                                          return 625;
+                                                          return 645;
                                                         }
                                                       else
                                                         {
@@ -4794,7 +6257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx011100xxxxx1xx0111101x
                                                              suqadd.  */
-                                                          return 391;
+                                                          return 401;
                                                         }
                                                     }
                                                   else
@@ -4803,7 +6266,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx011100xxxxx1xx011111xx
                                                          usqadd.  */
-                                                      return 409;
+                                                      return 419;
                                                     }
                                                 }
                                             }
@@ -4819,7 +6282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111010xxxx1xx011100xx
                                                              abs.  */
-                                                          return 155;
+                                                          return 157;
                                                         }
                                                       else
                                                         {
@@ -4827,7 +6290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111010xxxx1xx011101xx
                                                              neg.  */
-                                                          return 188;
+                                                          return 190;
                                                         }
                                                     }
                                                   else
@@ -4838,7 +6301,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111010xxxx1xx011110xx
                                                              abs.  */
-                                                          return 396;
+                                                          return 406;
                                                         }
                                                       else
                                                         {
@@ -4846,7 +6309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111010xxxx1xx011111xx
                                                              neg.  */
-                                                          return 413;
+                                                          return 423;
                                                         }
                                                     }
                                                 }
@@ -4864,7 +6327,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x0011100xx
                                                                      fcvtms.  */
-                                                                  return 167;
+                                                                  return 169;
                                                                 }
                                                               else
                                                                 {
@@ -4872,7 +6335,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x0011101xx
                                                                      fcvtmu.  */
-                                                                  return 200;
+                                                                  return 202;
                                                                 }
                                                             }
                                                           else
@@ -4883,7 +6346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x0011110xx
                                                                      fcvtms.  */
-                                                                  return 399;
+                                                                  return 409;
                                                                 }
                                                               else
                                                                 {
@@ -4891,7 +6354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x0011111xx
                                                                      fcvtmu.  */
-                                                                  return 418;
+                                                                  return 428;
                                                                 }
                                                             }
                                                         }
@@ -4905,7 +6368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x1011100xx
                                                                      fcvtzs.  */
-                                                                  return 177;
+                                                                  return 179;
                                                                 }
                                                               else
                                                                 {
@@ -4913,7 +6376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x1011101xx
                                                                      fcvtzu.  */
-                                                                  return 211;
+                                                                  return 213;
                                                                 }
                                                             }
                                                           else
@@ -4924,7 +6387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x1011110xx
                                                                      fcvtzs.  */
-                                                                  return 406;
+                                                                  return 416;
                                                                 }
                                                               else
                                                                 {
@@ -4932,7 +6395,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxxxxxxxxx0111011xxx01x1011111xx
                                                                      fcvtzu.  */
-                                                                  return 424;
+                                                                  return 434;
                                                                 }
                                                             }
                                                         }
@@ -4953,7 +6416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111011xxx11xx01111xxx
                                                              addp.  */
-                                                          return 428;
+                                                          return 438;
                                                         }
                                                     }
                                                 }
@@ -4975,7 +6438,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111100xx0x1xx011100xx
                                                                  sqabs.  */
-                                                              return 151;
+                                                              return 153;
                                                             }
                                                           else
                                                             {
@@ -4983,7 +6446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111100xx0x1xx011101xx
                                                                  sqneg.  */
-                                                              return 185;
+                                                              return 187;
                                                             }
                                                         }
                                                       else
@@ -4992,7 +6455,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111100xx1x1xx01110xxx
                                                              aesimc.  */
-                                                          return 532;
+                                                          return 544;
                                                         }
                                                     }
                                                   else
@@ -5003,7 +6466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111101xxxx1xx01110x0x
                                                              fcvtl.  */
-                                                          return 162;
+                                                          return 164;
                                                         }
                                                       else
                                                         {
@@ -5011,7 +6474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111101xxxx1xx01110x1x
                                                              fcvtl2.  */
-                                                          return 163;
+                                                          return 165;
                                                         }
                                                     }
                                                 }
@@ -5025,7 +6488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx011110xxxxx1xx0111100x
                                                              fminnm.  */
-                                                          return 629;
+                                                          return 649;
                                                         }
                                                       else
                                                         {
@@ -5033,7 +6496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx011110xxxxx1xx0111101x
                                                              sqabs.  */
-                                                          return 392;
+                                                          return 402;
                                                         }
                                                     }
                                                   else
@@ -5042,7 +6505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx011110xxxxx1xx011111xx
                                                          sqneg.  */
-                                                      return 410;
+                                                      return 420;
                                                     }
                                                 }
                                             }
@@ -5058,7 +6521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111110xxx01xx0111x0xx
                                                              fabs.  */
-                                                          return 173;
+                                                          return 175;
                                                         }
                                                       else
                                                         {
@@ -5066,7 +6529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx0111110xxx01xx0111x1xx
                                                              fneg.  */
-                                                          return 208;
+                                                          return 210;
                                                         }
                                                     }
                                                   else
@@ -5087,7 +6550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111110xxx11x001111xxx
                                                                  fmaxp.  */
-                                                              return 431;
+                                                              return 441;
                                                             }
                                                         }
                                                       else
@@ -5106,7 +6569,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx0111110xxx11x101111xxx
                                                                  fminp.  */
-                                                              return 433;
+                                                              return 443;
                                                             }
                                                         }
                                                     }
@@ -5119,7 +6582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx0111111xxxx1xx01110xxx
                                                          fsqrt.  */
-                                                      return 214;
+                                                      return 216;
                                                     }
                                                   else
                                                     {
@@ -5127,7 +6590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx0111111xxxx1xx01111xxx
                                                          frecpx.  */
-                                                      return 408;
+                                                      return 418;
                                                     }
                                                 }
                                             }
@@ -5156,7 +6619,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100000xxxxx1xx011100xx
                                                          shadd.  */
-                                                      return 221;
+                                                      return 223;
                                                     }
                                                   else
                                                     {
@@ -5164,7 +6627,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100000xxxxx1xx011101xx
                                                          uhadd.  */
-                                                      return 261;
+                                                      return 263;
                                                     }
                                                 }
                                               else
@@ -5175,7 +6638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100001xxxxx1xx011100xx
                                                          add.  */
-                                                      return 236;
+                                                      return 238;
                                                     }
                                                   else
                                                     {
@@ -5183,7 +6646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100001xxxxx1xx011101xx
                                                          sub.  */
-                                                      return 276;
+                                                      return 278;
                                                     }
                                                 }
                                             }
@@ -5197,7 +6660,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100010xxxxx1xx011100xx
                                                          sshl.  */
-                                                      return 228;
+                                                      return 230;
                                                     }
                                                   else
                                                     {
@@ -5205,7 +6668,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100010xxxxx1xx011101xx
                                                          ushl.  */
-                                                      return 268;
+                                                      return 270;
                                                     }
                                                 }
                                               else
@@ -5218,7 +6681,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100011xxxxx1x0011100xx
                                                              fmaxnm.  */
-                                                          return 244;
+                                                          return 246;
                                                         }
                                                       else
                                                         {
@@ -5226,7 +6689,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100011xxxxx1x0011101xx
                                                              fmaxnmp.  */
-                                                          return 283;
+                                                          return 285;
                                                         }
                                                     }
                                                   else
@@ -5237,7 +6700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100011xxxxx1x1011100xx
                                                              fminnm.  */
-                                                          return 253;
+                                                          return 255;
                                                         }
                                                       else
                                                         {
@@ -5245,7 +6708,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100011xxxxx1x1011101xx
                                                              fminnmp.  */
-                                                          return 292;
+                                                          return 294;
                                                         }
                                                     }
                                                 }
@@ -5263,7 +6726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100100xxxxx1xx011100xx
                                                          shsub.  */
-                                                      return 224;
+                                                      return 226;
                                                     }
                                                   else
                                                     {
@@ -5271,7 +6734,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100100xxxxx1xx011101xx
                                                          uhsub.  */
-                                                      return 264;
+                                                      return 266;
                                                     }
                                                 }
                                               else
@@ -5282,7 +6745,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100101xxxxx1xx011100xx
                                                          smaxp.  */
-                                                      return 240;
+                                                      return 242;
                                                     }
                                                   else
                                                     {
@@ -5290,7 +6753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100101xxxxx1xx011101xx
                                                          umaxp.  */
-                                                      return 280;
+                                                      return 282;
                                                     }
                                                 }
                                             }
@@ -5304,7 +6767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100110xxxxx1xx011100xx
                                                          smax.  */
-                                                      return 232;
+                                                      return 234;
                                                     }
                                                   else
                                                     {
@@ -5312,7 +6775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100110xxxxx1xx011101xx
                                                          umax.  */
-                                                      return 272;
+                                                      return 274;
                                                     }
                                                 }
                                               else
@@ -5325,7 +6788,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100111xxxxx1x0011100xx
                                                              fcmeq.  */
-                                                          return 248;
+                                                          return 250;
                                                         }
                                                       else
                                                         {
@@ -5333,7 +6796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx100111xxxxx1x0011101xx
                                                              fcmge.  */
-                                                          return 286;
+                                                          return 288;
                                                         }
                                                     }
                                                   else
@@ -5342,7 +6805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx100111xxxxx1x101110xxx
                                                          fcmgt.  */
-                                                      return 294;
+                                                      return 296;
                                                     }
                                                 }
                                             }
@@ -5362,7 +6825,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101000xxxxx1xx011100xx
                                                          srhadd.  */
-                                                      return 223;
+                                                      return 225;
                                                     }
                                                   else
                                                     {
@@ -5370,7 +6833,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101000xxxxx1xx011101xx
                                                          urhadd.  */
-                                                      return 263;
+                                                      return 265;
                                                     }
                                                 }
                                               else
@@ -5381,7 +6844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101001xxxxx1xx011100xx
                                                          mla.  */
-                                                      return 238;
+                                                      return 240;
                                                     }
                                                   else
                                                     {
@@ -5389,7 +6852,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101001xxxxx1xx011101xx
                                                          mls.  */
-                                                      return 278;
+                                                      return 280;
                                                     }
                                                 }
                                             }
@@ -5403,7 +6866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101010xxxxx1xx011100xx
                                                          srshl.  */
-                                                      return 230;
+                                                      return 232;
                                                     }
                                                   else
                                                     {
@@ -5411,7 +6874,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101010xxxxx1xx011101xx
                                                          urshl.  */
-                                                      return 270;
+                                                      return 272;
                                                     }
                                                 }
                                               else
@@ -5424,7 +6887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101011xxxxx1x0011100xx
                                                              fadd.  */
-                                                          return 246;
+                                                          return 248;
                                                         }
                                                       else
                                                         {
@@ -5432,7 +6895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101011xxxxx1x0011101xx
                                                              faddp.  */
-                                                          return 284;
+                                                          return 286;
                                                         }
                                                     }
                                                   else
@@ -5443,7 +6906,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101011xxxxx1x1011100xx
                                                              fsub.  */
-                                                          return 255;
+                                                          return 257;
                                                         }
                                                       else
                                                         {
@@ -5451,7 +6914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101011xxxxx1x1011101xx
                                                              fabd.  */
-                                                          return 293;
+                                                          return 295;
                                                         }
                                                     }
                                                 }
@@ -5469,7 +6932,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101100xxxxx1xx011100xx
                                                          cmgt.  */
-                                                      return 226;
+                                                      return 228;
                                                     }
                                                   else
                                                     {
@@ -5477,7 +6940,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101100xxxxx1xx011101xx
                                                          cmhi.  */
-                                                      return 266;
+                                                      return 268;
                                                     }
                                                 }
                                               else
@@ -5488,7 +6951,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101101xxxxx1xx011100xx
                                                          sqdmulh.  */
-                                                      return 242;
+                                                      return 244;
                                                     }
                                                   else
                                                     {
@@ -5496,7 +6959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101101xxxxx1xx011101xx
                                                          sqrdmulh.  */
-                                                      return 282;
+                                                      return 284;
                                                     }
                                                 }
                                             }
@@ -5510,7 +6973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101110xxxxx1xx011100xx
                                                          sabd.  */
-                                                      return 234;
+                                                      return 236;
                                                     }
                                                   else
                                                     {
@@ -5518,7 +6981,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx101110xxxxx1xx011101xx
                                                          uabd.  */
-                                                      return 274;
+                                                      return 276;
                                                     }
                                                 }
                                               else
@@ -5531,7 +6994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101111xxxxx1x0011100xx
                                                              fmax.  */
-                                                          return 249;
+                                                          return 251;
                                                         }
                                                       else
                                                         {
@@ -5539,7 +7002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101111xxxxx1x0011101xx
                                                              fmaxp.  */
-                                                          return 288;
+                                                          return 290;
                                                         }
                                                     }
                                                   else
@@ -5550,7 +7013,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101111xxxxx1x1011100xx
                                                              fmin.  */
-                                                          return 256;
+                                                          return 258;
                                                         }
                                                       else
                                                         {
@@ -5558,7 +7021,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx101111xxxxx1x1011101xx
                                                              fminp.  */
-                                                          return 296;
+                                                          return 298;
                                                         }
                                                     }
                                                 }
@@ -5578,7 +7041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxx0xxxxx10xxxxxxxxx1xx0111100x
                                                  fccmp.  */
-                                              return 604;
+                                              return 624;
                                             }
                                           else
                                             {
@@ -5586,7 +7049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxx1xxxxx10xxxxxxxxx1xx0111100x
                                                  fccmpe.  */
-                                              return 605;
+                                              return 625;
                                             }
                                         }
                                       else
@@ -5601,7 +7064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx10000xxxxxx1xx0111101x
                                                          add.  */
-                                                      return 447;
+                                                      return 457;
                                                     }
                                                   else
                                                     {
@@ -5609,7 +7072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx10001xxxxxx1xx0111101x
                                                          sshl.  */
-                                                      return 445;
+                                                      return 455;
                                                     }
                                                 }
                                               else
@@ -5618,7 +7081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1001xxxxxxx1xx0111101x
                                                      fcmeq.  */
-                                                  return 440;
+                                                  return 450;
                                                 }
                                             }
                                           else
@@ -5629,7 +7092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1010xxxxxxx1xx0111101x
                                                      srshl.  */
-                                                  return 446;
+                                                  return 456;
                                                 }
                                               else
                                                 {
@@ -5639,7 +7102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx1011x0xxxxx1xx0111101x
                                                          cmgt.  */
-                                                      return 443;
+                                                      return 453;
                                                     }
                                                   else
                                                     {
@@ -5647,7 +7110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx1011x1xxxxx1xx0111101x
                                                          sqdmulh.  */
-                                                      return 438;
+                                                      return 448;
                                                     }
                                                 }
                                             }
@@ -5665,7 +7128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx10000xxxxxx1xx011111xx
                                                      sub.  */
-                                                  return 463;
+                                                  return 473;
                                                 }
                                               else
                                                 {
@@ -5673,7 +7136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx10001xxxxxx1xx011111xx
                                                      ushl.  */
-                                                  return 461;
+                                                  return 471;
                                                 }
                                             }
                                           else
@@ -5684,7 +7147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1001xxxxxxx1x0011111xx
                                                      fcmge.  */
-                                                  return 454;
+                                                  return 464;
                                                 }
                                               else
                                                 {
@@ -5692,7 +7155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1001xxxxxxx1x1011111xx
                                                      fcmgt.  */
-                                                  return 457;
+                                                  return 467;
                                                 }
                                             }
                                         }
@@ -5706,7 +7169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1010x0xxxxx1xx011111xx
                                                      urshl.  */
-                                                  return 462;
+                                                  return 472;
                                                 }
                                               else
                                                 {
@@ -5714,7 +7177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1010x1xxxxx1xx011111xx
                                                      fabd.  */
-                                                  return 456;
+                                                  return 466;
                                                 }
                                             }
                                           else
@@ -5725,7 +7188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1011x0xxxxx1xx011111xx
                                                      cmhi.  */
-                                                  return 459;
+                                                  return 469;
                                                 }
                                               else
                                                 {
@@ -5733,7 +7196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1011x1xxxxx1xx011111xx
                                                      sqrdmulh.  */
-                                                  return 453;
+                                                  return 463;
                                                 }
                                             }
                                         }
@@ -5758,7 +7221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110000xxxxx1xx011100xx
                                                          sqadd.  */
-                                                      return 222;
+                                                      return 224;
                                                     }
                                                   else
                                                     {
@@ -5766,7 +7229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110000xxxxx1xx011101xx
                                                          uqadd.  */
-                                                      return 262;
+                                                      return 264;
                                                     }
                                                 }
                                               else
@@ -5777,7 +7240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110001xxxxx1xx011100xx
                                                          cmtst.  */
-                                                      return 237;
+                                                      return 239;
                                                     }
                                                   else
                                                     {
@@ -5785,7 +7248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110001xxxxx1xx011101xx
                                                          cmeq.  */
-                                                      return 277;
+                                                      return 279;
                                                     }
                                                 }
                                             }
@@ -5799,7 +7262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110010xxxxx1xx011100xx
                                                          sqshl.  */
-                                                      return 229;
+                                                      return 231;
                                                     }
                                                   else
                                                     {
@@ -5807,7 +7270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110010xxxxx1xx011101xx
                                                          uqshl.  */
-                                                      return 269;
+                                                      return 271;
                                                     }
                                                 }
                                               else
@@ -5818,7 +7281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110011xxxxx1x001110xxx
                                                          fmla.  */
-                                                      return 245;
+                                                      return 247;
                                                     }
                                                   else
                                                     {
@@ -5826,7 +7289,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110011xxxxx1x101110xxx
                                                          fmls.  */
-                                                      return 254;
+                                                      return 256;
                                                     }
                                                 }
                                             }
@@ -5843,7 +7306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110100xxxxx1xx011100xx
                                                          sqsub.  */
-                                                      return 225;
+                                                      return 227;
                                                     }
                                                   else
                                                     {
@@ -5851,7 +7314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110100xxxxx1xx011101xx
                                                          uqsub.  */
-                                                      return 265;
+                                                      return 267;
                                                     }
                                                 }
                                               else
@@ -5862,7 +7325,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110101xxxxx1xx011100xx
                                                          sminp.  */
-                                                      return 241;
+                                                      return 243;
                                                     }
                                                   else
                                                     {
@@ -5870,7 +7333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110101xxxxx1xx011101xx
                                                          uminp.  */
-                                                      return 281;
+                                                      return 283;
                                                     }
                                                 }
                                             }
@@ -5884,7 +7347,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110110xxxxx1xx011100xx
                                                          smin.  */
-                                                      return 233;
+                                                      return 235;
                                                     }
                                                   else
                                                     {
@@ -5892,7 +7355,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110110xxxxx1xx011101xx
                                                          umin.  */
-                                                      return 273;
+                                                      return 275;
                                                     }
                                                 }
                                               else
@@ -5903,7 +7366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110111xxxxx1x001110xxx
                                                          facge.  */
-                                                      return 287;
+                                                      return 289;
                                                     }
                                                   else
                                                     {
@@ -5911,7 +7374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110111xxxxx1x101110xxx
                                                          facgt.  */
-                                                      return 295;
+                                                      return 297;
                                                     }
                                                 }
                                             }
@@ -5935,7 +7398,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx100011100xx
                                                                  and.  */
-                                                              return 251;
+                                                              return 253;
                                                             }
                                                           else
                                                             {
@@ -5943,7 +7406,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx100011101xx
                                                                  eor.  */
-                                                              return 290;
+                                                              return 292;
                                                             }
                                                         }
                                                       else
@@ -5954,7 +7417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx101011100xx
                                                                  orr.  */
-                                                              return 258;
+                                                              return 260;
                                                             }
                                                           else
                                                             {
@@ -5962,7 +7425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx101011101xx
                                                                  bit.  */
-                                                              return 297;
+                                                              return 299;
                                                             }
                                                         }
                                                     }
@@ -5976,7 +7439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx110011100xx
                                                                  bic.  */
-                                                              return 252;
+                                                              return 254;
                                                             }
                                                           else
                                                             {
@@ -5984,7 +7447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx110011101xx
                                                                  bsl.  */
-                                                              return 291;
+                                                              return 293;
                                                             }
                                                         }
                                                       else
@@ -5995,7 +7458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx111011100xx
                                                                  orn.  */
-                                                              return 260;
+                                                              return 262;
                                                             }
                                                           else
                                                             {
@@ -6003,7 +7466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxxxxxxxxx111000xxxxx111011101xx
                                                                  bif.  */
-                                                              return 298;
+                                                              return 300;
                                                             }
                                                         }
                                                     }
@@ -6016,7 +7479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111001xxxxx1xx011100xx
                                                          mul.  */
-                                                      return 239;
+                                                      return 241;
                                                     }
                                                   else
                                                     {
@@ -6024,7 +7487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111001xxxxx1xx011101xx
                                                          pmul.  */
-                                                      return 279;
+                                                      return 281;
                                                     }
                                                 }
                                             }
@@ -6038,7 +7501,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111010xxxxx1xx011100xx
                                                          sqrshl.  */
-                                                      return 231;
+                                                      return 233;
                                                     }
                                                   else
                                                     {
@@ -6046,7 +7509,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111010xxxxx1xx011101xx
                                                          uqrshl.  */
-                                                      return 271;
+                                                      return 273;
                                                     }
                                                 }
                                               else
@@ -6057,7 +7520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111011xxxxx1xx011100xx
                                                          fmulx.  */
-                                                      return 247;
+                                                      return 249;
                                                     }
                                                   else
                                                     {
@@ -6065,7 +7528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111011xxxxx1xx011101xx
                                                          fmul.  */
-                                                      return 285;
+                                                      return 287;
                                                     }
                                                 }
                                             }
@@ -6082,7 +7545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111100xxxxx1xx011100xx
                                                          cmge.  */
-                                                      return 227;
+                                                      return 229;
                                                     }
                                                   else
                                                     {
@@ -6090,7 +7553,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111100xxxxx1xx011101xx
                                                          cmhs.  */
-                                                      return 267;
+                                                      return 269;
                                                     }
                                                 }
                                               else
@@ -6099,7 +7562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx111101xxxxx1xx01110xxx
                                                      addp.  */
-                                                  return 243;
+                                                  return 245;
                                                 }
                                             }
                                           else
@@ -6112,7 +7575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111110xxxxx1xx011100xx
                                                          saba.  */
-                                                      return 235;
+                                                      return 237;
                                                     }
                                                   else
                                                     {
@@ -6120,7 +7583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111110xxxxx1xx011101xx
                                                          uaba.  */
-                                                      return 275;
+                                                      return 277;
                                                     }
                                                 }
                                               else
@@ -6133,7 +7596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx111111xxxxx1x0011100xx
                                                              frecps.  */
-                                                          return 250;
+                                                          return 252;
                                                         }
                                                       else
                                                         {
@@ -6141,7 +7604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx111111xxxxx1x0011101xx
                                                              fdiv.  */
-                                                          return 289;
+                                                          return 291;
                                                         }
                                                     }
                                                   else
@@ -6150,7 +7613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx111111xxxxx1x101110xxx
                                                          frsqrts.  */
-                                                      return 257;
+                                                      return 259;
                                                     }
                                                 }
                                             }
@@ -6167,7 +7630,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx11xxxxxxxxx1xx0111100x
                                              fcsel.  */
-                                          return 636;
+                                          return 656;
                                         }
                                       else
                                         {
@@ -6183,7 +7646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx110000xxxxx1xx0111101x
                                                              sqadd.  */
-                                                          return 434;
+                                                          return 444;
                                                         }
                                                       else
                                                         {
@@ -6191,7 +7654,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx110001xxxxx1xx0111101x
                                                              cmtst.  */
-                                                          return 448;
+                                                          return 458;
                                                         }
                                                     }
                                                   else
@@ -6200,7 +7663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx11001xxxxxx1xx0111101x
                                                          sqshl.  */
-                                                      return 436;
+                                                      return 446;
                                                     }
                                                 }
                                               else
@@ -6209,7 +7672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1101xxxxxxx1xx0111101x
                                                      sqsub.  */
-                                                  return 435;
+                                                  return 445;
                                                 }
                                             }
                                           else
@@ -6222,7 +7685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx1110x0xxxxx1xx0111101x
                                                          sqrshl.  */
-                                                      return 437;
+                                                      return 447;
                                                     }
                                                   else
                                                     {
@@ -6230,7 +7693,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx1110x1xxxxx1xx0111101x
                                                          fmulx.  */
-                                                      return 439;
+                                                      return 449;
                                                     }
                                                 }
                                               else
@@ -6241,7 +7704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx11110xxxxxx1xx0111101x
                                                          cmge.  */
-                                                      return 444;
+                                                      return 454;
                                                     }
                                                   else
                                                     {
@@ -6251,7 +7714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx11111xxxxxx1x00111101x
                                                              frecps.  */
-                                                          return 441;
+                                                          return 451;
                                                         }
                                                       else
                                                         {
@@ -6259,7 +7722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxxxxxxxxx11111xxxxxx1x10111101x
                                                              frsqrts.  */
-                                                          return 442;
+                                                          return 452;
                                                         }
                                                     }
                                                 }
@@ -6280,7 +7743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110000xxxxx1xx011111xx
                                                          uqadd.  */
-                                                      return 449;
+                                                      return 459;
                                                     }
                                                   else
                                                     {
@@ -6288,7 +7751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx110001xxxxx1xx011111xx
                                                          cmeq.  */
-                                                      return 464;
+                                                      return 474;
                                                     }
                                                 }
                                               else
@@ -6297,7 +7760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx11001xxxxxx1xx011111xx
                                                      uqshl.  */
-                                                  return 451;
+                                                  return 461;
                                                 }
                                             }
                                           else
@@ -6308,7 +7771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx11010xxxxxx1xx011111xx
                                                      uqsub.  */
-                                                  return 450;
+                                                  return 460;
                                                 }
                                               else
                                                 {
@@ -6318,7 +7781,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx11011xxxxxx1x0011111xx
                                                          facge.  */
-                                                      return 455;
+                                                      return 465;
                                                     }
                                                   else
                                                     {
@@ -6326,7 +7789,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxxxxxxxxx11011xxxxxx1x1011111xx
                                                          facgt.  */
-                                                      return 458;
+                                                      return 468;
                                                     }
                                                 }
                                             }
@@ -6339,7 +7802,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1110xxxxxxx1xx011111xx
                                                  uqrshl.  */
-                                              return 452;
+                                              return 462;
                                             }
                                           else
                                             {
@@ -6347,7 +7810,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1111xxxxxxx1xx011111xx
                                                  cmhs.  */
-                                              return 460;
+                                              return 470;
                                             }
                                         }
                                     }
@@ -6545,7 +8008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx1x0xx0xxxxxxxx111100xx
                                          movi.  */
-                                      return 120;
+                                      return 122;
                                     }
                                   else
                                     {
@@ -6553,7 +8016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx1x0xx0xxxxxxxx111101xx
                                          mvni.  */
-                                      return 127;
+                                      return 129;
                                     }
                                 }
                               else
@@ -6564,7 +8027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx1x1xx0xxxxxxxx111100xx
                                          orr.  */
-                                      return 121;
+                                      return 123;
                                     }
                                   else
                                     {
@@ -6572,7 +8035,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxx1x1xx0xxxxxxxx111101xx
                                          bic.  */
-                                      return 128;
+                                      return 130;
                                     }
                                 }
                             }
@@ -6589,7 +8052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx0xxxxx0xx1111100x
                                          fmadd.  */
-                                      return 631;
+                                      return 651;
                                     }
                                   else
                                     {
@@ -6597,7 +8060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx0xxxxx1xx1111100x
                                          fnmadd.  */
-                                      return 633;
+                                      return 653;
                                     }
                                 }
                               else
@@ -6612,7 +8075,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0xx000xxxxxxxx1111101x
                                                  fmla.  */
-                                              return 347;
+                                              return 355;
                                             }
                                           else
                                             {
@@ -6620,7 +8083,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0xx010xxxxxxxx1111101x
                                                  fmls.  */
-                                              return 348;
+                                              return 356;
                                             }
                                         }
                                       else
@@ -6631,7 +8094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0xx100xxxxxxxx1111101x
                                                  sqdmlal.  */
-                                              return 342;
+                                              return 350;
                                             }
                                           else
                                             {
@@ -6639,7 +8102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0xx110xxxxxxxx1111101x
                                                  sqdmlsl.  */
-                                              return 343;
+                                              return 351;
                                             }
                                         }
                                     }
@@ -6653,7 +8116,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1x00x0xxxxxxxx1111101x
                                                  sshr.  */
-                                              return 465;
+                                              return 477;
                                             }
                                           else
                                             {
@@ -6661,7 +8124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1x01x0xxxxxxxx1111101x
                                                  srshr.  */
-                                              return 467;
+                                              return 479;
                                             }
                                         }
                                       else
@@ -6674,7 +8137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1x1000xxxxxxxx1111101x
                                                      ssra.  */
-                                                  return 466;
+                                                  return 478;
                                                 }
                                               else
                                                 {
@@ -6682,7 +8145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1x1010xxxxxxxx1111101x
                                                      shl.  */
-                                                  return 469;
+                                                  return 481;
                                                 }
                                             }
                                           else
@@ -6693,7 +8156,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1x1100xxxxxxxx1111101x
                                                      srsra.  */
-                                                  return 468;
+                                                  return 480;
                                                 }
                                               else
                                                 {
@@ -6701,7 +8164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1x1110xxxxxxxx1111101x
                                                      sqshl.  */
-                                                  return 470;
+                                                  return 482;
                                                 }
                                             }
                                         }
@@ -6720,7 +8183,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx0000xxxxxxxx111111xx
                                              ushr.  */
-                                          return 475;
+                                          return 487;
                                         }
                                       else
                                         {
@@ -6728,7 +8191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx0010xxxxxxxx111111xx
                                              sri.  */
-                                          return 479;
+                                          return 491;
                                         }
                                     }
                                   else
@@ -6739,7 +8202,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx0100xxxxxxxx111111xx
                                              urshr.  */
-                                          return 477;
+                                          return 489;
                                         }
                                       else
                                         {
@@ -6747,7 +8210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx0110xxxxxxxx111111xx
                                              sqshlu.  */
-                                          return 481;
+                                          return 493;
                                         }
                                     }
                                 }
@@ -6761,7 +8224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx1000xxxxxxxx111111xx
                                              usra.  */
-                                          return 476;
+                                          return 488;
                                         }
                                       else
                                         {
@@ -6769,7 +8232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx1010xxxxxxxx111111xx
                                              sli.  */
-                                          return 480;
+                                          return 492;
                                         }
                                     }
                                   else
@@ -6780,7 +8243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx1100xxxxxxxx111111xx
                                              ursra.  */
-                                          return 478;
+                                          return 490;
                                         }
                                       else
                                         {
@@ -6788,7 +8251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxxxx1110xxxxxxxx111111xx
                                              uqshl.  */
-                                          return 482;
+                                          return 494;
                                         }
                                     }
                                 }
@@ -6889,30 +8352,52 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x1011xxxxxxxx11110xxx
-                                             sqrdmulh.  */
-                                          return 106;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx0x1011xxxxxxxx111100xx
+                                                 sqrdmulh.  */
+                                              return 106;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx0x1011xxxxxxxx111101xx
+                                                 sqrdmlah.  */
+                                              return 119;
+                                            }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 14) & 0x1) == 0)
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x11x1xxxxxxxx11110x0x
-                                             sqdmull.  */
-                                          return 103;
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx0x1101xxxxxxxx11110x0x
+                                                 sqdmull.  */
+                                              return 103;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xxxxxxxxxx0x1101xxxxxxxx11110x1x
+                                                 sqdmull2.  */
+                                              return 104;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx0x11x1xxxxxxxx11110x1x
-                                             sqdmull2.  */
-                                          return 104;
+                                             xxxxxxxxxx0x1111xxxxxxxx11110xxx
+                                             sqrdmlsh.  */
+                                          return 120;
                                         }
                                     }
                                 }
@@ -6931,7 +8416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx100x01xxxxxxxx111100xx
                                                  movi.  */
-                                              return 122;
+                                              return 124;
                                             }
                                           else
                                             {
@@ -6939,7 +8424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx100x01xxxxxxxx111101xx
                                                  mvni.  */
-                                              return 129;
+                                              return 131;
                                             }
                                         }
                                       else
@@ -6950,7 +8435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx101x01xxxxxxxx111100xx
                                                  orr.  */
-                                              return 123;
+                                              return 125;
                                             }
                                           else
                                             {
@@ -6958,7 +8443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx101x01xxxxxxxx111101xx
                                                  bic.  */
-                                              return 130;
+                                              return 132;
                                             }
                                         }
                                     }
@@ -6972,7 +8457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx10x011xxxxxxxx111100xx
                                                  movi.  */
-                                              return 124;
+                                              return 126;
                                             }
                                           else
                                             {
@@ -6980,7 +8465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx10x011xxxxxxxx111101xx
                                                  mvni.  */
-                                              return 131;
+                                              return 133;
                                             }
                                         }
                                       else
@@ -6993,7 +8478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx100111xxxxxxxx111100xx
                                                      movi.  */
-                                                  return 125;
+                                                  return 127;
                                                 }
                                               else
                                                 {
@@ -7001,7 +8486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx100111xxxxxxxx111101xx
                                                      movi.  */
-                                                  return 132;
+                                                  return 134;
                                                 }
                                             }
                                           else
@@ -7012,7 +8497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx101111xxxxxxxx111100xx
                                                      fmov.  */
-                                                  return 126;
+                                                  return 128;
                                                 }
                                               else
                                                 {
@@ -7020,7 +8505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx101111xxxxxxxx111101xx
                                                      fmov.  */
-                                                  return 134;
+                                                  return 136;
                                                 }
                                             }
                                         }
@@ -7038,7 +8523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx110xx1xxxxxxxx1111000x
                                                  rshrn.  */
-                                              return 307;
+                                              return 311;
                                             }
                                           else
                                             {
@@ -7046,7 +8531,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx110xx1xxxxxxxx1111001x
                                                  rshrn2.  */
-                                              return 308;
+                                              return 312;
                                             }
                                         }
                                       else
@@ -7057,7 +8542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx110xx1xxxxxxxx1111010x
                                                  sqrshrun.  */
-                                              return 327;
+                                              return 333;
                                             }
                                           else
                                             {
@@ -7065,7 +8550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx110xx1xxxxxxxx1111011x
                                                  sqrshrun2.  */
-                                              return 328;
+                                              return 334;
                                             }
                                         }
                                     }
@@ -7081,7 +8566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1110x1xxxxxxxx1111000x
                                                      sqrshrn.  */
-                                                  return 311;
+                                                  return 315;
                                                 }
                                               else
                                                 {
@@ -7089,7 +8574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1110x1xxxxxxxx1111001x
                                                      sqrshrn2.  */
-                                                  return 312;
+                                                  return 316;
                                                 }
                                             }
                                           else
@@ -7100,7 +8585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1110x1xxxxxxxx1111010x
                                                      uqrshrn.  */
-                                                  return 331;
+                                                  return 337;
                                                 }
                                               else
                                                 {
@@ -7108,7 +8593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx1110x1xxxxxxxx1111011x
                                                      uqrshrn2.  */
-                                                  return 332;
+                                                  return 338;
                                                 }
                                             }
                                         }
@@ -7120,7 +8605,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1111x1xxxxxxxx111100xx
                                                  fcvtzs.  */
-                                              return 316;
+                                              return 322;
                                             }
                                           else
                                             {
@@ -7128,7 +8613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1111x1xxxxxxxx111101xx
                                                  fcvtzu.  */
-                                              return 336;
+                                              return 344;
                                             }
                                         }
                                     }
@@ -7147,7 +8632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx1xxxxx0xx1111100x
                                          fmsub.  */
-                                      return 632;
+                                      return 652;
                                     }
                                   else
                                     {
@@ -7155,7 +8640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xxxxxxxxxxxxxxx1xxxxx1xx1111100x
                                          fnmsub.  */
-                                      return 634;
+                                      return 654;
                                     }
                                 }
                               else
@@ -7168,7 +8653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx0x0xx1xxxxxxxx1111101x
                                              sqdmulh.  */
-                                          return 345;
+                                          return 353;
                                         }
                                       else
                                         {
@@ -7180,7 +8665,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx0x1001xxxxxxxx1111101x
                                                      fmul.  */
-                                                  return 349;
+                                                  return 357;
                                                 }
                                               else
                                                 {
@@ -7188,7 +8673,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxxxxxxxxx0x1011xxxxxxxx1111101x
                                                      sqrdmulh.  */
-                                                  return 346;
+                                                  return 354;
                                                 }
                                             }
                                           else
@@ -7197,7 +8682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx0x11x1xxxxxxxx1111101x
                                                  sqdmull.  */
-                                              return 344;
+                                              return 352;
                                             }
                                         }
                                     }
@@ -7211,7 +8696,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx100xx1xxxxxxxx1111101x
                                                  scvtf.  */
-                                              return 473;
+                                              return 485;
                                             }
                                           else
                                             {
@@ -7219,7 +8704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx101xx1xxxxxxxx1111101x
                                                  sqshrn.  */
-                                              return 471;
+                                              return 483;
                                             }
                                         }
                                       else
@@ -7230,7 +8715,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx11x0x1xxxxxxxx1111101x
                                                  sqrshrn.  */
-                                              return 472;
+                                              return 484;
                                             }
                                           else
                                             {
@@ -7238,7 +8723,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx11x1x1xxxxxxxx1111101x
                                                  fcvtzs.  */
-                                              return 474;
+                                              return 486;
                                             }
                                         }
                                     }
@@ -7248,11 +8733,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               if (((word >> 10) & 0x1) == 0)
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxx0xxxx1xxxxxxxx111111xx
-                                     fmulx.  */
-                                  return 350;
+                                  if (((word >> 13) & 0x1) == 0)
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxx0xx001xxxxxxxx111111xx
+                                             fmulx.  */
+                                          return 358;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxxxxxxxxx0xx011xxxxxxxx111111xx
+                                             sqrdmlah.  */
+                                          return 359;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xxxxxxxxxx0xx1x1xxxxxxxx111111xx
+                                         sqrdmlsh.  */
+                                      return 360;
+                                    }
                                 }
                               else
                                 {
@@ -7266,7 +8773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1000x1xxxxxxxx111111xx
                                                  sqshrun.  */
-                                              return 483;
+                                              return 495;
                                             }
                                           else
                                             {
@@ -7274,7 +8781,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1001x1xxxxxxxx111111xx
                                                  ucvtf.  */
-                                              return 487;
+                                              return 499;
                                             }
                                         }
                                       else
@@ -7283,7 +8790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx101xx1xxxxxxxx111111xx
                                              uqshrn.  */
-                                          return 485;
+                                          return 497;
                                         }
                                     }
                                   else
@@ -7294,7 +8801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxxxxxxxxx110xx1xxxxxxxx111111xx
                                              sqrshrun.  */
-                                          return 484;
+                                          return 496;
                                         }
                                       else
                                         {
@@ -7304,7 +8811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1110x1xxxxxxxx111111xx
                                                  uqrshrn.  */
-                                              return 486;
+                                              return 498;
                                             }
                                           else
                                             {
@@ -7312,7 +8819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xxxxxxxxxx1111x1xxxxxxxx111111xx
                                                  fcvtzu.  */
-                                              return 488;
+                                              return 500;
                                             }
                                         }
                                     }
@@ -7343,81 +8850,93 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
   int value;
   switch (key)
     {
-    case 727: value = 731; break;      /* stnp --> stp.  */
-    case 731: return NULL;             /* stp --> NULL.  */
-    case 728: value = 732; break;      /* ldnp --> ldp.  */
-    case 732: return NULL;             /* ldp --> NULL.  */
-    case 351: value = 352; break;      /* st4 --> st1.  */
-    case 352: value = 353; break;      /* st1 --> st2.  */
-    case 353: value = 354; break;      /* st2 --> st3.  */
-    case 354: return NULL;             /* st3 --> NULL.  */
-    case 359: value = 360; break;      /* st4 --> st1.  */
-    case 360: value = 361; break;      /* st1 --> st2.  */
-    case 361: value = 362; break;      /* st2 --> st3.  */
-    case 362: return NULL;             /* st3 --> NULL.  */
-    case 355: value = 356; break;      /* ld4 --> ld1.  */
-    case 356: value = 357; break;      /* ld1 --> ld2.  */
-    case 357: value = 358; break;      /* ld2 --> ld3.  */
-    case 358: return NULL;             /* ld3 --> NULL.  */
-    case 371: value = 373; break;      /* ld1 --> ld1r.  */
-    case 373: return NULL;             /* ld1r --> NULL.  */
-    case 375: value = 377; break;      /* ld2 --> ld2r.  */
-    case 377: return NULL;             /* ld2r --> NULL.  */
-    case 372: value = 374; break;      /* ld3 --> ld3r.  */
-    case 374: return NULL;             /* ld3r --> NULL.  */
-    case 376: value = 378; break;      /* ld4 --> ld4r.  */
-    case 378: return NULL;             /* ld4r --> NULL.  */
-    case 363: value = 364; break;      /* ld4 --> ld1.  */
-    case 364: value = 365; break;      /* ld1 --> ld2.  */
-    case 365: value = 366; break;      /* ld2 --> ld3.  */
-    case 366: return NULL;             /* ld3 --> NULL.  */
-    case 383: value = 385; break;      /* ld1 --> ld1r.  */
-    case 385: return NULL;             /* ld1r --> NULL.  */
-    case 384: value = 386; break;      /* ld3 --> ld3r.  */
-    case 386: return NULL;             /* ld3r --> NULL.  */
-    case 387: value = 389; break;      /* ld2 --> ld2r.  */
-    case 389: return NULL;             /* ld2r --> NULL.  */
-    case 388: value = 390; break;      /* ld4 --> ld4r.  */
-    case 390: return NULL;             /* ld4r --> NULL.  */
-    case 120: value = 299; break;      /* movi --> sshr.  */
-    case 299: value = 301; break;      /* sshr --> srshr.  */
-    case 301: return NULL;             /* srshr --> NULL.  */
-    case 127: value = 317; break;      /* mvni --> ushr.  */
-    case 317: value = 319; break;      /* ushr --> urshr.  */
-    case 319: value = 321; break;      /* urshr --> sri.  */
-    case 321: value = 323; break;      /* sri --> sqshlu.  */
-    case 323: return NULL;             /* sqshlu --> NULL.  */
-    case 121: value = 300; break;      /* orr --> ssra.  */
-    case 300: value = 302; break;      /* ssra --> srsra.  */
-    case 302: value = 303; break;      /* srsra --> shl.  */
-    case 303: value = 304; break;      /* shl --> sqshl.  */
-    case 304: return NULL;             /* sqshl --> NULL.  */
-    case 128: value = 318; break;      /* bic --> usra.  */
-    case 318: value = 320; break;      /* usra --> ursra.  */
-    case 320: value = 322; break;      /* ursra --> sli.  */
-    case 322: value = 324; break;      /* sli --> uqshl.  */
-    case 324: return NULL;             /* uqshl --> NULL.  */
-    case 122: value = 305; break;      /* movi --> shrn.  */
-    case 305: value = 306; break;      /* shrn --> shrn2.  */
-    case 306: value = 313; break;      /* shrn2 --> sshll.  */
-    case 313: value = 314; break;      /* sshll --> sshll2.  */
-    case 314: return NULL;             /* sshll2 --> NULL.  */
-    case 129: value = 325; break;      /* mvni --> sqshrun.  */
-    case 325: value = 326; break;      /* sqshrun --> sqshrun2.  */
-    case 326: value = 333; break;      /* sqshrun2 --> ushll.  */
-    case 333: value = 334; break;      /* ushll --> ushll2.  */
-    case 334: return NULL;             /* ushll2 --> NULL.  */
-    case 123: value = 309; break;      /* orr --> sqshrn.  */
-    case 309: value = 310; break;      /* sqshrn --> sqshrn2.  */
-    case 310: return NULL;             /* sqshrn2 --> NULL.  */
-    case 130: value = 329; break;      /* bic --> uqshrn.  */
-    case 329: value = 330; break;      /* uqshrn --> uqshrn2.  */
-    case 330: return NULL;             /* uqshrn2 --> NULL.  */
-    case 125: value = 315; break;      /* movi --> scvtf.  */
-    case 315: return NULL;             /* scvtf --> NULL.  */
-    case 132: value = 133; break;      /* movi --> movi.  */
-    case 133: value = 335; break;      /* movi --> ucvtf.  */
-    case 335: return NULL;             /* ucvtf --> NULL.  */
+    case 741: value = 745; break;      /* stnp --> stp.  */
+    case 745: return NULL;             /* stp --> NULL.  */
+    case 739: value = 740; break;      /* stllrb --> stllrh.  */
+    case 740: return NULL;             /* stllrh --> NULL.  */
+    case 742: value = 746; break;      /* ldnp --> ldp.  */
+    case 746: return NULL;             /* ldp --> NULL.  */
+    case 957: value = 958; break;      /* msr --> hint.  */
+    case 958: value = 965; break;      /* hint --> clrex.  */
+    case 965: value = 966; break;      /* clrex --> dsb.  */
+    case 966: value = 967; break;      /* dsb --> dmb.  */
+    case 967: value = 968; break;      /* dmb --> isb.  */
+    case 968: value = 969; break;      /* isb --> sys.  */
+    case 969: value = 974; break;      /* sys --> msr.  */
+    case 974: return NULL;             /* msr --> NULL.  */
+    case 975: value = 976; break;      /* sysl --> mrs.  */
+    case 976: return NULL;             /* mrs --> NULL.  */
+    case 361: value = 362; break;      /* st4 --> st1.  */
+    case 362: value = 363; break;      /* st1 --> st2.  */
+    case 363: value = 364; break;      /* st2 --> st3.  */
+    case 364: return NULL;             /* st3 --> NULL.  */
+    case 369: value = 370; break;      /* st4 --> st1.  */
+    case 370: value = 371; break;      /* st1 --> st2.  */
+    case 371: value = 372; break;      /* st2 --> st3.  */
+    case 372: return NULL;             /* st3 --> NULL.  */
+    case 365: value = 366; break;      /* ld4 --> ld1.  */
+    case 366: value = 367; break;      /* ld1 --> ld2.  */
+    case 367: value = 368; break;      /* ld2 --> ld3.  */
+    case 368: return NULL;             /* ld3 --> NULL.  */
+    case 381: value = 383; break;      /* ld1 --> ld1r.  */
+    case 383: return NULL;             /* ld1r --> NULL.  */
+    case 385: value = 387; break;      /* ld2 --> ld2r.  */
+    case 387: return NULL;             /* ld2r --> NULL.  */
+    case 382: value = 384; break;      /* ld3 --> ld3r.  */
+    case 384: return NULL;             /* ld3r --> NULL.  */
+    case 386: value = 388; break;      /* ld4 --> ld4r.  */
+    case 388: return NULL;             /* ld4r --> NULL.  */
+    case 373: value = 374; break;      /* ld4 --> ld1.  */
+    case 374: value = 375; break;      /* ld1 --> ld2.  */
+    case 375: value = 376; break;      /* ld2 --> ld3.  */
+    case 376: return NULL;             /* ld3 --> NULL.  */
+    case 393: value = 395; break;      /* ld1 --> ld1r.  */
+    case 395: return NULL;             /* ld1r --> NULL.  */
+    case 394: value = 396; break;      /* ld3 --> ld3r.  */
+    case 396: return NULL;             /* ld3r --> NULL.  */
+    case 397: value = 399; break;      /* ld2 --> ld2r.  */
+    case 399: return NULL;             /* ld2r --> NULL.  */
+    case 398: value = 400; break;      /* ld4 --> ld4r.  */
+    case 400: return NULL;             /* ld4r --> NULL.  */
+    case 122: value = 303; break;      /* movi --> sshr.  */
+    case 303: value = 305; break;      /* sshr --> srshr.  */
+    case 305: return NULL;             /* srshr --> NULL.  */
+    case 129: value = 323; break;      /* mvni --> ushr.  */
+    case 323: value = 325; break;      /* ushr --> urshr.  */
+    case 325: value = 327; break;      /* urshr --> sri.  */
+    case 327: value = 329; break;      /* sri --> sqshlu.  */
+    case 329: return NULL;             /* sqshlu --> NULL.  */
+    case 123: value = 304; break;      /* orr --> ssra.  */
+    case 304: value = 306; break;      /* ssra --> srsra.  */
+    case 306: value = 307; break;      /* srsra --> shl.  */
+    case 307: value = 308; break;      /* shl --> sqshl.  */
+    case 308: return NULL;             /* sqshl --> NULL.  */
+    case 130: value = 324; break;      /* bic --> usra.  */
+    case 324: value = 326; break;      /* usra --> ursra.  */
+    case 326: value = 328; break;      /* ursra --> sli.  */
+    case 328: value = 330; break;      /* sli --> uqshl.  */
+    case 330: return NULL;             /* uqshl --> NULL.  */
+    case 124: value = 309; break;      /* movi --> shrn.  */
+    case 309: value = 310; break;      /* shrn --> shrn2.  */
+    case 310: value = 317; break;      /* shrn2 --> sshll.  */
+    case 317: value = 319; break;      /* sshll --> sshll2.  */
+    case 319: return NULL;             /* sshll2 --> NULL.  */
+    case 131: value = 331; break;      /* mvni --> sqshrun.  */
+    case 331: value = 332; break;      /* sqshrun --> sqshrun2.  */
+    case 332: value = 339; break;      /* sqshrun2 --> ushll.  */
+    case 339: value = 341; break;      /* ushll --> ushll2.  */
+    case 341: return NULL;             /* ushll2 --> NULL.  */
+    case 125: value = 313; break;      /* orr --> sqshrn.  */
+    case 313: value = 314; break;      /* sqshrn --> sqshrn2.  */
+    case 314: return NULL;             /* sqshrn2 --> NULL.  */
+    case 132: value = 335; break;      /* bic --> uqshrn.  */
+    case 335: value = 336; break;      /* uqshrn --> uqshrn2.  */
+    case 336: return NULL;             /* uqshrn2 --> NULL.  */
+    case 127: value = 321; break;      /* movi --> scvtf.  */
+    case 321: return NULL;             /* scvtf --> NULL.  */
+    case 134: value = 135; break;      /* movi --> movi.  */
+    case 135: value = 343; break;      /* movi --> ucvtf.  */
+    case 343: return NULL;             /* ucvtf --> NULL.  */
     default: return NULL;
     }
 
@@ -7442,51 +8961,91 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
     case 20: value = 21; break;        /* adds --> cmn.  */
     case 22: value = 23; break;        /* sub --> neg.  */
     case 24: value = 26; break;        /* subs --> negs.  */
-    case 138: value = 139; break;      /* umov --> mov.  */
-    case 140: value = 141; break;      /* ins --> mov.  */
+    case 140: value = 141; break;      /* umov --> mov.  */
     case 142: value = 143; break;      /* ins --> mov.  */
-    case 203: value = 204; break;      /* not --> mvn.  */
-    case 258: value = 259; break;      /* orr --> mov.  */
-    case 426: value = 427; break;      /* dup --> mov.  */
-    case 489: value = 494; break;      /* sbfm --> sxtw.  */
-    case 496: value = 498; break;      /* bfm --> bfxil.  */
-    case 499: value = 503; break;      /* ubfm --> uxth.  */
-    case 521: value = 523; break;      /* csinc --> cset.  */
-    case 524: value = 526; break;      /* csinv --> csetm.  */
-    case 527: value = 528; break;      /* csneg --> cneg.  */
-    case 552: value = 553; break;      /* lslv --> lsl.  */
-    case 554: value = 555; break;      /* lsrv --> lsr.  */
-    case 556: value = 557; break;      /* asrv --> asr.  */
-    case 558: value = 559; break;      /* rorv --> ror.  */
-    case 560: value = 561; break;      /* madd --> mul.  */
-    case 562: value = 563; break;      /* msub --> mneg.  */
-    case 564: value = 565; break;      /* smaddl --> smull.  */
-    case 566: value = 567; break;      /* smsubl --> smnegl.  */
-    case 569: value = 570; break;      /* umaddl --> umull.  */
-    case 571: value = 572; break;      /* umsubl --> umnegl.  */
-    case 582: value = 583; break;      /* extr --> ror.  */
-    case 681: value = 683; break;      /* sturb --> strb.  */
-    case 682: value = 684; break;      /* ldurb --> ldrb.  */
-    case 685: value = 686; break;      /* ldursb --> ldrsb.  */
-    case 687: value = 689; break;      /* stur --> str.  */
-    case 688: value = 690; break;      /* ldur --> ldr.  */
-    case 691: value = 693; break;      /* sturh --> strh.  */
-    case 692: value = 694; break;      /* ldurh --> ldrh.  */
-    case 695: value = 696; break;      /* ldursh --> ldrsh.  */
-    case 697: value = 699; break;      /* stur --> str.  */
-    case 698: value = 700; break;      /* ldur --> ldr.  */
-    case 701: value = 702; break;      /* ldursw --> ldrsw.  */
-    case 703: value = 704; break;      /* prfum --> prfm.  */
-    case 745: value = 746; break;      /* and --> bic.  */
-    case 747: value = 748; break;      /* orr --> mov.  */
-    case 750: value = 751; break;      /* ands --> tst.  */
-    case 754: value = 756; break;      /* orr --> uxtw.  */
-    case 757: value = 758; break;      /* orn --> mvn.  */
-    case 761: value = 762; break;      /* ands --> tst.  */
-    case 764: value = 765; break;      /* movn --> mov.  */
-    case 766: value = 767; break;      /* movz --> mov.  */
-    case 772: value = 778; break;      /* hint --> sevl.  */
-    case 783: value = 787; break;      /* sys --> tlbi.  */
+    case 144: value = 145; break;      /* ins --> mov.  */
+    case 205: value = 206; break;      /* not --> mvn.  */
+    case 260: value = 261; break;      /* orr --> mov.  */
+    case 317: value = 318; break;      /* sshll --> sxtl.  */
+    case 319: value = 320; break;      /* sshll2 --> sxtl2.  */
+    case 339: value = 340; break;      /* ushll --> uxtl.  */
+    case 341: value = 342; break;      /* ushll2 --> uxtl2.  */
+    case 436: value = 437; break;      /* dup --> mov.  */
+    case 501: value = 506; break;      /* sbfm --> sxtw.  */
+    case 508: value = 510; break;      /* bfm --> bfxil.  */
+    case 511: value = 515; break;      /* ubfm --> uxth.  */
+    case 533: value = 535; break;      /* csinc --> cset.  */
+    case 536: value = 538; break;      /* csinv --> csetm.  */
+    case 539: value = 540; break;      /* csneg --> cneg.  */
+    case 564: value = 565; break;      /* lslv --> lsl.  */
+    case 566: value = 567; break;      /* lsrv --> lsr.  */
+    case 568: value = 569; break;      /* asrv --> asr.  */
+    case 570: value = 571; break;      /* rorv --> ror.  */
+    case 580: value = 581; break;      /* madd --> mul.  */
+    case 582: value = 583; break;      /* msub --> mneg.  */
+    case 584: value = 585; break;      /* smaddl --> smull.  */
+    case 586: value = 587; break;      /* smsubl --> smnegl.  */
+    case 589: value = 590; break;      /* umaddl --> umull.  */
+    case 591: value = 592; break;      /* umsubl --> umnegl.  */
+    case 602: value = 603; break;      /* extr --> ror.  */
+    case 759: value = 760; break;      /* and --> bic.  */
+    case 761: value = 762; break;      /* orr --> mov.  */
+    case 764: value = 765; break;      /* ands --> tst.  */
+    case 768: value = 770; break;      /* orr --> uxtw.  */
+    case 771: value = 772; break;      /* orn --> mvn.  */
+    case 775: value = 776; break;      /* ands --> tst.  */
+    case 806: value = 902; break;      /* ldaddb --> staddb.  */
+    case 807: value = 903; break;      /* ldaddh --> staddh.  */
+    case 808: value = 904; break;      /* ldadd --> stadd.  */
+    case 810: value = 905; break;      /* ldaddlb --> staddlb.  */
+    case 813: value = 906; break;      /* ldaddlh --> staddlh.  */
+    case 816: value = 907; break;      /* ldaddl --> staddl.  */
+    case 818: value = 908; break;      /* ldclrb --> stclrb.  */
+    case 819: value = 909; break;      /* ldclrh --> stclrh.  */
+    case 820: value = 910; break;      /* ldclr --> stclr.  */
+    case 822: value = 911; break;      /* ldclrlb --> stclrlb.  */
+    case 825: value = 912; break;      /* ldclrlh --> stclrlh.  */
+    case 828: value = 913; break;      /* ldclrl --> stclrl.  */
+    case 830: value = 914; break;      /* ldeorb --> steorb.  */
+    case 831: value = 915; break;      /* ldeorh --> steorh.  */
+    case 832: value = 916; break;      /* ldeor --> steor.  */
+    case 834: value = 917; break;      /* ldeorlb --> steorlb.  */
+    case 837: value = 918; break;      /* ldeorlh --> steorlh.  */
+    case 840: value = 919; break;      /* ldeorl --> steorl.  */
+    case 842: value = 920; break;      /* ldsetb --> stsetb.  */
+    case 843: value = 921; break;      /* ldseth --> stseth.  */
+    case 844: value = 922; break;      /* ldset --> stset.  */
+    case 846: value = 923; break;      /* ldsetlb --> stsetlb.  */
+    case 849: value = 924; break;      /* ldsetlh --> stsetlh.  */
+    case 852: value = 925; break;      /* ldsetl --> stsetl.  */
+    case 854: value = 926; break;      /* ldsmaxb --> stsmaxb.  */
+    case 855: value = 927; break;      /* ldsmaxh --> stsmaxh.  */
+    case 856: value = 928; break;      /* ldsmax --> stsmax.  */
+    case 858: value = 929; break;      /* ldsmaxlb --> stsmaxlb.  */
+    case 861: value = 930; break;      /* ldsmaxlh --> stsmaxlh.  */
+    case 864: value = 931; break;      /* ldsmaxl --> stsmaxl.  */
+    case 866: value = 932; break;      /* ldsminb --> stsminb.  */
+    case 867: value = 933; break;      /* ldsminh --> stsminh.  */
+    case 868: value = 934; break;      /* ldsmin --> stsmin.  */
+    case 870: value = 935; break;      /* ldsminlb --> stsminlb.  */
+    case 873: value = 936; break;      /* ldsminlh --> stsminlh.  */
+    case 876: value = 937; break;      /* ldsminl --> stsminl.  */
+    case 878: value = 938; break;      /* ldumaxb --> stumaxb.  */
+    case 879: value = 939; break;      /* ldumaxh --> stumaxh.  */
+    case 880: value = 940; break;      /* ldumax --> stumax.  */
+    case 882: value = 941; break;      /* ldumaxlb --> stumaxlb.  */
+    case 885: value = 942; break;      /* ldumaxlh --> stumaxlh.  */
+    case 888: value = 943; break;      /* ldumaxl --> stumaxl.  */
+    case 890: value = 944; break;      /* lduminb --> stuminb.  */
+    case 891: value = 945; break;      /* lduminh --> stuminh.  */
+    case 892: value = 946; break;      /* ldumin --> stumin.  */
+    case 894: value = 947; break;      /* lduminlb --> stuminlb.  */
+    case 897: value = 948; break;      /* lduminlh --> stuminlh.  */
+    case 900: value = 949; break;      /* lduminl --> stuminl.  */
+    case 950: value = 951; break;      /* movn --> mov.  */
+    case 952: value = 953; break;      /* movz --> mov.  */
+    case 958: value = 964; break;      /* hint --> sevl.  */
+    case 969: value = 973; break;      /* sys --> tlbi.  */
     default: return NULL;
     }
 
@@ -7502,28 +9061,28 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
   switch (key)
     {
     case 26: value = 25; break;        /* negs --> cmp.  */
-    case 494: value = 493; break;      /* sxtw --> sxth.  */
-    case 493: value = 492; break;      /* sxth --> sxtb.  */
-    case 492: value = 495; break;      /* sxtb --> asr.  */
-    case 495: value = 491; break;      /* asr --> sbfx.  */
-    case 491: value = 490; break;      /* sbfx --> sbfiz.  */
-    case 498: value = 497; break;      /* bfxil --> bfi.  */
-    case 503: value = 502; break;      /* uxth --> uxtb.  */
-    case 502: value = 505; break;      /* uxtb --> lsr.  */
-    case 505: value = 504; break;      /* lsr --> lsl.  */
-    case 504: value = 501; break;      /* lsl --> ubfx.  */
-    case 501: value = 500; break;      /* ubfx --> ubfiz.  */
-    case 523: value = 522; break;      /* cset --> cinc.  */
-    case 526: value = 525; break;      /* csetm --> cinv.  */
-    case 756: value = 755; break;      /* uxtw --> mov.  */
-    case 778: value = 777; break;      /* sevl --> sev.  */
-    case 777: value = 776; break;      /* sev --> wfi.  */
-    case 776: value = 775; break;      /* wfi --> wfe.  */
-    case 775: value = 774; break;      /* wfe --> yield.  */
-    case 774: value = 773; break;      /* yield --> nop.  */
-    case 787: value = 786; break;      /* tlbi --> ic.  */
-    case 786: value = 785; break;      /* ic --> dc.  */
-    case 785: value = 784; break;      /* dc --> at.  */
+    case 506: value = 505; break;      /* sxtw --> sxth.  */
+    case 505: value = 504; break;      /* sxth --> sxtb.  */
+    case 504: value = 507; break;      /* sxtb --> asr.  */
+    case 507: value = 503; break;      /* asr --> sbfx.  */
+    case 503: value = 502; break;      /* sbfx --> sbfiz.  */
+    case 510: value = 509; break;      /* bfxil --> bfi.  */
+    case 515: value = 514; break;      /* uxth --> uxtb.  */
+    case 514: value = 517; break;      /* uxtb --> lsr.  */
+    case 517: value = 516; break;      /* lsr --> lsl.  */
+    case 516: value = 513; break;      /* lsl --> ubfx.  */
+    case 513: value = 512; break;      /* ubfx --> ubfiz.  */
+    case 535: value = 534; break;      /* cset --> cinc.  */
+    case 538: value = 537; break;      /* csetm --> cinv.  */
+    case 770: value = 769; break;      /* uxtw --> mov.  */
+    case 964: value = 963; break;      /* sevl --> sev.  */
+    case 963: value = 962; break;      /* sev --> wfi.  */
+    case 962: value = 961; break;      /* wfi --> wfe.  */
+    case 961: value = 960; break;      /* wfe --> yield.  */
+    case 960: value = 959; break;      /* yield --> nop.  */
+    case 973: value = 972; break;      /* tlbi --> ic.  */
+    case 972: value = 971; break;      /* ic --> dc.  */
+    case 971: value = 970; break;      /* dc --> at.  */
     default: return NULL;
     }
 
@@ -7548,11 +9107,10 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 7:
     case 9:
     case 10:
-    case 13:
     case 14:
     case 15:
     case 16:
-    case 18:
+    case 17:
     case 19:
     case 20:
     case 21:
@@ -7561,31 +9119,33 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 24:
     case 25:
     case 26:
-    case 34:
+    case 27:
     case 35:
+    case 36:
       return aarch64_ext_regno (self, info, code, inst);
     case 8:
       return aarch64_ext_regrt_sysins (self, info, code, inst);
     case 11:
-      return aarch64_ext_reg_extended (self, info, code, inst);
+      return aarch64_ext_regno_pair (self, info, code, inst);
     case 12:
+      return aarch64_ext_reg_extended (self, info, code, inst);
+    case 13:
       return aarch64_ext_reg_shifted (self, info, code, inst);
-    case 17:
+    case 18:
       return aarch64_ext_ft (self, info, code, inst);
-    case 27:
     case 28:
     case 29:
-      return aarch64_ext_reglane (self, info, code, inst);
     case 30:
-      return aarch64_ext_reglist (self, info, code, inst);
+      return aarch64_ext_reglane (self, info, code, inst);
     case 31:
-      return aarch64_ext_ldst_reglist (self, info, code, inst);
+      return aarch64_ext_reglist (self, info, code, inst);
     case 32:
-      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
+      return aarch64_ext_ldst_reglist (self, info, code, inst);
     case 33:
+      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
+    case 34:
       return aarch64_ext_ldst_elemlist (self, info, code, inst);
-    case 36:
-    case 45:
+    case 37:
     case 46:
     case 47:
     case 48:
@@ -7598,57 +9158,59 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 55:
     case 56:
     case 57:
-    case 64:
-    case 65:
+    case 58:
     case 66:
     case 67:
     case 68:
+    case 69:
+    case 70:
       return aarch64_ext_imm (self, info, code, inst);
-    case 37:
     case 38:
-      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 39:
+      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 40:
     case 41:
-      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
     case 42:
+      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
+    case 43:
       return aarch64_ext_shll_imm (self, info, code, inst);
-    case 58:
-      return aarch64_ext_limm (self, info, code, inst);
     case 59:
-      return aarch64_ext_aimm (self, info, code, inst);
+      return aarch64_ext_limm (self, info, code, inst);
     case 60:
-      return aarch64_ext_imm_half (self, info, code, inst);
+      return aarch64_ext_aimm (self, info, code, inst);
     case 61:
+      return aarch64_ext_imm_half (self, info, code, inst);
+    case 62:
       return aarch64_ext_fbits (self, info, code, inst);
-    case 63:
+    case 64:
+    case 65:
       return aarch64_ext_cond (self, info, code, inst);
-    case 69:
-    case 75:
-      return aarch64_ext_addr_simple (self, info, code, inst);
-    case 70:
-      return aarch64_ext_addr_regoff (self, info, code, inst);
     case 71:
+    case 77:
+      return aarch64_ext_addr_simple (self, info, code, inst);
     case 72:
+      return aarch64_ext_addr_regoff (self, info, code, inst);
     case 73:
-      return aarch64_ext_addr_simm (self, info, code, inst);
     case 74:
-      return aarch64_ext_addr_uimm12 (self, info, code, inst);
+    case 75:
+      return aarch64_ext_addr_simm (self, info, code, inst);
     case 76:
-      return aarch64_ext_simd_addr_post (self, info, code, inst);
-    case 77:
-      return aarch64_ext_sysreg (self, info, code, inst);
+      return aarch64_ext_addr_uimm12 (self, info, code, inst);
     case 78:
-      return aarch64_ext_pstatefield (self, info, code, inst);
+      return aarch64_ext_simd_addr_post (self, info, code, inst);
     case 79:
+      return aarch64_ext_sysreg (self, info, code, inst);
     case 80:
+      return aarch64_ext_pstatefield (self, info, code, inst);
     case 81:
     case 82:
-      return aarch64_ext_sysins_op (self, info, code, inst);
     case 83:
     case 84:
-      return aarch64_ext_barrier (self, info, code, inst);
+      return aarch64_ext_sysins_op (self, info, code, inst);
     case 85:
+    case 86:
+      return aarch64_ext_barrier (self, info, code, inst);
+    case 87:
       return aarch64_ext_prfop (self, info, code, inst);
     default: assert (0); abort ();
     }
This page took 0.156679 seconds and 4 git commands to generate.