odin-blend2d

Odin bindings to Blend2D
Log | Files | Refs | README | LICENSE

a64instdb.cpp (230877B)


      1 // This file is part of AsmJit project <https://asmjit.com>
      2 //
      3 // See <asmjit/core.h> or LICENSE.md for license and copyright information
      4 // SPDX-License-Identifier: Zlib
      5 
      6 #include "../core/api-build_p.h"
      7 #if !defined(ASMJIT_NO_AARCH64)
      8 
      9 #include "../core/codeholder.h"
     10 #include "../core/support.h"
     11 #include "../arm/a64instdb_p.h"
     12 #include "../arm/a64operand.h"
     13 
     14 ASMJIT_BEGIN_SUB_NAMESPACE(a64)
     15 
     16 namespace InstDB {
     17 
     18 // a64::InstDB - InstInfoTable
     19 // ===========================
     20 
     21 // Defines an ARM/AArch64 instruction.
     22 #define INST(id, opcode_encoding, opcode_data, rw_info_index, flags, opcode_data_index) { \
     23   uint32_t(kEncoding##opcode_encoding),                                                   \
     24   uint32_t(opcode_data_index),                                                            \
     25   0,                                                                                      \
     26   uint16_t(rw_info_index),                                                                \
     27   uint16_t(flags)                                                                         \
     28 }
     29 
     30 #define F(flag) kInstFlag##flag
     31 
     32 // TODO: [ARM] Missing Instructions:
     33 /*
     34 BLRAA, BLRAAZ, BLRAB, BLRABZ: Branch with Link to Register, with pointer authentication.
     35 BRAA, BRAAZ, BRAB, BRABZ: Branch to Register, with pointer authentication.
     36 
     37 CFP: Control Flow Prediction Restriction by Context: an alias of SYS.
     38 CPP: Cache Prefetch Prediction Restriction by Context: an alias of SYS.
     39 DVP: Data Value Prediction Restriction by Context: an alias of SYS.
     40 PSB CSYNC: Profiling Synchronization Barrier.
     41 
     42 ERETAA, ERETAB: Exception Return, with pointer authentication.
     43 LDAPxxx
     44 PACIA, PACIA1716, PACIASP, PACIAZ, PACIZA: Pointer Authentication Code for Instruction address, using key A.
     45 PACIB, PACIB1716, PACIBSP, PACIBZ, PACIZB: Pointer Authentication Code for Instruction address, using key B.
     46 PRFUM: Prefetch Memory (unscaled offset).
     47 RETAA, RETAB: Return from subroutine, with pointer authentication.
     48 RMIF: Rotate, Mask Insert Flags.
     49 SYSL
     50 IRG: Insert Random Tag.
     51 INST_(Irg              , BaseRRR            , (0b1001101011000000000100, kX , kSP, kX , kSP, kX , kZR, true)                        , kRWI_W    , 0                         , 0  , 1   ), // #1
     52 */
     53 const InstInfo _inst_info_table[] = {
     54   // +------------------+---------------------+--------------------------------------------------------------------------------------+-----------+---------------------------+----+
     55   // | Instruction Id   | Encoding            | Opcode Data                                                                          | RW Info   | Instruction Flags         |DatX|
     56   // +------------------+---------------------+--------------------------------------------------------------------------------------+-----------+---------------------------+----+
     57   // ${InstInfo:Begin}
     58   INST(None             , None               , (_)                                                                                   , 0         , 0                         , 0  ), // #0
     59   INST(Abs              , BaseRR             , (0b01011010110000000010000000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 0  ), // #1
     60   INST(Adc              , BaseRRR            , (0b0001101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 0  ), // #2
     61   INST(Adcs             , BaseRRR            , (0b0011101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 1  ), // #3
     62   INST(Add              , BaseAddSub         , (0b0001011000, 0b0001011001, 0b0010001)                                               , kRWI_W    , 0                         , 0  ), // #4
     63   INST(Addg             , BaseRRII           , (0b1001000110000000000000, kX, kSP, kX, kSP, 6, 4, 16, 4, 0, 10)                      , kRWI_W    , 0                         , 0  ), // #5
     64   INST(Adds             , BaseAddSub         , (0b0101011000, 0b0101011001, 0b0110001)                                               , kRWI_W    , 0                         , 1  ), // #6
     65   INST(Adr              , BaseAdr            , (0b0001000000000000000000, OffsetType::kAArch64_ADR)                                  , kRWI_W    , 0                         , 0  ), // #7
     66   INST(Adrp             , BaseAdr            , (0b1001000000000000000000, OffsetType::kAArch64_ADRP)                                 , kRWI_W    , 0                         , 1  ), // #8
     67   INST(And              , BaseLogical        , (0b0001010000, 0b00100100, 0)                                                         , kRWI_W    , 0                         , 0  ), // #9
     68   INST(Ands             , BaseLogical        , (0b1101010000, 0b11100100, 0)                                                         , kRWI_W    , 0                         , 1  ), // #10
     69   INST(Asr              , BaseShift          , (0b0001101011000000001010, 0b0001001100000000011111, 0)                               , kRWI_W    , 0                         , 0  ), // #11
     70   INST(Asrv             , BaseShift          , (0b0001101011000000001010, 0b0000000000000000000000, 0)                               , kRWI_W    , 0                         , 1  ), // #12
     71   INST(At               , BaseAtDcIcTlbi     , (0b00011111110000, 0b00001111000000, true)                                            , kRWI_RX   , 0                         , 0  ), // #13
     72   INST(Autda            , BaseRR             , (0b11011010110000010001100000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 1  ), // #14
     73   INST(Autdza           , BaseR              , (0b11011010110000010011101111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 0  ), // #15
     74   INST(Autdb            , BaseRR             , (0b11011010110000010001110000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 2  ), // #16
     75   INST(Autdzb           , BaseR              , (0b11011010110000010011111111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 1  ), // #17
     76   INST(Autia            , BaseRR             , (0b11011010110000010001000000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 3  ), // #18
     77   INST(Autia1716        , BaseOp             , (0b11010101000000110010000110011111)                                                  , 0         , 0                         , 0  ), // #19
     78   INST(Autiasp          , BaseOp             , (0b11010101000000110010001110111111)                                                  , 0         , 0                         , 1  ), // #20
     79   INST(Autiaz           , BaseOp             , (0b11010101000000110010001110011111)                                                  , 0         , 0                         , 2  ), // #21
     80   INST(Autib            , BaseRR             , (0b11011010110000010001010000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 4  ), // #22
     81   INST(Autib1716        , BaseOp             , (0b11010101000000110010000111011111)                                                  , 0         , 0                         , 3  ), // #23
     82   INST(Autibsp          , BaseOp             , (0b11010101000000110010001111111111)                                                  , 0         , 0                         , 4  ), // #24
     83   INST(Autibz           , BaseOp             , (0b11010101000000110010001111011111)                                                  , 0         , 0                         , 5  ), // #25
     84   INST(Autiza           , BaseR              , (0b11011010110000010011001111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 2  ), // #26
     85   INST(Autizb           , BaseR              , (0b11011010110000010011011111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 3  ), // #27
     86   INST(Axflag           , BaseOp             , (0b11010101000000000100000001011111)                                                  , 0         , 0                         , 6  ), // #28
     87   INST(B                , BaseBranchRel      , (0b00010100000000000000000000000000)                                                  , 0         , F(Cond)                   , 0  ), // #29
     88   INST(Bc               , BaseBranchRel      , (0b00010100000000000000000000010000)                                                  , 0         , F(Cond)                   , 1  ), // #30
     89   INST(Bfc              , BaseBfc            , (0b00110011000000000000001111100000)                                                  , kRWI_X    , 0                         , 0  ), // #31
     90   INST(Bfi              , BaseBfi            , (0b00110011000000000000000000000000)                                                  , kRWI_X    , 0                         , 0  ), // #32
     91   INST(Bfm              , BaseBfm            , (0b00110011000000000000000000000000)                                                  , kRWI_X    , 0                         , 0  ), // #33
     92   INST(Bfxil            , BaseBfx            , (0b00110011000000000000000000000000)                                                  , kRWI_X    , 0                         , 0  ), // #34
     93   INST(Bic              , BaseLogical        , (0b0001010001, 0b00100100, 1)                                                         , kRWI_W    , 0                         , 2  ), // #35
     94   INST(Bics             , BaseLogical        , (0b1101010001, 0b11100100, 1)                                                         , kRWI_W    , 0                         , 3  ), // #36
     95   INST(Bl               , BaseBranchRel      , (0b10010100000000000000000000000000)                                                  , 0         , 0                         , 2  ), // #37
     96   INST(Blr              , BaseBranchReg      , (0b11010110001111110000000000000000)                                                  , kRWI_R    , 0                         , 0  ), // #38
     97   INST(Br               , BaseBranchReg      , (0b11010110000111110000000000000000)                                                  , kRWI_R    , 0                         , 1  ), // #39
     98   INST(Brk              , BaseOpImm          , (0b11010100001000000000000000000000, 16, 5)                                           , 0         , 0                         , 0  ), // #40
     99   INST(Bti              , BaseOpImm          , (0b11010101000000110010010000011111, 2, 6)                                            , 0         , 0                         , 1  ), // #41
    100   INST(Cas              , BaseAtomicOp       , (0b1000100010100000011111, kWX, 30, 0)                                                , kRWI_XRX  , 0                         , 0  ), // #42
    101   INST(Casa             , BaseAtomicOp       , (0b1000100011100000011111, kWX, 30, 1)                                                , kRWI_XRX  , 0                         , 1  ), // #43
    102   INST(Casab            , BaseAtomicOp       , (0b0000100011100000011111, kW , 0 , 1)                                                , kRWI_XRX  , 0                         , 2  ), // #44
    103   INST(Casah            , BaseAtomicOp       , (0b0100100011100000011111, kW , 0 , 1)                                                , kRWI_XRX  , 0                         , 3  ), // #45
    104   INST(Casal            , BaseAtomicOp       , (0b1000100011100000111111, kWX, 30, 1)                                                , kRWI_XRX  , 0                         , 4  ), // #46
    105   INST(Casalb           , BaseAtomicOp       , (0b0000100011100000111111, kW , 0 , 1)                                                , kRWI_XRX  , 0                         , 5  ), // #47
    106   INST(Casalh           , BaseAtomicOp       , (0b0100100011100000111111, kW , 0 , 1)                                                , kRWI_XRX  , 0                         , 6  ), // #48
    107   INST(Casb             , BaseAtomicOp       , (0b0000100010100000011111, kW , 0 , 0)                                                , kRWI_XRX  , 0                         , 7  ), // #49
    108   INST(Cash             , BaseAtomicOp       , (0b0100100010100000011111, kW , 0 , 0)                                                , kRWI_XRX  , 0                         , 8  ), // #50
    109   INST(Casl             , BaseAtomicOp       , (0b1000100010100000111111, kWX, 30, 0)                                                , kRWI_XRX  , 0                         , 9  ), // #51
    110   INST(Caslb            , BaseAtomicOp       , (0b0000100010100000111111, kW , 0 , 0)                                                , kRWI_XRX  , 0                         , 10 ), // #52
    111   INST(Caslh            , BaseAtomicOp       , (0b0100100010100000111111, kW , 0 , 0)                                                , kRWI_XRX  , 0                         , 11 ), // #53
    112   INST(Casp             , BaseAtomicCasp     , (0b0000100000100000011111, kWX, 30)                                                   , kRWI_XXRRX, F(Consecutive)            , 0  ), // #54
    113   INST(Caspa            , BaseAtomicCasp     , (0b0000100001100000011111, kWX, 30)                                                   , kRWI_XXRRX, F(Consecutive)            , 1  ), // #55
    114   INST(Caspal           , BaseAtomicCasp     , (0b0000100001100000111111, kWX, 30)                                                   , kRWI_XXRRX, F(Consecutive)            , 2  ), // #56
    115   INST(Caspl            , BaseAtomicCasp     , (0b0000100000100000111111, kWX, 30)                                                   , kRWI_XXRRX, F(Consecutive)            , 3  ), // #57
    116   INST(Cbnz             , BaseBranchCmp      , (0b00110101000000000000000000000000)                                                  , kRWI_R    , 0                         , 0  ), // #58
    117   INST(Cbz              , BaseBranchCmp      , (0b00110100000000000000000000000000)                                                  , kRWI_R    , 0                         , 1  ), // #59
    118   INST(Ccmn             , BaseCCmp           , (0b00111010010000000000000000000000)                                                  , kRWI_R    , 0                         , 0  ), // #60
    119   INST(Ccmp             , BaseCCmp           , (0b01111010010000000000000000000000)                                                  , kRWI_R    , 0                         , 1  ), // #61
    120   INST(Cfinv            , BaseOp             , (0b11010101000000000100000000011111)                                                  , 0         , 0                         , 7  ), // #62
    121   INST(Chkfeat          , BaseOpX16          , (0b11010101000000110010010100011111)                                                  , 0         , 0                         , 0  ), // #63
    122   INST(Cinc             , BaseCInc           , (0b00011010100000000000010000000000)                                                  , kRWI_W    , 0                         , 0  ), // #64
    123   INST(Cinv             , BaseCInc           , (0b01011010100000000000000000000000)                                                  , kRWI_W    , 0                         , 1  ), // #65
    124   INST(Clrbhb           , BaseOp             , (0b11010101000000110010001011011111)                                                  , 0         , 0                         , 8  ), // #66
    125   INST(Clrex            , BaseOpImm          , (0b11010101000000110011000001011111, 4, 8)                                            , 0         , 0                         , 2  ), // #67
    126   INST(Cls              , BaseRR             , (0b01011010110000000001010000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 5  ), // #68
    127   INST(Clz              , BaseRR             , (0b01011010110000000001000000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 6  ), // #69
    128   INST(Cmn              , BaseCmpCmn         , (0b0101011000, 0b0101011001, 0b0110001)                                               , kRWI_R    , 0                         , 0  ), // #70
    129   INST(Cmp              , BaseCmpCmn         , (0b1101011000, 0b1101011001, 0b1110001)                                               , kRWI_R    , 0                         , 1  ), // #71
    130   INST(Cmpp             , BaseRR             , (0b10111010110000000000000000011111, kX, kSP, 5, kX, kSP, 16, true)                   , kRWI_R    , 0                         , 7  ), // #72
    131   INST(Cneg             , BaseCInc           , (0b01011010100000000000010000000000)                                                  , kRWI_W    , 0                         , 2  ), // #73
    132   INST(Cnt              , BaseRR             , (0b01011010110000000001110000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 8  ), // #74
    133   INST(Crc32b           , BaseRRR            , (0b0001101011000000010000, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 2  ), // #75
    134   INST(Crc32cb          , BaseRRR            , (0b0001101011000000010100, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 3  ), // #76
    135   INST(Crc32ch          , BaseRRR            , (0b0001101011000000010101, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 4  ), // #77
    136   INST(Crc32cw          , BaseRRR            , (0b0001101011000000010110, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 5  ), // #78
    137   INST(Crc32cx          , BaseRRR            , (0b1001101011000000010111, kW, kZR, kW, kZR, kX, kZR, false)                          , kRWI_W    , 0                         , 6  ), // #79
    138   INST(Crc32h           , BaseRRR            , (0b0001101011000000010001, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 7  ), // #80
    139   INST(Crc32w           , BaseRRR            , (0b0001101011000000010010, kW, kZR, kW, kZR, kW, kZR, false)                          , kRWI_W    , 0                         , 8  ), // #81
    140   INST(Crc32x           , BaseRRR            , (0b1001101011000000010011, kW, kZR, kW, kZR, kX, kZR, false)                          , kRWI_W    , 0                         , 9  ), // #82
    141   INST(Csdb             , BaseOp             , (0b11010101000000110010001010011111)                                                  , 0         , 0                         , 9  ), // #83
    142   INST(Csel             , BaseCSel           , (0b00011010100000000000000000000000)                                                  , kRWI_W    , 0                         , 0  ), // #84
    143   INST(Cset             , BaseCSet           , (0b00011010100111110000011111100000)                                                  , kRWI_W    , 0                         , 0  ), // #85
    144   INST(Csetm            , BaseCSet           , (0b01011010100111110000001111100000)                                                  , kRWI_W    , 0                         , 1  ), // #86
    145   INST(Csinc            , BaseCSel           , (0b00011010100000000000010000000000)                                                  , kRWI_W    , 0                         , 1  ), // #87
    146   INST(Csinv            , BaseCSel           , (0b01011010100000000000000000000000)                                                  , kRWI_W    , 0                         , 2  ), // #88
    147   INST(Csneg            , BaseCSel           , (0b01011010100000000000010000000000)                                                  , kRWI_W    , 0                         , 3  ), // #89
    148   INST(Ctz              , BaseRR             , (0b01011010110000000001100000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 9  ), // #90
    149   INST(Dc               , BaseAtDcIcTlbi     , (0b00011110000000, 0b00001110000000, true)                                            , kRWI_RX   , 0                         , 1  ), // #91
    150   INST(Dcps1            , BaseOpImm          , (0b11010100101000000000000000000001, 16, 5)                                           , 0         , 0                         , 3  ), // #92
    151   INST(Dcps2            , BaseOpImm          , (0b11010100101000000000000000000010, 16, 5)                                           , 0         , 0                         , 4  ), // #93
    152   INST(Dcps3            , BaseOpImm          , (0b11010100101000000000000000000011, 16, 5)                                           , 0         , 0                         , 5  ), // #94
    153   INST(Dgh              , BaseOp             , (0b11010101000000110010000011011111)                                                  , 0         , 0                         , 10 ), // #95
    154   INST(Dmb              , BaseOpImm          , (0b11010101000000110011000010111111, 4, 8)                                            , 0         , 0                         , 6  ), // #96
    155   INST(Drps             , BaseOp             , (0b11010110101111110000001111100000)                                                  , 0         , 0                         , 11 ), // #97
    156   INST(Dsb              , BaseOpImm          , (0b11010101000000110011000010011111, 4, 8)                                            , 0         , 0                         , 7  ), // #98
    157   INST(Eon              , BaseLogical        , (0b1001010001, 0b10100100, 1)                                                         , kRWI_W    , 0                         , 4  ), // #99
    158   INST(Eor              , BaseLogical        , (0b1001010000, 0b10100100, 0)                                                         , kRWI_W    , 0                         , 5  ), // #100
    159   INST(Esb              , BaseOp             , (0b11010101000000110010001000011111)                                                  , 0         , 0                         , 12 ), // #101
    160   INST(Extr             , BaseExtract        , (0b00010011100000000000000000000000)                                                  , kRWI_W    , 0                         , 0  ), // #102
    161   INST(Eret             , BaseOp             , (0b11010110100111110000001111100000)                                                  , 0         , 0                         , 13 ), // #103
    162   INST(Gmi              , BaseRRR            , (0b1001101011000000000101, kX , kZR, kX , kSP, kX , kZR, true)                        , kRWI_W    , 0                         , 10 ), // #104
    163   INST(Hint             , BaseOpImm          , (0b11010101000000110010000000011111, 7, 5)                                            , 0         , 0                         , 8  ), // #105
    164   INST(Hlt              , BaseOpImm          , (0b11010100010000000000000000000000, 16, 5)                                           , 0         , 0                         , 9  ), // #106
    165   INST(Hvc              , BaseOpImm          , (0b11010100000000000000000000000010, 16, 5)                                           , 0         , 0                         , 10 ), // #107
    166   INST(Ic               , BaseAtDcIcTlbi     , (0b00011110000000, 0b00001110000000, false)                                           , kRWI_RX   , 0                         , 2  ), // #108
    167   INST(Isb              , BaseOpImm          , (0b11010101000000110011000011011111, 4, 8)                                            , 0         , 0                         , 11 ), // #109
    168   INST(Ldadd            , BaseAtomicOp       , (0b1011100000100000000000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 12 ), // #110
    169   INST(Ldadda           , BaseAtomicOp       , (0b1011100010100000000000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 13 ), // #111
    170   INST(Ldaddab          , BaseAtomicOp       , (0b0011100010100000000000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 14 ), // #112
    171   INST(Ldaddah          , BaseAtomicOp       , (0b0111100010100000000000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 15 ), // #113
    172   INST(Ldaddal          , BaseAtomicOp       , (0b1011100011100000000000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 16 ), // #114
    173   INST(Ldaddalb         , BaseAtomicOp       , (0b0011100011100000000000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 17 ), // #115
    174   INST(Ldaddalh         , BaseAtomicOp       , (0b0111100011100000000000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 18 ), // #116
    175   INST(Ldaddb           , BaseAtomicOp       , (0b0011100000100000000000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 19 ), // #117
    176   INST(Ldaddh           , BaseAtomicOp       , (0b0111100000100000000000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 20 ), // #118
    177   INST(Ldaddl           , BaseAtomicOp       , (0b1011100001100000000000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 21 ), // #119
    178   INST(Ldaddlb          , BaseAtomicOp       , (0b0011100001100000000000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 22 ), // #120
    179   INST(Ldaddlh          , BaseAtomicOp       , (0b0111100001100000000000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 23 ), // #121
    180   INST(Ldar             , BaseRM_NoImm       , (0b1000100011011111111111, kWX, kZR, 30)                                              , kRWI_W    , 0                         , 0  ), // #122
    181   INST(Ldarb            , BaseRM_NoImm       , (0b0000100011011111111111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 1  ), // #123
    182   INST(Ldarh            , BaseRM_NoImm       , (0b0100100011011111111111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 2  ), // #124
    183   INST(Ldaxp            , BaseLdxp           , (0b1000100001111111100000, kWX, 30)                                                   , kRWI_WW   , 0                         , 0  ), // #125
    184   INST(Ldaxr            , BaseRM_NoImm       , (0b1000100001011111111111, kWX, kZR, 30)                                              , kRWI_W    , 0                         , 3  ), // #126
    185   INST(Ldaxrb           , BaseRM_NoImm       , (0b0000100001011111111111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 4  ), // #127
    186   INST(Ldaxrh           , BaseRM_NoImm       , (0b0100100001011111111111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 5  ), // #128
    187   INST(Ldclr            , BaseAtomicOp       , (0b1011100000100000000100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 24 ), // #129
    188   INST(Ldclra           , BaseAtomicOp       , (0b1011100010100000000100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 25 ), // #130
    189   INST(Ldclrab          , BaseAtomicOp       , (0b0011100010100000000100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 26 ), // #131
    190   INST(Ldclrah          , BaseAtomicOp       , (0b0111100010100000000100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 27 ), // #132
    191   INST(Ldclral          , BaseAtomicOp       , (0b1011100011100000000100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 28 ), // #133
    192   INST(Ldclralb         , BaseAtomicOp       , (0b0011100011100000000100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 29 ), // #134
    193   INST(Ldclralh         , BaseAtomicOp       , (0b0111100011100000000100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 30 ), // #135
    194   INST(Ldclrb           , BaseAtomicOp       , (0b0011100000100000000100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 31 ), // #136
    195   INST(Ldclrh           , BaseAtomicOp       , (0b0111100000100000000100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 32 ), // #137
    196   INST(Ldclrl           , BaseAtomicOp       , (0b1011100001100000000100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 33 ), // #138
    197   INST(Ldclrlb          , BaseAtomicOp       , (0b0011100001100000000100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 34 ), // #139
    198   INST(Ldclrlh          , BaseAtomicOp       , (0b0111100001100000000100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 35 ), // #140
    199   INST(Ldeor            , BaseAtomicOp       , (0b1011100000100000001000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 36 ), // #141
    200   INST(Ldeora           , BaseAtomicOp       , (0b1011100010100000001000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 37 ), // #142
    201   INST(Ldeorab          , BaseAtomicOp       , (0b0011100010100000001000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 38 ), // #143
    202   INST(Ldeorah          , BaseAtomicOp       , (0b0111100010100000001000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 39 ), // #144
    203   INST(Ldeoral          , BaseAtomicOp       , (0b1011100011100000001000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 40 ), // #145
    204   INST(Ldeoralb         , BaseAtomicOp       , (0b0011100011100000001000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 41 ), // #146
    205   INST(Ldeoralh         , BaseAtomicOp       , (0b0111100011100000001000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 42 ), // #147
    206   INST(Ldeorb           , BaseAtomicOp       , (0b0011100000100000001000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 43 ), // #148
    207   INST(Ldeorh           , BaseAtomicOp       , (0b0111100000100000001000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 44 ), // #149
    208   INST(Ldeorl           , BaseAtomicOp       , (0b1011100001100000001000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 45 ), // #150
    209   INST(Ldeorlb          , BaseAtomicOp       , (0b0011100001100000001000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 46 ), // #151
    210   INST(Ldeorlh          , BaseAtomicOp       , (0b0111100001100000001000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 47 ), // #152
    211   INST(Ldg              , BaseRM_SImm9       , (0b1101100101100000000000, 0b0000000000000000000000, kX , kZR, 0, 4)                  , kRWI_W    , 0                         , 0  ), // #153
    212   INST(Ldgm             , BaseRM_NoImm       , (0b1101100111100000000000, kX , kZR, 0 )                                              , kRWI_W    , 0                         , 6  ), // #154
    213   INST(Ldlar            , BaseRM_NoImm       , (0b1000100011011111011111, kWX, kZR, 30)                                              , kRWI_W    , 0                         , 7  ), // #155
    214   INST(Ldlarb           , BaseRM_NoImm       , (0b0000100011011111011111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 8  ), // #156
    215   INST(Ldlarh           , BaseRM_NoImm       , (0b0100100011011111011111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 9  ), // #157
    216   INST(Ldnp             , BaseLdpStp         , (0b0010100001, 0           , kWX, 31, 2)                                              , kRWI_WW   , 0                         , 0  ), // #158
    217   INST(Ldp              , BaseLdpStp         , (0b0010100101, 0b0010100011, kWX, 31, 2)                                              , kRWI_WW   , 0                         , 1  ), // #159
    218   INST(Ldpsw            , BaseLdpStp         , (0b0110100101, 0b0110100011, kX , 0 , 2)                                              , kRWI_WW   , 0                         , 2  ), // #160
    219   INST(Ldr              , BaseLdSt           , (0b1011100101, 0b10111000010, 0b10111000011, 0b00011000, kWX, 30, 2, Inst::kIdLdur)   , kRWI_W    , 0                         , 0  ), // #161
    220   INST(Ldraa            , BaseRM_SImm10      , (0b1111100000100000000001, kX , kZR, 0, 3)                                            , kRWI_W    , 0                         , 0  ), // #162
    221   INST(Ldrab            , BaseRM_SImm10      , (0b1111100010100000000001, kX , kZR, 0, 3)                                            , kRWI_W    , 0                         , 1  ), // #163
    222   INST(Ldrb             , BaseLdSt           , (0b0011100101, 0b00111000010, 0b00111000011, 0         , kW , 0 , 0, Inst::kIdLdurb)  , kRWI_W    , 0                         , 1  ), // #164
    223   INST(Ldrh             , BaseLdSt           , (0b0111100101, 0b01111000010, 0b01111000011, 0         , kW , 0 , 1, Inst::kIdLdurh)  , kRWI_W    , 0                         , 2  ), // #165
    224   INST(Ldrsb            , BaseLdSt           , (0b0011100111, 0b00111000100, 0b00111000111, 0         , kWX, 22, 0, Inst::kIdLdursb) , kRWI_W    , 0                         , 3  ), // #166
    225   INST(Ldrsh            , BaseLdSt           , (0b0111100111, 0b01111000100, 0b01111000111, 0         , kWX, 22, 1, Inst::kIdLdursh) , kRWI_W    , 0                         , 4  ), // #167
    226   INST(Ldrsw            , BaseLdSt           , (0b1011100110, 0b10111000100, 0b10111000101, 0b10011000, kX , 0 , 2, Inst::kIdLdursw) , kRWI_W    , 0                         , 5  ), // #168
    227   INST(Ldset            , BaseAtomicOp       , (0b1011100000100000001100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 48 ), // #169
    228   INST(Ldseta           , BaseAtomicOp       , (0b1011100010100000001100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 49 ), // #170
    229   INST(Ldsetab          , BaseAtomicOp       , (0b0011100010100000001100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 50 ), // #171
    230   INST(Ldsetah          , BaseAtomicOp       , (0b0111100010100000001100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 51 ), // #172
    231   INST(Ldsetal          , BaseAtomicOp       , (0b1011100011100000001100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 52 ), // #173
    232   INST(Ldsetalb         , BaseAtomicOp       , (0b0011100011100000001100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 53 ), // #174
    233   INST(Ldsetalh         , BaseAtomicOp       , (0b0111100011100000001100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 54 ), // #175
    234   INST(Ldsetb           , BaseAtomicOp       , (0b0011100000100000001100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 55 ), // #176
    235   INST(Ldseth           , BaseAtomicOp       , (0b0111100000100000001100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 56 ), // #177
    236   INST(Ldsetl           , BaseAtomicOp       , (0b1011100001100000001100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 57 ), // #178
    237   INST(Ldsetlb          , BaseAtomicOp       , (0b0011100001100000001100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 58 ), // #179
    238   INST(Ldsetlh          , BaseAtomicOp       , (0b0111100001100000001100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 59 ), // #180
    239   INST(Ldsmax           , BaseAtomicOp       , (0b1011100000100000010000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 60 ), // #181
    240   INST(Ldsmaxa          , BaseAtomicOp       , (0b1011100010100000010000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 61 ), // #182
    241   INST(Ldsmaxab         , BaseAtomicOp       , (0b0011100010100000010000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 62 ), // #183
    242   INST(Ldsmaxah         , BaseAtomicOp       , (0b0111100010100000010000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 63 ), // #184
    243   INST(Ldsmaxal         , BaseAtomicOp       , (0b1011100011100000010000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 64 ), // #185
    244   INST(Ldsmaxalb        , BaseAtomicOp       , (0b0011100011100000010000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 65 ), // #186
    245   INST(Ldsmaxalh        , BaseAtomicOp       , (0b0111100011100000010000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 66 ), // #187
    246   INST(Ldsmaxb          , BaseAtomicOp       , (0b0011100000100000010000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 67 ), // #188
    247   INST(Ldsmaxh          , BaseAtomicOp       , (0b0111100000100000010000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 68 ), // #189
    248   INST(Ldsmaxl          , BaseAtomicOp       , (0b1011100001100000010000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 69 ), // #190
    249   INST(Ldsmaxlb         , BaseAtomicOp       , (0b0011100001100000010000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 70 ), // #191
    250   INST(Ldsmaxlh         , BaseAtomicOp       , (0b0111100001100000010000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 71 ), // #192
    251   INST(Ldsmin           , BaseAtomicOp       , (0b1011100000100000010100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 72 ), // #193
    252   INST(Ldsmina          , BaseAtomicOp       , (0b1011100010100000010100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 73 ), // #194
    253   INST(Ldsminab         , BaseAtomicOp       , (0b0011100010100000010100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 74 ), // #195
    254   INST(Ldsminah         , BaseAtomicOp       , (0b0111100010100000010100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 75 ), // #196
    255   INST(Ldsminal         , BaseAtomicOp       , (0b1011100011100000010100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 76 ), // #197
    256   INST(Ldsminalb        , BaseAtomicOp       , (0b0011100011100000010100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 77 ), // #198
    257   INST(Ldsminalh        , BaseAtomicOp       , (0b0111100011100000010100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 78 ), // #199
    258   INST(Ldsminb          , BaseAtomicOp       , (0b0011100000100000010100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 79 ), // #200
    259   INST(Ldsminh          , BaseAtomicOp       , (0b0111100000100000010100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 80 ), // #201
    260   INST(Ldsminl          , BaseAtomicOp       , (0b1011100001100000010100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 81 ), // #202
    261   INST(Ldsminlb         , BaseAtomicOp       , (0b0011100001100000010100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 82 ), // #203
    262   INST(Ldsminlh         , BaseAtomicOp       , (0b0111100001100000010100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 83 ), // #204
    263   INST(Ldtr             , BaseRM_SImm9       , (0b1011100001000000000010, 0b0000000000000000000000, kWX, kZR, 30, 0)                 , kRWI_W    , 0                         , 1  ), // #205
    264   INST(Ldtrb            , BaseRM_SImm9       , (0b0011100001000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_W    , 0                         , 2  ), // #206
    265   INST(Ldtrh            , BaseRM_SImm9       , (0b0111100001000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_W    , 0                         , 3  ), // #207
    266   INST(Ldtrsb           , BaseRM_SImm9       , (0b0011100011000000000010, 0b0000000000000000000000, kWX, kZR, 22, 0)                 , kRWI_W    , 0                         , 4  ), // #208
    267   INST(Ldtrsh           , BaseRM_SImm9       , (0b0111100011000000000010, 0b0000000000000000000000, kWX, kZR, 22, 0)                 , kRWI_W    , 0                         , 5  ), // #209
    268   INST(Ldtrsw           , BaseRM_SImm9       , (0b1011100010000000000010, 0b0000000000000000000000, kX , kZR, 0 , 0)                 , kRWI_W    , 0                         , 6  ), // #210
    269   INST(Ldumax           , BaseAtomicOp       , (0b1011100000100000011000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 84 ), // #211
    270   INST(Ldumaxa          , BaseAtomicOp       , (0b1011100010100000011000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 85 ), // #212
    271   INST(Ldumaxab         , BaseAtomicOp       , (0b0011100010100000011000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 86 ), // #213
    272   INST(Ldumaxah         , BaseAtomicOp       , (0b0111100010100000011000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 87 ), // #214
    273   INST(Ldumaxal         , BaseAtomicOp       , (0b1011100011100000011000, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 88 ), // #215
    274   INST(Ldumaxalb        , BaseAtomicOp       , (0b0011100011100000011000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 89 ), // #216
    275   INST(Ldumaxalh        , BaseAtomicOp       , (0b0111100011100000011000, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 90 ), // #217
    276   INST(Ldumaxb          , BaseAtomicOp       , (0b0011100000100000011000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 91 ), // #218
    277   INST(Ldumaxh          , BaseAtomicOp       , (0b0111100000100000011000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 92 ), // #219
    278   INST(Ldumaxl          , BaseAtomicOp       , (0b1011100001100000011000, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 93 ), // #220
    279   INST(Ldumaxlb         , BaseAtomicOp       , (0b0011100001100000011000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 94 ), // #221
    280   INST(Ldumaxlh         , BaseAtomicOp       , (0b0111100001100000011000, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 95 ), // #222
    281   INST(Ldumin           , BaseAtomicOp       , (0b1011100000100000011100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 96 ), // #223
    282   INST(Ldumina          , BaseAtomicOp       , (0b1011100010100000011100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 97 ), // #224
    283   INST(Lduminab         , BaseAtomicOp       , (0b0011100010100000011100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 98 ), // #225
    284   INST(Lduminah         , BaseAtomicOp       , (0b0111100010100000011100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 99 ), // #226
    285   INST(Lduminal         , BaseAtomicOp       , (0b1011100011100000011100, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 100), // #227
    286   INST(Lduminalb        , BaseAtomicOp       , (0b0011100011100000011100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 101), // #228
    287   INST(Lduminalh        , BaseAtomicOp       , (0b0111100011100000011100, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 102), // #229
    288   INST(Lduminb          , BaseAtomicOp       , (0b0011100000100000011100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 103), // #230
    289   INST(Lduminh          , BaseAtomicOp       , (0b0111100000100000011100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 104), // #231
    290   INST(Lduminl          , BaseAtomicOp       , (0b1011100001100000011100, kWX, 30, 0)                                                , kRWI_WRX  , 0                         , 105), // #232
    291   INST(Lduminlb         , BaseAtomicOp       , (0b0011100001100000011100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 106), // #233
    292   INST(Lduminlh         , BaseAtomicOp       , (0b0111100001100000011100, kW , 0 , 0)                                                , kRWI_WRX  , 0                         , 107), // #234
    293   INST(Ldur             , BaseRM_SImm9       , (0b1011100001000000000000, 0b0000000000000000000000, kWX, kZR, 30, 0)                 , kRWI_W    , 0                         , 7  ), // #235
    294   INST(Ldurb            , BaseRM_SImm9       , (0b0011100001000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_W    , 0                         , 8  ), // #236
    295   INST(Ldurh            , BaseRM_SImm9       , (0b0111100001000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_W    , 0                         , 9  ), // #237
    296   INST(Ldursb           , BaseRM_SImm9       , (0b0011100011000000000000, 0b0000000000000000000000, kWX, kZR, 22, 0)                 , kRWI_W    , 0                         , 10 ), // #238
    297   INST(Ldursh           , BaseRM_SImm9       , (0b0111100011000000000000, 0b0000000000000000000000, kWX, kZR, 22, 0)                 , kRWI_W    , 0                         , 11 ), // #239
    298   INST(Ldursw           , BaseRM_SImm9       , (0b1011100010000000000000, 0b0000000000000000000000, kX , kZR, 0 , 0)                 , kRWI_W    , 0                         , 12 ), // #240
    299   INST(Ldxp             , BaseLdxp           , (0b1000100001111111000000, kWX, 30)                                                   , kRWI_WW   , 0                         , 1  ), // #241
    300   INST(Ldxr             , BaseRM_NoImm       , (0b1000100001011111011111, kWX, kZR, 30)                                              , kRWI_W    , 0                         , 10 ), // #242
    301   INST(Ldxrb            , BaseRM_NoImm       , (0b0000100001011111011111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 11 ), // #243
    302   INST(Ldxrh            , BaseRM_NoImm       , (0b0100100001011111011111, kW , kZR, 0 )                                              , kRWI_W    , 0                         , 12 ), // #244
    303   INST(Lsl              , BaseShift          , (0b0001101011000000001000, 0b0101001100000000000000, 0)                               , kRWI_W    , 0                         , 2  ), // #245
    304   INST(Lslv             , BaseShift          , (0b0001101011000000001000, 0b0000000000000000000000, 0)                               , kRWI_W    , 0                         , 3  ), // #246
    305   INST(Lsr              , BaseShift          , (0b0001101011000000001001, 0b0101001100000000011111, 0)                               , kRWI_W    , 0                         , 4  ), // #247
    306   INST(Lsrv             , BaseShift          , (0b0001101011000000001001, 0b0000000000000000000000, 0)                               , kRWI_W    , 0                         , 5  ), // #248
    307   INST(Madd             , BaseRRRR           , (0b0001101100000000000000, kWX, kZR, kWX, kZR, kWX, kZR, kWX, kZR, true)              , kRWI_W    , 0                         , 0  ), // #249
    308   INST(Mneg             , BaseRRR            , (0b0001101100000000111111, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 11 ), // #250
    309   INST(Mov              , BaseMov            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #251
    310   INST(Movk             , BaseMovKNZ         , (0b01110010100000000000000000000000)                                                  , kRWI_X    , 0                         , 0  ), // #252
    311   INST(Movn             , BaseMovKNZ         , (0b00010010100000000000000000000000)                                                  , kRWI_W    , 0                         , 1  ), // #253
    312   INST(Movz             , BaseMovKNZ         , (0b01010010100000000000000000000000)                                                  , kRWI_W    , 0                         , 2  ), // #254
    313   INST(Mrs              , BaseMrs            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #255
    314   INST(Msr              , BaseMsr            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #256
    315   INST(Msub             , BaseRRRR           , (0b0001101100000000100000, kWX, kZR, kWX, kZR, kWX, kZR, kWX, kZR, true)              , kRWI_W    , 0                         , 1  ), // #257
    316   INST(Mul              , BaseRRR            , (0b0001101100000000011111, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 12 ), // #258
    317   INST(Mvn              , BaseMvnNeg         , (0b00101010001000000000001111100000)                                                  , kRWI_W    , 0                         , 0  ), // #259
    318   INST(Neg              , BaseMvnNeg         , (0b01001011000000000000001111100000)                                                  , kRWI_W    , 0                         , 1  ), // #260
    319   INST(Negs             , BaseMvnNeg         , (0b01101011000000000000001111100000)                                                  , kRWI_W    , 0                         , 2  ), // #261
    320   INST(Ngc              , BaseRR             , (0b01011010000000000000001111100000, kWX, kZR, 0, kWX, kZR, 16, true)                 , kRWI_W    , 0                         , 10 ), // #262
    321   INST(Ngcs             , BaseRR             , (0b01111010000000000000001111100000, kWX, kZR, 0, kWX, kZR, 16, true)                 , kRWI_W    , 0                         , 11 ), // #263
    322   INST(Nop              , BaseOp             , (0b11010101000000110010000000011111)                                                  , 0         , 0                         , 14 ), // #264
    323   INST(Orn              , BaseLogical        , (0b0101010001, 0b01100100, 1)                                                         , kRWI_W    , 0                         , 6  ), // #265
    324   INST(Orr              , BaseLogical        , (0b0101010000, 0b01100100, 0)                                                         , kRWI_W    , 0                         , 7  ), // #266
    325   INST(Pacda            , BaseRR             , (0b11011010110000010000100000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 12 ), // #267
    326   INST(Pacdb            , BaseRR             , (0b11011010110000010000110000000000, kX, kZR, 0, kX, kSP, 5, true)                    , kRWI_X    , 0                         , 13 ), // #268
    327   INST(Pacdza           , BaseR              , (0b11011010110000010010101111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 4  ), // #269
    328   INST(Pacdzb           , BaseR              , (0b11011010110000010010111111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 5  ), // #270
    329   INST(Pacga            , BaseRRR            , (0b1001101011000000001100, kX, kZR, kX, kZR, kX, kSP, false)                          , kRWI_W    , 0                         , 13 ), // #271
    330   INST(Prfm             , BasePrfm           , (0b11111000101, 0b1111100110, 0b11111000100, 0b11011000)                              , kRWI_R    , 0                         , 0  ), // #272
    331   INST(Pssbb            , BaseOp             , (0b11010101000000110011010010011111)                                                  , 0         , 0                         , 15 ), // #273
    332   INST(Rbit             , BaseRR             , (0b01011010110000000000000000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 14 ), // #274
    333   INST(Ret              , BaseBranchReg      , (0b11010110010111110000000000000000)                                                  , kRWI_R    , 0                         , 2  ), // #275
    334   INST(Rev              , BaseRev            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #276
    335   INST(Rev16            , BaseRR             , (0b01011010110000000000010000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 15 ), // #277
    336   INST(Rev32            , BaseRR             , (0b11011010110000000000100000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 16 ), // #278
    337   INST(Rev64            , BaseRR             , (0b11011010110000000000110000000000, kWX, kZR, 0, kWX, kZR, 5, true)                  , kRWI_W    , 0                         , 17 ), // #279
    338   INST(Ror              , BaseShift          , (0b0001101011000000001011, 0b0001001110000000000000, 1)                               , kRWI_W    , 0                         , 6  ), // #280
    339   INST(Rorv             , BaseShift          , (0b0001101011000000001011, 0b0000000000000000000000, 1)                               , kRWI_W    , 0                         , 7  ), // #281
    340   INST(Sbc              , BaseRRR            , (0b0101101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 14 ), // #282
    341   INST(Sbcs             , BaseRRR            , (0b0111101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 15 ), // #283
    342   INST(Sbfiz            , BaseBfi            , (0b00010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 1  ), // #284
    343   INST(Sbfm             , BaseBfm            , (0b00010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 1  ), // #285
    344   INST(Sbfx             , BaseBfx            , (0b00010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 1  ), // #286
    345   INST(Sdiv             , BaseRRR            , (0b0001101011000000000011, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 16 ), // #287
    346   INST(Setf8            , BaseR              , (0b00111010000000000000100000001101, kW, kZR, 5)                                      , 0         , 0                         , 6  ), // #288
    347   INST(Setf16           , BaseR              , (0b00111010000000000100100000001101, kW, kZR, 5)                                      , 0         , 0                         , 7  ), // #289
    348   INST(Sev              , BaseOp             , (0b11010101000000110010000010011111)                                                  , 0         , 0                         , 16 ), // #290
    349   INST(Sevl             , BaseOp             , (0b11010101000000110010000010111111)                                                  , 0         , 0                         , 17 ), // #291
    350   INST(Smaddl           , BaseRRRR           , (0b1001101100100000000000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false)             , kRWI_W    , 0                         , 2  ), // #292
    351   INST(Smax             , BaseMinMax         , (0b00011010110000000110000000000000, 0b00010001110000000000000000000000)              , kRWI_W    , 0                         , 0  ), // #293
    352   INST(Smc              , BaseOpImm          , (0b11010100000000000000000000000011, 16, 5)                                           , 0         , 0                         , 12 ), // #294
    353   INST(Smin             , BaseMinMax         , (0b00011010110000000110100000000000, 0b00010001110010000000000000000000)              , kRWI_W    , 0                         , 1  ), // #295
    354   INST(Smnegl           , BaseRRR            , (0b1001101100100000111111, kX , kZR, kW , kZR, kW , kZR, false)                       , kRWI_W    , 0                         , 17 ), // #296
    355   INST(Smsubl           , BaseRRRR           , (0b1001101100100000100000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false)             , kRWI_W    , 0                         , 3  ), // #297
    356   INST(Smulh            , BaseRRR            , (0b1001101101000000011111, kX , kZR, kX , kZR, kX , kZR, true)                        , kRWI_W    , 0                         , 18 ), // #298
    357   INST(Smull            , BaseRRR            , (0b1001101100100000011111, kX , kZR, kW , kZR, kW , kZR, false)                       , kRWI_W    , 0                         , 19 ), // #299
    358   INST(Ssbb             , BaseOp             , (0b11010101000000110011000010011111)                                                  , 0         , 0                         , 18 ), // #300
    359   INST(St2g             , BaseRM_SImm9       , (0b1101100110100000000010, 0b1101100110100000000001, kX, kSP, 0, 4)                   , kRWI_RW   , 0                         , 13 ), // #301
    360   INST(Stadd            , BaseAtomicSt       , (0b1011100000100000000000, kWX, 30)                                                   , kRWI_RX   , 0                         , 0  ), // #302
    361   INST(Staddl           , BaseAtomicSt       , (0b1011100001100000000000, kWX, 30)                                                   , kRWI_RX   , 0                         , 1  ), // #303
    362   INST(Staddb           , BaseAtomicSt       , (0b0011100000100000000000, kW , 0 )                                                   , kRWI_RX   , 0                         , 2  ), // #304
    363   INST(Staddlb          , BaseAtomicSt       , (0b0011100001100000000000, kW , 0 )                                                   , kRWI_RX   , 0                         , 3  ), // #305
    364   INST(Staddh           , BaseAtomicSt       , (0b0111100000100000000000, kW , 0 )                                                   , kRWI_RX   , 0                         , 4  ), // #306
    365   INST(Staddlh          , BaseAtomicSt       , (0b0111100001100000000000, kW , 0 )                                                   , kRWI_RX   , 0                         , 5  ), // #307
    366   INST(Stclr            , BaseAtomicSt       , (0b1011100000100000000100, kWX, 30)                                                   , kRWI_RX   , 0                         , 6  ), // #308
    367   INST(Stclrl           , BaseAtomicSt       , (0b1011100001100000000100, kWX, 30)                                                   , kRWI_RX   , 0                         , 7  ), // #309
    368   INST(Stclrb           , BaseAtomicSt       , (0b0011100000100000000100, kW , 0 )                                                   , kRWI_RX   , 0                         , 8  ), // #310
    369   INST(Stclrlb          , BaseAtomicSt       , (0b0011100001100000000100, kW , 0 )                                                   , kRWI_RX   , 0                         , 9  ), // #311
    370   INST(Stclrh           , BaseAtomicSt       , (0b0111100000100000000100, kW , 0 )                                                   , kRWI_RX   , 0                         , 10 ), // #312
    371   INST(Stclrlh          , BaseAtomicSt       , (0b0111100001100000000100, kW , 0 )                                                   , kRWI_RX   , 0                         , 11 ), // #313
    372   INST(Steor            , BaseAtomicSt       , (0b1011100000100000001000, kWX, 30)                                                   , kRWI_RX   , 0                         , 12 ), // #314
    373   INST(Steorl           , BaseAtomicSt       , (0b1011100001100000001000, kWX, 30)                                                   , kRWI_RX   , 0                         , 13 ), // #315
    374   INST(Steorb           , BaseAtomicSt       , (0b0011100000100000001000, kW , 0 )                                                   , kRWI_RX   , 0                         , 14 ), // #316
    375   INST(Steorlb          , BaseAtomicSt       , (0b0011100001100000001000, kW , 0 )                                                   , kRWI_RX   , 0                         , 15 ), // #317
    376   INST(Steorh           , BaseAtomicSt       , (0b0111100000100000001000, kW , 0 )                                                   , kRWI_RX   , 0                         , 16 ), // #318
    377   INST(Steorlh          , BaseAtomicSt       , (0b0111100001100000001000, kW , 0 )                                                   , kRWI_RX   , 0                         , 17 ), // #319
    378   INST(Stg              , BaseRM_SImm9       , (0b1101100100100000000010, 0b1101100100100000000001, kX, kSP, 0, 4)                   , kRWI_RW   , 0                         , 14 ), // #320
    379   INST(Stgm             , BaseRM_NoImm       , (0b1101100110100000000000, kX , kZR, 0 )                                              , kRWI_RW   , 0                         , 13 ), // #321
    380   INST(Stgp             , BaseLdpStp         , (0b0110100100, 0b0110100010, kX, 0, 4)                                                , kRWI_RRW  , 0                         , 3  ), // #322
    381   INST(Stllr            , BaseRM_NoImm       , (0b1000100010011111011111, kWX, kZR, 30)                                              , kRWI_RW   , 0                         , 14 ), // #323
    382   INST(Stllrb           , BaseRM_NoImm       , (0b0000100010011111011111, kW , kZR, 0 )                                              , kRWI_RW   , 0                         , 15 ), // #324
    383   INST(Stllrh           , BaseRM_NoImm       , (0b0100100010011111011111, kW , kZR, 0 )                                              , kRWI_RW   , 0                         , 16 ), // #325
    384   INST(Stlr             , BaseRM_NoImm       , (0b1000100010011111111111, kWX, kZR, 30)                                              , kRWI_RW   , 0                         , 17 ), // #326
    385   INST(Stlrb            , BaseRM_NoImm       , (0b0000100010011111111111, kW , kZR, 0 )                                              , kRWI_RW   , 0                         , 18 ), // #327
    386   INST(Stlrh            , BaseRM_NoImm       , (0b0100100010011111111111, kW , kZR, 0 )                                              , kRWI_RW   , 0                         , 19 ), // #328
    387   INST(Stlxp            , BaseStxp           , (0b1000100000100000100000, kWX, 30)                                                   , kRWI_WRRX , 0                         , 0  ), // #329
    388   INST(Stlxr            , BaseAtomicOp       , (0b1000100000000000111111, kWX, 30, 1)                                                , kRWI_WRX  , 0                         , 108), // #330
    389   INST(Stlxrb           , BaseAtomicOp       , (0b0000100000000000111111, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 109), // #331
    390   INST(Stlxrh           , BaseAtomicOp       , (0b0100100000000000111111, kW , 0 , 1)                                                , kRWI_WRX  , 0                         , 110), // #332
    391   INST(Stnp             , BaseLdpStp         , (0b0010100000, 0           , kWX, 31, 2)                                              , kRWI_RRW  , 0                         , 4  ), // #333
    392   INST(Stp              , BaseLdpStp         , (0b0010100100, 0b0010100010, kWX, 31, 2)                                              , kRWI_RRW  , 0                         , 5  ), // #334
    393   INST(Str              , BaseLdSt           , (0b1011100100, 0b10111000000, 0b10111000001, 0         , kWX, 30, 2, Inst::kIdStur)   , kRWI_RW   , 0                         , 6  ), // #335
    394   INST(Strb             , BaseLdSt           , (0b0011100100, 0b00111000000, 0b00111000001, 0         , kW , 30, 0, Inst::kIdSturb)  , kRWI_RW   , 0                         , 7  ), // #336
    395   INST(Strh             , BaseLdSt           , (0b0111100100, 0b01111000000, 0b01111000001, 0         , kWX, 30, 1, Inst::kIdSturh)  , kRWI_RW   , 0                         , 8  ), // #337
    396   INST(Stset            , BaseAtomicSt       , (0b1011100000100000001100, kWX, 30)                                                   , kRWI_RX   , 0                         , 18 ), // #338
    397   INST(Stsetl           , BaseAtomicSt       , (0b1011100001100000001100, kWX, 30)                                                   , kRWI_RX   , 0                         , 19 ), // #339
    398   INST(Stsetb           , BaseAtomicSt       , (0b0011100000100000001100, kW , 0 )                                                   , kRWI_RX   , 0                         , 20 ), // #340
    399   INST(Stsetlb          , BaseAtomicSt       , (0b0011100001100000001100, kW , 0 )                                                   , kRWI_RX   , 0                         , 21 ), // #341
    400   INST(Stseth           , BaseAtomicSt       , (0b0111100000100000001100, kW , 0 )                                                   , kRWI_RX   , 0                         , 22 ), // #342
    401   INST(Stsetlh          , BaseAtomicSt       , (0b0111100001100000001100, kW , 0 )                                                   , kRWI_RX   , 0                         , 23 ), // #343
    402   INST(Stsmax           , BaseAtomicSt       , (0b1011100000100000010000, kWX, 30)                                                   , kRWI_RX   , 0                         , 24 ), // #344
    403   INST(Stsmaxl          , BaseAtomicSt       , (0b1011100001100000010000, kWX, 30)                                                   , kRWI_RX   , 0                         , 25 ), // #345
    404   INST(Stsmaxb          , BaseAtomicSt       , (0b0011100000100000010000, kW , 0 )                                                   , kRWI_RX   , 0                         , 26 ), // #346
    405   INST(Stsmaxlb         , BaseAtomicSt       , (0b0011100001100000010000, kW , 0 )                                                   , kRWI_RX   , 0                         , 27 ), // #347
    406   INST(Stsmaxh          , BaseAtomicSt       , (0b0111100000100000010000, kW , 0 )                                                   , kRWI_RX   , 0                         , 28 ), // #348
    407   INST(Stsmaxlh         , BaseAtomicSt       , (0b0111100001100000010000, kW , 0 )                                                   , kRWI_RX   , 0                         , 29 ), // #349
    408   INST(Stsmin           , BaseAtomicSt       , (0b1011100000100000010100, kWX, 30)                                                   , kRWI_RX   , 0                         , 30 ), // #350
    409   INST(Stsminl          , BaseAtomicSt       , (0b1011100001100000010100, kWX, 30)                                                   , kRWI_RX   , 0                         , 31 ), // #351
    410   INST(Stsminb          , BaseAtomicSt       , (0b0011100000100000010100, kW , 0 )                                                   , kRWI_RX   , 0                         , 32 ), // #352
    411   INST(Stsminlb         , BaseAtomicSt       , (0b0011100001100000010100, kW , 0 )                                                   , kRWI_RX   , 0                         , 33 ), // #353
    412   INST(Stsminh          , BaseAtomicSt       , (0b0111100000100000010100, kW , 0 )                                                   , kRWI_RX   , 0                         , 34 ), // #354
    413   INST(Stsminlh         , BaseAtomicSt       , (0b0111100001100000010100, kW , 0 )                                                   , kRWI_RX   , 0                         , 35 ), // #355
    414   INST(Sttr             , BaseRM_SImm9       , (0b1011100000000000000010, 0b0000000000000000000000, kWX, kZR, 30, 0)                 , kRWI_RW   , 0                         , 15 ), // #356
    415   INST(Sttrb            , BaseRM_SImm9       , (0b0011100000000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_RW   , 0                         , 16 ), // #357
    416   INST(Sttrh            , BaseRM_SImm9       , (0b0111100000000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_RW   , 0                         , 17 ), // #358
    417   INST(Stumax           , BaseAtomicSt       , (0b1011100000100000011000, kWX, 30)                                                   , kRWI_RX   , 0                         , 36 ), // #359
    418   INST(Stumaxl          , BaseAtomicSt       , (0b1011100001100000011000, kWX, 30)                                                   , kRWI_RX   , 0                         , 37 ), // #360
    419   INST(Stumaxb          , BaseAtomicSt       , (0b0011100000100000011000, kW , 0 )                                                   , kRWI_RX   , 0                         , 38 ), // #361
    420   INST(Stumaxlb         , BaseAtomicSt       , (0b0011100001100000011000, kW , 0 )                                                   , kRWI_RX   , 0                         , 39 ), // #362
    421   INST(Stumaxh          , BaseAtomicSt       , (0b0111100000100000011000, kW , 0 )                                                   , kRWI_RX   , 0                         , 40 ), // #363
    422   INST(Stumaxlh         , BaseAtomicSt       , (0b0111100001100000011000, kW , 0 )                                                   , kRWI_RX   , 0                         , 41 ), // #364
    423   INST(Stumin           , BaseAtomicSt       , (0b1011100000100000011100, kWX, 30)                                                   , kRWI_RX   , 0                         , 42 ), // #365
    424   INST(Stuminl          , BaseAtomicSt       , (0b1011100001100000011100, kWX, 30)                                                   , kRWI_RX   , 0                         , 43 ), // #366
    425   INST(Stuminb          , BaseAtomicSt       , (0b0011100000100000011100, kW , 0 )                                                   , kRWI_RX   , 0                         , 44 ), // #367
    426   INST(Stuminlb         , BaseAtomicSt       , (0b0011100001100000011100, kW , 0 )                                                   , kRWI_RX   , 0                         , 45 ), // #368
    427   INST(Stuminh          , BaseAtomicSt       , (0b0111100000100000011100, kW , 0 )                                                   , kRWI_RX   , 0                         , 46 ), // #369
    428   INST(Stuminlh         , BaseAtomicSt       , (0b0111100001100000011100, kW , 0 )                                                   , kRWI_RX   , 0                         , 47 ), // #370
    429   INST(Stur             , BaseRM_SImm9       , (0b1011100000000000000000, 0b0000000000000000000000, kWX, kZR, 30, 0)                 , kRWI_RW   , 0                         , 18 ), // #371
    430   INST(Sturb            , BaseRM_SImm9       , (0b0011100000000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_RW   , 0                         , 19 ), // #372
    431   INST(Sturh            , BaseRM_SImm9       , (0b0111100000000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0)                 , kRWI_RW   , 0                         , 20 ), // #373
    432   INST(Stxp             , BaseStxp           , (0b1000100000100000000000, kWX, 30)                                                   , kRWI_WRRW , 0                         , 1  ), // #374
    433   INST(Stxr             , BaseStx            , (0b1000100000000000011111, kWX, 30)                                                   , kRWI_WRW  , 0                         , 0  ), // #375
    434   INST(Stxrb            , BaseStx            , (0b0000100000000000011111, kW , 0 )                                                   , kRWI_WRW  , 0                         , 1  ), // #376
    435   INST(Stxrh            , BaseStx            , (0b0100100000000000011111, kW , 0 )                                                   , kRWI_WRW  , 0                         , 2  ), // #377
    436   INST(Stz2g            , BaseRM_SImm9       , (0b1101100111100000000010, 0b1101100111100000000001, kX , kSP, 0, 4)                  , kRWI_RW   , 0                         , 21 ), // #378
    437   INST(Stzg             , BaseRM_SImm9       , (0b1101100101100000000010, 0b1101100101100000000001, kX , kSP, 0, 4)                  , kRWI_RW   , 0                         , 22 ), // #379
    438   INST(Stzgm            , BaseRM_NoImm       , (0b1101100100100000000000, kX , kZR, 0)                                               , kRWI_RW   , 0                         , 20 ), // #380
    439   INST(Sub              , BaseAddSub         , (0b1001011000, 0b1001011001, 0b1010001)                                               , kRWI_W    , 0                         , 2  ), // #381
    440   INST(Subg             , BaseRRII           , (0b1101000110000000000000, kX, kSP, kX, kSP, 6, 4, 16, 4, 0, 10)                      , kRWI_W    , 0                         , 1  ), // #382
    441   INST(Subp             , BaseRRR            , (0b1001101011000000000000, kX, kZR, kX, kSP, kX, kSP, false)                          , kRWI_W    , 0                         , 20 ), // #383
    442   INST(Subps            , BaseRRR            , (0b1011101011000000000000, kX, kZR, kX, kSP, kX, kSP, false)                          , kRWI_W    , 0                         , 21 ), // #384
    443   INST(Subs             , BaseAddSub         , (0b1101011000, 0b1101011001, 0b1110001)                                               , kRWI_W    , 0                         , 3  ), // #385
    444   INST(Svc              , BaseOpImm          , (0b11010100000000000000000000000001, 16, 5)                                           , 0         , 0                         , 13 ), // #386
    445   INST(Swp              , BaseAtomicOp       , (0b1011100000100000100000, kWX, 30, 1)                                                , kRWI_RWX  , 0                         , 111), // #387
    446   INST(Swpa             , BaseAtomicOp       , (0b1011100010100000100000, kWX, 30, 1)                                                , kRWI_RWX  , 0                         , 112), // #388
    447   INST(Swpab            , BaseAtomicOp       , (0b0011100010100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 113), // #389
    448   INST(Swpah            , BaseAtomicOp       , (0b0111100010100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 114), // #390
    449   INST(Swpal            , BaseAtomicOp       , (0b1011100011100000100000, kWX, 30, 1)                                                , kRWI_RWX  , 0                         , 115), // #391
    450   INST(Swpalb           , BaseAtomicOp       , (0b0011100011100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 116), // #392
    451   INST(Swpalh           , BaseAtomicOp       , (0b0111100011100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 117), // #393
    452   INST(Swpb             , BaseAtomicOp       , (0b0011100000100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 118), // #394
    453   INST(Swph             , BaseAtomicOp       , (0b0111100000100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 119), // #395
    454   INST(Swpl             , BaseAtomicOp       , (0b1011100001100000100000, kWX, 30, 1)                                                , kRWI_RWX  , 0                         , 120), // #396
    455   INST(Swplb            , BaseAtomicOp       , (0b0011100001100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 121), // #397
    456   INST(Swplh            , BaseAtomicOp       , (0b0111100001100000100000, kW , 0 , 1)                                                , kRWI_RWX  , 0                         , 122), // #398
    457   INST(Sxtb             , BaseExtend         , (0b0001001100000000000111, kWX, 0)                                                    , kRWI_W    , 0                         , 0  ), // #399
    458   INST(Sxth             , BaseExtend         , (0b0001001100000000001111, kWX, 0)                                                    , kRWI_W    , 0                         , 1  ), // #400
    459   INST(Sxtw             , BaseExtend         , (0b1001001101000000011111, kX , 0)                                                    , kRWI_W    , 0                         , 2  ), // #401
    460   INST(Sys              , BaseSys            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #402
    461   INST(Tlbi             , BaseAtDcIcTlbi     , (0b00011110000000, 0b00010000000000, false)                                           , kRWI_RX   , 0                         , 3  ), // #403
    462   INST(Tst              , BaseTst            , (0b1101010000, 0b111001000)                                                           , kRWI_R    , 0                         , 0  ), // #404
    463   INST(Tbnz             , BaseBranchTst      , (0b00110111000000000000000000000000)                                                  , kRWI_R    , 0                         , 0  ), // #405
    464   INST(Tbz              , BaseBranchTst      , (0b00110110000000000000000000000000)                                                  , kRWI_R    , 0                         , 1  ), // #406
    465   INST(Ubfiz            , BaseBfi            , (0b01010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 2  ), // #407
    466   INST(Ubfm             , BaseBfm            , (0b01010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 2  ), // #408
    467   INST(Ubfx             , BaseBfx            , (0b01010011000000000000000000000000)                                                  , kRWI_W    , 0                         , 2  ), // #409
    468   INST(Udf              , BaseOpImm          , (0b00000000000000000000000000000000, 16, 0)                                           , 0         , 0                         , 14 ), // #410
    469   INST(Udiv             , BaseRRR            , (0b0001101011000000000010, kWX, kZR, kWX, kZR, kWX, kZR, true)                        , kRWI_W    , 0                         , 22 ), // #411
    470   INST(Umaddl           , BaseRRRR           , (0b1001101110100000000000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false)             , kRWI_W    , 0                         , 4  ), // #412
    471   INST(Umax             , BaseMinMax         , (0b00011010110000000110010000000000, 0b00010001110001000000000000000000)              , kRWI_W    , 0                         , 2  ), // #413
    472   INST(Umin             , BaseMinMax         , (0b00011010110000000110110000000000, 0b00010001110011000000000000000000)              , kRWI_W    , 0                         , 3  ), // #414
    473   INST(Umnegl           , BaseRRR            , (0b1001101110100000111111, kX , kZR, kW , kZR, kW , kZR, false)                       , kRWI_W    , 0                         , 23 ), // #415
    474   INST(Umull            , BaseRRR            , (0b1001101110100000011111, kX , kZR, kW , kZR, kW , kZR, false)                       , kRWI_W    , 0                         , 24 ), // #416
    475   INST(Umulh            , BaseRRR            , (0b1001101111000000011111, kX , kZR, kX , kZR, kX , kZR, false)                       , kRWI_W    , 0                         , 25 ), // #417
    476   INST(Umsubl           , BaseRRRR           , (0b1001101110100000100000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false)             , kRWI_W    , 0                         , 5  ), // #418
    477   INST(Uxtb             , BaseExtend         , (0b0101001100000000000111, kW, 1)                                                     , kRWI_W    , 0                         , 3  ), // #419
    478   INST(Uxth             , BaseExtend         , (0b0101001100000000001111, kW, 1)                                                     , kRWI_W    , 0                         , 4  ), // #420
    479   INST(Wfe              , BaseOp             , (0b11010101000000110010000001011111)                                                  , 0         , 0                         , 19 ), // #421
    480   INST(Wfi              , BaseOp             , (0b11010101000000110010000001111111)                                                  , 0         , 0                         , 20 ), // #422
    481   INST(Xaflag           , BaseOp             , (0b11010101000000000100000000111111)                                                  , 0         , 0                         , 21 ), // #423
    482   INST(Xpacd            , BaseR              , (0b11011010110000010100011111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 8  ), // #424
    483   INST(Xpaci            , BaseR              , (0b11011010110000010100001111100000, kX, kZR, 0)                                      , kRWI_X    , 0                         , 9  ), // #425
    484   INST(Xpaclri          , BaseOp             , (0b11010101000000110010000011111111)                                                  , kRWI_X    , 0                         , 22 ), // #426
    485   INST(Yield            , BaseOp             , (0b11010101000000110010000000111111)                                                  , 0         , 0                         , 23 ), // #427
    486   INST(Abs_v            , ISimdVV            , (0b0000111000100000101110, kVO_V_Any)                                                 , kRWI_W    , 0                         , 0  ), // #428
    487   INST(Add_v            , ISimdVVV           , (0b0000111000100000100001, kVO_V_Any)                                                 , kRWI_W    , 0                         , 0  ), // #429
    488   INST(Addhn_v          , ISimdVVV           , (0b0000111000100000010000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Narrow)                 , 1  ), // #430
    489   INST(Addhn2_v         , ISimdVVV           , (0b0100111000100000010000, kVO_V_B16H8S4)                                             , kRWI_W    , F(Narrow)                 , 2  ), // #431
    490   INST(Addp_v           , ISimdPair          , (0b0101111000110001101110, 0b0000111000100000101111, kVO_V_Any)                       , kRWI_W    , F(Pair)                   , 0  ), // #432
    491   INST(Addv_v           , ISimdSV            , (0b0000111000110001101110, kVO_V_BH_4S)                                               , kRWI_W    , 0                         , 0  ), // #433
    492   INST(Aesd_v           , ISimdVVx           , (0b0100111000101000010110, kOp_V16B, kOp_V16B)                                        , kRWI_X    , 0                         , 0  ), // #434
    493   INST(Aese_v           , ISimdVVx           , (0b0100111000101000010010, kOp_V16B, kOp_V16B)                                        , kRWI_X    , 0                         , 1  ), // #435
    494   INST(Aesimc_v         , ISimdVVx           , (0b0100111000101000011110, kOp_V16B, kOp_V16B)                                        , kRWI_W    , 0                         , 2  ), // #436
    495   INST(Aesmc_v          , ISimdVVx           , (0b0100111000101000011010, kOp_V16B, kOp_V16B)                                        , kRWI_W    , 0                         , 3  ), // #437
    496   INST(And_v            , ISimdVVV           , (0b0000111000100000000111, kVO_V_B)                                                   , kRWI_W    , 0                         , 3  ), // #438
    497   INST(Bcax_v           , ISimdVVVV          , (0b1100111000100000000000, kVO_V_B16)                                                 , kRWI_W    , 0                         , 0  ), // #439
    498   INST(Bfcvt_v          , ISimdVVx           , (0b0001111001100011010000, kOp_H, kOp_S)                                              , kRWI_W    , 0                         , 4  ), // #440
    499   INST(Bfcvtn_v         , ISimdVVx           , (0b0000111010100001011010, kOp_V4H, kOp_V4S)                                          , kRWI_W    , F(Narrow)                 , 5  ), // #441
    500   INST(Bfcvtn2_v        , ISimdVVx           , (0b0100111010100001011010, kOp_V8H, kOp_V4S)                                          , kRWI_W    , F(Narrow)                 , 6  ), // #442
    501   INST(Bfdot_v          , SimdDot            , (0b0010111001000000111111, 0b0000111101000000111100, kET_S, kET_H, kET_2H)            , kRWI_X    , 0                         , 0  ), // #443
    502   INST(Bfmlalb_v        , SimdFmlal          , (0b0010111011000000111111, 0b0000111111000000111100, 0, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 0  ), // #444
    503   INST(Bfmlalt_v        , SimdFmlal          , (0b0110111011000000111111, 0b0100111111000000111100, 0, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 1  ), // #445
    504   INST(Bfmmla_v         , ISimdVVVx          , (0b0110111001000000111011, kOp_V4S, kOp_V8H, kOp_V8H)                                 , kRWI_X    , F(Long)                   , 0  ), // #446
    505   INST(Bic_v            , SimdBicOrr         , (0b0000111001100000000111, 0b0010111100000000000001)                                  , kRWI_W    , 0                         , 0  ), // #447
    506   INST(Bif_v            , ISimdVVV           , (0b0010111011100000000111, kVO_V_B)                                                   , kRWI_X    , 0                         , 4  ), // #448
    507   INST(Bit_v            , ISimdVVV           , (0b0010111010100000000111, kVO_V_B)                                                   , kRWI_X    , 0                         , 5  ), // #449
    508   INST(Bsl_v            , ISimdVVV           , (0b0010111001100000000111, kVO_V_B)                                                   , kRWI_X    , 0                         , 6  ), // #450
    509   INST(Cls_v            , ISimdVV            , (0b0000111000100000010010, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 1  ), // #451
    510   INST(Clz_v            , ISimdVV            , (0b0010111000100000010010, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 2  ), // #452
    511   INST(Cmeq_v           , SimdCmp            , (0b0010111000100000100011, 0b0000111000100000100110, kVO_V_Any)                       , kRWI_W    , 0                         , 0  ), // #453
    512   INST(Cmge_v           , SimdCmp            , (0b0000111000100000001111, 0b0010111000100000100010, kVO_V_Any)                       , kRWI_W    , 0                         , 1  ), // #454
    513   INST(Cmgt_v           , SimdCmp            , (0b0000111000100000001101, 0b0000111000100000100010, kVO_V_Any)                       , kRWI_W    , 0                         , 2  ), // #455
    514   INST(Cmhi_v           , SimdCmp            , (0b0010111000100000001101, 0b0000000000000000000000, kVO_V_Any)                       , kRWI_W    , 0                         , 3  ), // #456
    515   INST(Cmhs_v           , SimdCmp            , (0b0010111000100000001111, 0b0000000000000000000000, kVO_V_Any)                       , kRWI_W    , 0                         , 4  ), // #457
    516   INST(Cmle_v           , SimdCmp            , (0b0000000000000000000000, 0b0010111000100000100110, kVO_V_Any)                       , kRWI_W    , 0                         , 5  ), // #458
    517   INST(Cmlt_v           , SimdCmp            , (0b0000000000000000000000, 0b0000111000100000101010, kVO_V_Any)                       , kRWI_W    , 0                         , 6  ), // #459
    518   INST(Cmtst_v          , ISimdVVV           , (0b0000111000100000100011, kVO_V_Any)                                                 , kRWI_W    , 0                         , 7  ), // #460
    519   INST(Cnt_v            , ISimdVV            , (0b0000111000100000010110, kVO_V_B)                                                   , kRWI_W    , 0                         , 3  ), // #461
    520   INST(Dup_v            , SimdDup            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #462
    521   INST(Eor_v            , ISimdVVV           , (0b0010111000100000000111, kVO_V_B)                                                   , kRWI_W    , 0                         , 8  ), // #463
    522   INST(Eor3_v           , ISimdVVVV          , (0b1100111000000000000000, kVO_V_B16)                                                 , kRWI_W    , 0                         , 1  ), // #464
    523   INST(Ext_v            , ISimdVVVI          , (0b0010111000000000000000, kVO_V_B, 4, 11, 1)                                         , kRWI_W    , 0                         , 0  ), // #465
    524   INST(Fabd_v           , FSimdVVV           , (0b0111111010100000110101, kHF_C, 0b0010111010100000110101, kHF_C)                    , kRWI_W    , 0                         , 0  ), // #466
    525   INST(Fabs_v           , FSimdVV            , (0b0001111000100000110000, kHF_A, 0b0000111010100000111110, kHF_B)                    , kRWI_W    , 0                         , 0  ), // #467
    526   INST(Facge_v          , FSimdVVV           , (0b0111111000100000111011, kHF_C, 0b0010111000100000111011, kHF_C)                    , kRWI_W    , 0                         , 1  ), // #468
    527   INST(Facgt_v          , FSimdVVV           , (0b0111111010100000111011, kHF_C, 0b0010111010100000111011, kHF_C)                    , kRWI_W    , 0                         , 2  ), // #469
    528   INST(Fadd_v           , FSimdVVV           , (0b0001111000100000001010, kHF_A, 0b0000111000100000110101, kHF_C)                    , kRWI_W    , 0                         , 3  ), // #470
    529   INST(Faddp_v          , FSimdPair          , (0b0111111000110000110110, 0b0010111000100000110101)                                  , kRWI_W    , 0                         , 0  ), // #471
    530   INST(Fcadd_v          , SimdFcadd          , (0b0010111000000000111001)                                                            , kRWI_W    , 0                         , 0  ), // #472
    531   INST(Fccmp_v          , SimdFccmpFccmpe    , (0b00011110001000000000010000000000)                                                  , kRWI_R    , 0                         , 0  ), // #473
    532   INST(Fccmpe_v         , SimdFccmpFccmpe    , (0b00011110001000000000010000010000)                                                  , kRWI_R    , 0                         , 1  ), // #474
    533   INST(Fcmeq_v          , SimdFcm            , (0b0000111000100000111001, kHF_C, 0b0000111010100000110110)                           , kRWI_W    , 0                         , 0  ), // #475
    534   INST(Fcmge_v          , SimdFcm            , (0b0010111000100000111001, kHF_C, 0b0010111010100000110010)                           , kRWI_W    , 0                         , 1  ), // #476
    535   INST(Fcmgt_v          , SimdFcm            , (0b0010111010100000111001, kHF_C, 0b0000111010100000110010)                           , kRWI_W    , 0                         , 2  ), // #477
    536   INST(Fcmla_v          , SimdFcmla          , (0b0010111000000000110001, 0b0010111100000000000100)                                  , kRWI_X    , 0                         , 0  ), // #478
    537   INST(Fcmle_v          , SimdFcm            , (0b0000000000000000000000, kHF_C, 0b0010111010100000110110)                           , kRWI_W    , 0                         , 3  ), // #479
    538   INST(Fcmlt_v          , SimdFcm            , (0b0000000000000000000000, kHF_C, 0b0000111010100000111010)                           , kRWI_W    , 0                         , 4  ), // #480
    539   INST(Fcmp_v           , SimdFcmpFcmpe      , (0b00011110001000000010000000000000)                                                  , kRWI_R    , 0                         , 0  ), // #481
    540   INST(Fcmpe_v          , SimdFcmpFcmpe      , (0b00011110001000000010000000010000)                                                  , kRWI_R    , 0                         , 1  ), // #482
    541   INST(Fcsel_v          , SimdFcsel          , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #483
    542   INST(Fcvt_v           , SimdFcvt           , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #484
    543   INST(Fcvtas_v         , SimdFcvtSV         , (0b0000111000100001110010, 0b0000000000000000000000, 0b0001111000100100000000, 1)     , kRWI_W    , 0                         , 0  ), // #485
    544   INST(Fcvtau_v         , SimdFcvtSV         , (0b0010111000100001110010, 0b0000000000000000000000, 0b0001111000100101000000, 1)     , kRWI_W    , 0                         , 1  ), // #486
    545   INST(Fcvtl_v          , SimdFcvtLN         , (0b0000111000100001011110, 0, 0)                                                      , kRWI_W    , F(Long)                   , 0  ), // #487
    546   INST(Fcvtl2_v         , SimdFcvtLN         , (0b0100111000100001011110, 0, 0)                                                      , kRWI_W    , F(Long)                   , 1  ), // #488
    547   INST(Fcvtms_v         , SimdFcvtSV         , (0b0000111000100001101110, 0b0000000000000000000000, 0b0001111000110000000000, 1)     , kRWI_W    , 0                         , 2  ), // #489
    548   INST(Fcvtmu_v         , SimdFcvtSV         , (0b0010111000100001101110, 0b0000000000000000000000, 0b0001111000110001000000, 1)     , kRWI_W    , 0                         , 3  ), // #490
    549   INST(Fcvtn_v          , SimdFcvtLN         , (0b0000111000100001011010, 0, 0)                                                      , kRWI_W    , F(Narrow)                 , 2  ), // #491
    550   INST(Fcvtn2_v         , SimdFcvtLN         , (0b0100111000100001011010, 0, 0)                                                      , kRWI_X    , F(Narrow)                 , 3  ), // #492
    551   INST(Fcvtns_v         , SimdFcvtSV         , (0b0000111000100001101010, 0b0000000000000000000000, 0b0001111000100000000000, 1)     , kRWI_W    , 0                         , 4  ), // #493
    552   INST(Fcvtnu_v         , SimdFcvtSV         , (0b0010111000100001101010, 0b0000000000000000000000, 0b0001111000100001000000, 1)     , kRWI_W    , 0                         , 5  ), // #494
    553   INST(Fcvtps_v         , SimdFcvtSV         , (0b0000111010100001101010, 0b0000000000000000000000, 0b0001111000101000000000, 1)     , kRWI_W    , 0                         , 6  ), // #495
    554   INST(Fcvtpu_v         , SimdFcvtSV         , (0b0010111010100001101010, 0b0000000000000000000000, 0b0001111000101001000000, 1)     , kRWI_W    , 0                         , 7  ), // #496
    555   INST(Fcvtxn_v         , SimdFcvtLN         , (0b0010111000100001011010, 1, 1)                                                      , kRWI_W    , F(Narrow)                 , 4  ), // #497
    556   INST(Fcvtxn2_v        , SimdFcvtLN         , (0b0110111000100001011010, 1, 0)                                                      , kRWI_X    , F(Narrow)                 , 5  ), // #498
    557   INST(Fcvtzs_v         , SimdFcvtSV         , (0b0000111010100001101110, 0b0000111100000000111111, 0b0001111000111000000000, 1)     , kRWI_W    , 0                         , 8  ), // #499
    558   INST(Fcvtzu_v         , SimdFcvtSV         , (0b0010111010100001101110, 0b0010111100000000111111, 0b0001111000111001000000, 1)     , kRWI_W    , 0                         , 9  ), // #500
    559   INST(Fdiv_v           , FSimdVVV           , (0b0001111000100000000110, kHF_A, 0b0010111000100000111111, kHF_C)                    , kRWI_W    , 0                         , 4  ), // #501
    560   INST(Fjcvtzs_v        , ISimdVVx           , (0b0001111001111110000000, kOp_GpW, kOp_D)                                            , kRWI_W    , 0                         , 7  ), // #502
    561   INST(Fmadd_v          , FSimdVVVV          , (0b0001111100000000000000, kHF_A, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 0  ), // #503
    562   INST(Fmax_v           , FSimdVVV           , (0b0001111000100000010010, kHF_A, 0b0000111000100000111101, kHF_C)                    , kRWI_W    , 0                         , 5  ), // #504
    563   INST(Fmaxnm_v         , FSimdVVV           , (0b0001111000100000011010, kHF_A, 0b0000111000100000110001, kHF_C)                    , kRWI_W    , 0                         , 6  ), // #505
    564   INST(Fmaxnmp_v        , FSimdPair          , (0b0111111000110000110010, 0b0010111000100000110001)                                  , kRWI_W    , 0                         , 1  ), // #506
    565   INST(Fmaxnmv_v        , FSimdSV            , (0b0010111000110000110010)                                                            , kRWI_W    , 0                         , 0  ), // #507
    566   INST(Fmaxp_v          , FSimdPair          , (0b0111111000110000111110, 0b0010111000100000111101)                                  , kRWI_W    , 0                         , 2  ), // #508
    567   INST(Fmaxv_v          , FSimdSV            , (0b0010111000110000111110)                                                            , kRWI_W    , 0                         , 1  ), // #509
    568   INST(Fmin_v           , FSimdVVV           , (0b0001111000100000010110, kHF_A, 0b0000111010100000111101, kHF_C)                    , kRWI_W    , 0                         , 7  ), // #510
    569   INST(Fminnm_v         , FSimdVVV           , (0b0001111000100000011110, kHF_A, 0b0000111010100000110001, kHF_C)                    , kRWI_W    , 0                         , 8  ), // #511
    570   INST(Fminnmp_v        , FSimdPair          , (0b0111111010110000110010, 0b0010111010100000110001)                                  , kRWI_W    , 0                         , 3  ), // #512
    571   INST(Fminnmv_v        , FSimdSV            , (0b0010111010110000110010)                                                            , kRWI_W    , 0                         , 2  ), // #513
    572   INST(Fminp_v          , FSimdPair          , (0b0111111010110000111110, 0b0010111010100000111101)                                  , kRWI_W    , 0                         , 4  ), // #514
    573   INST(Fminv_v          , FSimdSV            , (0b0010111010110000111110)                                                            , kRWI_W    , 0                         , 3  ), // #515
    574   INST(Fmla_v           , FSimdVVVe          , (0b0000000000000000000000, kHF_N, 0b0000111000100000110011, 0b0000111110000000000100) , kRWI_X    , F(VH0_15)                 , 0  ), // #516
    575   INST(Fmlal_v          , SimdFmlal          , (0b0000111000100000111011, 0b0000111110000000000000, 1, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 2  ), // #517
    576   INST(Fmlal2_v         , SimdFmlal          , (0b0010111000100000110011, 0b0010111110000000100000, 1, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 3  ), // #518
    577   INST(Fmls_v           , FSimdVVVe          , (0b0000000000000000000000, kHF_N, 0b0000111010100000110011, 0b0000111110000000010100) , kRWI_X    , F(VH0_15)                 , 1  ), // #519
    578   INST(Fmlsl_v          , SimdFmlal          , (0b0000111010100000111011, 0b0000111110000000010000, 1, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 4  ), // #520
    579   INST(Fmlsl2_v         , SimdFmlal          , (0b0010111010100000110011, 0b0010111110000000110000, 1, kET_S, kET_H, kET_H)          , kRWI_X    , F(VH0_15)                 , 5  ), // #521
    580   INST(Fmov_v           , SimdFmov           , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #522
    581   INST(Fmsub_v          , FSimdVVVV          , (0b0001111100000000100000, kHF_A, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 1  ), // #523
    582   INST(Fmul_v           , FSimdVVVe          , (0b0001111000100000000010, kHF_A, 0b0010111000100000110111, 0b0000111110000000100100) , kRWI_W    , F(VH0_15)                 , 2  ), // #524
    583   INST(Fmulx_v          , FSimdVVVe          , (0b0101111000100000110111, kHF_C, 0b0000111000100000110111, 0b0010111110000000100100) , kRWI_W    , F(VH0_15)                 , 3  ), // #525
    584   INST(Fneg_v           , FSimdVV            , (0b0001111000100001010000, kHF_A, 0b0010111010100000111110, kHF_B)                    , kRWI_W    , 0                         , 1  ), // #526
    585   INST(Fnmadd_v         , FSimdVVVV          , (0b0001111100100000000000, kHF_A, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 2  ), // #527
    586   INST(Fnmsub_v         , FSimdVVVV          , (0b0001111100100000100000, kHF_A, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 3  ), // #528
    587   INST(Fnmul_v          , FSimdVVV           , (0b0001111000100000100010, kHF_A, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 9  ), // #529
    588   INST(Frecpe_v         , FSimdVV            , (0b0101111010100001110110, kHF_B, 0b0000111010100001110110, kHF_B)                    , kRWI_W    , 0                         , 2  ), // #530
    589   INST(Frecps_v         , FSimdVVV           , (0b0101111000100000111111, kHF_C, 0b0000111000100000111111, kHF_C)                    , kRWI_W    , 0                         , 10 ), // #531
    590   INST(Frecpx_v         , FSimdVV            , (0b0101111010100001111110, kHF_B, 0b0000000000000000000000, kHF_N)                    , kRWI_W    , 0                         , 3  ), // #532
    591   INST(Frint32x_v       , FSimdVV            , (0b0001111000101000110000, kHF_N, 0b0010111000100001111010, kHF_N)                    , kRWI_W    , 0                         , 4  ), // #533
    592   INST(Frint32z_v       , FSimdVV            , (0b0001111000101000010000, kHF_N, 0b0000111000100001111010, kHF_N)                    , kRWI_W    , 0                         , 5  ), // #534
    593   INST(Frint64x_v       , FSimdVV            , (0b0001111000101001110000, kHF_N, 0b0010111000100001111110, kHF_N)                    , kRWI_W    , 0                         , 6  ), // #535
    594   INST(Frint64z_v       , FSimdVV            , (0b0001111000101001010000, kHF_N, 0b0000111000100001111110, kHF_N)                    , kRWI_W    , 0                         , 7  ), // #536
    595   INST(Frinta_v         , FSimdVV            , (0b0001111000100110010000, kHF_A, 0b0010111000100001100010, kHF_B)                    , kRWI_W    , 0                         , 8  ), // #537
    596   INST(Frinti_v         , FSimdVV            , (0b0001111000100111110000, kHF_A, 0b0010111010100001100110, kHF_B)                    , kRWI_W    , 0                         , 9  ), // #538
    597   INST(Frintm_v         , FSimdVV            , (0b0001111000100101010000, kHF_A, 0b0000111000100001100110, kHF_B)                    , kRWI_W    , 0                         , 10 ), // #539
    598   INST(Frintn_v         , FSimdVV            , (0b0001111000100100010000, kHF_A, 0b0000111000100001100010, kHF_B)                    , kRWI_W    , 0                         , 11 ), // #540
    599   INST(Frintp_v         , FSimdVV            , (0b0001111000100100110000, kHF_A, 0b0000111010100001100010, kHF_B)                    , kRWI_W    , 0                         , 12 ), // #541
    600   INST(Frintx_v         , FSimdVV            , (0b0001111000100111010000, kHF_A, 0b0010111000100001100110, kHF_B)                    , kRWI_W    , 0                         , 13 ), // #542
    601   INST(Frintz_v         , FSimdVV            , (0b0001111000100101110000, kHF_A, 0b0000111010100001100110, kHF_B)                    , kRWI_W    , 0                         , 14 ), // #543
    602   INST(Frsqrte_v        , FSimdVV            , (0b0111111010100001110110, kHF_B, 0b0010111010100001110110, kHF_B)                    , kRWI_W    , 0                         , 15 ), // #544
    603   INST(Frsqrts_v        , FSimdVVV           , (0b0101111010100000111111, kHF_C, 0b0000111010100000111111, kHF_C)                    , kRWI_W    , 0                         , 11 ), // #545
    604   INST(Fsqrt_v          , FSimdVV            , (0b0001111000100001110000, kHF_A, 0b0010111010100001111110, kHF_B)                    , kRWI_W    , 0                         , 16 ), // #546
    605   INST(Fsub_v           , FSimdVVV           , (0b0001111000100000001110, kHF_A, 0b0000111010100000110101, kHF_C)                    , kRWI_W    , 0                         , 12 ), // #547
    606   INST(Ins_v            , SimdIns            , (_)                                                                                   , kRWI_X    , 0                         , 0  ), // #548
    607   INST(Ld1_v            , SimdLdNStN         , (0b0000110101000000000000, 0b0000110001000000001000, 1, 0)                            , kRWI_LDn  , F(Consecutive)            , 0  ), // #549
    608   INST(Ld1r_v           , SimdLdNStN         , (0b0000110101000000110000, 0b0000000000000000000000, 1, 1)                            , kRWI_LDn  , F(Consecutive)            , 1  ), // #550
    609   INST(Ld2_v            , SimdLdNStN         , (0b0000110101100000000000, 0b0000110001000000100000, 2, 0)                            , kRWI_LDn  , F(Consecutive)            , 2  ), // #551
    610   INST(Ld2r_v           , SimdLdNStN         , (0b0000110101100000110000, 0b0000000000000000000000, 2, 1)                            , kRWI_LDn  , F(Consecutive)            , 3  ), // #552
    611   INST(Ld3_v            , SimdLdNStN         , (0b0000110101000000001000, 0b0000110001000000010000, 3, 0)                            , kRWI_LDn  , F(Consecutive)            , 4  ), // #553
    612   INST(Ld3r_v           , SimdLdNStN         , (0b0000110101000000111000, 0b0000000000000000000000, 3, 1)                            , kRWI_LDn  , F(Consecutive)            , 5  ), // #554
    613   INST(Ld4_v            , SimdLdNStN         , (0b0000110101100000001000, 0b0000110001000000000000, 4, 0)                            , kRWI_LDn  , F(Consecutive)            , 6  ), // #555
    614   INST(Ld4r_v           , SimdLdNStN         , (0b0000110101100000111000, 0b0000000000000000000000, 4, 1)                            , kRWI_LDn  , F(Consecutive)            , 7  ), // #556
    615   INST(Ldnp_v           , SimdLdpStp         , (0b0010110001, 0b0000000000)                                                          , kRWI_WW   , 0                         , 0  ), // #557
    616   INST(Ldp_v            , SimdLdpStp         , (0b0010110101, 0b0010110011)                                                          , kRWI_WW   , 0                         , 1  ), // #558
    617   INST(Ldr_v            , SimdLdSt           , (0b0011110101, 0b00111100010, 0b00111100011, 0b00011100, Inst::kIdLdur_v)             , kRWI_W    , 0                         , 0  ), // #559
    618   INST(Ldur_v           , SimdLdurStur       , (0b0011110001000000000000)                                                            , kRWI_W    , 0                         , 0  ), // #560
    619   INST(Mla_v            , ISimdVVVe          , (0b0000111000100000100101, kVO_V_BHS, 0b0010111100000000000000, kVO_V_HS)             , kRWI_X    , F(VH0_15)                 , 0  ), // #561
    620   INST(Mls_v            , ISimdVVVe          , (0b0010111000100000100101, kVO_V_BHS, 0b0010111100000000010000, kVO_V_HS)             , kRWI_X    , F(VH0_15)                 , 1  ), // #562
    621   INST(Mov_v            , SimdMov            , (_)                                                                                   , kRWI_W    , 0                         , 0  ), // #563
    622   INST(Movi_v           , SimdMoviMvni       , (0b0000111100000000000001, 0)                                                         , kRWI_W    , 0                         , 0  ), // #564
    623   INST(Mul_v            , ISimdVVVe          , (0b0000111000100000100111, kVO_V_BHS, 0b0000111100000000100000, kVO_V_HS)             , kRWI_W    , F(VH0_15)                 , 2  ), // #565
    624   INST(Mvn_v            , ISimdVV            , (0b0010111000100000010110, kVO_V_B)                                                   , kRWI_W    , 0                         , 4  ), // #566
    625   INST(Mvni_v           , SimdMoviMvni       , (0b0000111100000000000001, 1)                                                         , kRWI_W    , 0                         , 1  ), // #567
    626   INST(Neg_v            , ISimdVV            , (0b0010111000100000101110, kVO_V_Any)                                                 , kRWI_W    , 0                         , 5  ), // #568
    627   INST(Not_v            , ISimdVV            , (0b0010111000100000010110, kVO_V_B)                                                   , kRWI_W    , 0                         , 6  ), // #569
    628   INST(Orn_v            , ISimdVVV           , (0b0000111011100000000111, kVO_V_B)                                                   , kRWI_W    , 0                         , 9  ), // #570
    629   INST(Orr_v            , SimdBicOrr         , (0b0000111010100000000111, 0b0000111100000000000001)                                  , kRWI_W    , 0                         , 1  ), // #571
    630   INST(Pmul_v           , ISimdVVV           , (0b0010111000100000100111, kVO_V_B)                                                   , kRWI_W    , 0                         , 10 ), // #572
    631   INST(Pmull_v          , ISimdVVV           , (0b0000111000100000111000, kVO_V_B8D1)                                                , kRWI_W    , F(Long)                   , 11 ), // #573
    632   INST(Pmull2_v         , ISimdVVV           , (0b0100111000100000111000, kVO_V_B16D2)                                               , kRWI_W    , F(Long)                   , 12 ), // #574
    633   INST(Raddhn_v         , ISimdVVV           , (0b0010111000100000010000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Narrow)                 , 13 ), // #575
    634   INST(Raddhn2_v        , ISimdVVV           , (0b0110111000100000010000, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 14 ), // #576
    635   INST(Rax1_v           , ISimdVVV           , (0b1100111001100000100011, kVO_V_D2)                                                  , kRWI_W    , 0                         , 15 ), // #577
    636   INST(Rbit_v           , ISimdVV            , (0b0010111001100000010110, kVO_V_B)                                                   , kRWI_W    , 0                         , 7  ), // #578
    637   INST(Rev16_v          , ISimdVV            , (0b0000111000100000000110, kVO_V_B)                                                   , kRWI_W    , 0                         , 8  ), // #579
    638   INST(Rev32_v          , ISimdVV            , (0b0010111000100000000010, kVO_V_BH)                                                  , kRWI_W    , 0                         , 9  ), // #580
    639   INST(Rev64_v          , ISimdVV            , (0b0000111000100000000010, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 10 ), // #581
    640   INST(Rshrn_v          , SimdShift          , (0b0000000000000000000000, 0b0000111100000000100011, 1, kVO_V_B8H4S2)                 , kRWI_W    , F(Narrow)                 , 0  ), // #582
    641   INST(Rshrn2_v         , SimdShift          , (0b0000000000000000000000, 0b0100111100000000100011, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 1  ), // #583
    642   INST(Rsubhn_v         , ISimdVVV           , (0b0010111000100000011000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Narrow)                 , 16 ), // #584
    643   INST(Rsubhn2_v        , ISimdVVV           , (0b0110111000100000011000, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 17 ), // #585
    644   INST(Saba_v           , ISimdVVV           , (0b0000111000100000011111, kVO_V_BHS)                                                 , kRWI_X    , 0                         , 18 ), // #586
    645   INST(Sabal_v          , ISimdVVV           , (0b0000111000100000010100, kVO_V_B8H4S2)                                              , kRWI_X    , F(Long)                   , 19 ), // #587
    646   INST(Sabal2_v         , ISimdVVV           , (0b0100111000100000010100, kVO_V_B16H8S4)                                             , kRWI_X    , F(Long)                   , 20 ), // #588
    647   INST(Sabd_v           , ISimdVVV           , (0b0000111000100000011101, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 21 ), // #589
    648   INST(Sabdl_v          , ISimdVVV           , (0b0000111000100000011100, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 22 ), // #590
    649   INST(Sabdl2_v         , ISimdVVV           , (0b0100111000100000011100, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 23 ), // #591
    650   INST(Sadalp_v         , ISimdVV            , (0b0000111000100000011010, kVO_V_BHS)                                                 , kRWI_X    , F(Long) | F(Pair)         , 11 ), // #592
    651   INST(Saddl_v          , ISimdVVV           , (0b0000111000100000000000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 24 ), // #593
    652   INST(Saddl2_v         , ISimdVVV           , (0b0100111000100000000000, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 25 ), // #594
    653   INST(Saddlp_v         , ISimdVV            , (0b0000111000100000001010, kVO_V_BHS)                                                 , kRWI_W    , F(Long) | F(Pair)         , 12 ), // #595
    654   INST(Saddlv_v         , ISimdSV            , (0b0000111000110000001110, kVO_V_BH_4S)                                               , kRWI_W    , F(Long)                   , 1  ), // #596
    655   INST(Saddw_v          , ISimdWWV           , (0b0000111000100000000100, kVO_V_B8H4S2)                                              , kRWI_W    , 0                         , 0  ), // #597
    656   INST(Saddw2_v         , ISimdWWV           , (0b0000111000100000000100, kVO_V_B16H8S4)                                             , kRWI_W    , 0                         , 1  ), // #598
    657   INST(Scvtf_v          , SimdFcvtSV         , (0b0000111000100001110110, 0b0000111100000000111001, 0b0001111000100010000000, 0)     , kRWI_W    , 0                         , 10 ), // #599
    658   INST(Sdot_v           , SimdDot            , (0b0000111010000000100101, 0b0000111110000000111000, kET_S, kET_B, kET_4B)            , kRWI_X    , 0                         , 1  ), // #600
    659   INST(Sha1c_v          , ISimdVVVx          , (0b0101111000000000000000, kOp_Q, kOp_S, kOp_V4S)                                     , kRWI_X    , 0                         , 1  ), // #601
    660   INST(Sha1h_v          , ISimdVVx           , (0b0101111000101000000010, kOp_S, kOp_S)                                              , kRWI_W    , 0                         , 8  ), // #602
    661   INST(Sha1m_v          , ISimdVVVx          , (0b0101111000000000001000, kOp_Q, kOp_S, kOp_V4S)                                     , kRWI_X    , 0                         , 2  ), // #603
    662   INST(Sha1p_v          , ISimdVVVx          , (0b0101111000000000000100, kOp_Q, kOp_S, kOp_V4S)                                     , kRWI_X    , 0                         , 3  ), // #604
    663   INST(Sha1su0_v        , ISimdVVVx          , (0b0101111000000000001100, kOp_V4S, kOp_V4S, kOp_V4S)                                 , kRWI_X    , 0                         , 4  ), // #605
    664   INST(Sha1su1_v        , ISimdVVx           , (0b0101111000101000000110, kOp_V4S, kOp_V4S)                                          , kRWI_X    , 0                         , 9  ), // #606
    665   INST(Sha256h_v        , ISimdVVVx          , (0b0101111000000000010000, kOp_Q, kOp_Q, kOp_V4S)                                     , kRWI_X    , 0                         , 5  ), // #607
    666   INST(Sha256h2_v       , ISimdVVVx          , (0b0101111000000000010100, kOp_Q, kOp_Q, kOp_V4S)                                     , kRWI_X    , 0                         , 6  ), // #608
    667   INST(Sha256su0_v      , ISimdVVx           , (0b0101111000101000001010, kOp_V4S, kOp_V4S)                                          , kRWI_X    , 0                         , 10 ), // #609
    668   INST(Sha256su1_v      , ISimdVVVx          , (0b0101111000000000011000, kOp_V4S, kOp_V4S, kOp_V4S)                                 , kRWI_X    , 0                         , 7  ), // #610
    669   INST(Sha512h_v        , ISimdVVVx          , (0b1100111001100000100000, kOp_Q, kOp_Q, kOp_V2D)                                     , kRWI_X    , 0                         , 8  ), // #611
    670   INST(Sha512h2_v       , ISimdVVVx          , (0b1100111001100000100001, kOp_Q, kOp_Q, kOp_V2D)                                     , kRWI_X    , 0                         , 9  ), // #612
    671   INST(Sha512su0_v      , ISimdVVx           , (0b1100111011000000100000, kOp_V2D, kOp_V2D)                                          , kRWI_X    , 0                         , 11 ), // #613
    672   INST(Sha512su1_v      , ISimdVVVx          , (0b1100111001100000100010, kOp_V2D, kOp_V2D, kOp_V2D)                                 , kRWI_X    , 0                         , 10 ), // #614
    673   INST(Shadd_v          , ISimdVVV           , (0b0000111000100000000001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 26 ), // #615
    674   INST(Shl_v            , SimdShift          , (0b0000000000000000000000, 0b0000111100000000010101, 0, kVO_V_Any)                    , kRWI_W    , 0                         , 2  ), // #616
    675   INST(Shll_v           , SimdShiftES        , (0b0010111000100001001110, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 0  ), // #617
    676   INST(Shll2_v          , SimdShiftES        , (0b0110111000100001001110, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 1  ), // #618
    677   INST(Shrn_v           , SimdShift          , (0b0000000000000000000000, 0b0000111100000000100001, 1, kVO_V_B8H4S2)                 , kRWI_W    , F(Narrow)                 , 3  ), // #619
    678   INST(Shrn2_v          , SimdShift          , (0b0000000000000000000000, 0b0100111100000000100001, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 4  ), // #620
    679   INST(Shsub_v          , ISimdVVV           , (0b0000111000100000001001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 27 ), // #621
    680   INST(Sli_v            , SimdShift          , (0b0000000000000000000000, 0b0010111100000000010101, 0, kVO_V_Any)                    , kRWI_X    , 0                         , 5  ), // #622
    681   INST(Sm3partw1_v      , ISimdVVVx          , (0b1100111001100000110000, kOp_V4S, kOp_V4S, kOp_V4S)                                 , kRWI_X    , 0                         , 11 ), // #623
    682   INST(Sm3partw2_v      , ISimdVVVx          , (0b1100111001100000110001, kOp_V4S, kOp_V4S, kOp_V4S)                                 , kRWI_X    , 0                         , 12 ), // #624
    683   INST(Sm3ss1_v         , ISimdVVVVx         , (0b1100111001000000000000, kOp_V4S, kOp_V4S, kOp_V4S, kOp_V4S)                        , kRWI_W    , 0                         , 0  ), // #625
    684   INST(Sm3tt1a_v        , SimdSm3tt          , (0b1100111001000000100000)                                                            , kRWI_X    , 0                         , 0  ), // #626
    685   INST(Sm3tt1b_v        , SimdSm3tt          , (0b1100111001000000100001)                                                            , kRWI_X    , 0                         , 1  ), // #627
    686   INST(Sm3tt2a_v        , SimdSm3tt          , (0b1100111001000000100010)                                                            , kRWI_X    , 0                         , 2  ), // #628
    687   INST(Sm3tt2b_v        , SimdSm3tt          , (0b1100111001000000100011)                                                            , kRWI_X    , 0                         , 3  ), // #629
    688   INST(Sm4e_v           , ISimdVVx           , (0b1100111011000000100001, kOp_V4S, kOp_V4S)                                          , kRWI_X    , 0                         , 12 ), // #630
    689   INST(Sm4ekey_v        , ISimdVVVx          , (0b1100111001100000110010, kOp_V4S, kOp_V4S, kOp_V4S)                                 , kRWI_X    , 0                         , 13 ), // #631
    690   INST(Smax_v           , ISimdVVV           , (0b0000111000100000011001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 28 ), // #632
    691   INST(Smaxp_v          , ISimdVVV           , (0b0000111000100000101001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 29 ), // #633
    692   INST(Smaxv_v          , ISimdSV            , (0b0000111000110000101010, kVO_V_BH_4S)                                               , kRWI_W    , 0                         , 2  ), // #634
    693   INST(Smin_v           , ISimdVVV           , (0b0000111000100000011011, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 30 ), // #635
    694   INST(Sminp_v          , ISimdVVV           , (0b0000111000100000101011, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 31 ), // #636
    695   INST(Sminv_v          , ISimdSV            , (0b0000111000110001101010, kVO_V_BH_4S)                                               , kRWI_W    , 0                         , 3  ), // #637
    696   INST(Smlal_v          , ISimdVVVe          , (0b0000111000100000100000, kVO_V_B8H4S2, 0b0000111100000000001000, kVO_V_H4S2)        , kRWI_X    , F(Long) | F(VH0_15)       , 3  ), // #638
    697   INST(Smlal2_v         , ISimdVVVe          , (0b0100111000100000100000, kVO_V_B16H8S4, 0b0100111100000000001000, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 4  ), // #639
    698   INST(Smlsl_v          , ISimdVVVe          , (0b0000111000100000101000, kVO_V_B8H4S2, 0b0000111100000000011000, kVO_V_H4S2)        , kRWI_X    , F(Long) | F(VH0_15)       , 5  ), // #640
    699   INST(Smlsl2_v         , ISimdVVVe          , (0b0100111000100000101000, kVO_V_B16H8S4, 0b0100111100000000011000, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 6  ), // #641
    700   INST(Smmla_v          , ISimdVVVx          , (0b0100111010000000101001, kOp_V4S, kOp_V16B, kOp_V16B)                               , kRWI_X    , 0                         , 14 ), // #642
    701   INST(Smov_v           , SimdSmovUmov       , (0b0000111000000000001011, kVO_V_BHS, 1)                                              , kRWI_W    , 0                         , 0  ), // #643
    702   INST(Smull_v          , ISimdVVVe          , (0b0000111000100000110000, kVO_V_B8H4S2, 0b0000111100000000101000, kVO_V_H4S2)        , kRWI_W    , F(Long) | F(VH0_15)       , 7  ), // #644
    703   INST(Smull2_v         , ISimdVVVe          , (0b0100111000100000110000, kVO_V_B16H8S4, 0b0100111100000000101000, kVO_V_H8S4)       , kRWI_W    , F(Long) | F(VH0_15)       , 8  ), // #645
    704   INST(Sqabs_v          , ISimdVV            , (0b0000111000100000011110, kVO_SV_Any)                                                , kRWI_W    , 0                         , 13 ), // #646
    705   INST(Sqadd_v          , ISimdVVV           , (0b0000111000100000000011, kVO_SV_Any)                                                , kRWI_W    , 0                         , 32 ), // #647
    706   INST(Sqdmlal_v        , ISimdVVVe          , (0b0000111000100000100100, kVO_SV_BHS, 0b0000111100000000001100, kVO_V_H4S2)          , kRWI_X    , F(Long) | F(VH0_15)       , 9  ), // #648
    707   INST(Sqdmlal2_v       , ISimdVVVe          , (0b0100111000100000100100, kVO_V_B16H8S4, 0b0100111100000000001100, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 10 ), // #649
    708   INST(Sqdmlsl_v        , ISimdVVVe          , (0b0000111000100000101100, kVO_SV_BHS, 0b0000111100000000011100, kVO_V_H4S2)          , kRWI_X    , F(Long) | F(VH0_15)       , 11 ), // #650
    709   INST(Sqdmlsl2_v       , ISimdVVVe          , (0b0100111000100000101100, kVO_V_B16H8S4, 0b0100111100000000011100, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 12 ), // #651
    710   INST(Sqdmulh_v        , ISimdVVVe          , (0b0000111000100000101101, kVO_SV_HS, 0b0000111100000000110000, kVO_SV_HS)            , kRWI_W    , F(VH0_15)                 , 13 ), // #652
    711   INST(Sqdmull_v        , ISimdVVVe          , (0b0000111000100000110100, kVO_SV_BHS, 0b0000111100000000101100, kVO_V_H4S2)          , kRWI_W    , F(Long) | F(VH0_15)       , 14 ), // #653
    712   INST(Sqdmull2_v       , ISimdVVVe          , (0b0100111000100000110100, kVO_V_B16H8S4, 0b0100111100000000101100, kVO_V_H8S4)       , kRWI_W    , F(Long) | F(VH0_15)       , 15 ), // #654
    713   INST(Sqneg_v          , ISimdVV            , (0b0010111000100000011110, kVO_SV_Any)                                                , kRWI_W    , 0                         , 14 ), // #655
    714   INST(Sqrdmlah_v       , ISimdVVVe          , (0b0010111000000000100001, kVO_SV_HS, 0b0010111100000000110100, kVO_SV_HS)            , kRWI_X    , F(VH0_15)                 , 16 ), // #656
    715   INST(Sqrdmlsh_v       , ISimdVVVe          , (0b0010111000000000100011, kVO_SV_HS, 0b0010111100000000111100, kVO_SV_HS)            , kRWI_X    , F(VH0_15)                 , 17 ), // #657
    716   INST(Sqrdmulh_v       , ISimdVVVe          , (0b0010111000100000101101, kVO_SV_HS, 0b0000111100000000110100, kVO_SV_HS)            , kRWI_W    , F(VH0_15)                 , 18 ), // #658
    717   INST(Sqrshl_v         , SimdShift          , (0b0000111000100000010111, 0b0000000000000000000000, 1, kVO_SV_Any)                   , kRWI_W    , 0                         , 6  ), // #659
    718   INST(Sqrshrn_v        , SimdShift          , (0b0000000000000000000000, 0b0000111100000000100111, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 7  ), // #660
    719   INST(Sqrshrn2_v       , SimdShift          , (0b0000000000000000000000, 0b0100111100000000100111, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 8  ), // #661
    720   INST(Sqrshrun_v       , SimdShift          , (0b0000000000000000000000, 0b0010111100000000100011, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 9  ), // #662
    721   INST(Sqrshrun2_v      , SimdShift          , (0b0000000000000000000000, 0b0110111100000000100011, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 10 ), // #663
    722   INST(Sqshl_v          , SimdShift          , (0b0000111000100000010011, 0b0000111100000000011101, 0, kVO_SV_Any)                   , kRWI_W    , 0                         , 11 ), // #664
    723   INST(Sqshlu_v         , SimdShift          , (0b0000000000000000000000, 0b0010111100000000011001, 0, kVO_SV_Any)                   , kRWI_W    , 0                         , 12 ), // #665
    724   INST(Sqshrn_v         , SimdShift          , (0b0000000000000000000000, 0b0000111100000000100101, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 13 ), // #666
    725   INST(Sqshrn2_v        , SimdShift          , (0b0000000000000000000000, 0b0100111100000000100101, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 14 ), // #667
    726   INST(Sqshrun_v        , SimdShift          , (0b0000000000000000000000, 0b0010111100000000100001, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 15 ), // #668
    727   INST(Sqshrun2_v       , SimdShift          , (0b0000000000000000000000, 0b0110111100000000100001, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 16 ), // #669
    728   INST(Sqsub_v          , ISimdVVV           , (0b0000111000100000001011, kVO_SV_Any)                                                , kRWI_W    , 0                         , 33 ), // #670
    729   INST(Sqxtn_v          , ISimdVV            , (0b0000111000100001010010, kVO_SV_B8H4S2)                                             , kRWI_W    , F(Narrow)                 , 15 ), // #671
    730   INST(Sqxtn2_v         , ISimdVV            , (0b0100111000100001010010, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 16 ), // #672
    731   INST(Sqxtun_v         , ISimdVV            , (0b0010111000100001001010, kVO_SV_B8H4S2)                                             , kRWI_W    , F(Narrow)                 , 17 ), // #673
    732   INST(Sqxtun2_v        , ISimdVV            , (0b0110111000100001001010, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 18 ), // #674
    733   INST(Srhadd_v         , ISimdVVV           , (0b0000111000100000000101, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 34 ), // #675
    734   INST(Sri_v            , SimdShift          , (0b0000000000000000000000, 0b0010111100000000010001, 1, kVO_V_Any)                    , kRWI_W    , 0                         , 17 ), // #676
    735   INST(Srshl_v          , SimdShift          , (0b0000111000100000010101, 0b0000000000000000000000, 0, kVO_V_Any)                    , kRWI_W    , 0                         , 18 ), // #677
    736   INST(Srshr_v          , SimdShift          , (0b0000000000000000000000, 0b0000111100000000001001, 1, kVO_V_Any)                    , kRWI_W    , 0                         , 19 ), // #678
    737   INST(Srsra_v          , SimdShift          , (0b0000000000000000000000, 0b0000111100000000001101, 1, kVO_V_Any)                    , kRWI_X    , 0                         , 20 ), // #679
    738   INST(Sshl_v           , SimdShift          , (0b0000111000100000010001, 0b0000000000000000000000, 0, kVO_V_Any)                    , kRWI_W    , 0                         , 21 ), // #680
    739   INST(Sshll_v          , SimdShift          , (0b0000000000000000000000, 0b0000111100000000101001, 0, kVO_V_B8H4S2)                 , kRWI_W    , F(Long)                   , 22 ), // #681
    740   INST(Sshll2_v         , SimdShift          , (0b0000000000000000000000, 0b0100111100000000101001, 0, kVO_V_B16H8S4)                , kRWI_W    , F(Long)                   , 23 ), // #682
    741   INST(Sshr_v           , SimdShift          , (0b0000000000000000000000, 0b0000111100000000000001, 1, kVO_V_Any)                    , kRWI_W    , 0                         , 24 ), // #683
    742   INST(Ssra_v           , SimdShift          , (0b0000000000000000000000, 0b0000111100000000000101, 1, kVO_V_Any)                    , kRWI_X    , 0                         , 25 ), // #684
    743   INST(Ssubl_v          , ISimdVVV           , (0b0000111000100000001000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 35 ), // #685
    744   INST(Ssubl2_v         , ISimdVVV           , (0b0100111000100000001000, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 36 ), // #686
    745   INST(Ssubw_v          , ISimdWWV           , (0b0000111000100000001100, kVO_V_B8H4S2)                                              , kRWI_W    , 0                         , 2  ), // #687
    746   INST(Ssubw2_v         , ISimdWWV           , (0b0000111000100000001100, kVO_V_B16H8S4)                                             , kRWI_X    , 0                         , 3  ), // #688
    747   INST(St1_v            , SimdLdNStN         , (0b0000110100000000000000, 0b0000110000000000001000, 1, 0)                            , kRWI_STn  , F(Consecutive)            , 8  ), // #689
    748   INST(St2_v            , SimdLdNStN         , (0b0000110100100000000000, 0b0000110000000000100000, 2, 0)                            , kRWI_STn  , F(Consecutive)            , 9  ), // #690
    749   INST(St3_v            , SimdLdNStN         , (0b0000110100000000001000, 0b0000110000000000010000, 3, 0)                            , kRWI_STn  , F(Consecutive)            , 10 ), // #691
    750   INST(St4_v            , SimdLdNStN         , (0b0000110100100000001000, 0b0000110000000000000000, 4, 0)                            , kRWI_STn  , F(Consecutive)            , 11 ), // #692
    751   INST(Stnp_v           , SimdLdpStp         , (0b0010110000, 0b0000000000)                                                          , kRWI_RRW  , 0                         , 2  ), // #693
    752   INST(Stp_v            , SimdLdpStp         , (0b0010110100, 0b0010110010)                                                          , kRWI_RRW  , 0                         , 3  ), // #694
    753   INST(Str_v            , SimdLdSt           , (0b0011110100, 0b00111100000, 0b00111100001, 0b00000000, Inst::kIdStur_v)             , kRWI_RW   , 0                         , 1  ), // #695
    754   INST(Stur_v           , SimdLdurStur       , (0b0011110000000000000000)                                                            , kRWI_RW   , 0                         , 1  ), // #696
    755   INST(Sub_v            , ISimdVVV           , (0b0010111000100000100001, kVO_V_Any)                                                 , kRWI_W    , 0                         , 37 ), // #697
    756   INST(Subhn_v          , ISimdVVV           , (0b0000111000100000011000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Narrow)                 , 38 ), // #698
    757   INST(Subhn2_v         , ISimdVVV           , (0b0000111000100000011000, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 39 ), // #699
    758   INST(Sudot_v          , SimdDot            , (0b0000000000000000000000, 0b0000111100000000111100, kET_S, kET_B, kET_4B)            , kRWI_X    , 0                         , 2  ), // #700
    759   INST(Suqadd_v         , ISimdVV            , (0b0000111000100000001110, kVO_SV_Any)                                                , kRWI_X    , 0                         , 19 ), // #701
    760   INST(Sxtl_v           , SimdSxtlUxtl       , (0b0000111100000000101001, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 0  ), // #702
    761   INST(Sxtl2_v          , SimdSxtlUxtl       , (0b0100111100000000101001, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 1  ), // #703
    762   INST(Tbl_v            , SimdTblTbx         , (0b0000111000000000000000)                                                            , kRWI_W    , 0                         , 0  ), // #704
    763   INST(Tbx_v            , SimdTblTbx         , (0b0000111000000000000100)                                                            , kRWI_W    , 0                         , 1  ), // #705
    764   INST(Trn1_v           , ISimdVVV           , (0b0000111000000000001010, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 40 ), // #706
    765   INST(Trn2_v           , ISimdVVV           , (0b0000111000000000011010, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 41 ), // #707
    766   INST(Uaba_v           , ISimdVVV           , (0b0010111000100000011111, kVO_V_BHS)                                                 , kRWI_X    , 0                         , 42 ), // #708
    767   INST(Uabal_v          , ISimdVVV           , (0b0010111000100000010100, kVO_V_B8H4S2)                                              , kRWI_X    , F(Long)                   , 43 ), // #709
    768   INST(Uabal2_v         , ISimdVVV           , (0b0110111000100000010100, kVO_V_B16H8S4)                                             , kRWI_X    , F(Long)                   , 44 ), // #710
    769   INST(Uabd_v           , ISimdVVV           , (0b0010111000100000011101, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 45 ), // #711
    770   INST(Uabdl_v          , ISimdVVV           , (0b0010111000100000011100, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 46 ), // #712
    771   INST(Uabdl2_v         , ISimdVVV           , (0b0110111000100000011100, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 47 ), // #713
    772   INST(Uadalp_v         , ISimdVV            , (0b0010111000100000011010, kVO_V_BHS)                                                 , kRWI_X    , F(Long) | F(Pair)         , 20 ), // #714
    773   INST(Uaddl_v          , ISimdVVV           , (0b0010111000100000000000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 48 ), // #715
    774   INST(Uaddl2_v         , ISimdVVV           , (0b0110111000100000000000, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 49 ), // #716
    775   INST(Uaddlp_v         , ISimdVV            , (0b0010111000100000001010, kVO_V_BHS)                                                 , kRWI_W    , F(Long) | F(Pair)         , 21 ), // #717
    776   INST(Uaddlv_v         , ISimdSV            , (0b0010111000110000001110, kVO_V_BH_4S)                                               , kRWI_W    , F(Long)                   , 4  ), // #718
    777   INST(Uaddw_v          , ISimdWWV           , (0b0010111000100000000100, kVO_V_B8H4S2)                                              , kRWI_W    , 0                         , 4  ), // #719
    778   INST(Uaddw2_v         , ISimdWWV           , (0b0010111000100000000100, kVO_V_B16H8S4)                                             , kRWI_W    , 0                         , 5  ), // #720
    779   INST(Ucvtf_v          , SimdFcvtSV         , (0b0010111000100001110110, 0b0010111100000000111001, 0b0001111000100011000000, 0)     , kRWI_W    , 0                         , 11 ), // #721
    780   INST(Udot_v           , SimdDot            , (0b0010111010000000100101, 0b0010111110000000111000, kET_S, kET_B, kET_4B)            , kRWI_X    , 0                         , 3  ), // #722
    781   INST(Uhadd_v          , ISimdVVV           , (0b0010111000100000000001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 50 ), // #723
    782   INST(Uhsub_v          , ISimdVVV           , (0b0010111000100000001001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 51 ), // #724
    783   INST(Umax_v           , ISimdVVV           , (0b0010111000100000011001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 52 ), // #725
    784   INST(Umaxp_v          , ISimdVVV           , (0b0010111000100000101001, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 53 ), // #726
    785   INST(Umaxv_v          , ISimdSV            , (0b0010111000110000101010, kVO_V_BH_4S)                                               , kRWI_W    , 0                         , 5  ), // #727
    786   INST(Umin_v           , ISimdVVV           , (0b0010111000100000011011, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 54 ), // #728
    787   INST(Uminp_v          , ISimdVVV           , (0b0010111000100000101011, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 55 ), // #729
    788   INST(Uminv_v          , ISimdSV            , (0b0010111000110001101010, kVO_V_BH_4S)                                               , kRWI_W    , 0                         , 6  ), // #730
    789   INST(Umlal_v          , ISimdVVVe          , (0b0010111000100000100000, kVO_V_B8H4S2, 0b0010111100000000001000, kVO_V_H4S2)        , kRWI_X    , F(Long) | F(VH0_15)       , 19 ), // #731
    790   INST(Umlal2_v         , ISimdVVVe          , (0b0110111000100000100000, kVO_V_B16H8S4, 0b0010111100000000001000, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 20 ), // #732
    791   INST(Umlsl_v          , ISimdVVVe          , (0b0010111000100000101000, kVO_V_B8H4S2, 0b0010111100000000011000, kVO_V_H4S2)        , kRWI_X    , F(Long) | F(VH0_15)       , 21 ), // #733
    792   INST(Umlsl2_v         , ISimdVVVe          , (0b0110111000100000101000, kVO_V_B16H8S4, 0b0110111100000000011000, kVO_V_H8S4)       , kRWI_X    , F(Long) | F(VH0_15)       , 22 ), // #734
    793   INST(Ummla_v          , ISimdVVVx          , (0b0110111010000000101001, kOp_V4S, kOp_V16B, kOp_V16B)                               , kRWI_X    , 0                         , 15 ), // #735
    794   INST(Umov_v           , SimdSmovUmov       , (0b0000111000000000001111, kVO_V_Any, 0)                                              , kRWI_W    , 0                         , 1  ), // #736
    795   INST(Umull_v          , ISimdVVVe          , (0b0010111000100000110000, kVO_V_B8H4S2, 0b0010111100000000101000, kVO_V_H4S2)        , kRWI_W    , F(Long) | F(VH0_15)       , 23 ), // #737
    796   INST(Umull2_v         , ISimdVVVe          , (0b0110111000100000110000, kVO_V_B16H8S4, 0b0110111100000000101000, kVO_V_H8S4)       , kRWI_W    , F(Long) | F(VH0_15)       , 24 ), // #738
    797   INST(Uqadd_v          , ISimdVVV           , (0b0010111000100000000011, kVO_SV_Any)                                                , kRWI_W    , 0                         , 56 ), // #739
    798   INST(Uqrshl_v         , SimdShift          , (0b0010111000100000010111, 0b0000000000000000000000, 0, kVO_SV_Any)                   , kRWI_W    , 0                         , 26 ), // #740
    799   INST(Uqrshrn_v        , SimdShift          , (0b0000000000000000000000, 0b0010111100000000100111, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 27 ), // #741
    800   INST(Uqrshrn2_v       , SimdShift          , (0b0000000000000000000000, 0b0110111100000000100111, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 28 ), // #742
    801   INST(Uqshl_v          , SimdShift          , (0b0010111000100000010011, 0b0010111100000000011101, 0, kVO_SV_Any)                   , kRWI_W    , 0                         , 29 ), // #743
    802   INST(Uqshrn_v         , SimdShift          , (0b0000000000000000000000, 0b0010111100000000100101, 1, kVO_SV_B8H4S2)                , kRWI_W    , F(Narrow)                 , 30 ), // #744
    803   INST(Uqshrn2_v        , SimdShift          , (0b0000000000000000000000, 0b0110111100000000100101, 1, kVO_V_B16H8S4)                , kRWI_X    , F(Narrow)                 , 31 ), // #745
    804   INST(Uqsub_v          , ISimdVVV           , (0b0010111000100000001011, kVO_SV_Any)                                                , kRWI_W    , 0                         , 57 ), // #746
    805   INST(Uqxtn_v          , ISimdVV            , (0b0010111000100001010010, kVO_SV_B8H4S2)                                             , kRWI_W    , F(Narrow)                 , 22 ), // #747
    806   INST(Uqxtn2_v         , ISimdVV            , (0b0110111000100001010010, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 23 ), // #748
    807   INST(Urecpe_v         , ISimdVV            , (0b0000111010100001110010, kVO_V_S)                                                   , kRWI_W    , 0                         , 24 ), // #749
    808   INST(Urhadd_v         , ISimdVVV           , (0b0010111000100000000101, kVO_V_BHS)                                                 , kRWI_W    , 0                         , 58 ), // #750
    809   INST(Urshl_v          , SimdShift          , (0b0010111000100000010101, 0b0000000000000000000000, 0, kVO_V_Any)                    , kRWI_W    , 0                         , 32 ), // #751
    810   INST(Urshr_v          , SimdShift          , (0b0000000000000000000000, 0b0010111100000000001001, 1, kVO_V_Any)                    , kRWI_W    , 0                         , 33 ), // #752
    811   INST(Ursqrte_v        , ISimdVV            , (0b0010111010100001110010, kVO_V_S)                                                   , kRWI_W    , 0                         , 25 ), // #753
    812   INST(Ursra_v          , SimdShift          , (0b0000000000000000000000, 0b0010111100000000001101, 1, kVO_V_Any)                    , kRWI_X    , 0                         , 34 ), // #754
    813   INST(Usdot_v          , SimdDot            , (0b0000111010000000100111, 0b0000111110000000111100, kET_S, kET_B, kET_4B)            , kRWI_X    , 0                         , 4  ), // #755
    814   INST(Ushl_v           , SimdShift          , (0b0010111000100000010001, 0b0000000000000000000000, 0, kVO_V_Any)                    , kRWI_W    , 0                         , 35 ), // #756
    815   INST(Ushll_v          , SimdShift          , (0b0000000000000000000000, 0b0010111100000000101001, 0, kVO_V_B8H4S2)                 , kRWI_W    , F(Long)                   , 36 ), // #757
    816   INST(Ushll2_v         , SimdShift          , (0b0000000000000000000000, 0b0110111100000000101001, 0, kVO_V_B16H8S4)                , kRWI_W    , F(Long)                   , 37 ), // #758
    817   INST(Ushr_v           , SimdShift          , (0b0000000000000000000000, 0b0010111100000000000001, 1, kVO_V_Any)                    , kRWI_W    , 0                         , 38 ), // #759
    818   INST(Usmmla_v         , ISimdVVVx          , (0b0100111010000000101011, kOp_V4S, kOp_V16B, kOp_V16B)                               , kRWI_X    , 0                         , 16 ), // #760
    819   INST(Usqadd_v         , ISimdVV            , (0b0010111000100000001110, kVO_SV_Any)                                                , kRWI_X    , 0                         , 26 ), // #761
    820   INST(Usra_v           , SimdShift          , (0b0000000000000000000000, 0b0010111100000000000101, 1, kVO_V_Any)                    , kRWI_X    , 0                         , 39 ), // #762
    821   INST(Usubl_v          , ISimdVVV           , (0b0010111000100000001000, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 59 ), // #763
    822   INST(Usubl2_v         , ISimdVVV           , (0b0110111000100000001000, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 60 ), // #764
    823   INST(Usubw_v          , ISimdWWV           , (0b0010111000100000001100, kVO_V_B8H4S2)                                              , kRWI_W    , 0                         , 6  ), // #765
    824   INST(Usubw2_v         , ISimdWWV           , (0b0010111000100000001100, kVO_V_B16H8S4)                                             , kRWI_W    , 0                         , 7  ), // #766
    825   INST(Uxtl_v           , SimdSxtlUxtl       , (0b0010111100000000101001, kVO_V_B8H4S2)                                              , kRWI_W    , F(Long)                   , 2  ), // #767
    826   INST(Uxtl2_v          , SimdSxtlUxtl       , (0b0110111100000000101001, kVO_V_B16H8S4)                                             , kRWI_W    , F(Long)                   , 3  ), // #768
    827   INST(Uzp1_v           , ISimdVVV           , (0b0000111000000000000110, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 61 ), // #769
    828   INST(Uzp2_v           , ISimdVVV           , (0b0000111000000000010110, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 62 ), // #770
    829   INST(Xar_v            , ISimdVVVI          , (0b1100111001100000100011, kVO_V_D2, 6, 10, 0)                                        , kRWI_W    , 0                         , 1  ), // #771
    830   INST(Xtn_v            , ISimdVV            , (0b0000111000100001001010, kVO_V_B8H4S2)                                              , kRWI_W    , F(Narrow)                 , 27 ), // #772
    831   INST(Xtn2_v           , ISimdVV            , (0b0100111000100001001010, kVO_V_B16H8S4)                                             , kRWI_X    , F(Narrow)                 , 28 ), // #773
    832   INST(Zip1_v           , ISimdVVV           , (0b0000111000000000001110, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 63 ), // #774
    833   INST(Zip2_v           , ISimdVVV           , (0b0000111000000000011110, kVO_V_BHS_D2)                                              , kRWI_W    , 0                         , 64 )  // #775
    834   // ${InstInfo:End}
    835 };
    836 
    837 #undef F
    838 #undef INST
    839 #undef NAME_DATA_INDEX
    840 
    841 namespace EncodingData {
    842 
    843 // ${EncodingData:Begin}
    844 // ------------------- Automatically generated, do not edit -------------------
    845 const BaseAddSub baseAddSub[4] = {
    846   { 0b0001011000, 0b0001011001, 0b0010001 }, // add
    847   { 0b0101011000, 0b0101011001, 0b0110001 }, // adds
    848   { 0b1001011000, 0b1001011001, 0b1010001 }, // sub
    849   { 0b1101011000, 0b1101011001, 0b1110001 }  // subs
    850 };
    851 
    852 const BaseAdr baseAdr[2] = {
    853   { 0b0001000000000000000000, OffsetType::kAArch64_ADR }, // adr
    854   { 0b1001000000000000000000, OffsetType::kAArch64_ADRP }  // adrp
    855 };
    856 
    857 const BaseAtDcIcTlbi baseAtDcIcTlbi[4] = {
    858   { 0b00011111110000, 0b00001111000000, true }, // at
    859   { 0b00011110000000, 0b00001110000000, true }, // dc
    860   { 0b00011110000000, 0b00001110000000, false }, // ic
    861   { 0b00011110000000, 0b00010000000000, false }  // tlbi
    862 };
    863 
    864 const BaseAtomicCasp baseAtomicCasp[4] = {
    865   { 0b0000100000100000011111, kWX, 30 }, // casp
    866   { 0b0000100001100000011111, kWX, 30 }, // caspa
    867   { 0b0000100001100000111111, kWX, 30 }, // caspal
    868   { 0b0000100000100000111111, kWX, 30 }  // caspl
    869 };
    870 
    871 const BaseAtomicOp baseAtomicOp[123] = {
    872   { 0b1000100010100000011111, kWX, 30, 0 }, // cas
    873   { 0b1000100011100000011111, kWX, 30, 1 }, // casa
    874   { 0b0000100011100000011111, kW , 0 , 1 }, // casab
    875   { 0b0100100011100000011111, kW , 0 , 1 }, // casah
    876   { 0b1000100011100000111111, kWX, 30, 1 }, // casal
    877   { 0b0000100011100000111111, kW , 0 , 1 }, // casalb
    878   { 0b0100100011100000111111, kW , 0 , 1 }, // casalh
    879   { 0b0000100010100000011111, kW , 0 , 0 }, // casb
    880   { 0b0100100010100000011111, kW , 0 , 0 }, // cash
    881   { 0b1000100010100000111111, kWX, 30, 0 }, // casl
    882   { 0b0000100010100000111111, kW , 0 , 0 }, // caslb
    883   { 0b0100100010100000111111, kW , 0 , 0 }, // caslh
    884   { 0b1011100000100000000000, kWX, 30, 0 }, // ldadd
    885   { 0b1011100010100000000000, kWX, 30, 1 }, // ldadda
    886   { 0b0011100010100000000000, kW , 0 , 1 }, // ldaddab
    887   { 0b0111100010100000000000, kW , 0 , 1 }, // ldaddah
    888   { 0b1011100011100000000000, kWX, 30, 1 }, // ldaddal
    889   { 0b0011100011100000000000, kW , 0 , 1 }, // ldaddalb
    890   { 0b0111100011100000000000, kW , 0 , 1 }, // ldaddalh
    891   { 0b0011100000100000000000, kW , 0 , 0 }, // ldaddb
    892   { 0b0111100000100000000000, kW , 0 , 0 }, // ldaddh
    893   { 0b1011100001100000000000, kWX, 30, 0 }, // ldaddl
    894   { 0b0011100001100000000000, kW , 0 , 0 }, // ldaddlb
    895   { 0b0111100001100000000000, kW , 0 , 0 }, // ldaddlh
    896   { 0b1011100000100000000100, kWX, 30, 0 }, // ldclr
    897   { 0b1011100010100000000100, kWX, 30, 1 }, // ldclra
    898   { 0b0011100010100000000100, kW , 0 , 1 }, // ldclrab
    899   { 0b0111100010100000000100, kW , 0 , 1 }, // ldclrah
    900   { 0b1011100011100000000100, kWX, 30, 1 }, // ldclral
    901   { 0b0011100011100000000100, kW , 0 , 1 }, // ldclralb
    902   { 0b0111100011100000000100, kW , 0 , 1 }, // ldclralh
    903   { 0b0011100000100000000100, kW , 0 , 0 }, // ldclrb
    904   { 0b0111100000100000000100, kW , 0 , 0 }, // ldclrh
    905   { 0b1011100001100000000100, kWX, 30, 0 }, // ldclrl
    906   { 0b0011100001100000000100, kW , 0 , 0 }, // ldclrlb
    907   { 0b0111100001100000000100, kW , 0 , 0 }, // ldclrlh
    908   { 0b1011100000100000001000, kWX, 30, 0 }, // ldeor
    909   { 0b1011100010100000001000, kWX, 30, 1 }, // ldeora
    910   { 0b0011100010100000001000, kW , 0 , 1 }, // ldeorab
    911   { 0b0111100010100000001000, kW , 0 , 1 }, // ldeorah
    912   { 0b1011100011100000001000, kWX, 30, 1 }, // ldeoral
    913   { 0b0011100011100000001000, kW , 0 , 1 }, // ldeoralb
    914   { 0b0111100011100000001000, kW , 0 , 1 }, // ldeoralh
    915   { 0b0011100000100000001000, kW , 0 , 0 }, // ldeorb
    916   { 0b0111100000100000001000, kW , 0 , 0 }, // ldeorh
    917   { 0b1011100001100000001000, kWX, 30, 0 }, // ldeorl
    918   { 0b0011100001100000001000, kW , 0 , 0 }, // ldeorlb
    919   { 0b0111100001100000001000, kW , 0 , 0 }, // ldeorlh
    920   { 0b1011100000100000001100, kWX, 30, 0 }, // ldset
    921   { 0b1011100010100000001100, kWX, 30, 1 }, // ldseta
    922   { 0b0011100010100000001100, kW , 0 , 1 }, // ldsetab
    923   { 0b0111100010100000001100, kW , 0 , 1 }, // ldsetah
    924   { 0b1011100011100000001100, kWX, 30, 1 }, // ldsetal
    925   { 0b0011100011100000001100, kW , 0 , 1 }, // ldsetalb
    926   { 0b0111100011100000001100, kW , 0 , 1 }, // ldsetalh
    927   { 0b0011100000100000001100, kW , 0 , 0 }, // ldsetb
    928   { 0b0111100000100000001100, kW , 0 , 0 }, // ldseth
    929   { 0b1011100001100000001100, kWX, 30, 0 }, // ldsetl
    930   { 0b0011100001100000001100, kW , 0 , 0 }, // ldsetlb
    931   { 0b0111100001100000001100, kW , 0 , 0 }, // ldsetlh
    932   { 0b1011100000100000010000, kWX, 30, 0 }, // ldsmax
    933   { 0b1011100010100000010000, kWX, 30, 1 }, // ldsmaxa
    934   { 0b0011100010100000010000, kW , 0 , 1 }, // ldsmaxab
    935   { 0b0111100010100000010000, kW , 0 , 1 }, // ldsmaxah
    936   { 0b1011100011100000010000, kWX, 30, 1 }, // ldsmaxal
    937   { 0b0011100011100000010000, kW , 0 , 1 }, // ldsmaxalb
    938   { 0b0111100011100000010000, kW , 0 , 1 }, // ldsmaxalh
    939   { 0b0011100000100000010000, kW , 0 , 0 }, // ldsmaxb
    940   { 0b0111100000100000010000, kW , 0 , 0 }, // ldsmaxh
    941   { 0b1011100001100000010000, kWX, 30, 0 }, // ldsmaxl
    942   { 0b0011100001100000010000, kW , 0 , 0 }, // ldsmaxlb
    943   { 0b0111100001100000010000, kW , 0 , 0 }, // ldsmaxlh
    944   { 0b1011100000100000010100, kWX, 30, 0 }, // ldsmin
    945   { 0b1011100010100000010100, kWX, 30, 1 }, // ldsmina
    946   { 0b0011100010100000010100, kW , 0 , 1 }, // ldsminab
    947   { 0b0111100010100000010100, kW , 0 , 1 }, // ldsminah
    948   { 0b1011100011100000010100, kWX, 30, 1 }, // ldsminal
    949   { 0b0011100011100000010100, kW , 0 , 1 }, // ldsminalb
    950   { 0b0111100011100000010100, kW , 0 , 1 }, // ldsminalh
    951   { 0b0011100000100000010100, kW , 0 , 0 }, // ldsminb
    952   { 0b0111100000100000010100, kW , 0 , 0 }, // ldsminh
    953   { 0b1011100001100000010100, kWX, 30, 0 }, // ldsminl
    954   { 0b0011100001100000010100, kW , 0 , 0 }, // ldsminlb
    955   { 0b0111100001100000010100, kW , 0 , 0 }, // ldsminlh
    956   { 0b1011100000100000011000, kWX, 30, 0 }, // ldumax
    957   { 0b1011100010100000011000, kWX, 30, 1 }, // ldumaxa
    958   { 0b0011100010100000011000, kW , 0 , 1 }, // ldumaxab
    959   { 0b0111100010100000011000, kW , 0 , 1 }, // ldumaxah
    960   { 0b1011100011100000011000, kWX, 30, 1 }, // ldumaxal
    961   { 0b0011100011100000011000, kW , 0 , 1 }, // ldumaxalb
    962   { 0b0111100011100000011000, kW , 0 , 1 }, // ldumaxalh
    963   { 0b0011100000100000011000, kW , 0 , 0 }, // ldumaxb
    964   { 0b0111100000100000011000, kW , 0 , 0 }, // ldumaxh
    965   { 0b1011100001100000011000, kWX, 30, 0 }, // ldumaxl
    966   { 0b0011100001100000011000, kW , 0 , 0 }, // ldumaxlb
    967   { 0b0111100001100000011000, kW , 0 , 0 }, // ldumaxlh
    968   { 0b1011100000100000011100, kWX, 30, 0 }, // ldumin
    969   { 0b1011100010100000011100, kWX, 30, 1 }, // ldumina
    970   { 0b0011100010100000011100, kW , 0 , 1 }, // lduminab
    971   { 0b0111100010100000011100, kW , 0 , 1 }, // lduminah
    972   { 0b1011100011100000011100, kWX, 30, 1 }, // lduminal
    973   { 0b0011100011100000011100, kW , 0 , 1 }, // lduminalb
    974   { 0b0111100011100000011100, kW , 0 , 1 }, // lduminalh
    975   { 0b0011100000100000011100, kW , 0 , 0 }, // lduminb
    976   { 0b0111100000100000011100, kW , 0 , 0 }, // lduminh
    977   { 0b1011100001100000011100, kWX, 30, 0 }, // lduminl
    978   { 0b0011100001100000011100, kW , 0 , 0 }, // lduminlb
    979   { 0b0111100001100000011100, kW , 0 , 0 }, // lduminlh
    980   { 0b1000100000000000111111, kWX, 30, 1 }, // stlxr
    981   { 0b0000100000000000111111, kW , 0 , 1 }, // stlxrb
    982   { 0b0100100000000000111111, kW , 0 , 1 }, // stlxrh
    983   { 0b1011100000100000100000, kWX, 30, 1 }, // swp
    984   { 0b1011100010100000100000, kWX, 30, 1 }, // swpa
    985   { 0b0011100010100000100000, kW , 0 , 1 }, // swpab
    986   { 0b0111100010100000100000, kW , 0 , 1 }, // swpah
    987   { 0b1011100011100000100000, kWX, 30, 1 }, // swpal
    988   { 0b0011100011100000100000, kW , 0 , 1 }, // swpalb
    989   { 0b0111100011100000100000, kW , 0 , 1 }, // swpalh
    990   { 0b0011100000100000100000, kW , 0 , 1 }, // swpb
    991   { 0b0111100000100000100000, kW , 0 , 1 }, // swph
    992   { 0b1011100001100000100000, kWX, 30, 1 }, // swpl
    993   { 0b0011100001100000100000, kW , 0 , 1 }, // swplb
    994   { 0b0111100001100000100000, kW , 0 , 1 }  // swplh
    995 };
    996 
    997 const BaseAtomicSt baseAtomicSt[48] = {
    998   { 0b1011100000100000000000, kWX, 30 }, // stadd
    999   { 0b1011100001100000000000, kWX, 30 }, // staddl
   1000   { 0b0011100000100000000000, kW , 0  }, // staddb
   1001   { 0b0011100001100000000000, kW , 0  }, // staddlb
   1002   { 0b0111100000100000000000, kW , 0  }, // staddh
   1003   { 0b0111100001100000000000, kW , 0  }, // staddlh
   1004   { 0b1011100000100000000100, kWX, 30 }, // stclr
   1005   { 0b1011100001100000000100, kWX, 30 }, // stclrl
   1006   { 0b0011100000100000000100, kW , 0  }, // stclrb
   1007   { 0b0011100001100000000100, kW , 0  }, // stclrlb
   1008   { 0b0111100000100000000100, kW , 0  }, // stclrh
   1009   { 0b0111100001100000000100, kW , 0  }, // stclrlh
   1010   { 0b1011100000100000001000, kWX, 30 }, // steor
   1011   { 0b1011100001100000001000, kWX, 30 }, // steorl
   1012   { 0b0011100000100000001000, kW , 0  }, // steorb
   1013   { 0b0011100001100000001000, kW , 0  }, // steorlb
   1014   { 0b0111100000100000001000, kW , 0  }, // steorh
   1015   { 0b0111100001100000001000, kW , 0  }, // steorlh
   1016   { 0b1011100000100000001100, kWX, 30 }, // stset
   1017   { 0b1011100001100000001100, kWX, 30 }, // stsetl
   1018   { 0b0011100000100000001100, kW , 0  }, // stsetb
   1019   { 0b0011100001100000001100, kW , 0  }, // stsetlb
   1020   { 0b0111100000100000001100, kW , 0  }, // stseth
   1021   { 0b0111100001100000001100, kW , 0  }, // stsetlh
   1022   { 0b1011100000100000010000, kWX, 30 }, // stsmax
   1023   { 0b1011100001100000010000, kWX, 30 }, // stsmaxl
   1024   { 0b0011100000100000010000, kW , 0  }, // stsmaxb
   1025   { 0b0011100001100000010000, kW , 0  }, // stsmaxlb
   1026   { 0b0111100000100000010000, kW , 0  }, // stsmaxh
   1027   { 0b0111100001100000010000, kW , 0  }, // stsmaxlh
   1028   { 0b1011100000100000010100, kWX, 30 }, // stsmin
   1029   { 0b1011100001100000010100, kWX, 30 }, // stsminl
   1030   { 0b0011100000100000010100, kW , 0  }, // stsminb
   1031   { 0b0011100001100000010100, kW , 0  }, // stsminlb
   1032   { 0b0111100000100000010100, kW , 0  }, // stsminh
   1033   { 0b0111100001100000010100, kW , 0  }, // stsminlh
   1034   { 0b1011100000100000011000, kWX, 30 }, // stumax
   1035   { 0b1011100001100000011000, kWX, 30 }, // stumaxl
   1036   { 0b0011100000100000011000, kW , 0  }, // stumaxb
   1037   { 0b0011100001100000011000, kW , 0  }, // stumaxlb
   1038   { 0b0111100000100000011000, kW , 0  }, // stumaxh
   1039   { 0b0111100001100000011000, kW , 0  }, // stumaxlh
   1040   { 0b1011100000100000011100, kWX, 30 }, // stumin
   1041   { 0b1011100001100000011100, kWX, 30 }, // stuminl
   1042   { 0b0011100000100000011100, kW , 0  }, // stuminb
   1043   { 0b0011100001100000011100, kW , 0  }, // stuminlb
   1044   { 0b0111100000100000011100, kW , 0  }, // stuminh
   1045   { 0b0111100001100000011100, kW , 0  }  // stuminlh
   1046 };
   1047 
   1048 const BaseBfc baseBfc[1] = {
   1049   { 0b00110011000000000000001111100000 }  // bfc
   1050 };
   1051 
   1052 const BaseBfi baseBfi[3] = {
   1053   { 0b00110011000000000000000000000000 }, // bfi
   1054   { 0b00010011000000000000000000000000 }, // sbfiz
   1055   { 0b01010011000000000000000000000000 }  // ubfiz
   1056 };
   1057 
   1058 const BaseBfm baseBfm[3] = {
   1059   { 0b00110011000000000000000000000000 }, // bfm
   1060   { 0b00010011000000000000000000000000 }, // sbfm
   1061   { 0b01010011000000000000000000000000 }  // ubfm
   1062 };
   1063 
   1064 const BaseBfx baseBfx[3] = {
   1065   { 0b00110011000000000000000000000000 }, // bfxil
   1066   { 0b00010011000000000000000000000000 }, // sbfx
   1067   { 0b01010011000000000000000000000000 }  // ubfx
   1068 };
   1069 
   1070 const BaseBranchCmp baseBranchCmp[2] = {
   1071   { 0b00110101000000000000000000000000 }, // cbnz
   1072   { 0b00110100000000000000000000000000 }  // cbz
   1073 };
   1074 
   1075 const BaseBranchReg baseBranchReg[3] = {
   1076   { 0b11010110001111110000000000000000 }, // blr
   1077   { 0b11010110000111110000000000000000 }, // br
   1078   { 0b11010110010111110000000000000000 }  // ret
   1079 };
   1080 
   1081 const BaseBranchRel baseBranchRel[3] = {
   1082   { 0b00010100000000000000000000000000 }, // b
   1083   { 0b00010100000000000000000000010000 }, // bc
   1084   { 0b10010100000000000000000000000000 }  // bl
   1085 };
   1086 
   1087 const BaseBranchTst baseBranchTst[2] = {
   1088   { 0b00110111000000000000000000000000 }, // tbnz
   1089   { 0b00110110000000000000000000000000 }  // tbz
   1090 };
   1091 
   1092 const BaseCCmp baseCCmp[2] = {
   1093   { 0b00111010010000000000000000000000 }, // ccmn
   1094   { 0b01111010010000000000000000000000 }  // ccmp
   1095 };
   1096 
   1097 const BaseCInc baseCInc[3] = {
   1098   { 0b00011010100000000000010000000000 }, // cinc
   1099   { 0b01011010100000000000000000000000 }, // cinv
   1100   { 0b01011010100000000000010000000000 }  // cneg
   1101 };
   1102 
   1103 const BaseCSel baseCSel[4] = {
   1104   { 0b00011010100000000000000000000000 }, // csel
   1105   { 0b00011010100000000000010000000000 }, // csinc
   1106   { 0b01011010100000000000000000000000 }, // csinv
   1107   { 0b01011010100000000000010000000000 }  // csneg
   1108 };
   1109 
   1110 const BaseCSet baseCSet[2] = {
   1111   { 0b00011010100111110000011111100000 }, // cset
   1112   { 0b01011010100111110000001111100000 }  // csetm
   1113 };
   1114 
   1115 const BaseCmpCmn baseCmpCmn[2] = {
   1116   { 0b0101011000, 0b0101011001, 0b0110001 }, // cmn
   1117   { 0b1101011000, 0b1101011001, 0b1110001 }  // cmp
   1118 };
   1119 
   1120 const BaseExtend baseExtend[5] = {
   1121   { 0b0001001100000000000111, kWX, 0 }, // sxtb
   1122   { 0b0001001100000000001111, kWX, 0 }, // sxth
   1123   { 0b1001001101000000011111, kX , 0 }, // sxtw
   1124   { 0b0101001100000000000111, kW, 1 }, // uxtb
   1125   { 0b0101001100000000001111, kW, 1 }  // uxth
   1126 };
   1127 
   1128 const BaseExtract baseExtract[1] = {
   1129   { 0b00010011100000000000000000000000 }  // extr
   1130 };
   1131 
   1132 const BaseLdSt baseLdSt[9] = {
   1133   { 0b1011100101, 0b10111000010, 0b10111000011, 0b00011000, kWX, 30, 2, Inst::kIdLdur }, // ldr
   1134   { 0b0011100101, 0b00111000010, 0b00111000011, 0         , kW , 0 , 0, Inst::kIdLdurb }, // ldrb
   1135   { 0b0111100101, 0b01111000010, 0b01111000011, 0         , kW , 0 , 1, Inst::kIdLdurh }, // ldrh
   1136   { 0b0011100111, 0b00111000100, 0b00111000111, 0         , kWX, 22, 0, Inst::kIdLdursb }, // ldrsb
   1137   { 0b0111100111, 0b01111000100, 0b01111000111, 0         , kWX, 22, 1, Inst::kIdLdursh }, // ldrsh
   1138   { 0b1011100110, 0b10111000100, 0b10111000101, 0b10011000, kX , 0 , 2, Inst::kIdLdursw }, // ldrsw
   1139   { 0b1011100100, 0b10111000000, 0b10111000001, 0         , kWX, 30, 2, Inst::kIdStur }, // str
   1140   { 0b0011100100, 0b00111000000, 0b00111000001, 0         , kW , 30, 0, Inst::kIdSturb }, // strb
   1141   { 0b0111100100, 0b01111000000, 0b01111000001, 0         , kWX, 30, 1, Inst::kIdSturh }  // strh
   1142 };
   1143 
   1144 const BaseLdpStp baseLdpStp[6] = {
   1145   { 0b0010100001, 0           , kWX, 31, 2 }, // ldnp
   1146   { 0b0010100101, 0b0010100011, kWX, 31, 2 }, // ldp
   1147   { 0b0110100101, 0b0110100011, kX , 0 , 2 }, // ldpsw
   1148   { 0b0110100100, 0b0110100010, kX, 0, 4 }, // stgp
   1149   { 0b0010100000, 0           , kWX, 31, 2 }, // stnp
   1150   { 0b0010100100, 0b0010100010, kWX, 31, 2 }  // stp
   1151 };
   1152 
   1153 const BaseLdxp baseLdxp[2] = {
   1154   { 0b1000100001111111100000, kWX, 30 }, // ldaxp
   1155   { 0b1000100001111111000000, kWX, 30 }  // ldxp
   1156 };
   1157 
   1158 const BaseLogical baseLogical[8] = {
   1159   { 0b0001010000, 0b00100100, 0 }, // and
   1160   { 0b1101010000, 0b11100100, 0 }, // ands
   1161   { 0b0001010001, 0b00100100, 1 }, // bic
   1162   { 0b1101010001, 0b11100100, 1 }, // bics
   1163   { 0b1001010001, 0b10100100, 1 }, // eon
   1164   { 0b1001010000, 0b10100100, 0 }, // eor
   1165   { 0b0101010001, 0b01100100, 1 }, // orn
   1166   { 0b0101010000, 0b01100100, 0 }  // orr
   1167 };
   1168 
   1169 const BaseMinMax baseMinMax[4] = {
   1170   { 0b00011010110000000110000000000000, 0b00010001110000000000000000000000 }, // smax
   1171   { 0b00011010110000000110100000000000, 0b00010001110010000000000000000000 }, // smin
   1172   { 0b00011010110000000110010000000000, 0b00010001110001000000000000000000 }, // umax
   1173   { 0b00011010110000000110110000000000, 0b00010001110011000000000000000000 }  // umin
   1174 };
   1175 
   1176 const BaseMovKNZ baseMovKNZ[3] = {
   1177   { 0b01110010100000000000000000000000 }, // movk
   1178   { 0b00010010100000000000000000000000 }, // movn
   1179   { 0b01010010100000000000000000000000 }  // movz
   1180 };
   1181 
   1182 const BaseMvnNeg baseMvnNeg[3] = {
   1183   { 0b00101010001000000000001111100000 }, // mvn
   1184   { 0b01001011000000000000001111100000 }, // neg
   1185   { 0b01101011000000000000001111100000 }  // negs
   1186 };
   1187 
   1188 const BaseOp baseOp[24] = {
   1189   { 0b11010101000000110010000110011111 }, // autia1716
   1190   { 0b11010101000000110010001110111111 }, // autiasp
   1191   { 0b11010101000000110010001110011111 }, // autiaz
   1192   { 0b11010101000000110010000111011111 }, // autib1716
   1193   { 0b11010101000000110010001111111111 }, // autibsp
   1194   { 0b11010101000000110010001111011111 }, // autibz
   1195   { 0b11010101000000000100000001011111 }, // axflag
   1196   { 0b11010101000000000100000000011111 }, // cfinv
   1197   { 0b11010101000000110010001011011111 }, // clrbhb
   1198   { 0b11010101000000110010001010011111 }, // csdb
   1199   { 0b11010101000000110010000011011111 }, // dgh
   1200   { 0b11010110101111110000001111100000 }, // drps
   1201   { 0b11010101000000110010001000011111 }, // esb
   1202   { 0b11010110100111110000001111100000 }, // eret
   1203   { 0b11010101000000110010000000011111 }, // nop
   1204   { 0b11010101000000110011010010011111 }, // pssbb
   1205   { 0b11010101000000110010000010011111 }, // sev
   1206   { 0b11010101000000110010000010111111 }, // sevl
   1207   { 0b11010101000000110011000010011111 }, // ssbb
   1208   { 0b11010101000000110010000001011111 }, // wfe
   1209   { 0b11010101000000110010000001111111 }, // wfi
   1210   { 0b11010101000000000100000000111111 }, // xaflag
   1211   { 0b11010101000000110010000011111111 }, // xpaclri
   1212   { 0b11010101000000110010000000111111 }  // yield
   1213 };
   1214 
   1215 const BaseOpImm baseOpImm[15] = {
   1216   { 0b11010100001000000000000000000000, 16, 5 }, // brk
   1217   { 0b11010101000000110010010000011111, 2, 6 }, // bti
   1218   { 0b11010101000000110011000001011111, 4, 8 }, // clrex
   1219   { 0b11010100101000000000000000000001, 16, 5 }, // dcps1
   1220   { 0b11010100101000000000000000000010, 16, 5 }, // dcps2
   1221   { 0b11010100101000000000000000000011, 16, 5 }, // dcps3
   1222   { 0b11010101000000110011000010111111, 4, 8 }, // dmb
   1223   { 0b11010101000000110011000010011111, 4, 8 }, // dsb
   1224   { 0b11010101000000110010000000011111, 7, 5 }, // hint
   1225   { 0b11010100010000000000000000000000, 16, 5 }, // hlt
   1226   { 0b11010100000000000000000000000010, 16, 5 }, // hvc
   1227   { 0b11010101000000110011000011011111, 4, 8 }, // isb
   1228   { 0b11010100000000000000000000000011, 16, 5 }, // smc
   1229   { 0b11010100000000000000000000000001, 16, 5 }, // svc
   1230   { 0b00000000000000000000000000000000, 16, 0 }  // udf
   1231 };
   1232 
   1233 const BaseOpX16 baseOpX16[1] = {
   1234   { 0b11010101000000110010010100011111 }  // chkfeat
   1235 };
   1236 
   1237 const BasePrfm basePrfm[1] = {
   1238   { 0b11111000101, 0b1111100110, 0b11111000100, 0b11011000 }  // prfm
   1239 };
   1240 
   1241 const BaseR baseR[10] = {
   1242   { 0b11011010110000010011101111100000, kX, kZR, 0 }, // autdza
   1243   { 0b11011010110000010011111111100000, kX, kZR, 0 }, // autdzb
   1244   { 0b11011010110000010011001111100000, kX, kZR, 0 }, // autiza
   1245   { 0b11011010110000010011011111100000, kX, kZR, 0 }, // autizb
   1246   { 0b11011010110000010010101111100000, kX, kZR, 0 }, // pacdza
   1247   { 0b11011010110000010010111111100000, kX, kZR, 0 }, // pacdzb
   1248   { 0b00111010000000000000100000001101, kW, kZR, 5 }, // setf8
   1249   { 0b00111010000000000100100000001101, kW, kZR, 5 }, // setf16
   1250   { 0b11011010110000010100011111100000, kX, kZR, 0 }, // xpacd
   1251   { 0b11011010110000010100001111100000, kX, kZR, 0 }  // xpaci
   1252 };
   1253 
   1254 const BaseRM_NoImm baseRM_NoImm[21] = {
   1255   { 0b1000100011011111111111, kWX, kZR, 30 }, // ldar
   1256   { 0b0000100011011111111111, kW , kZR, 0  }, // ldarb
   1257   { 0b0100100011011111111111, kW , kZR, 0  }, // ldarh
   1258   { 0b1000100001011111111111, kWX, kZR, 30 }, // ldaxr
   1259   { 0b0000100001011111111111, kW , kZR, 0  }, // ldaxrb
   1260   { 0b0100100001011111111111, kW , kZR, 0  }, // ldaxrh
   1261   { 0b1101100111100000000000, kX , kZR, 0  }, // ldgm
   1262   { 0b1000100011011111011111, kWX, kZR, 30 }, // ldlar
   1263   { 0b0000100011011111011111, kW , kZR, 0  }, // ldlarb
   1264   { 0b0100100011011111011111, kW , kZR, 0  }, // ldlarh
   1265   { 0b1000100001011111011111, kWX, kZR, 30 }, // ldxr
   1266   { 0b0000100001011111011111, kW , kZR, 0  }, // ldxrb
   1267   { 0b0100100001011111011111, kW , kZR, 0  }, // ldxrh
   1268   { 0b1101100110100000000000, kX , kZR, 0  }, // stgm
   1269   { 0b1000100010011111011111, kWX, kZR, 30 }, // stllr
   1270   { 0b0000100010011111011111, kW , kZR, 0  }, // stllrb
   1271   { 0b0100100010011111011111, kW , kZR, 0  }, // stllrh
   1272   { 0b1000100010011111111111, kWX, kZR, 30 }, // stlr
   1273   { 0b0000100010011111111111, kW , kZR, 0  }, // stlrb
   1274   { 0b0100100010011111111111, kW , kZR, 0  }, // stlrh
   1275   { 0b1101100100100000000000, kX , kZR, 0 }  // stzgm
   1276 };
   1277 
   1278 const BaseRM_SImm10 baseRM_SImm10[2] = {
   1279   { 0b1111100000100000000001, kX , kZR, 0, 3 }, // ldraa
   1280   { 0b1111100010100000000001, kX , kZR, 0, 3 }  // ldrab
   1281 };
   1282 
   1283 const BaseRM_SImm9 baseRM_SImm9[23] = {
   1284   { 0b1101100101100000000000, 0b0000000000000000000000, kX , kZR, 0, 4 }, // ldg
   1285   { 0b1011100001000000000010, 0b0000000000000000000000, kWX, kZR, 30, 0 }, // ldtr
   1286   { 0b0011100001000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // ldtrb
   1287   { 0b0111100001000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // ldtrh
   1288   { 0b0011100011000000000010, 0b0000000000000000000000, kWX, kZR, 22, 0 }, // ldtrsb
   1289   { 0b0111100011000000000010, 0b0000000000000000000000, kWX, kZR, 22, 0 }, // ldtrsh
   1290   { 0b1011100010000000000010, 0b0000000000000000000000, kX , kZR, 0 , 0 }, // ldtrsw
   1291   { 0b1011100001000000000000, 0b0000000000000000000000, kWX, kZR, 30, 0 }, // ldur
   1292   { 0b0011100001000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // ldurb
   1293   { 0b0111100001000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // ldurh
   1294   { 0b0011100011000000000000, 0b0000000000000000000000, kWX, kZR, 22, 0 }, // ldursb
   1295   { 0b0111100011000000000000, 0b0000000000000000000000, kWX, kZR, 22, 0 }, // ldursh
   1296   { 0b1011100010000000000000, 0b0000000000000000000000, kX , kZR, 0 , 0 }, // ldursw
   1297   { 0b1101100110100000000010, 0b1101100110100000000001, kX, kSP, 0, 4 }, // st2g
   1298   { 0b1101100100100000000010, 0b1101100100100000000001, kX, kSP, 0, 4 }, // stg
   1299   { 0b1011100000000000000010, 0b0000000000000000000000, kWX, kZR, 30, 0 }, // sttr
   1300   { 0b0011100000000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // sttrb
   1301   { 0b0111100000000000000010, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // sttrh
   1302   { 0b1011100000000000000000, 0b0000000000000000000000, kWX, kZR, 30, 0 }, // stur
   1303   { 0b0011100000000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // sturb
   1304   { 0b0111100000000000000000, 0b0000000000000000000000, kW , kZR, 0 , 0 }, // sturh
   1305   { 0b1101100111100000000010, 0b1101100111100000000001, kX , kSP, 0, 4 }, // stz2g
   1306   { 0b1101100101100000000010, 0b1101100101100000000001, kX , kSP, 0, 4 }  // stzg
   1307 };
   1308 
   1309 const BaseRR baseRR[18] = {
   1310   { 0b01011010110000000010000000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // abs
   1311   { 0b11011010110000010001100000000000, kX, kZR, 0, kX, kSP, 5, true }, // autda
   1312   { 0b11011010110000010001110000000000, kX, kZR, 0, kX, kSP, 5, true }, // autdb
   1313   { 0b11011010110000010001000000000000, kX, kZR, 0, kX, kSP, 5, true }, // autia
   1314   { 0b11011010110000010001010000000000, kX, kZR, 0, kX, kSP, 5, true }, // autib
   1315   { 0b01011010110000000001010000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // cls
   1316   { 0b01011010110000000001000000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // clz
   1317   { 0b10111010110000000000000000011111, kX, kSP, 5, kX, kSP, 16, true }, // cmpp
   1318   { 0b01011010110000000001110000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // cnt
   1319   { 0b01011010110000000001100000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // ctz
   1320   { 0b01011010000000000000001111100000, kWX, kZR, 0, kWX, kZR, 16, true }, // ngc
   1321   { 0b01111010000000000000001111100000, kWX, kZR, 0, kWX, kZR, 16, true }, // ngcs
   1322   { 0b11011010110000010000100000000000, kX, kZR, 0, kX, kSP, 5, true }, // pacda
   1323   { 0b11011010110000010000110000000000, kX, kZR, 0, kX, kSP, 5, true }, // pacdb
   1324   { 0b01011010110000000000000000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // rbit
   1325   { 0b01011010110000000000010000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // rev16
   1326   { 0b11011010110000000000100000000000, kWX, kZR, 0, kWX, kZR, 5, true }, // rev32
   1327   { 0b11011010110000000000110000000000, kWX, kZR, 0, kWX, kZR, 5, true }  // rev64
   1328 };
   1329 
   1330 const BaseRRII baseRRII[2] = {
   1331   { 0b1001000110000000000000, kX, kSP, kX, kSP, 6, 4, 16, 4, 0, 10 }, // addg
   1332   { 0b1101000110000000000000, kX, kSP, kX, kSP, 6, 4, 16, 4, 0, 10 }  // subg
   1333 };
   1334 
   1335 const BaseRRR baseRRR[26] = {
   1336   { 0b0001101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true }, // adc
   1337   { 0b0011101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true }, // adcs
   1338   { 0b0001101011000000010000, kW, kZR, kW, kZR, kW, kZR, false }, // crc32b
   1339   { 0b0001101011000000010100, kW, kZR, kW, kZR, kW, kZR, false }, // crc32cb
   1340   { 0b0001101011000000010101, kW, kZR, kW, kZR, kW, kZR, false }, // crc32ch
   1341   { 0b0001101011000000010110, kW, kZR, kW, kZR, kW, kZR, false }, // crc32cw
   1342   { 0b1001101011000000010111, kW, kZR, kW, kZR, kX, kZR, false }, // crc32cx
   1343   { 0b0001101011000000010001, kW, kZR, kW, kZR, kW, kZR, false }, // crc32h
   1344   { 0b0001101011000000010010, kW, kZR, kW, kZR, kW, kZR, false }, // crc32w
   1345   { 0b1001101011000000010011, kW, kZR, kW, kZR, kX, kZR, false }, // crc32x
   1346   { 0b1001101011000000000101, kX , kZR, kX , kSP, kX , kZR, true }, // gmi
   1347   { 0b0001101100000000111111, kWX, kZR, kWX, kZR, kWX, kZR, true }, // mneg
   1348   { 0b0001101100000000011111, kWX, kZR, kWX, kZR, kWX, kZR, true }, // mul
   1349   { 0b1001101011000000001100, kX, kZR, kX, kZR, kX, kSP, false }, // pacga
   1350   { 0b0101101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true }, // sbc
   1351   { 0b0111101000000000000000, kWX, kZR, kWX, kZR, kWX, kZR, true }, // sbcs
   1352   { 0b0001101011000000000011, kWX, kZR, kWX, kZR, kWX, kZR, true }, // sdiv
   1353   { 0b1001101100100000111111, kX , kZR, kW , kZR, kW , kZR, false }, // smnegl
   1354   { 0b1001101101000000011111, kX , kZR, kX , kZR, kX , kZR, true }, // smulh
   1355   { 0b1001101100100000011111, kX , kZR, kW , kZR, kW , kZR, false }, // smull
   1356   { 0b1001101011000000000000, kX, kZR, kX, kSP, kX, kSP, false }, // subp
   1357   { 0b1011101011000000000000, kX, kZR, kX, kSP, kX, kSP, false }, // subps
   1358   { 0b0001101011000000000010, kWX, kZR, kWX, kZR, kWX, kZR, true }, // udiv
   1359   { 0b1001101110100000111111, kX , kZR, kW , kZR, kW , kZR, false }, // umnegl
   1360   { 0b1001101110100000011111, kX , kZR, kW , kZR, kW , kZR, false }, // umull
   1361   { 0b1001101111000000011111, kX , kZR, kX , kZR, kX , kZR, false }  // umulh
   1362 };
   1363 
   1364 const BaseRRRR baseRRRR[6] = {
   1365   { 0b0001101100000000000000, kWX, kZR, kWX, kZR, kWX, kZR, kWX, kZR, true }, // madd
   1366   { 0b0001101100000000100000, kWX, kZR, kWX, kZR, kWX, kZR, kWX, kZR, true }, // msub
   1367   { 0b1001101100100000000000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false }, // smaddl
   1368   { 0b1001101100100000100000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false }, // smsubl
   1369   { 0b1001101110100000000000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false }, // umaddl
   1370   { 0b1001101110100000100000, kX , kZR, kW , kZR, kW , kZR, kX , kZR, false }  // umsubl
   1371 };
   1372 
   1373 const BaseShift baseShift[8] = {
   1374   { 0b0001101011000000001010, 0b0001001100000000011111, 0 }, // asr
   1375   { 0b0001101011000000001010, 0b0000000000000000000000, 0 }, // asrv
   1376   { 0b0001101011000000001000, 0b0101001100000000000000, 0 }, // lsl
   1377   { 0b0001101011000000001000, 0b0000000000000000000000, 0 }, // lslv
   1378   { 0b0001101011000000001001, 0b0101001100000000011111, 0 }, // lsr
   1379   { 0b0001101011000000001001, 0b0000000000000000000000, 0 }, // lsrv
   1380   { 0b0001101011000000001011, 0b0001001110000000000000, 1 }, // ror
   1381   { 0b0001101011000000001011, 0b0000000000000000000000, 1 }  // rorv
   1382 };
   1383 
   1384 const BaseStx baseStx[3] = {
   1385   { 0b1000100000000000011111, kWX, 30 }, // stxr
   1386   { 0b0000100000000000011111, kW , 0  }, // stxrb
   1387   { 0b0100100000000000011111, kW , 0  }  // stxrh
   1388 };
   1389 
   1390 const BaseStxp baseStxp[2] = {
   1391   { 0b1000100000100000100000, kWX, 30 }, // stlxp
   1392   { 0b1000100000100000000000, kWX, 30 }  // stxp
   1393 };
   1394 
   1395 const BaseTst baseTst[1] = {
   1396   { 0b1101010000, 0b111001000 }  // tst
   1397 };
   1398 
   1399 const FSimdPair fSimdPair[5] = {
   1400   { 0b0111111000110000110110, 0b0010111000100000110101 }, // faddp_v
   1401   { 0b0111111000110000110010, 0b0010111000100000110001 }, // fmaxnmp_v
   1402   { 0b0111111000110000111110, 0b0010111000100000111101 }, // fmaxp_v
   1403   { 0b0111111010110000110010, 0b0010111010100000110001 }, // fminnmp_v
   1404   { 0b0111111010110000111110, 0b0010111010100000111101 }  // fminp_v
   1405 };
   1406 
   1407 const FSimdSV fSimdSV[4] = {
   1408   { 0b0010111000110000110010 }, // fmaxnmv_v
   1409   { 0b0010111000110000111110 }, // fmaxv_v
   1410   { 0b0010111010110000110010 }, // fminnmv_v
   1411   { 0b0010111010110000111110 }  // fminv_v
   1412 };
   1413 
   1414 const FSimdVV fSimdVV[17] = {
   1415   { 0b0001111000100000110000, kHF_A, 0b0000111010100000111110, kHF_B }, // fabs_v
   1416   { 0b0001111000100001010000, kHF_A, 0b0010111010100000111110, kHF_B }, // fneg_v
   1417   { 0b0101111010100001110110, kHF_B, 0b0000111010100001110110, kHF_B }, // frecpe_v
   1418   { 0b0101111010100001111110, kHF_B, 0b0000000000000000000000, kHF_N }, // frecpx_v
   1419   { 0b0001111000101000110000, kHF_N, 0b0010111000100001111010, kHF_N }, // frint32x_v
   1420   { 0b0001111000101000010000, kHF_N, 0b0000111000100001111010, kHF_N }, // frint32z_v
   1421   { 0b0001111000101001110000, kHF_N, 0b0010111000100001111110, kHF_N }, // frint64x_v
   1422   { 0b0001111000101001010000, kHF_N, 0b0000111000100001111110, kHF_N }, // frint64z_v
   1423   { 0b0001111000100110010000, kHF_A, 0b0010111000100001100010, kHF_B }, // frinta_v
   1424   { 0b0001111000100111110000, kHF_A, 0b0010111010100001100110, kHF_B }, // frinti_v
   1425   { 0b0001111000100101010000, kHF_A, 0b0000111000100001100110, kHF_B }, // frintm_v
   1426   { 0b0001111000100100010000, kHF_A, 0b0000111000100001100010, kHF_B }, // frintn_v
   1427   { 0b0001111000100100110000, kHF_A, 0b0000111010100001100010, kHF_B }, // frintp_v
   1428   { 0b0001111000100111010000, kHF_A, 0b0010111000100001100110, kHF_B }, // frintx_v
   1429   { 0b0001111000100101110000, kHF_A, 0b0000111010100001100110, kHF_B }, // frintz_v
   1430   { 0b0111111010100001110110, kHF_B, 0b0010111010100001110110, kHF_B }, // frsqrte_v
   1431   { 0b0001111000100001110000, kHF_A, 0b0010111010100001111110, kHF_B }  // fsqrt_v
   1432 };
   1433 
   1434 const FSimdVVV fSimdVVV[13] = {
   1435   { 0b0111111010100000110101, kHF_C, 0b0010111010100000110101, kHF_C }, // fabd_v
   1436   { 0b0111111000100000111011, kHF_C, 0b0010111000100000111011, kHF_C }, // facge_v
   1437   { 0b0111111010100000111011, kHF_C, 0b0010111010100000111011, kHF_C }, // facgt_v
   1438   { 0b0001111000100000001010, kHF_A, 0b0000111000100000110101, kHF_C }, // fadd_v
   1439   { 0b0001111000100000000110, kHF_A, 0b0010111000100000111111, kHF_C }, // fdiv_v
   1440   { 0b0001111000100000010010, kHF_A, 0b0000111000100000111101, kHF_C }, // fmax_v
   1441   { 0b0001111000100000011010, kHF_A, 0b0000111000100000110001, kHF_C }, // fmaxnm_v
   1442   { 0b0001111000100000010110, kHF_A, 0b0000111010100000111101, kHF_C }, // fmin_v
   1443   { 0b0001111000100000011110, kHF_A, 0b0000111010100000110001, kHF_C }, // fminnm_v
   1444   { 0b0001111000100000100010, kHF_A, 0b0000000000000000000000, kHF_N }, // fnmul_v
   1445   { 0b0101111000100000111111, kHF_C, 0b0000111000100000111111, kHF_C }, // frecps_v
   1446   { 0b0101111010100000111111, kHF_C, 0b0000111010100000111111, kHF_C }, // frsqrts_v
   1447   { 0b0001111000100000001110, kHF_A, 0b0000111010100000110101, kHF_C }  // fsub_v
   1448 };
   1449 
   1450 const FSimdVVVV fSimdVVVV[4] = {
   1451   { 0b0001111100000000000000, kHF_A, 0b0000000000000000000000, kHF_N }, // fmadd_v
   1452   { 0b0001111100000000100000, kHF_A, 0b0000000000000000000000, kHF_N }, // fmsub_v
   1453   { 0b0001111100100000000000, kHF_A, 0b0000000000000000000000, kHF_N }, // fnmadd_v
   1454   { 0b0001111100100000100000, kHF_A, 0b0000000000000000000000, kHF_N }  // fnmsub_v
   1455 };
   1456 
   1457 const FSimdVVVe fSimdVVVe[4] = {
   1458   { 0b0000000000000000000000, kHF_N, 0b0000111000100000110011, 0b0000111110000000000100 }, // fmla_v
   1459   { 0b0000000000000000000000, kHF_N, 0b0000111010100000110011, 0b0000111110000000010100 }, // fmls_v
   1460   { 0b0001111000100000000010, kHF_A, 0b0010111000100000110111, 0b0000111110000000100100 }, // fmul_v
   1461   { 0b0101111000100000110111, kHF_C, 0b0000111000100000110111, 0b0010111110000000100100 }  // fmulx_v
   1462 };
   1463 
   1464 const ISimdPair iSimdPair[1] = {
   1465   { 0b0101111000110001101110, 0b0000111000100000101111, kVO_V_Any }  // addp_v
   1466 };
   1467 
   1468 const ISimdSV iSimdSV[7] = {
   1469   { 0b0000111000110001101110, kVO_V_BH_4S }, // addv_v
   1470   { 0b0000111000110000001110, kVO_V_BH_4S }, // saddlv_v
   1471   { 0b0000111000110000101010, kVO_V_BH_4S }, // smaxv_v
   1472   { 0b0000111000110001101010, kVO_V_BH_4S }, // sminv_v
   1473   { 0b0010111000110000001110, kVO_V_BH_4S }, // uaddlv_v
   1474   { 0b0010111000110000101010, kVO_V_BH_4S }, // umaxv_v
   1475   { 0b0010111000110001101010, kVO_V_BH_4S }  // uminv_v
   1476 };
   1477 
   1478 const ISimdVV iSimdVV[29] = {
   1479   { 0b0000111000100000101110, kVO_V_Any }, // abs_v
   1480   { 0b0000111000100000010010, kVO_V_BHS }, // cls_v
   1481   { 0b0010111000100000010010, kVO_V_BHS }, // clz_v
   1482   { 0b0000111000100000010110, kVO_V_B }, // cnt_v
   1483   { 0b0010111000100000010110, kVO_V_B }, // mvn_v
   1484   { 0b0010111000100000101110, kVO_V_Any }, // neg_v
   1485   { 0b0010111000100000010110, kVO_V_B }, // not_v
   1486   { 0b0010111001100000010110, kVO_V_B }, // rbit_v
   1487   { 0b0000111000100000000110, kVO_V_B }, // rev16_v
   1488   { 0b0010111000100000000010, kVO_V_BH }, // rev32_v
   1489   { 0b0000111000100000000010, kVO_V_BHS }, // rev64_v
   1490   { 0b0000111000100000011010, kVO_V_BHS }, // sadalp_v
   1491   { 0b0000111000100000001010, kVO_V_BHS }, // saddlp_v
   1492   { 0b0000111000100000011110, kVO_SV_Any }, // sqabs_v
   1493   { 0b0010111000100000011110, kVO_SV_Any }, // sqneg_v
   1494   { 0b0000111000100001010010, kVO_SV_B8H4S2 }, // sqxtn_v
   1495   { 0b0100111000100001010010, kVO_V_B16H8S4 }, // sqxtn2_v
   1496   { 0b0010111000100001001010, kVO_SV_B8H4S2 }, // sqxtun_v
   1497   { 0b0110111000100001001010, kVO_V_B16H8S4 }, // sqxtun2_v
   1498   { 0b0000111000100000001110, kVO_SV_Any }, // suqadd_v
   1499   { 0b0010111000100000011010, kVO_V_BHS }, // uadalp_v
   1500   { 0b0010111000100000001010, kVO_V_BHS }, // uaddlp_v
   1501   { 0b0010111000100001010010, kVO_SV_B8H4S2 }, // uqxtn_v
   1502   { 0b0110111000100001010010, kVO_V_B16H8S4 }, // uqxtn2_v
   1503   { 0b0000111010100001110010, kVO_V_S }, // urecpe_v
   1504   { 0b0010111010100001110010, kVO_V_S }, // ursqrte_v
   1505   { 0b0010111000100000001110, kVO_SV_Any }, // usqadd_v
   1506   { 0b0000111000100001001010, kVO_V_B8H4S2 }, // xtn_v
   1507   { 0b0100111000100001001010, kVO_V_B16H8S4 }  // xtn2_v
   1508 };
   1509 
   1510 const ISimdVVV iSimdVVV[65] = {
   1511   { 0b0000111000100000100001, kVO_V_Any }, // add_v
   1512   { 0b0000111000100000010000, kVO_V_B8H4S2 }, // addhn_v
   1513   { 0b0100111000100000010000, kVO_V_B16H8S4 }, // addhn2_v
   1514   { 0b0000111000100000000111, kVO_V_B }, // and_v
   1515   { 0b0010111011100000000111, kVO_V_B }, // bif_v
   1516   { 0b0010111010100000000111, kVO_V_B }, // bit_v
   1517   { 0b0010111001100000000111, kVO_V_B }, // bsl_v
   1518   { 0b0000111000100000100011, kVO_V_Any }, // cmtst_v
   1519   { 0b0010111000100000000111, kVO_V_B }, // eor_v
   1520   { 0b0000111011100000000111, kVO_V_B }, // orn_v
   1521   { 0b0010111000100000100111, kVO_V_B }, // pmul_v
   1522   { 0b0000111000100000111000, kVO_V_B8D1 }, // pmull_v
   1523   { 0b0100111000100000111000, kVO_V_B16D2 }, // pmull2_v
   1524   { 0b0010111000100000010000, kVO_V_B8H4S2 }, // raddhn_v
   1525   { 0b0110111000100000010000, kVO_V_B16H8S4 }, // raddhn2_v
   1526   { 0b1100111001100000100011, kVO_V_D2 }, // rax1_v
   1527   { 0b0010111000100000011000, kVO_V_B8H4S2 }, // rsubhn_v
   1528   { 0b0110111000100000011000, kVO_V_B16H8S4 }, // rsubhn2_v
   1529   { 0b0000111000100000011111, kVO_V_BHS }, // saba_v
   1530   { 0b0000111000100000010100, kVO_V_B8H4S2 }, // sabal_v
   1531   { 0b0100111000100000010100, kVO_V_B16H8S4 }, // sabal2_v
   1532   { 0b0000111000100000011101, kVO_V_BHS }, // sabd_v
   1533   { 0b0000111000100000011100, kVO_V_B8H4S2 }, // sabdl_v
   1534   { 0b0100111000100000011100, kVO_V_B16H8S4 }, // sabdl2_v
   1535   { 0b0000111000100000000000, kVO_V_B8H4S2 }, // saddl_v
   1536   { 0b0100111000100000000000, kVO_V_B16H8S4 }, // saddl2_v
   1537   { 0b0000111000100000000001, kVO_V_BHS }, // shadd_v
   1538   { 0b0000111000100000001001, kVO_V_BHS }, // shsub_v
   1539   { 0b0000111000100000011001, kVO_V_BHS }, // smax_v
   1540   { 0b0000111000100000101001, kVO_V_BHS }, // smaxp_v
   1541   { 0b0000111000100000011011, kVO_V_BHS }, // smin_v
   1542   { 0b0000111000100000101011, kVO_V_BHS }, // sminp_v
   1543   { 0b0000111000100000000011, kVO_SV_Any }, // sqadd_v
   1544   { 0b0000111000100000001011, kVO_SV_Any }, // sqsub_v
   1545   { 0b0000111000100000000101, kVO_V_BHS }, // srhadd_v
   1546   { 0b0000111000100000001000, kVO_V_B8H4S2 }, // ssubl_v
   1547   { 0b0100111000100000001000, kVO_V_B16H8S4 }, // ssubl2_v
   1548   { 0b0010111000100000100001, kVO_V_Any }, // sub_v
   1549   { 0b0000111000100000011000, kVO_V_B8H4S2 }, // subhn_v
   1550   { 0b0000111000100000011000, kVO_V_B16H8S4 }, // subhn2_v
   1551   { 0b0000111000000000001010, kVO_V_BHS_D2 }, // trn1_v
   1552   { 0b0000111000000000011010, kVO_V_BHS_D2 }, // trn2_v
   1553   { 0b0010111000100000011111, kVO_V_BHS }, // uaba_v
   1554   { 0b0010111000100000010100, kVO_V_B8H4S2 }, // uabal_v
   1555   { 0b0110111000100000010100, kVO_V_B16H8S4 }, // uabal2_v
   1556   { 0b0010111000100000011101, kVO_V_BHS }, // uabd_v
   1557   { 0b0010111000100000011100, kVO_V_B8H4S2 }, // uabdl_v
   1558   { 0b0110111000100000011100, kVO_V_B16H8S4 }, // uabdl2_v
   1559   { 0b0010111000100000000000, kVO_V_B8H4S2 }, // uaddl_v
   1560   { 0b0110111000100000000000, kVO_V_B16H8S4 }, // uaddl2_v
   1561   { 0b0010111000100000000001, kVO_V_BHS }, // uhadd_v
   1562   { 0b0010111000100000001001, kVO_V_BHS }, // uhsub_v
   1563   { 0b0010111000100000011001, kVO_V_BHS }, // umax_v
   1564   { 0b0010111000100000101001, kVO_V_BHS }, // umaxp_v
   1565   { 0b0010111000100000011011, kVO_V_BHS }, // umin_v
   1566   { 0b0010111000100000101011, kVO_V_BHS }, // uminp_v
   1567   { 0b0010111000100000000011, kVO_SV_Any }, // uqadd_v
   1568   { 0b0010111000100000001011, kVO_SV_Any }, // uqsub_v
   1569   { 0b0010111000100000000101, kVO_V_BHS }, // urhadd_v
   1570   { 0b0010111000100000001000, kVO_V_B8H4S2 }, // usubl_v
   1571   { 0b0110111000100000001000, kVO_V_B16H8S4 }, // usubl2_v
   1572   { 0b0000111000000000000110, kVO_V_BHS_D2 }, // uzp1_v
   1573   { 0b0000111000000000010110, kVO_V_BHS_D2 }, // uzp2_v
   1574   { 0b0000111000000000001110, kVO_V_BHS_D2 }, // zip1_v
   1575   { 0b0000111000000000011110, kVO_V_BHS_D2 }  // zip2_v
   1576 };
   1577 
   1578 const ISimdVVVI iSimdVVVI[2] = {
   1579   { 0b0010111000000000000000, kVO_V_B, 4, 11, 1 }, // ext_v
   1580   { 0b1100111001100000100011, kVO_V_D2, 6, 10, 0 }  // xar_v
   1581 };
   1582 
   1583 const ISimdVVVV iSimdVVVV[2] = {
   1584   { 0b1100111000100000000000, kVO_V_B16 }, // bcax_v
   1585   { 0b1100111000000000000000, kVO_V_B16 }  // eor3_v
   1586 };
   1587 
   1588 const ISimdVVVVx iSimdVVVVx[1] = {
   1589   { 0b1100111001000000000000, kOp_V4S, kOp_V4S, kOp_V4S, kOp_V4S }  // sm3ss1_v
   1590 };
   1591 
   1592 const ISimdVVVe iSimdVVVe[25] = {
   1593   { 0b0000111000100000100101, kVO_V_BHS, 0b0010111100000000000000, kVO_V_HS }, // mla_v
   1594   { 0b0010111000100000100101, kVO_V_BHS, 0b0010111100000000010000, kVO_V_HS }, // mls_v
   1595   { 0b0000111000100000100111, kVO_V_BHS, 0b0000111100000000100000, kVO_V_HS }, // mul_v
   1596   { 0b0000111000100000100000, kVO_V_B8H4S2, 0b0000111100000000001000, kVO_V_H4S2 }, // smlal_v
   1597   { 0b0100111000100000100000, kVO_V_B16H8S4, 0b0100111100000000001000, kVO_V_H8S4 }, // smlal2_v
   1598   { 0b0000111000100000101000, kVO_V_B8H4S2, 0b0000111100000000011000, kVO_V_H4S2 }, // smlsl_v
   1599   { 0b0100111000100000101000, kVO_V_B16H8S4, 0b0100111100000000011000, kVO_V_H8S4 }, // smlsl2_v
   1600   { 0b0000111000100000110000, kVO_V_B8H4S2, 0b0000111100000000101000, kVO_V_H4S2 }, // smull_v
   1601   { 0b0100111000100000110000, kVO_V_B16H8S4, 0b0100111100000000101000, kVO_V_H8S4 }, // smull2_v
   1602   { 0b0000111000100000100100, kVO_SV_BHS, 0b0000111100000000001100, kVO_V_H4S2 }, // sqdmlal_v
   1603   { 0b0100111000100000100100, kVO_V_B16H8S4, 0b0100111100000000001100, kVO_V_H8S4 }, // sqdmlal2_v
   1604   { 0b0000111000100000101100, kVO_SV_BHS, 0b0000111100000000011100, kVO_V_H4S2 }, // sqdmlsl_v
   1605   { 0b0100111000100000101100, kVO_V_B16H8S4, 0b0100111100000000011100, kVO_V_H8S4 }, // sqdmlsl2_v
   1606   { 0b0000111000100000101101, kVO_SV_HS, 0b0000111100000000110000, kVO_SV_HS }, // sqdmulh_v
   1607   { 0b0000111000100000110100, kVO_SV_BHS, 0b0000111100000000101100, kVO_V_H4S2 }, // sqdmull_v
   1608   { 0b0100111000100000110100, kVO_V_B16H8S4, 0b0100111100000000101100, kVO_V_H8S4 }, // sqdmull2_v
   1609   { 0b0010111000000000100001, kVO_SV_HS, 0b0010111100000000110100, kVO_SV_HS }, // sqrdmlah_v
   1610   { 0b0010111000000000100011, kVO_SV_HS, 0b0010111100000000111100, kVO_SV_HS }, // sqrdmlsh_v
   1611   { 0b0010111000100000101101, kVO_SV_HS, 0b0000111100000000110100, kVO_SV_HS }, // sqrdmulh_v
   1612   { 0b0010111000100000100000, kVO_V_B8H4S2, 0b0010111100000000001000, kVO_V_H4S2 }, // umlal_v
   1613   { 0b0110111000100000100000, kVO_V_B16H8S4, 0b0010111100000000001000, kVO_V_H8S4 }, // umlal2_v
   1614   { 0b0010111000100000101000, kVO_V_B8H4S2, 0b0010111100000000011000, kVO_V_H4S2 }, // umlsl_v
   1615   { 0b0110111000100000101000, kVO_V_B16H8S4, 0b0110111100000000011000, kVO_V_H8S4 }, // umlsl2_v
   1616   { 0b0010111000100000110000, kVO_V_B8H4S2, 0b0010111100000000101000, kVO_V_H4S2 }, // umull_v
   1617   { 0b0110111000100000110000, kVO_V_B16H8S4, 0b0110111100000000101000, kVO_V_H8S4 }  // umull2_v
   1618 };
   1619 
   1620 const ISimdVVVx iSimdVVVx[17] = {
   1621   { 0b0110111001000000111011, kOp_V4S, kOp_V8H, kOp_V8H }, // bfmmla_v
   1622   { 0b0101111000000000000000, kOp_Q, kOp_S, kOp_V4S }, // sha1c_v
   1623   { 0b0101111000000000001000, kOp_Q, kOp_S, kOp_V4S }, // sha1m_v
   1624   { 0b0101111000000000000100, kOp_Q, kOp_S, kOp_V4S }, // sha1p_v
   1625   { 0b0101111000000000001100, kOp_V4S, kOp_V4S, kOp_V4S }, // sha1su0_v
   1626   { 0b0101111000000000010000, kOp_Q, kOp_Q, kOp_V4S }, // sha256h_v
   1627   { 0b0101111000000000010100, kOp_Q, kOp_Q, kOp_V4S }, // sha256h2_v
   1628   { 0b0101111000000000011000, kOp_V4S, kOp_V4S, kOp_V4S }, // sha256su1_v
   1629   { 0b1100111001100000100000, kOp_Q, kOp_Q, kOp_V2D }, // sha512h_v
   1630   { 0b1100111001100000100001, kOp_Q, kOp_Q, kOp_V2D }, // sha512h2_v
   1631   { 0b1100111001100000100010, kOp_V2D, kOp_V2D, kOp_V2D }, // sha512su1_v
   1632   { 0b1100111001100000110000, kOp_V4S, kOp_V4S, kOp_V4S }, // sm3partw1_v
   1633   { 0b1100111001100000110001, kOp_V4S, kOp_V4S, kOp_V4S }, // sm3partw2_v
   1634   { 0b1100111001100000110010, kOp_V4S, kOp_V4S, kOp_V4S }, // sm4ekey_v
   1635   { 0b0100111010000000101001, kOp_V4S, kOp_V16B, kOp_V16B }, // smmla_v
   1636   { 0b0110111010000000101001, kOp_V4S, kOp_V16B, kOp_V16B }, // ummla_v
   1637   { 0b0100111010000000101011, kOp_V4S, kOp_V16B, kOp_V16B }  // usmmla_v
   1638 };
   1639 
   1640 const ISimdVVx iSimdVVx[13] = {
   1641   { 0b0100111000101000010110, kOp_V16B, kOp_V16B }, // aesd_v
   1642   { 0b0100111000101000010010, kOp_V16B, kOp_V16B }, // aese_v
   1643   { 0b0100111000101000011110, kOp_V16B, kOp_V16B }, // aesimc_v
   1644   { 0b0100111000101000011010, kOp_V16B, kOp_V16B }, // aesmc_v
   1645   { 0b0001111001100011010000, kOp_H, kOp_S }, // bfcvt_v
   1646   { 0b0000111010100001011010, kOp_V4H, kOp_V4S }, // bfcvtn_v
   1647   { 0b0100111010100001011010, kOp_V8H, kOp_V4S }, // bfcvtn2_v
   1648   { 0b0001111001111110000000, kOp_GpW, kOp_D }, // fjcvtzs_v
   1649   { 0b0101111000101000000010, kOp_S, kOp_S }, // sha1h_v
   1650   { 0b0101111000101000000110, kOp_V4S, kOp_V4S }, // sha1su1_v
   1651   { 0b0101111000101000001010, kOp_V4S, kOp_V4S }, // sha256su0_v
   1652   { 0b1100111011000000100000, kOp_V2D, kOp_V2D }, // sha512su0_v
   1653   { 0b1100111011000000100001, kOp_V4S, kOp_V4S }  // sm4e_v
   1654 };
   1655 
   1656 const ISimdWWV iSimdWWV[8] = {
   1657   { 0b0000111000100000000100, kVO_V_B8H4S2 }, // saddw_v
   1658   { 0b0000111000100000000100, kVO_V_B16H8S4 }, // saddw2_v
   1659   { 0b0000111000100000001100, kVO_V_B8H4S2 }, // ssubw_v
   1660   { 0b0000111000100000001100, kVO_V_B16H8S4 }, // ssubw2_v
   1661   { 0b0010111000100000000100, kVO_V_B8H4S2 }, // uaddw_v
   1662   { 0b0010111000100000000100, kVO_V_B16H8S4 }, // uaddw2_v
   1663   { 0b0010111000100000001100, kVO_V_B8H4S2 }, // usubw_v
   1664   { 0b0010111000100000001100, kVO_V_B16H8S4 }  // usubw2_v
   1665 };
   1666 
   1667 const SimdBicOrr simdBicOrr[2] = {
   1668   { 0b0000111001100000000111, 0b0010111100000000000001 }, // bic_v
   1669   { 0b0000111010100000000111, 0b0000111100000000000001 }  // orr_v
   1670 };
   1671 
   1672 const SimdCmp simdCmp[7] = {
   1673   { 0b0010111000100000100011, 0b0000111000100000100110, kVO_V_Any }, // cmeq_v
   1674   { 0b0000111000100000001111, 0b0010111000100000100010, kVO_V_Any }, // cmge_v
   1675   { 0b0000111000100000001101, 0b0000111000100000100010, kVO_V_Any }, // cmgt_v
   1676   { 0b0010111000100000001101, 0b0000000000000000000000, kVO_V_Any }, // cmhi_v
   1677   { 0b0010111000100000001111, 0b0000000000000000000000, kVO_V_Any }, // cmhs_v
   1678   { 0b0000000000000000000000, 0b0010111000100000100110, kVO_V_Any }, // cmle_v
   1679   { 0b0000000000000000000000, 0b0000111000100000101010, kVO_V_Any }  // cmlt_v
   1680 };
   1681 
   1682 const SimdDot simdDot[5] = {
   1683   { 0b0010111001000000111111, 0b0000111101000000111100, kET_S, kET_H, kET_2H }, // bfdot_v
   1684   { 0b0000111010000000100101, 0b0000111110000000111000, kET_S, kET_B, kET_4B }, // sdot_v
   1685   { 0b0000000000000000000000, 0b0000111100000000111100, kET_S, kET_B, kET_4B }, // sudot_v
   1686   { 0b0010111010000000100101, 0b0010111110000000111000, kET_S, kET_B, kET_4B }, // udot_v
   1687   { 0b0000111010000000100111, 0b0000111110000000111100, kET_S, kET_B, kET_4B }  // usdot_v
   1688 };
   1689 
   1690 const SimdFcadd simdFcadd[1] = {
   1691   { 0b0010111000000000111001 }  // fcadd_v
   1692 };
   1693 
   1694 const SimdFccmpFccmpe simdFccmpFccmpe[2] = {
   1695   { 0b00011110001000000000010000000000 }, // fccmp_v
   1696   { 0b00011110001000000000010000010000 }  // fccmpe_v
   1697 };
   1698 
   1699 const SimdFcm simdFcm[5] = {
   1700   { 0b0000111000100000111001, kHF_C, 0b0000111010100000110110 }, // fcmeq_v
   1701   { 0b0010111000100000111001, kHF_C, 0b0010111010100000110010 }, // fcmge_v
   1702   { 0b0010111010100000111001, kHF_C, 0b0000111010100000110010 }, // fcmgt_v
   1703   { 0b0000000000000000000000, kHF_C, 0b0010111010100000110110 }, // fcmle_v
   1704   { 0b0000000000000000000000, kHF_C, 0b0000111010100000111010 }  // fcmlt_v
   1705 };
   1706 
   1707 const SimdFcmla simdFcmla[1] = {
   1708   { 0b0010111000000000110001, 0b0010111100000000000100 }  // fcmla_v
   1709 };
   1710 
   1711 const SimdFcmpFcmpe simdFcmpFcmpe[2] = {
   1712   { 0b00011110001000000010000000000000 }, // fcmp_v
   1713   { 0b00011110001000000010000000010000 }  // fcmpe_v
   1714 };
   1715 
   1716 const SimdFcvtLN simdFcvtLN[6] = {
   1717   { 0b0000111000100001011110, 0, 0 }, // fcvtl_v
   1718   { 0b0100111000100001011110, 0, 0 }, // fcvtl2_v
   1719   { 0b0000111000100001011010, 0, 0 }, // fcvtn_v
   1720   { 0b0100111000100001011010, 0, 0 }, // fcvtn2_v
   1721   { 0b0010111000100001011010, 1, 1 }, // fcvtxn_v
   1722   { 0b0110111000100001011010, 1, 0 }  // fcvtxn2_v
   1723 };
   1724 
   1725 const SimdFcvtSV simdFcvtSV[12] = {
   1726   { 0b0000111000100001110010, 0b0000000000000000000000, 0b0001111000100100000000, 1 }, // fcvtas_v
   1727   { 0b0010111000100001110010, 0b0000000000000000000000, 0b0001111000100101000000, 1 }, // fcvtau_v
   1728   { 0b0000111000100001101110, 0b0000000000000000000000, 0b0001111000110000000000, 1 }, // fcvtms_v
   1729   { 0b0010111000100001101110, 0b0000000000000000000000, 0b0001111000110001000000, 1 }, // fcvtmu_v
   1730   { 0b0000111000100001101010, 0b0000000000000000000000, 0b0001111000100000000000, 1 }, // fcvtns_v
   1731   { 0b0010111000100001101010, 0b0000000000000000000000, 0b0001111000100001000000, 1 }, // fcvtnu_v
   1732   { 0b0000111010100001101010, 0b0000000000000000000000, 0b0001111000101000000000, 1 }, // fcvtps_v
   1733   { 0b0010111010100001101010, 0b0000000000000000000000, 0b0001111000101001000000, 1 }, // fcvtpu_v
   1734   { 0b0000111010100001101110, 0b0000111100000000111111, 0b0001111000111000000000, 1 }, // fcvtzs_v
   1735   { 0b0010111010100001101110, 0b0010111100000000111111, 0b0001111000111001000000, 1 }, // fcvtzu_v
   1736   { 0b0000111000100001110110, 0b0000111100000000111001, 0b0001111000100010000000, 0 }, // scvtf_v
   1737   { 0b0010111000100001110110, 0b0010111100000000111001, 0b0001111000100011000000, 0 }  // ucvtf_v
   1738 };
   1739 
   1740 const SimdFmlal simdFmlal[6] = {
   1741   { 0b0010111011000000111111, 0b0000111111000000111100, 0, kET_S, kET_H, kET_H }, // bfmlalb_v
   1742   { 0b0110111011000000111111, 0b0100111111000000111100, 0, kET_S, kET_H, kET_H }, // bfmlalt_v
   1743   { 0b0000111000100000111011, 0b0000111110000000000000, 1, kET_S, kET_H, kET_H }, // fmlal_v
   1744   { 0b0010111000100000110011, 0b0010111110000000100000, 1, kET_S, kET_H, kET_H }, // fmlal2_v
   1745   { 0b0000111010100000111011, 0b0000111110000000010000, 1, kET_S, kET_H, kET_H }, // fmlsl_v
   1746   { 0b0010111010100000110011, 0b0010111110000000110000, 1, kET_S, kET_H, kET_H }  // fmlsl2_v
   1747 };
   1748 
   1749 const SimdLdNStN simdLdNStN[12] = {
   1750   { 0b0000110101000000000000, 0b0000110001000000001000, 1, 0 }, // ld1_v
   1751   { 0b0000110101000000110000, 0b0000000000000000000000, 1, 1 }, // ld1r_v
   1752   { 0b0000110101100000000000, 0b0000110001000000100000, 2, 0 }, // ld2_v
   1753   { 0b0000110101100000110000, 0b0000000000000000000000, 2, 1 }, // ld2r_v
   1754   { 0b0000110101000000001000, 0b0000110001000000010000, 3, 0 }, // ld3_v
   1755   { 0b0000110101000000111000, 0b0000000000000000000000, 3, 1 }, // ld3r_v
   1756   { 0b0000110101100000001000, 0b0000110001000000000000, 4, 0 }, // ld4_v
   1757   { 0b0000110101100000111000, 0b0000000000000000000000, 4, 1 }, // ld4r_v
   1758   { 0b0000110100000000000000, 0b0000110000000000001000, 1, 0 }, // st1_v
   1759   { 0b0000110100100000000000, 0b0000110000000000100000, 2, 0 }, // st2_v
   1760   { 0b0000110100000000001000, 0b0000110000000000010000, 3, 0 }, // st3_v
   1761   { 0b0000110100100000001000, 0b0000110000000000000000, 4, 0 }  // st4_v
   1762 };
   1763 
   1764 const SimdLdSt simdLdSt[2] = {
   1765   { 0b0011110101, 0b00111100010, 0b00111100011, 0b00011100, Inst::kIdLdur_v }, // ldr_v
   1766   { 0b0011110100, 0b00111100000, 0b00111100001, 0b00000000, Inst::kIdStur_v }  // str_v
   1767 };
   1768 
   1769 const SimdLdpStp simdLdpStp[4] = {
   1770   { 0b0010110001, 0b0000000000 }, // ldnp_v
   1771   { 0b0010110101, 0b0010110011 }, // ldp_v
   1772   { 0b0010110000, 0b0000000000 }, // stnp_v
   1773   { 0b0010110100, 0b0010110010 }  // stp_v
   1774 };
   1775 
   1776 const SimdLdurStur simdLdurStur[2] = {
   1777   { 0b0011110001000000000000 }, // ldur_v
   1778   { 0b0011110000000000000000 }  // stur_v
   1779 };
   1780 
   1781 const SimdMoviMvni simdMoviMvni[2] = {
   1782   { 0b0000111100000000000001, 0 }, // movi_v
   1783   { 0b0000111100000000000001, 1 }  // mvni_v
   1784 };
   1785 
   1786 const SimdShift simdShift[40] = {
   1787   { 0b0000000000000000000000, 0b0000111100000000100011, 1, kVO_V_B8H4S2 }, // rshrn_v
   1788   { 0b0000000000000000000000, 0b0100111100000000100011, 1, kVO_V_B16H8S4 }, // rshrn2_v
   1789   { 0b0000000000000000000000, 0b0000111100000000010101, 0, kVO_V_Any }, // shl_v
   1790   { 0b0000000000000000000000, 0b0000111100000000100001, 1, kVO_V_B8H4S2 }, // shrn_v
   1791   { 0b0000000000000000000000, 0b0100111100000000100001, 1, kVO_V_B16H8S4 }, // shrn2_v
   1792   { 0b0000000000000000000000, 0b0010111100000000010101, 0, kVO_V_Any }, // sli_v
   1793   { 0b0000111000100000010111, 0b0000000000000000000000, 1, kVO_SV_Any }, // sqrshl_v
   1794   { 0b0000000000000000000000, 0b0000111100000000100111, 1, kVO_SV_B8H4S2 }, // sqrshrn_v
   1795   { 0b0000000000000000000000, 0b0100111100000000100111, 1, kVO_V_B16H8S4 }, // sqrshrn2_v
   1796   { 0b0000000000000000000000, 0b0010111100000000100011, 1, kVO_SV_B8H4S2 }, // sqrshrun_v
   1797   { 0b0000000000000000000000, 0b0110111100000000100011, 1, kVO_V_B16H8S4 }, // sqrshrun2_v
   1798   { 0b0000111000100000010011, 0b0000111100000000011101, 0, kVO_SV_Any }, // sqshl_v
   1799   { 0b0000000000000000000000, 0b0010111100000000011001, 0, kVO_SV_Any }, // sqshlu_v
   1800   { 0b0000000000000000000000, 0b0000111100000000100101, 1, kVO_SV_B8H4S2 }, // sqshrn_v
   1801   { 0b0000000000000000000000, 0b0100111100000000100101, 1, kVO_V_B16H8S4 }, // sqshrn2_v
   1802   { 0b0000000000000000000000, 0b0010111100000000100001, 1, kVO_SV_B8H4S2 }, // sqshrun_v
   1803   { 0b0000000000000000000000, 0b0110111100000000100001, 1, kVO_V_B16H8S4 }, // sqshrun2_v
   1804   { 0b0000000000000000000000, 0b0010111100000000010001, 1, kVO_V_Any }, // sri_v
   1805   { 0b0000111000100000010101, 0b0000000000000000000000, 0, kVO_V_Any }, // srshl_v
   1806   { 0b0000000000000000000000, 0b0000111100000000001001, 1, kVO_V_Any }, // srshr_v
   1807   { 0b0000000000000000000000, 0b0000111100000000001101, 1, kVO_V_Any }, // srsra_v
   1808   { 0b0000111000100000010001, 0b0000000000000000000000, 0, kVO_V_Any }, // sshl_v
   1809   { 0b0000000000000000000000, 0b0000111100000000101001, 0, kVO_V_B8H4S2 }, // sshll_v
   1810   { 0b0000000000000000000000, 0b0100111100000000101001, 0, kVO_V_B16H8S4 }, // sshll2_v
   1811   { 0b0000000000000000000000, 0b0000111100000000000001, 1, kVO_V_Any }, // sshr_v
   1812   { 0b0000000000000000000000, 0b0000111100000000000101, 1, kVO_V_Any }, // ssra_v
   1813   { 0b0010111000100000010111, 0b0000000000000000000000, 0, kVO_SV_Any }, // uqrshl_v
   1814   { 0b0000000000000000000000, 0b0010111100000000100111, 1, kVO_SV_B8H4S2 }, // uqrshrn_v
   1815   { 0b0000000000000000000000, 0b0110111100000000100111, 1, kVO_V_B16H8S4 }, // uqrshrn2_v
   1816   { 0b0010111000100000010011, 0b0010111100000000011101, 0, kVO_SV_Any }, // uqshl_v
   1817   { 0b0000000000000000000000, 0b0010111100000000100101, 1, kVO_SV_B8H4S2 }, // uqshrn_v
   1818   { 0b0000000000000000000000, 0b0110111100000000100101, 1, kVO_V_B16H8S4 }, // uqshrn2_v
   1819   { 0b0010111000100000010101, 0b0000000000000000000000, 0, kVO_V_Any }, // urshl_v
   1820   { 0b0000000000000000000000, 0b0010111100000000001001, 1, kVO_V_Any }, // urshr_v
   1821   { 0b0000000000000000000000, 0b0010111100000000001101, 1, kVO_V_Any }, // ursra_v
   1822   { 0b0010111000100000010001, 0b0000000000000000000000, 0, kVO_V_Any }, // ushl_v
   1823   { 0b0000000000000000000000, 0b0010111100000000101001, 0, kVO_V_B8H4S2 }, // ushll_v
   1824   { 0b0000000000000000000000, 0b0110111100000000101001, 0, kVO_V_B16H8S4 }, // ushll2_v
   1825   { 0b0000000000000000000000, 0b0010111100000000000001, 1, kVO_V_Any }, // ushr_v
   1826   { 0b0000000000000000000000, 0b0010111100000000000101, 1, kVO_V_Any }  // usra_v
   1827 };
   1828 
   1829 const SimdShiftES simdShiftES[2] = {
   1830   { 0b0010111000100001001110, kVO_V_B8H4S2 }, // shll_v
   1831   { 0b0110111000100001001110, kVO_V_B16H8S4 }  // shll2_v
   1832 };
   1833 
   1834 const SimdSm3tt simdSm3tt[4] = {
   1835   { 0b1100111001000000100000 }, // sm3tt1a_v
   1836   { 0b1100111001000000100001 }, // sm3tt1b_v
   1837   { 0b1100111001000000100010 }, // sm3tt2a_v
   1838   { 0b1100111001000000100011 }  // sm3tt2b_v
   1839 };
   1840 
   1841 const SimdSmovUmov simdSmovUmov[2] = {
   1842   { 0b0000111000000000001011, kVO_V_BHS, 1 }, // smov_v
   1843   { 0b0000111000000000001111, kVO_V_Any, 0 }  // umov_v
   1844 };
   1845 
   1846 const SimdSxtlUxtl simdSxtlUxtl[4] = {
   1847   { 0b0000111100000000101001, kVO_V_B8H4S2 }, // sxtl_v
   1848   { 0b0100111100000000101001, kVO_V_B16H8S4 }, // sxtl2_v
   1849   { 0b0010111100000000101001, kVO_V_B8H4S2 }, // uxtl_v
   1850   { 0b0110111100000000101001, kVO_V_B16H8S4 }  // uxtl2_v
   1851 };
   1852 
   1853 const SimdTblTbx simdTblTbx[2] = {
   1854   { 0b0000111000000000000000 }, // tbl_v
   1855   { 0b0000111000000000000100 }  // tbx_v
   1856 };
   1857 // ----------------------------------------------------------------------------
   1858 // ${EncodingData:End}
   1859 
   1860 } // {EncodingData}
   1861 } // {InstDB}
   1862 
   1863 /*
   1864 // ${CommonData:Begin}
   1865 // ------------------- Automatically generated, do not edit -------------------
   1866 const InstDB::CommonInfo InstDB::commonData[] = {
   1867   { 0}  // #0 [ref=440x]
   1868 };
   1869 // ----------------------------------------------------------------------------
   1870 // ${CommonData:End}
   1871 */
   1872 
   1873 // ArmUtil - Id <-> Name
   1874 // =====================
   1875 
   1876 #ifndef ASMJIT_NO_TEXT
   1877 // ${NameData:Begin}
   1878 // ------------------- Automatically generated, do not edit -------------------
   1879 const InstNameIndex InstDB::_inst_name_index = {{
   1880   { Inst::kIdAbs          , Inst::kIdAnd_v         + 1 },
   1881   { Inst::kIdB            , Inst::kIdBsl_v         + 1 },
   1882   { Inst::kIdCas          , Inst::kIdCnt_v         + 1 },
   1883   { Inst::kIdDc           , Inst::kIdDup_v         + 1 },
   1884   { Inst::kIdEon          , Inst::kIdExt_v         + 1 },
   1885   { Inst::kIdFabd_v       , Inst::kIdFsub_v        + 1 },
   1886   { Inst::kIdGmi          , Inst::kIdGmi           + 1 },
   1887   { Inst::kIdHint         , Inst::kIdHvc           + 1 },
   1888   { Inst::kIdIc           , Inst::kIdIns_v         + 1 },
   1889   { Inst::kIdNone         , Inst::kIdNone          + 1 },
   1890   { Inst::kIdNone         , Inst::kIdNone          + 1 },
   1891   { Inst::kIdLdadd        , Inst::kIdLdur_v        + 1 },
   1892   { Inst::kIdMadd         , Inst::kIdMvni_v        + 1 },
   1893   { Inst::kIdNeg          , Inst::kIdNot_v         + 1 },
   1894   { Inst::kIdOrn          , Inst::kIdOrr_v         + 1 },
   1895   { Inst::kIdPacda        , Inst::kIdPmull2_v      + 1 },
   1896   { Inst::kIdNone         , Inst::kIdNone          + 1 },
   1897   { Inst::kIdRbit         , Inst::kIdRsubhn2_v     + 1 },
   1898   { Inst::kIdSbc          , Inst::kIdSxtl2_v       + 1 },
   1899   { Inst::kIdTlbi         , Inst::kIdTrn2_v        + 1 },
   1900   { Inst::kIdUbfiz        , Inst::kIdUzp2_v        + 1 },
   1901   { Inst::kIdNone         , Inst::kIdNone          + 1 },
   1902   { Inst::kIdWfe          , Inst::kIdWfi           + 1 },
   1903   { Inst::kIdXaflag       , Inst::kIdXtn2_v        + 1 },
   1904   { Inst::kIdYield        , Inst::kIdYield         + 1 },
   1905   { Inst::kIdZip1_v       , Inst::kIdZip2_v        + 1 }
   1906 }, uint16_t(9)};
   1907 
   1908 const char InstDB::_inst_name_string_table[] =
   1909   "\x61\x75\x74\x69\x61\x31\x37\x31\x36\x61\x75\x74\x69\x62\x6C\x64\x73\x6D\x61\x78\x61\x6C\x68\x6C\x64\x73\x6D\x69\x6E"
   1910   "\x61\x6C\x6C\x64\x75\x6D\x61\x78\x61\x6C\x6C\x64\x75\x6D\x69\x6E\x61\x6C\x73\x68\x61\x32\x35\x36\x73\x75\x30\x73\x68"
   1911   "\x61\x35\x31\x32\x73\x75\x31\x73\x6D\x33\x70\x61\x72\x74\x77\x73\x71\x72\x73\x68\x72\x75\x6E\x6C\x64\x61\x64\x64\x61"
   1912   "\x6C\x6C\x64\x63\x6C\x72\x61\x6C\x6C\x64\x65\x6F\x72\x61\x6C\x6C\x64\x73\x65\x74\x61\x6C\x6C\x62\x73\x74\x73\x6D\x61"
   1913   "\x78\x73\x74\x73\x6D\x69\x6E\x73\x74\x75\x6D\x61\x78\x73\x74\x75\x6D\x69\x6E\x66\x72\x69\x6E\x74\x33\x32\x7A\x36\x34"
   1914   "\x78\x36\x34\x7A\x68\x32\x73\x71\x64\x6D\x6C\x61\x6C\x73\x6C\x32\x73\x71\x64\x6D\x75\x6C\x73\x71\x72\x64\x6D\x6C\x61"
   1915   "\x75\x6C\x68\x6E\x32\x73\x71\x73\x68\x72\x75\x75\x71\x72\x73\x68\x72\x73\x70\x63\x68\x6B\x66\x65\x61\x63\x72\x63\x33"
   1916   "\x32\x63\x73\x74\x61\x64\x64\x73\x74\x63\x6C\x72\x73\x74\x65\x6F\x72\x73\x74\x73\x65\x74\x78\x70\x61\x63\x6C\x62\x66"
   1917   "\x63\x76\x74\x62\x66\x6D\x6C\x61\x6C\x74\x66\x63\x76\x74\x78\x66\x6A\x63\x76\x74\x7A\x66\x6D\x61\x78\x6E\x6D\x66\x6D"
   1918   "\x69\x6E\x6E\x6D\x66\x72\x73\x71\x72\x72\x61\x64\x64\x72\x73\x75\x62\x73\x68\x61\x31\x73\x6D\x33\x74\x74\x31\x32\x61"
   1919   "\x32\x62\x73\x6D\x34\x65\x6B\x65\x79\x73\x71\x78\x74\x75\x75\x71\x73\x68\x72\x75\x72\x73\x71\x72\x73\x65\x74\x66\x72"
   1920   "\x65\x76\x38";
   1921 
   1922 
   1923 const uint32_t InstDB::_inst_name_index_table[] = {
   1924   0x80000000, // Small ''.
   1925   0x80004C41, // Small 'abs'.
   1926   0x80000C81, // Small 'adc'.
   1927   0x80098C81, // Small 'adcs'.
   1928   0x80001081, // Small 'add'.
   1929   0x80039081, // Small 'addg'.
   1930   0x80099081, // Small 'adds'.
   1931   0x80004881, // Small 'adr'.
   1932   0x80084881, // Small 'adrp'.
   1933   0x800011C1, // Small 'and'.
   1934   0x800991C1, // Small 'ands'.
   1935   0x80004A61, // Small 'asr'.
   1936   0x800B4A61, // Small 'asrv'.
   1937   0x80000281, // Small 'at'.
   1938   0x801252A1, // Small 'autda'.
   1939   0x83A252A1, // Small 'autdza'.
   1940   0x802252A1, // Small 'autdb'.
   1941   0x85A252A1, // Small 'autdzb'.
   1942   0x8014D2A1, // Small 'autia'.
   1943   0x00009000, // Large 'autia1716'.
   1944   0x20BF5000, // Large 'autia|sp'.
   1945   0xB414D2A1, // Small 'autiaz'.
   1946   0x8024D2A1, // Small 'autib'.
   1947   0x40055009, // Large 'autib|1716'.
   1948   0x20BF5009, // Large 'autib|sp'.
   1949   0xB424D2A1, // Small 'autibz'.
   1950   0x83A4D2A1, // Small 'autiza'.
   1951   0x85A4D2A1, // Small 'autizb'.
   1952   0x8E161B01, // Small 'axflag'.
   1953   0x80000002, // Small 'b'.
   1954   0x80000062, // Small 'bc'.
   1955   0x80000CC2, // Small 'bfc'.
   1956   0x800024C2, // Small 'bfi'.
   1957   0x800034C2, // Small 'bfm'.
   1958   0x80C4E0C2, // Small 'bfxil'.
   1959   0x80000D22, // Small 'bic'.
   1960   0x80098D22, // Small 'bics'.
   1961   0x80000182, // Small 'bl'.
   1962   0x80004982, // Small 'blr'.
   1963   0x80000242, // Small 'br'.
   1964   0x80002E42, // Small 'brk'.
   1965   0x80002682, // Small 'bti'.
   1966   0x80004C23, // Small 'cas'.
   1967   0x8000CC23, // Small 'casa'.
   1968   0x8020CC23, // Small 'casab'.
   1969   0x8080CC23, // Small 'casah'.
   1970   0x80C0CC23, // Small 'casal'.
   1971   0x84C0CC23, // Small 'casalb'.
   1972   0x90C0CC23, // Small 'casalh'.
   1973   0x80014C23, // Small 'casb'.
   1974   0x80044C23, // Small 'cash'.
   1975   0x80064C23, // Small 'casl'.
   1976   0x80264C23, // Small 'caslb'.
   1977   0x80864C23, // Small 'caslh'.
   1978   0x80084C23, // Small 'casp'.
   1979   0x80184C23, // Small 'caspa'.
   1980   0x98184C23, // Small 'caspal'.
   1981   0x80C84C23, // Small 'caspl'.
   1982   0x800D3843, // Small 'cbnz'.
   1983   0x80006843, // Small 'cbz'.
   1984   0x80073463, // Small 'ccmn'.
   1985   0x80083463, // Small 'ccmp'.
   1986   0x816724C3, // Small 'cfinv'.
   1987   0x100260C1, // Large 'chkfea|t'.
   1988   0x8001B923, // Small 'cinc'.
   1989   0x800B3923, // Small 'cinv'.
   1990   0x84814983, // Small 'clrbhb'.
   1991   0x8182C983, // Small 'clrex'.
   1992   0x80004D83, // Small 'cls'.
   1993   0x80006983, // Small 'clz'.
   1994   0x800039A3, // Small 'cmn'.
   1995   0x800041A3, // Small 'cmp'.
   1996   0x800841A3, // Small 'cmpp'.
   1997   0x800395C3, // Small 'cneg'.
   1998   0x800051C3, // Small 'cnt'.
   1999   0x85DF0E43, // Small 'crc32b'.
   2000   0x100D60C7, // Large 'crc32c|b'.
   2001   0x101660C7, // Large 'crc32c|h'.
   2002   0x104860C7, // Large 'crc32c|w'.
   2003   0x101360C7, // Large 'crc32c|x'.
   2004   0x91DF0E43, // Small 'crc32h'.
   2005   0xAFDF0E43, // Small 'crc32w'.
   2006   0xB1DF0E43, // Small 'crc32x'.
   2007   0x80011263, // Small 'csdb'.
   2008   0x80061663, // Small 'csel'.
   2009   0x800A1663, // Small 'cset'.
   2010   0x80DA1663, // Small 'csetm'.
   2011   0x80372663, // Small 'csinc'.
   2012   0x81672663, // Small 'csinv'.
   2013   0x8072BA63, // Small 'csneg'.
   2014   0x80006A83, // Small 'ctz'.
   2015   0x80000064, // Small 'dc'.
   2016   0x81C9C064, // Small 'dcps1'.
   2017   0x81D9C064, // Small 'dcps2'.
   2018   0x81E9C064, // Small 'dcps3'.
   2019   0x800020E4, // Small 'dgh'.
   2020   0x800009A4, // Small 'dmb'.
   2021   0x8009C244, // Small 'drps'.
   2022   0x80000A64, // Small 'dsb'.
   2023   0x800039E5, // Small 'eon'.
   2024   0x800049E5, // Small 'eor'.
   2025   0x80000A65, // Small 'esb'.
   2026   0x80095305, // Small 'extr'.
   2027   0x800A1645, // Small 'eret'.
   2028   0x800025A7, // Small 'gmi'.
   2029   0x800A3928, // Small 'hint'.
   2030   0x80005188, // Small 'hlt'.
   2031   0x80000EC8, // Small 'hvc'.
   2032   0x80000069, // Small 'ic'.
   2033   0x80000A69, // Small 'isb'.
   2034   0x8042048C, // Small 'ldadd'.
   2035   0x8242048C, // Small 'ldadda'.
   2036   0x100D6051, // Large 'ldadda|b'.
   2037   0x10166051, // Large 'ldadda|h'.
   2038   0x00007051, // Large 'ldaddal'.
   2039   0x100D7051, // Large 'ldaddal|b'.
   2040   0x10167051, // Large 'ldaddal|h'.
   2041   0x8442048C, // Small 'ldaddb'.
   2042   0x9042048C, // Small 'ldaddh'.
   2043   0x9842048C, // Small 'ldaddl'.
   2044   0x206D5051, // Large 'ldadd|lb'.
   2045   0x20155051, // Large 'ldadd|lh'.
   2046   0x8009048C, // Small 'ldar'.
   2047   0x8029048C, // Small 'ldarb'.
   2048   0x8089048C, // Small 'ldarh'.
   2049   0x810C048C, // Small 'ldaxp'.
   2050   0x812C048C, // Small 'ldaxr'.
   2051   0x852C048C, // Small 'ldaxrb'.
   2052   0x912C048C, // Small 'ldaxrh'.
   2053   0x81260C8C, // Small 'ldclr'.
   2054   0x83260C8C, // Small 'ldclra'.
   2055   0x100D6058, // Large 'ldclra|b'.
   2056   0x10166058, // Large 'ldclra|h'.
   2057   0x00007058, // Large 'ldclral'.
   2058   0x100D7058, // Large 'ldclral|b'.
   2059   0x10167058, // Large 'ldclral|h'.
   2060   0x85260C8C, // Small 'ldclrb'.
   2061   0x91260C8C, // Small 'ldclrh'.
   2062   0x99260C8C, // Small 'ldclrl'.
   2063   0x206D5058, // Large 'ldclr|lb'.
   2064   0x20155058, // Large 'ldclr|lh'.
   2065   0x8127948C, // Small 'ldeor'.
   2066   0x8327948C, // Small 'ldeora'.
   2067   0x100D605F, // Large 'ldeora|b'.
   2068   0x1016605F, // Large 'ldeora|h'.
   2069   0x0000705F, // Large 'ldeoral'.
   2070   0x100D705F, // Large 'ldeoral|b'.
   2071   0x1016705F, // Large 'ldeoral|h'.
   2072   0x8527948C, // Small 'ldeorb'.
   2073   0x9127948C, // Small 'ldeorh'.
   2074   0x9927948C, // Small 'ldeorl'.
   2075   0x206D505F, // Large 'ldeor|lb'.
   2076   0x2015505F, // Large 'ldeor|lh'.
   2077   0x80001C8C, // Small 'ldg'.
   2078   0x80069C8C, // Small 'ldgm'.
   2079   0x8120B08C, // Small 'ldlar'.
   2080   0x8520B08C, // Small 'ldlarb'.
   2081   0x9120B08C, // Small 'ldlarh'.
   2082   0x8008388C, // Small 'ldnp'.
   2083   0x8000408C, // Small 'ldp'.
   2084   0x8179C08C, // Small 'ldpsw'.
   2085   0x8000488C, // Small 'ldr'.
   2086   0x8010C88C, // Small 'ldraa'.
   2087   0x8020C88C, // Small 'ldrab'.
   2088   0x8001488C, // Small 'ldrb'.
   2089   0x8004488C, // Small 'ldrh'.
   2090   0x8029C88C, // Small 'ldrsb'.
   2091   0x8089C88C, // Small 'ldrsh'.
   2092   0x8179C88C, // Small 'ldrsw'.
   2093   0x8142CC8C, // Small 'ldset'.
   2094   0x8342CC8C, // Small 'ldseta'.
   2095   0x100D6066, // Large 'ldseta|b'.
   2096   0x10166066, // Large 'ldseta|h'.
   2097   0x00007066, // Large 'ldsetal'.
   2098   0x100D7066, // Large 'ldsetal|b'.
   2099   0x10167066, // Large 'ldsetal|h'.
   2100   0x8542CC8C, // Small 'ldsetb'.
   2101   0x9142CC8C, // Small 'ldseth'.
   2102   0x9942CC8C, // Small 'ldsetl'.
   2103   0x206D5066, // Large 'ldset|lb'.
   2104   0x20155066, // Large 'ldset|lh'.
   2105   0xB016CC8C, // Small 'ldsmax'.
   2106   0x0000700E, // Large 'ldsmaxa'.
   2107   0x100D700E, // Large 'ldsmaxa|b'.
   2108   0x1016700E, // Large 'ldsmaxa|h'.
   2109   0x0000800E, // Large 'ldsmaxal'.
   2110   0x100D800E, // Large 'ldsmaxal|b'.
   2111   0x1016800E, // Large 'ldsmaxal|h'.
   2112   0x100D600E, // Large 'ldsmax|b'.
   2113   0x1016600E, // Large 'ldsmax|h'.
   2114   0x100E600E, // Large 'ldsmax|l'.
   2115   0x206D600E, // Large 'ldsmax|lb'.
   2116   0x2015600E, // Large 'ldsmax|lh'.
   2117   0x9C96CC8C, // Small 'ldsmin'.
   2118   0x00007017, // Large 'ldsmina'.
   2119   0x100D7017, // Large 'ldsmina|b'.
   2120   0x10167017, // Large 'ldsmina|h'.
   2121   0x00008017, // Large 'ldsminal'.
   2122   0x100D8017, // Large 'ldsminal|b'.
   2123   0x10168017, // Large 'ldsminal|h'.
   2124   0x100D6017, // Large 'ldsmin|b'.
   2125   0x10166017, // Large 'ldsmin|h'.
   2126   0x100E6017, // Large 'ldsmin|l'.
   2127   0x206D6017, // Large 'ldsmin|lb'.
   2128   0x20156017, // Large 'ldsmin|lh'.
   2129   0x8009508C, // Small 'ldtr'.
   2130   0x8029508C, // Small 'ldtrb'.
   2131   0x8089508C, // Small 'ldtrh'.
   2132   0x8539508C, // Small 'ldtrsb'.
   2133   0x9139508C, // Small 'ldtrsh'.
   2134   0xAF39508C, // Small 'ldtrsw'.
   2135   0xB016D48C, // Small 'ldumax'.
   2136   0x0000701F, // Large 'ldumaxa'.
   2137   0x100D701F, // Large 'ldumaxa|b'.
   2138   0x1016701F, // Large 'ldumaxa|h'.
   2139   0x0000801F, // Large 'ldumaxal'.
   2140   0x100D801F, // Large 'ldumaxal|b'.
   2141   0x1016801F, // Large 'ldumaxal|h'.
   2142   0x100D601F, // Large 'ldumax|b'.
   2143   0x1016601F, // Large 'ldumax|h'.
   2144   0x100E601F, // Large 'ldumax|l'.
   2145   0x206D601F, // Large 'ldumax|lb'.
   2146   0x2015601F, // Large 'ldumax|lh'.
   2147   0x9C96D48C, // Small 'ldumin'.
   2148   0x00007027, // Large 'ldumina'.
   2149   0x100D7027, // Large 'ldumina|b'.
   2150   0x10167027, // Large 'ldumina|h'.
   2151   0x00008027, // Large 'lduminal'.
   2152   0x100D8027, // Large 'lduminal|b'.
   2153   0x10168027, // Large 'lduminal|h'.
   2154   0x100D6027, // Large 'ldumin|b'.
   2155   0x10166027, // Large 'ldumin|h'.
   2156   0x100E6027, // Large 'ldumin|l'.
   2157   0x206D6027, // Large 'ldumin|lb'.
   2158   0x20156027, // Large 'ldumin|lh'.
   2159   0x8009548C, // Small 'ldur'.
   2160   0x8029548C, // Small 'ldurb'.
   2161   0x8089548C, // Small 'ldurh'.
   2162   0x8539548C, // Small 'ldursb'.
   2163   0x9139548C, // Small 'ldursh'.
   2164   0xAF39548C, // Small 'ldursw'.
   2165   0x8008608C, // Small 'ldxp'.
   2166   0x8009608C, // Small 'ldxr'.
   2167   0x8029608C, // Small 'ldxrb'.
   2168   0x8089608C, // Small 'ldxrh'.
   2169   0x8000326C, // Small 'lsl'.
   2170   0x800B326C, // Small 'lslv'.
   2171   0x80004A6C, // Small 'lsr'.
   2172   0x800B4A6C, // Small 'lsrv'.
   2173   0x8002102D, // Small 'madd'.
   2174   0x800395CD, // Small 'mneg'.
   2175   0x800059ED, // Small 'mov'.
   2176   0x8005D9ED, // Small 'movk'.
   2177   0x800759ED, // Small 'movn'.
   2178   0x800D59ED, // Small 'movz'.
   2179   0x80004E4D, // Small 'mrs'.
   2180   0x80004A6D, // Small 'msr'.
   2181   0x8001566D, // Small 'msub'.
   2182   0x800032AD, // Small 'mul'.
   2183   0x80003ACD, // Small 'mvn'.
   2184   0x80001CAE, // Small 'neg'.
   2185   0x80099CAE, // Small 'negs'.
   2186   0x80000CEE, // Small 'ngc'.
   2187   0x80098CEE, // Small 'ngcs'.
   2188   0x800041EE, // Small 'nop'.
   2189   0x80003A4F, // Small 'orn'.
   2190   0x80004A4F, // Small 'orr'.
   2191   0x80120C30, // Small 'pacda'.
   2192   0x80220C30, // Small 'pacdb'.
   2193   0x83A20C30, // Small 'pacdza'.
   2194   0x85A20C30, // Small 'pacdzb'.
   2195   0x80138C30, // Small 'pacga'.
   2196   0x80069A50, // Small 'prfm'.
   2197   0x80214E70, // Small 'pssbb'.
   2198   0x800A2452, // Small 'rbit'.
   2199   0x800050B2, // Small 'ret'.
   2200   0x800058B2, // Small 'rev'.
   2201   0x2007313E, // Large 'rev|16'.
   2202   0x81DF58B2, // Small 'rev32'.
   2203   0x208F313E, // Large 'rev|64'.
   2204   0x800049F2, // Small 'ror'.
   2205   0x800B49F2, // Small 'rorv'.
   2206   0x80000C53, // Small 'sbc'.
   2207   0x80098C53, // Small 'sbcs'.
   2208   0x81A49853, // Small 'sbfiz'.
   2209   0x80069853, // Small 'sbfm'.
   2210   0x800C1853, // Small 'sbfx'.
   2211   0x800B2493, // Small 'sdiv'.
   2212   0x1141413A, // Large 'setf|8'.
   2213   0x2007413A, // Large 'setf|16'.
   2214   0x800058B3, // Small 'sev'.
   2215   0x800658B3, // Small 'sevl'.
   2216   0x984205B3, // Small 'smaddl'.
   2217   0x800C05B3, // Small 'smax'.
   2218   0x80000DB3, // Small 'smc'.
   2219   0x800725B3, // Small 'smin'.
   2220   0x9872B9B3, // Small 'smnegl'.
   2221   0x982ACDB3, // Small 'smsubl'.
   2222   0x808655B3, // Small 'smulh'.
   2223   0x80C655B3, // Small 'smull'.
   2224   0x80010A73, // Small 'ssbb'.
   2225   0x8003F693, // Small 'st2g'.
   2226   0x80420693, // Small 'stadd'.
   2227   0x98420693, // Small 'staddl'.
   2228   0x84420693, // Small 'staddb'.
   2229   0x206D50CD, // Large 'stadd|lb'.
   2230   0x90420693, // Small 'staddh'.
   2231   0x201550CD, // Large 'stadd|lh'.
   2232   0x81260E93, // Small 'stclr'.
   2233   0x99260E93, // Small 'stclrl'.
   2234   0x85260E93, // Small 'stclrb'.
   2235   0x206D50D2, // Large 'stclr|lb'.
   2236   0x91260E93, // Small 'stclrh'.
   2237   0x201550D2, // Large 'stclr|lh'.
   2238   0x81279693, // Small 'steor'.
   2239   0x99279693, // Small 'steorl'.
   2240   0x85279693, // Small 'steorb'.
   2241   0x206D50D7, // Large 'steor|lb'.
   2242   0x91279693, // Small 'steorh'.
   2243   0x201550D7, // Large 'steor|lh'.
   2244   0x80001E93, // Small 'stg'.
   2245   0x80069E93, // Small 'stgm'.
   2246   0x80081E93, // Small 'stgp'.
   2247   0x81263293, // Small 'stllr'.
   2248   0x85263293, // Small 'stllrb'.
   2249   0x91263293, // Small 'stllrh'.
   2250   0x80093293, // Small 'stlr'.
   2251   0x80293293, // Small 'stlrb'.
   2252   0x80893293, // Small 'stlrh'.
   2253   0x810C3293, // Small 'stlxp'.
   2254   0x812C3293, // Small 'stlxr'.
   2255   0x852C3293, // Small 'stlxrb'.
   2256   0x912C3293, // Small 'stlxrh'.
   2257   0x80083A93, // Small 'stnp'.
   2258   0x80004293, // Small 'stp'.
   2259   0x80004A93, // Small 'str'.
   2260   0x80014A93, // Small 'strb'.
   2261   0x80044A93, // Small 'strh'.
   2262   0x8142CE93, // Small 'stset'.
   2263   0x9942CE93, // Small 'stsetl'.
   2264   0x8542CE93, // Small 'stsetb'.
   2265   0x206D50DC, // Large 'stset|lb'.
   2266   0x9142CE93, // Small 'stseth'.
   2267   0x201550DC, // Large 'stset|lh'.
   2268   0xB016CE93, // Small 'stsmax'.
   2269   0x100E606F, // Large 'stsmax|l'.
   2270   0x100D606F, // Large 'stsmax|b'.
   2271   0x206D606F, // Large 'stsmax|lb'.
   2272   0x1016606F, // Large 'stsmax|h'.
   2273   0x2015606F, // Large 'stsmax|lh'.
   2274   0x9C96CE93, // Small 'stsmin'.
   2275   0x100E6075, // Large 'stsmin|l'.
   2276   0x100D6075, // Large 'stsmin|b'.
   2277   0x206D6075, // Large 'stsmin|lb'.
   2278   0x10166075, // Large 'stsmin|h'.
   2279   0x20156075, // Large 'stsmin|lh'.
   2280   0x80095293, // Small 'sttr'.
   2281   0x80295293, // Small 'sttrb'.
   2282   0x80895293, // Small 'sttrh'.
   2283   0xB016D693, // Small 'stumax'.
   2284   0x100E607B, // Large 'stumax|l'.
   2285   0x100D607B, // Large 'stumax|b'.
   2286   0x206D607B, // Large 'stumax|lb'.
   2287   0x1016607B, // Large 'stumax|h'.
   2288   0x2015607B, // Large 'stumax|lh'.
   2289   0x9C96D693, // Small 'stumin'.
   2290   0x100E6081, // Large 'stumin|l'.
   2291   0x100D6081, // Large 'stumin|b'.
   2292   0x206D6081, // Large 'stumin|lb'.
   2293   0x10166081, // Large 'stumin|h'.
   2294   0x20156081, // Large 'stumin|lh'.
   2295   0x80095693, // Small 'stur'.
   2296   0x80295693, // Small 'sturb'.
   2297   0x80895693, // Small 'sturh'.
   2298   0x80086293, // Small 'stxp'.
   2299   0x80096293, // Small 'stxr'.
   2300   0x80296293, // Small 'stxrb'.
   2301   0x80896293, // Small 'stxrh'.
   2302   0x807EEA93, // Small 'stz2g'.
   2303   0x8003EA93, // Small 'stzg'.
   2304   0x80D3EA93, // Small 'stzgm'.
   2305   0x80000AB3, // Small 'sub'.
   2306   0x80038AB3, // Small 'subg'.
   2307   0x80080AB3, // Small 'subp'.
   2308   0x81380AB3, // Small 'subps'.
   2309   0x80098AB3, // Small 'subs'.
   2310   0x80000ED3, // Small 'svc'.
   2311   0x800042F3, // Small 'swp'.
   2312   0x8000C2F3, // Small 'swpa'.
   2313   0x8020C2F3, // Small 'swpab'.
   2314   0x8080C2F3, // Small 'swpah'.
   2315   0x80C0C2F3, // Small 'swpal'.
   2316   0x84C0C2F3, // Small 'swpalb'.
   2317   0x90C0C2F3, // Small 'swpalh'.
   2318   0x800142F3, // Small 'swpb'.
   2319   0x800442F3, // Small 'swph'.
   2320   0x800642F3, // Small 'swpl'.
   2321   0x802642F3, // Small 'swplb'.
   2322   0x808642F3, // Small 'swplh'.
   2323   0x80015313, // Small 'sxtb'.
   2324   0x80045313, // Small 'sxth'.
   2325   0x800BD313, // Small 'sxtw'.
   2326   0x80004F33, // Small 'sys'.
   2327   0x80048994, // Small 'tlbi'.
   2328   0x80005274, // Small 'tst'.
   2329   0x800D3854, // Small 'tbnz'.
   2330   0x80006854, // Small 'tbz'.
   2331   0x81A49855, // Small 'ubfiz'.
   2332   0x80069855, // Small 'ubfm'.
   2333   0x800C1855, // Small 'ubfx'.
   2334   0x80001895, // Small 'udf'.
   2335   0x800B2495, // Small 'udiv'.
   2336   0x984205B5, // Small 'umaddl'.
   2337   0x800C05B5, // Small 'umax'.
   2338   0x800725B5, // Small 'umin'.
   2339   0x9872B9B5, // Small 'umnegl'.
   2340   0x80C655B5, // Small 'umull'.
   2341   0x808655B5, // Small 'umulh'.
   2342   0x982ACDB5, // Small 'umsubl'.
   2343   0x80015315, // Small 'uxtb'.
   2344   0x80045315, // Small 'uxth'.
   2345   0x800014D7, // Small 'wfe'.
   2346   0x800024D7, // Small 'wfi'.
   2347   0x8E161838, // Small 'xaflag'.
   2348   0x80418618, // Small 'xpacd'.
   2349   0x80918618, // Small 'xpaci'.
   2350   0x208850E1, // Large 'xpacl|ri'.
   2351   0x80461539, // Small 'yield'.
   2352   0x80004C41, // Small 'abs'.
   2353   0x80001081, // Small 'add'.
   2354   0x80E41081, // Small 'addhn'.
   2355   0xBAE41081, // Small 'addhn2'.
   2356   0x80081081, // Small 'addp'.
   2357   0x800B1081, // Small 'addv'.
   2358   0x80024CA1, // Small 'aesd'.
   2359   0x8002CCA1, // Small 'aese'.
   2360   0x86D4CCA1, // Small 'aesimc'.
   2361   0x8036CCA1, // Small 'aesmc'.
   2362   0x800011C1, // Small 'and'.
   2363   0x800C0462, // Small 'bcax'.
   2364   0x814B0CC2, // Small 'bfcvt'.
   2365   0x9D4B0CC2, // Small 'bfcvtn'.
   2366   0x20B150E6, // Large 'bfcvt|n2'.
   2367   0x814790C2, // Small 'bfdot'.
   2368   0x206D50EB, // Large 'bfmla|lb'.
   2369   0x20F050EB, // Large 'bfmla|lt'.
   2370   0x82C6B4C2, // Small 'bfmmla'.
   2371   0x80000D22, // Small 'bic'.
   2372   0x80001922, // Small 'bif'.
   2373   0x80005122, // Small 'bit'.
   2374   0x80003262, // Small 'bsl'.
   2375   0x80004D83, // Small 'cls'.
   2376   0x80006983, // Small 'clz'.
   2377   0x800895A3, // Small 'cmeq'.
   2378   0x80029DA3, // Small 'cmge'.
   2379   0x800A1DA3, // Small 'cmgt'.
   2380   0x8004A1A3, // Small 'cmhi'.
   2381   0x8009A1A3, // Small 'cmhs'.
   2382   0x8002B1A3, // Small 'cmle'.
   2383   0x800A31A3, // Small 'cmlt'.
   2384   0x8149D1A3, // Small 'cmtst'.
   2385   0x800051C3, // Small 'cnt'.
   2386   0x800042A4, // Small 'dup'.
   2387   0x800049E5, // Small 'eor'.
   2388   0x800F49E5, // Small 'eor3'.
   2389   0x80005305, // Small 'ext'.
   2390   0x80020826, // Small 'fabd'.
   2391   0x80098826, // Small 'fabs'.
   2392   0x80538C26, // Small 'facge'.
   2393   0x81438C26, // Small 'facgt'.
   2394   0x80021026, // Small 'fadd'.
   2395   0x81021026, // Small 'faddp'.
   2396   0x80420466, // Small 'fcadd'.
   2397   0x81068C66, // Small 'fccmp'.
   2398   0x8B068C66, // Small 'fccmpe'.
   2399   0x8112B466, // Small 'fcmeq'.
   2400   0x8053B466, // Small 'fcmge'.
   2401   0x8143B466, // Small 'fcmgt'.
   2402   0x80163466, // Small 'fcmla'.
   2403   0x80563466, // Small 'fcmle'.
   2404   0x81463466, // Small 'fcmlt'.
   2405   0x80083466, // Small 'fcmp'.
   2406   0x80583466, // Small 'fcmpe'.
   2407   0x80C2CC66, // Small 'fcsel'.
   2408   0x800A5866, // Small 'fcvt'.
   2409   0xA61A5866, // Small 'fcvtas'.
   2410   0xAA1A5866, // Small 'fcvtau'.
   2411   0x80CA5866, // Small 'fcvtl'.
   2412   0xBACA5866, // Small 'fcvtl2'.
   2413   0xA6DA5866, // Small 'fcvtms'.
   2414   0xAADA5866, // Small 'fcvtmu'.
   2415   0x80EA5866, // Small 'fcvtn'.
   2416   0xBAEA5866, // Small 'fcvtn2'.
   2417   0xA6EA5866, // Small 'fcvtns'.
   2418   0xAAEA5866, // Small 'fcvtnu'.
   2419   0xA70A5866, // Small 'fcvtps'.
   2420   0xAB0A5866, // Small 'fcvtpu'.
   2421   0x9D8A5866, // Small 'fcvtxn'.
   2422   0x20B150F2, // Large 'fcvtx|n2'.
   2423   0xA7AA5866, // Small 'fcvtzs'.
   2424   0xABAA5866, // Small 'fcvtzu'.
   2425   0x800B2486, // Small 'fdiv'.
   2426   0x101060F7, // Large 'fjcvtz|s'.
   2427   0x804205A6, // Small 'fmadd'.
   2428   0x800C05A6, // Small 'fmax'.
   2429   0x9AEC05A6, // Small 'fmaxnm'.
   2430   0x104460FD, // Large 'fmaxnm|p'.
   2431   0x10E960FD, // Large 'fmaxnm|v'.
   2432   0x810C05A6, // Small 'fmaxp'.
   2433   0x816C05A6, // Small 'fmaxv'.
   2434   0x800725A6, // Small 'fmin'.
   2435   0x9AE725A6, // Small 'fminnm'.
   2436   0x10446103, // Large 'fminnm|p'.
   2437   0x10E96103, // Large 'fminnm|v'.
   2438   0x810725A6, // Small 'fminp'.
   2439   0x816725A6, // Small 'fminv'.
   2440   0x8000B1A6, // Small 'fmla'.
   2441   0x80C0B1A6, // Small 'fmlal'.
   2442   0xBAC0B1A6, // Small 'fmlal2'.
   2443   0x8009B1A6, // Small 'fmls'.
   2444   0x80C9B1A6, // Small 'fmlsl'.
   2445   0xBAC9B1A6, // Small 'fmlsl2'.
   2446   0x800B3DA6, // Small 'fmov'.
   2447   0x802ACDA6, // Small 'fmsub'.
   2448   0x800655A6, // Small 'fmul'.
   2449   0x818655A6, // Small 'fmulx'.
   2450   0x800395C6, // Small 'fneg'.
   2451   0x8840B5C6, // Small 'fnmadd'.
   2452   0x8559B5C6, // Small 'fnmsub'.
   2453   0x80CAB5C6, // Small 'fnmul'.
   2454   0x8B019646, // Small 'frecpe'.
   2455   0xA7019646, // Small 'frecps'.
   2456   0xB1019646, // Small 'frecpx'.
   2457   0x10137087, // Large 'frint32|x'.
   2458   0x108E7087, // Large 'frint32|z'.
   2459   0x308F5087, // Large 'frint|64x'.
   2460   0x30925087, // Large 'frint|64z'.
   2461   0x83472646, // Small 'frinta'.
   2462   0x93472646, // Small 'frinti'.
   2463   0x9B472646, // Small 'frintm'.
   2464   0x9D472646, // Small 'frintn'.
   2465   0xA1472646, // Small 'frintp'.
   2466   0xB1472646, // Small 'frintx'.
   2467   0xB5472646, // Small 'frintz'.
   2468   0x20D85109, // Large 'frsqr|te'.
   2469   0x20705109, // Large 'frsqr|ts'.
   2470   0x81494666, // Small 'fsqrt'.
   2471   0x80015666, // Small 'fsub'.
   2472   0x80004DC9, // Small 'ins'.
   2473   0x8000708C, // Small 'ld1'.
   2474   0x8009708C, // Small 'ld1r'.
   2475   0x8000748C, // Small 'ld2'.
   2476   0x8009748C, // Small 'ld2r'.
   2477   0x8000788C, // Small 'ld3'.
   2478   0x8009788C, // Small 'ld3r'.
   2479   0x80007C8C, // Small 'ld4'.
   2480   0x80097C8C, // Small 'ld4r'.
   2481   0x8008388C, // Small 'ldnp'.
   2482   0x8000408C, // Small 'ldp'.
   2483   0x8000488C, // Small 'ldr'.
   2484   0x8009548C, // Small 'ldur'.
   2485   0x8000058D, // Small 'mla'.
   2486   0x80004D8D, // Small 'mls'.
   2487   0x800059ED, // Small 'mov'.
   2488   0x8004D9ED, // Small 'movi'.
   2489   0x800032AD, // Small 'mul'.
   2490   0x80003ACD, // Small 'mvn'.
   2491   0x8004BACD, // Small 'mvni'.
   2492   0x80001CAE, // Small 'neg'.
   2493   0x800051EE, // Small 'not'.
   2494   0x80003A4F, // Small 'orn'.
   2495   0x80004A4F, // Small 'orr'.
   2496   0x800655B0, // Small 'pmul'.
   2497   0x80C655B0, // Small 'pmull'.
   2498   0xBAC655B0, // Small 'pmull2'.
   2499   0x9C821032, // Small 'raddhn'.
   2500   0x30B0410E, // Large 'radd|hn2'.
   2501   0x800E6032, // Small 'rax1'.
   2502   0x800A2452, // Small 'rbit'.
   2503   0x2007313E, // Large 'rev|16'.
   2504   0x81DF58B2, // Small 'rev32'.
   2505   0x208F313E, // Large 'rev|64'.
   2506   0x80E92272, // Small 'rshrn'.
   2507   0xBAE92272, // Small 'rshrn2'.
   2508   0x9C815672, // Small 'rsubhn'.
   2509   0x30B04112, // Large 'rsub|hn2'.
   2510   0x80008833, // Small 'saba'.
   2511   0x80C08833, // Small 'sabal'.
   2512   0xBAC08833, // Small 'sabal2'.
   2513   0x80020833, // Small 'sabd'.
   2514   0x80C20833, // Small 'sabdl'.
   2515   0xBAC20833, // Small 'sabdl2'.
   2516   0xA0C09033, // Small 'sadalp'.
   2517   0x80C21033, // Small 'saddl'.
   2518   0xBAC21033, // Small 'saddl2'.
   2519   0xA0C21033, // Small 'saddlp'.
   2520   0xACC21033, // Small 'saddlv'.
   2521   0x81721033, // Small 'saddw'.
   2522   0xBB721033, // Small 'saddw2'.
   2523   0x806A5873, // Small 'scvtf'.
   2524   0x800A3C93, // Small 'sdot'.
   2525   0x803E0513, // Small 'sha1c'.
   2526   0x808E0513, // Small 'sha1h'.
   2527   0x80DE0513, // Small 'sha1m'.
   2528   0x810E0513, // Small 'sha1p'.
   2529   0x30354116, // Large 'sha1|su0'.
   2530   0x303E4116, // Large 'sha1|su1'.
   2531   0x1016602F, // Large 'sha256|h'.
   2532   0x2095602F, // Large 'sha256|h2'.
   2533   0x0000902F, // Large 'sha256su0'.
   2534   0x1005802F, // Large 'sha256su|1'.
   2535   0x10166038, // Large 'sha512|h'.
   2536   0x20956038, // Large 'sha512|h2'.
   2537   0x30356038, // Large 'sha512|su0'.
   2538   0x303E6038, // Large 'sha512|su1'.
   2539   0x80420513, // Small 'shadd'.
   2540   0x80003113, // Small 'shl'.
   2541   0x80063113, // Small 'shll'.
   2542   0x81D63113, // Small 'shll2'.
   2543   0x80074913, // Small 'shrn'.
   2544   0x81D74913, // Small 'shrn2'.
   2545   0x802ACD13, // Small 'shsub'.
   2546   0x80002593, // Small 'sli'.
   2547   0x10058041, // Large 'sm3partw|1'.
   2548   0x10328041, // Large 'sm3partw|2'.
   2549   0xB939F9B3, // Small 'sm3ss1'.
   2550   0x1000611A, // Large 'sm3tt1|a'.
   2551   0x100D611A, // Large 'sm3tt1|b'.
   2552   0x2120511A, // Large 'sm3tt|2a'.
   2553   0x2122511A, // Large 'sm3tt|2b'.
   2554   0x8002FDB3, // Small 'sm4e'.
   2555   0x00007124, // Large 'sm4ekey'.
   2556   0x800C05B3, // Small 'smax'.
   2557   0x810C05B3, // Small 'smaxp'.
   2558   0x816C05B3, // Small 'smaxv'.
   2559   0x800725B3, // Small 'smin'.
   2560   0x810725B3, // Small 'sminp'.
   2561   0x816725B3, // Small 'sminv'.
   2562   0x80C0B1B3, // Small 'smlal'.
   2563   0xBAC0B1B3, // Small 'smlal2'.
   2564   0x80C9B1B3, // Small 'smlsl'.
   2565   0xBAC9B1B3, // Small 'smlsl2'.
   2566   0x801635B3, // Small 'smmla'.
   2567   0x800B3DB3, // Small 'smov'.
   2568   0x80C655B3, // Small 'smull'.
   2569   0xBAC655B3, // Small 'smull2'.
   2570   0x81310633, // Small 'sqabs'.
   2571   0x80420633, // Small 'sqadd'.
   2572   0x00007097, // Large 'sqdmlal'.
   2573   0x10327097, // Large 'sqdmlal|2'.
   2574   0x209E5097, // Large 'sqdml|sl'.
   2575   0x309E5097, // Large 'sqdml|sl2'.
   2576   0x101660A1, // Large 'sqdmul|h'.
   2577   0x100E60A1, // Large 'sqdmul|l'.
   2578   0x209F60A1, // Large 'sqdmul|l2'.
   2579   0x8072BA33, // Small 'sqneg'.
   2580   0x101670A7, // Large 'sqrdmla|h'.
   2581   0x202F60A7, // Large 'sqrdml|sh'.
   2582   0x30AE50A7, // Large 'sqrdm|ulh'.
   2583   0x9889CA33, // Small 'sqrshl'.
   2584   0x101C6049, // Large 'sqrshr|n'.
   2585   0x20B16049, // Large 'sqrshr|n2'.
   2586   0x00008049, // Large 'sqrshrun'.
   2587   0x10328049, // Large 'sqrshrun|2'.
   2588   0x80C44E33, // Small 'sqshl'.
   2589   0xAAC44E33, // Small 'sqshlu'.
   2590   0x9D244E33, // Small 'sqshrn'.
   2591   0x20B150B3, // Large 'sqshr|n2'.
   2592   0x101C60B3, // Large 'sqshru|n'.
   2593   0x20B160B3, // Large 'sqshru|n2'.
   2594   0x802ACE33, // Small 'sqsub'.
   2595   0x80EA6233, // Small 'sqxtn'.
   2596   0xBAEA6233, // Small 'sqxtn2'.
   2597   0x9D5A6233, // Small 'sqxtun'.
   2598   0x20B1512B, // Large 'sqxtu|n2'.
   2599   0x8840A253, // Small 'srhadd'.
   2600   0x80002653, // Small 'sri'.
   2601   0x80C44E53, // Small 'srshl'.
   2602   0x81244E53, // Small 'srshr'.
   2603   0x80194E53, // Small 'srsra'.
   2604   0x80062273, // Small 'sshl'.
   2605   0x80C62273, // Small 'sshll'.
   2606   0xBAC62273, // Small 'sshll2'.
   2607   0x80092273, // Small 'sshr'.
   2608   0x8000CA73, // Small 'ssra'.
   2609   0x80C15673, // Small 'ssubl'.
   2610   0xBAC15673, // Small 'ssubl2'.
   2611   0x81715673, // Small 'ssubw'.
   2612   0xBB715673, // Small 'ssubw2'.
   2613   0x80007293, // Small 'st1'.
   2614   0x80007693, // Small 'st2'.
   2615   0x80007A93, // Small 'st3'.
   2616   0x80007E93, // Small 'st4'.
   2617   0x80083A93, // Small 'stnp'.
   2618   0x80004293, // Small 'stp'.
   2619   0x80004A93, // Small 'str'.
   2620   0x80095693, // Small 'stur'.
   2621   0x80000AB3, // Small 'sub'.
   2622   0x80E40AB3, // Small 'subhn'.
   2623   0xBAE40AB3, // Small 'subhn2'.
   2624   0x814792B3, // Small 'sudot'.
   2625   0x8840C6B3, // Small 'suqadd'.
   2626   0x80065313, // Small 'sxtl'.
   2627   0x81D65313, // Small 'sxtl2'.
   2628   0x80003054, // Small 'tbl'.
   2629   0x80006054, // Small 'tbx'.
   2630   0x800E3A54, // Small 'trn1'.
   2631   0x800EBA54, // Small 'trn2'.
   2632   0x80008835, // Small 'uaba'.
   2633   0x80C08835, // Small 'uabal'.
   2634   0xBAC08835, // Small 'uabal2'.
   2635   0x80020835, // Small 'uabd'.
   2636   0x80C20835, // Small 'uabdl'.
   2637   0xBAC20835, // Small 'uabdl2'.
   2638   0xA0C09035, // Small 'uadalp'.
   2639   0x80C21035, // Small 'uaddl'.
   2640   0xBAC21035, // Small 'uaddl2'.
   2641   0xA0C21035, // Small 'uaddlp'.
   2642   0xACC21035, // Small 'uaddlv'.
   2643   0x81721035, // Small 'uaddw'.
   2644   0xBB721035, // Small 'uaddw2'.
   2645   0x806A5875, // Small 'ucvtf'.
   2646   0x800A3C95, // Small 'udot'.
   2647   0x80420515, // Small 'uhadd'.
   2648   0x802ACD15, // Small 'uhsub'.
   2649   0x800C05B5, // Small 'umax'.
   2650   0x810C05B5, // Small 'umaxp'.
   2651   0x816C05B5, // Small 'umaxv'.
   2652   0x800725B5, // Small 'umin'.
   2653   0x810725B5, // Small 'uminp'.
   2654   0x816725B5, // Small 'uminv'.
   2655   0x80C0B1B5, // Small 'umlal'.
   2656   0xBAC0B1B5, // Small 'umlal2'.
   2657   0x80C9B1B5, // Small 'umlsl'.
   2658   0xBAC9B1B5, // Small 'umlsl2'.
   2659   0x801635B5, // Small 'ummla'.
   2660   0x800B3DB5, // Small 'umov'.
   2661   0x80C655B5, // Small 'umull'.
   2662   0xBAC655B5, // Small 'umull2'.
   2663   0x80420635, // Small 'uqadd'.
   2664   0x9889CA35, // Small 'uqrshl'.
   2665   0x101C60B9, // Large 'uqrshr|n'.
   2666   0x20B160B9, // Large 'uqrshr|n2'.
   2667   0x80C44E35, // Small 'uqshl'.
   2668   0x9D244E35, // Small 'uqshrn'.
   2669   0x20B15130, // Large 'uqshr|n2'.
   2670   0x802ACE35, // Small 'uqsub'.
   2671   0x80EA6235, // Small 'uqxtn'.
   2672   0xBAEA6235, // Small 'uqxtn2'.
   2673   0x8B019655, // Small 'urecpe'.
   2674   0x8840A255, // Small 'urhadd'.
   2675   0x80C44E55, // Small 'urshl'.
   2676   0x81244E55, // Small 'urshr'.
   2677   0x20D85135, // Large 'ursqr|te'.
   2678   0x80194E55, // Small 'ursra'.
   2679   0x81479275, // Small 'usdot'.
   2680   0x80062275, // Small 'ushl'.
   2681   0x80C62275, // Small 'ushll'.
   2682   0xBAC62275, // Small 'ushll2'.
   2683   0x80092275, // Small 'ushr'.
   2684   0x82C6B675, // Small 'usmmla'.
   2685   0x8840C675, // Small 'usqadd'.
   2686   0x8000CA75, // Small 'usra'.
   2687   0x80C15675, // Small 'usubl'.
   2688   0xBAC15675, // Small 'usubl2'.
   2689   0x81715675, // Small 'usubw'.
   2690   0xBB715675, // Small 'usubw2'.
   2691   0x80065315, // Small 'uxtl'.
   2692   0x81D65315, // Small 'uxtl2'.
   2693   0x800E4355, // Small 'uzp1'.
   2694   0x800EC355, // Small 'uzp2'.
   2695   0x80004838, // Small 'xar'.
   2696   0x80003A98, // Small 'xtn'.
   2697   0x800EBA98, // Small 'xtn2'.
   2698   0x800E413A, // Small 'zip1'.
   2699   0x800EC13A  // Small 'zip2'.
   2700 };
   2701 // ----------------------------------------------------------------------------
   2702 // ${NameData:End}
   2703 #endif // !ASMJIT_NO_TEXT
   2704 
   2705 ASMJIT_END_SUB_NAMESPACE
   2706 
   2707 #endif // !ASMJIT_NO_AARCH64