Home | History | Annotate | Line # | Download | only in opcodes
aarch64-tbl.h revision 1.6
      1  1.1  christos /* aarch64-tbl.h -- AArch64 opcode description table and instruction
      2  1.1  christos    operand description table.
      3  1.6  christos    Copyright (C) 2012-2016 Free Software Foundation, Inc.
      4  1.1  christos 
      5  1.1  christos    This file is part of the GNU opcodes library.
      6  1.1  christos 
      7  1.1  christos    This library is free software; you can redistribute it and/or modify
      8  1.1  christos    it under the terms of the GNU General Public License as published by
      9  1.1  christos    the Free Software Foundation; either version 3, or (at your option)
     10  1.1  christos    any later version.
     11  1.1  christos 
     12  1.1  christos    It is distributed in the hope that it will be useful, but WITHOUT
     13  1.1  christos    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     14  1.1  christos    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     15  1.1  christos    License for more details.
     16  1.1  christos 
     17  1.1  christos    You should have received a copy of the GNU General Public License
     18  1.1  christos    along with this file; see the file COPYING.  If not, write to the
     19  1.1  christos    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
     20  1.1  christos    MA 02110-1301, USA.  */
     21  1.1  christos 
     22  1.1  christos #include "aarch64-opc.h"
     23  1.1  christos 
     24  1.6  christos #ifndef VERIFIER
     25  1.6  christos #error  VERIFIER must be defined.
     26  1.6  christos #endif
     27  1.6  christos 
     28  1.1  christos /* Operand type.  */
     29  1.1  christos 
     30  1.1  christos #define OPND(x)	AARCH64_OPND_##x
     31  1.1  christos #define OP0() {}
     32  1.1  christos #define OP1(a) {OPND(a)}
     33  1.1  christos #define OP2(a,b) {OPND(a), OPND(b)}
     34  1.1  christos #define OP3(a,b,c) {OPND(a), OPND(b), OPND(c)}
     35  1.1  christos #define OP4(a,b,c,d) {OPND(a), OPND(b), OPND(c), OPND(d)}
     36  1.1  christos #define OP5(a,b,c,d,e) {OPND(a), OPND(b), OPND(c), OPND(d), OPND(e)}
     37  1.1  christos 
     38  1.1  christos #define QLF(x) AARCH64_OPND_QLF_##x
     39  1.1  christos #define QLF1(a) {QLF(a)}
     40  1.1  christos #define QLF2(a,b) {QLF(a), QLF(b)}
     41  1.1  christos #define QLF3(a,b,c) {QLF(a), QLF(b), QLF(c)}
     42  1.1  christos #define QLF4(a,b,c,d) {QLF(a), QLF(b), QLF(c), QLF(d)}
     43  1.1  christos #define QLF5(a,b,c,d,e) {QLF(a), QLF(b), QLF(c), QLF(d), QLF(e)}
     44  1.1  christos 
     45  1.1  christos /* Qualifiers list.  */
     46  1.1  christos 
     47  1.1  christos /* e.g. MSR <systemreg>, <Xt>.  */
     48  1.1  christos #define QL_SRC_X		\
     49  1.1  christos {				\
     50  1.1  christos   QLF2(NIL,X),			\
     51  1.1  christos }
     52  1.1  christos 
     53  1.1  christos /* e.g. MRS <Xt>, <systemreg>.  */
     54  1.1  christos #define QL_DST_X		\
     55  1.1  christos {				\
     56  1.1  christos   QLF2(X,NIL),			\
     57  1.1  christos }
     58  1.1  christos 
     59  1.1  christos /* e.g. SYS #<op1>, <Cn>, <Cm>, #<op2>{, <Xt>}.  */
     60  1.1  christos #define QL_SYS			\
     61  1.1  christos {				\
     62  1.1  christos   QLF5(NIL,NIL,NIL,NIL,X),	\
     63  1.1  christos }
     64  1.1  christos 
     65  1.1  christos /* e.g. SYSL <Xt>, #<op1>, <Cn>, <Cm>, #<op2>.  */
     66  1.1  christos #define QL_SYSL			\
     67  1.1  christos {				\
     68  1.1  christos   QLF5(X,NIL,NIL,NIL,NIL),	\
     69  1.1  christos }
     70  1.1  christos 
     71  1.1  christos /* e.g. ADRP <Xd>, <label>.  */
     72  1.1  christos #define QL_ADRP			\
     73  1.1  christos {				\
     74  1.1  christos   QLF2(X,NIL),			\
     75  1.1  christos }
     76  1.1  christos 
     77  1.1  christos /* e.g. B.<cond> <label>.  */
     78  1.1  christos #define QL_PCREL_NIL		\
     79  1.1  christos {				\
     80  1.1  christos   QLF1(NIL),			\
     81  1.1  christos }
     82  1.1  christos 
     83  1.1  christos /* e.g. TBZ <Xt>, #<imm>, <label>.  */
     84  1.1  christos #define QL_PCREL_14		\
     85  1.1  christos {				\
     86  1.1  christos   QLF3(X,imm_0_63,NIL),		\
     87  1.1  christos }
     88  1.1  christos 
     89  1.1  christos /* e.g. BL <label>.  */
     90  1.1  christos #define QL_PCREL_26		\
     91  1.1  christos {				\
     92  1.1  christos   QLF1(NIL),			\
     93  1.1  christos }
     94  1.1  christos 
     95  1.1  christos /* e.g. LDRSW <Xt>, <label>.  */
     96  1.1  christos #define QL_X_PCREL		\
     97  1.1  christos {				\
     98  1.1  christos   QLF2(X,NIL),			\
     99  1.1  christos }
    100  1.1  christos 
    101  1.1  christos /* e.g. LDR <Wt>, <label>.  */
    102  1.1  christos #define QL_R_PCREL		\
    103  1.1  christos {				\
    104  1.1  christos   QLF2(W,NIL),			\
    105  1.1  christos   QLF2(X,NIL),			\
    106  1.1  christos }
    107  1.1  christos 
    108  1.1  christos /* e.g. LDR <Dt>, <label>.  */
    109  1.1  christos #define QL_FP_PCREL		\
    110  1.1  christos {				\
    111  1.1  christos   QLF2(S_S,NIL),		\
    112  1.1  christos   QLF2(S_D,NIL),		\
    113  1.1  christos   QLF2(S_Q,NIL),		\
    114  1.1  christos }
    115  1.1  christos 
    116  1.1  christos /* e.g. PRFM <prfop>, <label>.  */
    117  1.1  christos #define QL_PRFM_PCREL		\
    118  1.1  christos {				\
    119  1.1  christos   QLF2(NIL,NIL),		\
    120  1.1  christos }
    121  1.1  christos 
    122  1.1  christos /* e.g. BR <Xn>.  */
    123  1.1  christos #define QL_I1X			\
    124  1.1  christos {				\
    125  1.1  christos   QLF1(X),			\
    126  1.1  christos }
    127  1.1  christos 
    128  1.1  christos /* e.g. RBIT <Wd>, <Wn>.  */
    129  1.1  christos #define QL_I2SAME		\
    130  1.1  christos {				\
    131  1.1  christos   QLF2(W,W),			\
    132  1.1  christos   QLF2(X,X),			\
    133  1.1  christos }
    134  1.1  christos 
    135  1.1  christos /* e.g. CMN <Wn|WSP>, <Wm>{, <extend> {#<amount>}}.  */
    136  1.1  christos #define QL_I2_EXT		\
    137  1.1  christos {				\
    138  1.1  christos   QLF2(W,W),			\
    139  1.1  christos   QLF2(X,W),			\
    140  1.1  christos   QLF2(X,X),			\
    141  1.1  christos }
    142  1.1  christos 
    143  1.1  christos /* e.g. MOV <Wd|WSP>, <Wn|WSP>, at least one SP.  */
    144  1.1  christos #define QL_I2SP			\
    145  1.1  christos {				\
    146  1.1  christos   QLF2(WSP,W),			\
    147  1.1  christos   QLF2(W,WSP),			\
    148  1.1  christos   QLF2(SP,X),			\
    149  1.1  christos   QLF2(X,SP),			\
    150  1.1  christos }
    151  1.1  christos 
    152  1.1  christos /* e.g. REV <Wd>, <Wn>.  */
    153  1.1  christos #define QL_I2SAMEW		\
    154  1.1  christos {				\
    155  1.1  christos   QLF2(W,W),			\
    156  1.1  christos }
    157  1.1  christos 
    158  1.1  christos /* e.g. REV32 <Xd>, <Xn>.  */
    159  1.1  christos #define QL_I2SAMEX		\
    160  1.1  christos {				\
    161  1.1  christos   QLF2(X,X),			\
    162  1.1  christos }
    163  1.1  christos 
    164  1.1  christos #define QL_I2SAMER		\
    165  1.1  christos {				\
    166  1.1  christos   QLF2(W,W),			\
    167  1.1  christos   QLF2(X,X),			\
    168  1.1  christos }
    169  1.1  christos 
    170  1.1  christos /* e.g. CRC32B <Wd>, <Wn>, <Wm>.  */
    171  1.1  christos #define QL_I3SAMEW		\
    172  1.1  christos {				\
    173  1.1  christos   QLF3(W,W,W),			\
    174  1.1  christos }
    175  1.1  christos 
    176  1.1  christos /* e.g. SMULH <Xd>, <Xn>, <Xm>.  */
    177  1.1  christos #define QL_I3SAMEX		\
    178  1.1  christos {				\
    179  1.1  christos   QLF3(X,X,X),			\
    180  1.1  christos }
    181  1.1  christos 
    182  1.1  christos /* e.g. CRC32X <Wd>, <Wn>, <Xm>.  */
    183  1.1  christos #define QL_I3WWX		\
    184  1.1  christos {				\
    185  1.1  christos   QLF3(W,W,X),			\
    186  1.1  christos }
    187  1.1  christos 
    188  1.1  christos /* e.g. UDIV <Xd>, <Xn>, <Xm>.  */
    189  1.1  christos #define QL_I3SAMER		\
    190  1.1  christos {				\
    191  1.1  christos   QLF3(W,W,W),			\
    192  1.1  christos   QLF3(X,X,X),			\
    193  1.1  christos }
    194  1.1  christos 
    195  1.1  christos /* e.g. ADDS <Xd>, <Xn|SP>, <R><m>{, <extend> {#<amount>}}.  */
    196  1.1  christos #define QL_I3_EXT		\
    197  1.1  christos {				\
    198  1.1  christos   QLF3(W,W,W),			\
    199  1.1  christos   QLF3(X,X,W),			\
    200  1.1  christos   QLF3(X,X,X),			\
    201  1.1  christos }
    202  1.1  christos 
    203  1.1  christos /* e.g. MADD <Xd>, <Xn>, <Xm>, <Xa>.  */
    204  1.1  christos #define QL_I4SAMER		\
    205  1.1  christos {				\
    206  1.1  christos   QLF4(W,W,W,W),		\
    207  1.1  christos   QLF4(X,X,X,X),		\
    208  1.1  christos }
    209  1.1  christos 
    210  1.1  christos /* e.g. SMADDL <Xd>, <Wn>, <Wm>, <Xa>.  */
    211  1.1  christos #define QL_I3SAMEL		\
    212  1.1  christos {				\
    213  1.1  christos   QLF3(X,W,W),			\
    214  1.1  christos }
    215  1.1  christos 
    216  1.1  christos /* e.g. SMADDL <Xd>, <Wn>, <Wm>, <Xa>.  */
    217  1.1  christos #define QL_I4SAMEL		\
    218  1.1  christos {				\
    219  1.1  christos   QLF4(X,W,W,X),		\
    220  1.1  christos }
    221  1.1  christos 
    222  1.1  christos /* e.g. CSINC <Xd>, <Xn>, <Xm>, <cond>.  */
    223  1.1  christos #define QL_CSEL			\
    224  1.1  christos {				\
    225  1.1  christos   QLF4(W, W, W, NIL),		\
    226  1.1  christos   QLF4(X, X, X, NIL),		\
    227  1.1  christos }
    228  1.1  christos 
    229  1.1  christos /* e.g. CSET <Wd>, <cond>.  */
    230  1.1  christos #define QL_DST_R			\
    231  1.1  christos {				\
    232  1.1  christos   QLF2(W, NIL),			\
    233  1.1  christos   QLF2(X, NIL),			\
    234  1.1  christos }
    235  1.1  christos 
    236  1.1  christos /* e.g. BFM <Wd>, <Wn>, #<immr>, #<imms>.  */
    237  1.1  christos #define QL_BF			\
    238  1.1  christos {				\
    239  1.1  christos   QLF4(W,W,imm_0_31,imm_0_31),	\
    240  1.1  christos   QLF4(X,X,imm_0_63,imm_0_63),	\
    241  1.1  christos }
    242  1.1  christos 
    243  1.6  christos /* e.g. BFC <Wd>, #<immr>, #<imms>.  */
    244  1.6  christos #define QL_BF1					\
    245  1.6  christos {						\
    246  1.6  christos   QLF3 (W, imm_0_31, imm_1_32),			\
    247  1.6  christos   QLF3 (X, imm_0_63, imm_1_64),			\
    248  1.6  christos }
    249  1.6  christos 
    250  1.1  christos /* e.g. UBFIZ <Wd>, <Wn>, #<lsb>, #<width>.  */
    251  1.1  christos #define QL_BF2			\
    252  1.1  christos {				\
    253  1.1  christos   QLF4(W,W,imm_0_31,imm_1_32),	\
    254  1.1  christos   QLF4(X,X,imm_0_63,imm_1_64),	\
    255  1.1  christos }
    256  1.1  christos 
    257  1.1  christos /* e.g. SCVTF <Sd>, <Xn>, #<fbits>.  */
    258  1.1  christos #define QL_FIX2FP		\
    259  1.1  christos {				\
    260  1.1  christos   QLF3(S_D,W,imm_1_32),		\
    261  1.1  christos   QLF3(S_S,W,imm_1_32),		\
    262  1.1  christos   QLF3(S_D,X,imm_1_64),		\
    263  1.1  christos   QLF3(S_S,X,imm_1_64),		\
    264  1.1  christos }
    265  1.1  christos 
    266  1.6  christos /* e.g. SCVTF <Hd>, <Xn>, #<fbits>.  */
    267  1.6  christos #define QL_FIX2FP_H			\
    268  1.6  christos {					\
    269  1.6  christos   QLF3 (S_H, W, imm_1_32),		\
    270  1.6  christos   QLF3 (S_H, X, imm_1_64),		\
    271  1.6  christos }
    272  1.6  christos 
    273  1.1  christos /* e.g. FCVTZS <Wd>, <Dn>, #<fbits>.  */
    274  1.1  christos #define QL_FP2FIX		\
    275  1.1  christos {				\
    276  1.1  christos   QLF3(W,S_D,imm_1_32),		\
    277  1.1  christos   QLF3(W,S_S,imm_1_32),		\
    278  1.1  christos   QLF3(X,S_D,imm_1_64),		\
    279  1.1  christos   QLF3(X,S_S,imm_1_64),		\
    280  1.1  christos }
    281  1.1  christos 
    282  1.6  christos /* e.g. FCVTZS <Wd>, <Hn>, #<fbits>.  */
    283  1.6  christos #define QL_FP2FIX_H			\
    284  1.6  christos {					\
    285  1.6  christos   QLF3 (W, S_H, imm_1_32),		\
    286  1.6  christos   QLF3 (X, S_H, imm_1_64),		\
    287  1.6  christos }
    288  1.6  christos 
    289  1.1  christos /* e.g. SCVTF <Dd>, <Wn>.  */
    290  1.1  christos #define QL_INT2FP		\
    291  1.1  christos {				\
    292  1.1  christos   QLF2(S_D,W),			\
    293  1.1  christos   QLF2(S_S,W),			\
    294  1.1  christos   QLF2(S_D,X),			\
    295  1.1  christos   QLF2(S_S,X),			\
    296  1.1  christos }
    297  1.1  christos 
    298  1.6  christos /* e.g. SCVTF <Hd>, <Wn>.  */
    299  1.6  christos #define QL_INT2FP_H			\
    300  1.6  christos {					\
    301  1.6  christos   QLF2 (S_H, W),			\
    302  1.6  christos   QLF2 (S_H, X),			\
    303  1.6  christos }
    304  1.6  christos 
    305  1.1  christos /* e.g. FCVTNS <Xd>, <Dn>.  */
    306  1.1  christos #define QL_FP2INT		\
    307  1.1  christos {				\
    308  1.1  christos   QLF2(W,S_D),			\
    309  1.1  christos   QLF2(W,S_S),			\
    310  1.1  christos   QLF2(X,S_D),			\
    311  1.1  christos   QLF2(X,S_S),			\
    312  1.1  christos }
    313  1.1  christos 
    314  1.6  christos /* e.g. FCVTNS <Hd>, <Wn>.  */
    315  1.6  christos #define QL_FP2INT_H			\
    316  1.6  christos {					\
    317  1.6  christos   QLF2 (W, S_H),			\
    318  1.6  christos   QLF2 (X, S_H),			\
    319  1.6  christos }
    320  1.6  christos 
    321  1.1  christos /* e.g. FMOV <Xd>, <Vn>.D[1].  */
    322  1.1  christos #define QL_XVD1			\
    323  1.1  christos {				\
    324  1.1  christos   QLF2(X,S_D),			\
    325  1.1  christos }
    326  1.1  christos 
    327  1.1  christos /* e.g. FMOV <Vd>.D[1], <Xn>.  */
    328  1.1  christos #define QL_VD1X			\
    329  1.1  christos {				\
    330  1.1  christos   QLF2(S_D,X),			\
    331  1.1  christos }
    332  1.1  christos 
    333  1.1  christos /* e.g. EXTR <Xd>, <Xn>, <Xm>, #<lsb>.  */
    334  1.1  christos #define QL_EXTR			\
    335  1.1  christos {				\
    336  1.1  christos   QLF4(W,W,W,imm_0_31),		\
    337  1.1  christos   QLF4(X,X,X,imm_0_63),		\
    338  1.1  christos }
    339  1.1  christos 
    340  1.1  christos /* e.g. LSL <Wd>, <Wn>, #<uimm>.  */
    341  1.1  christos #define QL_SHIFT		\
    342  1.1  christos {				\
    343  1.1  christos   QLF3(W,W,imm_0_31),		\
    344  1.1  christos   QLF3(X,X,imm_0_63),		\
    345  1.1  christos }
    346  1.1  christos 
    347  1.1  christos /* e.g. UXTH <Xd>, <Wn>.  */
    348  1.1  christos #define QL_EXT			\
    349  1.1  christos {				\
    350  1.1  christos   QLF2(W,W),			\
    351  1.1  christos   QLF2(X,W),			\
    352  1.1  christos }
    353  1.1  christos 
    354  1.1  christos /* e.g. UXTW <Xd>, <Wn>.  */
    355  1.1  christos #define QL_EXT_W		\
    356  1.1  christos {				\
    357  1.1  christos   QLF2(X,W),			\
    358  1.1  christos }
    359  1.1  christos 
    360  1.1  christos /* e.g. SQSHL <V><d>, <V><n>, #<shift>.  */
    361  1.1  christos #define QL_SSHIFT		\
    362  1.1  christos {				\
    363  1.1  christos   QLF3(S_B , S_B , S_B ),	\
    364  1.1  christos   QLF3(S_H , S_H , S_H ),	\
    365  1.1  christos   QLF3(S_S , S_S , S_S ),	\
    366  1.1  christos   QLF3(S_D , S_D , S_D )	\
    367  1.1  christos }
    368  1.1  christos 
    369  1.1  christos /* e.g. SSHR <V><d>, <V><n>, #<shift>.  */
    370  1.1  christos #define QL_SSHIFT_D		\
    371  1.1  christos {				\
    372  1.1  christos   QLF3(S_D , S_D , S_D )	\
    373  1.1  christos }
    374  1.1  christos 
    375  1.1  christos /* e.g. UCVTF <Vd>.<T>, <Vn>.<T>, #<fbits>.  */
    376  1.1  christos #define QL_SSHIFT_SD		\
    377  1.1  christos {				\
    378  1.1  christos   QLF3(S_S , S_S , S_S ),	\
    379  1.1  christos   QLF3(S_D , S_D , S_D )	\
    380  1.1  christos }
    381  1.1  christos 
    382  1.6  christos /* e.g. UCVTF <Vd>.<T>, <Vn>.<T>, #<fbits>.  */
    383  1.6  christos #define QL_SSHIFT_H		\
    384  1.6  christos {				\
    385  1.6  christos   QLF3 (S_H, S_H, S_H)		\
    386  1.6  christos }
    387  1.6  christos 
    388  1.1  christos /* e.g. SQSHRUN <Vb><d>, <Va><n>, #<shift>.  */
    389  1.1  christos #define QL_SSHIFTN		\
    390  1.1  christos {				\
    391  1.1  christos   QLF3(S_B , S_H , S_B ),	\
    392  1.1  christos   QLF3(S_H , S_S , S_H ),	\
    393  1.1  christos   QLF3(S_S , S_D , S_S ),	\
    394  1.1  christos }
    395  1.1  christos 
    396  1.1  christos /* e.g. SSHR <Vd>.<T>, <Vn>.<T>, #<shift>.
    397  1.1  christos    The register operand variant qualifiers are deliberately used for the
    398  1.1  christos    immediate operand to ease the operand encoding/decoding and qualifier
    399  1.1  christos    sequence matching.  */
    400  1.1  christos #define QL_VSHIFT		\
    401  1.1  christos {				\
    402  1.1  christos   QLF3(V_8B , V_8B , V_8B ),	\
    403  1.1  christos   QLF3(V_16B, V_16B, V_16B),	\
    404  1.1  christos   QLF3(V_4H , V_4H , V_4H ),	\
    405  1.1  christos   QLF3(V_8H , V_8H , V_8H ),	\
    406  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    407  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    408  1.1  christos   QLF3(V_2D , V_2D , V_2D )	\
    409  1.1  christos }
    410  1.1  christos 
    411  1.1  christos /* e.g. SCVTF <Vd>.<T>, <Vn>.<T>, #<fbits>.  */
    412  1.1  christos #define QL_VSHIFT_SD		\
    413  1.1  christos {				\
    414  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    415  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    416  1.1  christos   QLF3(V_2D , V_2D , V_2D )	\
    417  1.1  christos }
    418  1.1  christos 
    419  1.6  christos /* e.g. SCVTF <Vd>.<T>, <Vn>.<T>, #<fbits>.  */
    420  1.6  christos #define QL_VSHIFT_H		\
    421  1.6  christos {				\
    422  1.6  christos   QLF3 (V_4H, V_4H, V_4H),	\
    423  1.6  christos   QLF3 (V_8H, V_8H, V_8H)	\
    424  1.6  christos }
    425  1.6  christos 
    426  1.1  christos /* e.g. SHRN<Q> <Vd>.<Tb>, <Vn>.<Ta>, #<shift>.  */
    427  1.1  christos #define QL_VSHIFTN		\
    428  1.1  christos {				\
    429  1.1  christos   QLF3(V_8B , V_8H , V_8B ),	\
    430  1.1  christos   QLF3(V_4H , V_4S , V_4H ),	\
    431  1.1  christos   QLF3(V_2S , V_2D , V_2S ),	\
    432  1.1  christos }
    433  1.1  christos 
    434  1.1  christos /* e.g. SHRN<Q> <Vd>.<Tb>, <Vn>.<Ta>, #<shift>.  */
    435  1.1  christos #define QL_VSHIFTN2		\
    436  1.1  christos {				\
    437  1.1  christos   QLF3(V_16B, V_8H, V_16B),	\
    438  1.1  christos   QLF3(V_8H , V_4S , V_8H ),	\
    439  1.1  christos   QLF3(V_4S , V_2D , V_4S ),	\
    440  1.1  christos }
    441  1.1  christos 
    442  1.1  christos /* e.g. SSHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #<shift>.
    443  1.1  christos    the 3rd qualifier is used to help the encoding.  */
    444  1.1  christos #define QL_VSHIFTL		\
    445  1.1  christos {				\
    446  1.1  christos   QLF3(V_8H , V_8B , V_8B ),	\
    447  1.1  christos   QLF3(V_4S , V_4H , V_4H ),	\
    448  1.1  christos   QLF3(V_2D , V_2S , V_2S ),	\
    449  1.1  christos }
    450  1.1  christos 
    451  1.1  christos /* e.g. SSHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #<shift>.  */
    452  1.1  christos #define QL_VSHIFTL2		\
    453  1.1  christos {				\
    454  1.1  christos   QLF3(V_8H , V_16B, V_16B),	\
    455  1.1  christos   QLF3(V_4S , V_8H , V_8H ),	\
    456  1.1  christos   QLF3(V_2D , V_4S , V_4S ),	\
    457  1.1  christos }
    458  1.1  christos 
    459  1.1  christos /* e.g. TBL.  */
    460  1.1  christos #define QL_TABLE		\
    461  1.1  christos {				\
    462  1.1  christos   QLF3(V_8B , V_16B, V_8B ),	\
    463  1.1  christos   QLF3(V_16B, V_16B, V_16B),	\
    464  1.1  christos }
    465  1.1  christos 
    466  1.1  christos /* e.g. SHA1H.  */
    467  1.1  christos #define QL_2SAMES		\
    468  1.1  christos {				\
    469  1.1  christos   QLF2(S_S, S_S),		\
    470  1.1  christos }
    471  1.1  christos 
    472  1.1  christos /* e.g. ABS <V><d>, <V><n>.  */
    473  1.1  christos #define QL_2SAMED		\
    474  1.1  christos {				\
    475  1.1  christos   QLF2(S_D, S_D),		\
    476  1.1  christos }
    477  1.1  christos 
    478  1.1  christos /* e.g. CMGT <V><d>, <V><n>, #0.  */
    479  1.1  christos #define QL_SISD_CMP_0		\
    480  1.1  christos {				\
    481  1.1  christos   QLF3(S_D, S_D, NIL),		\
    482  1.1  christos }
    483  1.1  christos 
    484  1.1  christos /* e.g. FCMEQ <V><d>, <V><n>, #0.  */
    485  1.1  christos #define QL_SISD_FCMP_0		\
    486  1.1  christos {				\
    487  1.1  christos   QLF3(S_S, S_S, NIL),		\
    488  1.1  christos   QLF3(S_D, S_D, NIL),		\
    489  1.1  christos }
    490  1.1  christos 
    491  1.6  christos /* e.g. FCMEQ <V><d>, <V><n>, #0.  */
    492  1.6  christos #define QL_SISD_FCMP_H_0	\
    493  1.6  christos {				\
    494  1.6  christos   QLF3 (S_H, S_H, NIL),		\
    495  1.6  christos }
    496  1.6  christos 
    497  1.1  christos /* e.g. FMAXNMP <V><d>, <Vn>.<T>.  */
    498  1.1  christos #define QL_SISD_PAIR		\
    499  1.1  christos {				\
    500  1.1  christos   QLF2(S_S, V_2S),		\
    501  1.1  christos   QLF2(S_D, V_2D),		\
    502  1.1  christos }
    503  1.1  christos 
    504  1.6  christos /* e.g. FMAXNMP <V><d>, <Vn>.<T>.  */
    505  1.6  christos #define QL_SISD_PAIR_H		\
    506  1.6  christos {				\
    507  1.6  christos   QLF2 (S_H, V_2H),		\
    508  1.6  christos }
    509  1.6  christos 
    510  1.1  christos /* e.g. ADDP <V><d>, <Vn>.<T>.  */
    511  1.1  christos #define QL_SISD_PAIR_D		\
    512  1.1  christos {				\
    513  1.1  christos   QLF2(S_D, V_2D),		\
    514  1.1  christos }
    515  1.1  christos 
    516  1.1  christos /* e.g. DUP <V><d>, <Vn>.<T>[<index>].  */
    517  1.1  christos #define QL_S_2SAME		\
    518  1.1  christos {				\
    519  1.1  christos   QLF2(S_B, S_B),		\
    520  1.1  christos   QLF2(S_H, S_H),		\
    521  1.1  christos   QLF2(S_S, S_S),		\
    522  1.1  christos   QLF2(S_D, S_D),		\
    523  1.1  christos }
    524  1.1  christos 
    525  1.1  christos /* e.g. FCVTNS <V><d>, <V><n>.  */
    526  1.1  christos #define QL_S_2SAMESD		\
    527  1.1  christos {				\
    528  1.1  christos   QLF2(S_S, S_S),		\
    529  1.1  christos   QLF2(S_D, S_D),		\
    530  1.1  christos }
    531  1.1  christos 
    532  1.6  christos /* e.g. FCVTNS <V><d>, <V><n>.  */
    533  1.6  christos #define QL_S_2SAMEH		\
    534  1.6  christos {				\
    535  1.6  christos   QLF2 (S_H, S_H),		\
    536  1.6  christos }
    537  1.6  christos 
    538  1.1  christos /* e.g. SQXTN <Vb><d>, <Va><n>.  */
    539  1.1  christos #define QL_SISD_NARROW		\
    540  1.1  christos {				\
    541  1.1  christos   QLF2(S_B, S_H),		\
    542  1.1  christos   QLF2(S_H, S_S),		\
    543  1.1  christos   QLF2(S_S, S_D),		\
    544  1.1  christos }
    545  1.1  christos 
    546  1.1  christos /* e.g. FCVTXN <Vb><d>, <Va><n>.  */
    547  1.1  christos #define QL_SISD_NARROW_S	\
    548  1.1  christos {				\
    549  1.1  christos   QLF2(S_S, S_D),		\
    550  1.1  christos }
    551  1.1  christos 
    552  1.1  christos /* e.g. FCVT.  */
    553  1.1  christos #define QL_FCVT			\
    554  1.1  christos {				\
    555  1.1  christos   QLF2(S_S, S_H),		\
    556  1.1  christos   QLF2(S_S, S_D),		\
    557  1.1  christos   QLF2(S_D, S_H),		\
    558  1.1  christos   QLF2(S_D, S_S),		\
    559  1.1  christos   QLF2(S_H, S_S),		\
    560  1.1  christos   QLF2(S_H, S_D),		\
    561  1.1  christos }
    562  1.1  christos 
    563  1.1  christos /* FMOV <Dd>, <Dn>.  */
    564  1.1  christos #define QL_FP2			\
    565  1.1  christos {				\
    566  1.1  christos   QLF2(S_S, S_S),		\
    567  1.1  christos   QLF2(S_D, S_D),		\
    568  1.1  christos }
    569  1.1  christos 
    570  1.6  christos /* FMOV <Hd>, <Hn>.  */
    571  1.6  christos #define QL_FP2_H		\
    572  1.6  christos {				\
    573  1.6  christos   QLF2 (S_H, S_H),		\
    574  1.6  christos }
    575  1.6  christos 
    576  1.1  christos /* e.g. SQADD <V><d>, <V><n>, <V><m>.  */
    577  1.1  christos #define QL_S_3SAME		\
    578  1.1  christos {				\
    579  1.1  christos   QLF3(S_B, S_B, S_B),		\
    580  1.1  christos   QLF3(S_H, S_H, S_H),		\
    581  1.1  christos   QLF3(S_S, S_S, S_S),		\
    582  1.1  christos   QLF3(S_D, S_D, S_D),		\
    583  1.1  christos }
    584  1.1  christos 
    585  1.1  christos /* e.g. CMGE <V><d>, <V><n>, <V><m>.  */
    586  1.1  christos #define QL_S_3SAMED		\
    587  1.1  christos {				\
    588  1.1  christos   QLF3(S_D, S_D, S_D),		\
    589  1.1  christos }
    590  1.1  christos 
    591  1.1  christos /* e.g. SQDMULH <V><d>, <V><n>, <V><m>.  */
    592  1.1  christos #define QL_SISD_HS		\
    593  1.1  christos {				\
    594  1.1  christos   QLF3(S_H, S_H, S_H),		\
    595  1.1  christos   QLF3(S_S, S_S, S_S),		\
    596  1.1  christos }
    597  1.1  christos 
    598  1.1  christos /* e.g. SQDMLAL <Va><d>, <Vb><n>, <Vb><m>.  */
    599  1.1  christos #define QL_SISDL_HS		\
    600  1.1  christos {				\
    601  1.1  christos   QLF3(S_S, S_H, S_H),		\
    602  1.1  christos   QLF3(S_D, S_S, S_S),		\
    603  1.1  christos }
    604  1.1  christos 
    605  1.1  christos /* FMUL <Sd>, <Sn>, <Sm>.  */
    606  1.1  christos #define QL_FP3			\
    607  1.1  christos {				\
    608  1.1  christos   QLF3(S_S, S_S, S_S),		\
    609  1.1  christos   QLF3(S_D, S_D, S_D),		\
    610  1.1  christos }
    611  1.1  christos 
    612  1.6  christos /* FMUL <Hd>, <Hn>, <Hm>.  */
    613  1.6  christos #define QL_FP3_H		\
    614  1.6  christos {				\
    615  1.6  christos   QLF3 (S_H, S_H, S_H),		\
    616  1.6  christos }
    617  1.6  christos 
    618  1.1  christos /* FMADD <Dd>, <Dn>, <Dm>, <Da>.  */
    619  1.1  christos #define QL_FP4			\
    620  1.1  christos {				\
    621  1.1  christos   QLF4(S_S, S_S, S_S, S_S),	\
    622  1.1  christos   QLF4(S_D, S_D, S_D, S_D),	\
    623  1.1  christos }
    624  1.1  christos 
    625  1.6  christos /* FMADD <Hd>, <Hn>, <Hm>, <Ha>.  */
    626  1.6  christos #define QL_FP4_H		\
    627  1.6  christos {				\
    628  1.6  christos   QLF4 (S_H, S_H, S_H, S_H),	\
    629  1.6  christos }
    630  1.6  christos 
    631  1.1  christos /* e.g. FCMP <Dn>, #0.0.  */
    632  1.1  christos #define QL_DST_SD			\
    633  1.1  christos {				\
    634  1.1  christos   QLF2(S_S, NIL),		\
    635  1.1  christos   QLF2(S_D, NIL),		\
    636  1.1  christos }
    637  1.1  christos 
    638  1.6  christos /* e.g. FCMP <Hn>, #0.0.  */
    639  1.6  christos #define QL_DST_H		\
    640  1.6  christos {				\
    641  1.6  christos   QLF2 (S_H, NIL),		\
    642  1.6  christos }
    643  1.6  christos 
    644  1.1  christos /* FCSEL <Sd>, <Sn>, <Sm>, <cond>.  */
    645  1.1  christos #define QL_FP_COND		\
    646  1.1  christos {				\
    647  1.1  christos   QLF4(S_S, S_S, S_S, NIL),	\
    648  1.1  christos   QLF4(S_D, S_D, S_D, NIL),	\
    649  1.1  christos }
    650  1.1  christos 
    651  1.6  christos /* FCSEL <Hd>, <Hn>, <Hm>, <cond>.  */
    652  1.6  christos #define QL_FP_COND_H		\
    653  1.6  christos {				\
    654  1.6  christos   QLF4 (S_H, S_H, S_H, NIL),	\
    655  1.6  christos }
    656  1.6  christos 
    657  1.1  christos /* e.g. CCMN <Xn>, <Xm>, #<nzcv>, <cond>.  */
    658  1.1  christos #define QL_CCMP			\
    659  1.1  christos {				\
    660  1.1  christos   QLF4(W, W, NIL, NIL),		\
    661  1.1  christos   QLF4(X, X, NIL, NIL),		\
    662  1.1  christos }
    663  1.1  christos 
    664  1.1  christos /* e.g. CCMN <Xn>, #<imm>, #<nzcv>, <cond>,  */
    665  1.1  christos #define QL_CCMP_IMM		\
    666  1.1  christos {				\
    667  1.1  christos   QLF4(W, NIL, NIL, NIL),	\
    668  1.1  christos   QLF4(X, NIL, NIL, NIL),	\
    669  1.1  christos }
    670  1.1  christos 
    671  1.1  christos /* e.g. FCCMP <Sn>, <Sm>, #<nzcv>, <cond>.  */
    672  1.1  christos #define QL_FCCMP		\
    673  1.1  christos {				\
    674  1.1  christos   QLF4(S_S, S_S, NIL, NIL),	\
    675  1.1  christos   QLF4(S_D, S_D, NIL, NIL),	\
    676  1.1  christos }
    677  1.1  christos 
    678  1.6  christos /* e.g. FCCMP <Sn>, <Sm>, #<nzcv>, <cond>.  */
    679  1.6  christos #define QL_FCCMP_H		\
    680  1.6  christos {				\
    681  1.6  christos   QLF4 (S_H, S_H, NIL, NIL),	\
    682  1.6  christos }
    683  1.6  christos 
    684  1.1  christos /* e.g. DUP <Vd>.<T>, <Vn>.<Ts>[<index>].  */
    685  1.1  christos #define QL_DUP_VX		\
    686  1.1  christos {				\
    687  1.1  christos   QLF2(V_8B , S_B ),		\
    688  1.1  christos   QLF2(V_16B, S_B ),		\
    689  1.1  christos   QLF2(V_4H , S_H ),		\
    690  1.1  christos   QLF2(V_8H , S_H ),		\
    691  1.1  christos   QLF2(V_2S , S_S ),		\
    692  1.1  christos   QLF2(V_4S , S_S ),		\
    693  1.1  christos   QLF2(V_2D , S_D ),		\
    694  1.1  christos }
    695  1.1  christos 
    696  1.1  christos /* e.g. DUP <Vd>.<T>, <Wn>.  */
    697  1.1  christos #define QL_DUP_VR		\
    698  1.1  christos {				\
    699  1.1  christos   QLF2(V_8B , W ),		\
    700  1.1  christos   QLF2(V_16B, W ),		\
    701  1.1  christos   QLF2(V_4H , W ),		\
    702  1.1  christos   QLF2(V_8H , W ),		\
    703  1.1  christos   QLF2(V_2S , W ),		\
    704  1.1  christos   QLF2(V_4S , W ),		\
    705  1.1  christos   QLF2(V_2D , X ),		\
    706  1.1  christos }
    707  1.1  christos 
    708  1.1  christos /* e.g. INS <Vd>.<Ts>[<index>], <Wn>.  */
    709  1.1  christos #define QL_INS_XR		\
    710  1.1  christos {				\
    711  1.1  christos   QLF2(S_H , W ),		\
    712  1.1  christos   QLF2(S_S , W ),		\
    713  1.1  christos   QLF2(S_D , X ),		\
    714  1.1  christos   QLF2(S_B , W ),		\
    715  1.1  christos }
    716  1.1  christos 
    717  1.1  christos /* e.g. SMOV <Wd>, <Vn>.<Ts>[<index>].  */
    718  1.1  christos #define QL_SMOV			\
    719  1.1  christos {				\
    720  1.1  christos   QLF2(W , S_H),		\
    721  1.1  christos   QLF2(X , S_H),		\
    722  1.1  christos   QLF2(X , S_S),		\
    723  1.1  christos   QLF2(W , S_B),		\
    724  1.1  christos   QLF2(X , S_B),		\
    725  1.1  christos }
    726  1.1  christos 
    727  1.1  christos /* e.g. UMOV <Wd>, <Vn>.<Ts>[<index>].  */
    728  1.1  christos #define QL_UMOV			\
    729  1.1  christos {				\
    730  1.1  christos   QLF2(W , S_H),		\
    731  1.1  christos   QLF2(W , S_S),		\
    732  1.1  christos   QLF2(X , S_D),		\
    733  1.1  christos   QLF2(W , S_B),		\
    734  1.1  christos }
    735  1.1  christos 
    736  1.1  christos /* e.g. MOV <Wd>, <Vn>.<Ts>[<index>].  */
    737  1.1  christos #define QL_MOV			\
    738  1.1  christos {				\
    739  1.1  christos   QLF2(W , S_S),		\
    740  1.1  christos   QLF2(X , S_D),		\
    741  1.1  christos }
    742  1.1  christos 
    743  1.1  christos /* e.g. SUQADD <Vd>.<T>, <Vn>.<T>.  */
    744  1.1  christos #define QL_V2SAME		\
    745  1.1  christos {				\
    746  1.1  christos   QLF2(V_8B , V_8B ),		\
    747  1.1  christos   QLF2(V_16B, V_16B),		\
    748  1.1  christos   QLF2(V_4H , V_4H ),		\
    749  1.1  christos   QLF2(V_8H , V_8H ),		\
    750  1.1  christos   QLF2(V_2S , V_2S ),		\
    751  1.1  christos   QLF2(V_4S , V_4S ),		\
    752  1.1  christos   QLF2(V_2D , V_2D ),		\
    753  1.1  christos }
    754  1.1  christos 
    755  1.1  christos /* e.g. URSQRTE <Vd>.<T>, <Vn>.<T>.  */
    756  1.1  christos #define QL_V2SAMES		\
    757  1.1  christos {				\
    758  1.1  christos   QLF2(V_2S , V_2S ),		\
    759  1.1  christos   QLF2(V_4S , V_4S ),		\
    760  1.1  christos }
    761  1.1  christos 
    762  1.1  christos /* e.g. REV32 <Vd>.<T>, <Vn>.<T>.  */
    763  1.1  christos #define QL_V2SAMEBH		\
    764  1.1  christos {				\
    765  1.1  christos   QLF2(V_8B , V_8B ),		\
    766  1.1  christos   QLF2(V_16B, V_16B),		\
    767  1.1  christos   QLF2(V_4H , V_4H ),		\
    768  1.1  christos   QLF2(V_8H , V_8H ),		\
    769  1.1  christos }
    770  1.1  christos 
    771  1.1  christos /* e.g. FRINTN <Vd>.<T>, <Vn>.<T>.  */
    772  1.1  christos #define QL_V2SAMESD		\
    773  1.1  christos {				\
    774  1.1  christos   QLF2(V_2S , V_2S ),		\
    775  1.1  christos   QLF2(V_4S , V_4S ),		\
    776  1.1  christos   QLF2(V_2D , V_2D ),		\
    777  1.1  christos }
    778  1.1  christos 
    779  1.1  christos /* e.g. REV64 <Vd>.<T>, <Vn>.<T>.  */
    780  1.1  christos #define QL_V2SAMEBHS		\
    781  1.1  christos {				\
    782  1.1  christos   QLF2(V_8B , V_8B ),		\
    783  1.1  christos   QLF2(V_16B, V_16B),		\
    784  1.1  christos   QLF2(V_4H , V_4H ),		\
    785  1.1  christos   QLF2(V_8H , V_8H ),		\
    786  1.1  christos   QLF2(V_2S , V_2S ),		\
    787  1.1  christos   QLF2(V_4S , V_4S ),		\
    788  1.1  christos }
    789  1.1  christos 
    790  1.6  christos /* e.g. FCMGT <Vd>.<T>, <Vd>.<T>>, #0.0.  */
    791  1.6  christos #define QL_V2SAMEH		\
    792  1.6  christos {				\
    793  1.6  christos   QLF2 (V_4H, V_4H),		\
    794  1.6  christos   QLF2 (V_8H, V_8H),		\
    795  1.6  christos }
    796  1.6  christos 
    797  1.1  christos /* e.g. REV16 <Vd>.<T>, <Vn>.<T>.  */
    798  1.1  christos #define QL_V2SAMEB		\
    799  1.1  christos {				\
    800  1.1  christos   QLF2(V_8B , V_8B ),		\
    801  1.1  christos   QLF2(V_16B, V_16B),		\
    802  1.1  christos }
    803  1.1  christos 
    804  1.1  christos /* e.g. SADDLP <Vd>.<Ta>, <Vn>.<Tb>.  */
    805  1.1  christos #define QL_V2PAIRWISELONGBHS		\
    806  1.1  christos {				\
    807  1.1  christos   QLF2(V_4H , V_8B ),		\
    808  1.1  christos   QLF2(V_8H , V_16B),		\
    809  1.1  christos   QLF2(V_2S , V_4H ),		\
    810  1.1  christos   QLF2(V_4S , V_8H ),		\
    811  1.1  christos   QLF2(V_1D , V_2S ),		\
    812  1.1  christos   QLF2(V_2D , V_4S ),		\
    813  1.1  christos }
    814  1.1  christos 
    815  1.1  christos /* e.g. SHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #<shift>.  */
    816  1.1  christos #define QL_V2LONGBHS		\
    817  1.1  christos {				\
    818  1.1  christos   QLF2(V_8H , V_8B ),		\
    819  1.1  christos   QLF2(V_4S , V_4H ),		\
    820  1.1  christos   QLF2(V_2D , V_2S ),		\
    821  1.1  christos }
    822  1.1  christos 
    823  1.1  christos /* e.g. SHLL<Q> <Vd>.<Ta>, <Vn>.<Tb>, #<shift>.  */
    824  1.1  christos #define QL_V2LONGBHS2		\
    825  1.1  christos {				\
    826  1.1  christos   QLF2(V_8H , V_16B),		\
    827  1.1  christos   QLF2(V_4S , V_8H ),		\
    828  1.1  christos   QLF2(V_2D , V_4S ),		\
    829  1.1  christos }
    830  1.1  christos 
    831  1.1  christos /* */
    832  1.1  christos #define QL_V3SAME		\
    833  1.1  christos {				\
    834  1.1  christos   QLF3(V_8B , V_8B , V_8B ),	\
    835  1.1  christos   QLF3(V_16B, V_16B, V_16B),	\
    836  1.1  christos   QLF3(V_4H , V_4H , V_4H ),	\
    837  1.1  christos   QLF3(V_8H , V_8H , V_8H ),	\
    838  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    839  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    840  1.1  christos   QLF3(V_2D , V_2D , V_2D )	\
    841  1.1  christos }
    842  1.1  christos 
    843  1.1  christos /* e.g. SHADD.  */
    844  1.1  christos #define QL_V3SAMEBHS		\
    845  1.1  christos {				\
    846  1.1  christos   QLF3(V_8B , V_8B , V_8B ),	\
    847  1.1  christos   QLF3(V_16B, V_16B, V_16B),	\
    848  1.1  christos   QLF3(V_4H , V_4H , V_4H ),	\
    849  1.1  christos   QLF3(V_8H , V_8H , V_8H ),	\
    850  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    851  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    852  1.1  christos }
    853  1.1  christos 
    854  1.1  christos /* e.g. FCVTXN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    855  1.1  christos #define QL_V2NARRS		\
    856  1.1  christos {				\
    857  1.1  christos   QLF2(V_2S , V_2D ),		\
    858  1.1  christos }
    859  1.1  christos 
    860  1.1  christos /* e.g. FCVTXN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    861  1.1  christos #define QL_V2NARRS2		\
    862  1.1  christos {				\
    863  1.1  christos   QLF2(V_4S , V_2D ),		\
    864  1.1  christos }
    865  1.1  christos 
    866  1.1  christos /* e.g. FCVTN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    867  1.1  christos #define QL_V2NARRHS		\
    868  1.1  christos {				\
    869  1.1  christos   QLF2(V_4H , V_4S ),		\
    870  1.1  christos   QLF2(V_2S , V_2D ),		\
    871  1.1  christos }
    872  1.1  christos 
    873  1.1  christos /* e.g. FCVTN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    874  1.1  christos #define QL_V2NARRHS2		\
    875  1.1  christos {				\
    876  1.1  christos   QLF2(V_8H , V_4S ),		\
    877  1.1  christos   QLF2(V_4S , V_2D ),		\
    878  1.1  christos }
    879  1.1  christos 
    880  1.1  christos /* e.g. FCVTL<Q> <Vd>.<Ta>, <Vn>.<Tb>.  */
    881  1.1  christos #define QL_V2LONGHS		\
    882  1.1  christos {				\
    883  1.1  christos   QLF2(V_4S , V_4H ),		\
    884  1.1  christos   QLF2(V_2D , V_2S ),		\
    885  1.1  christos }
    886  1.1  christos 
    887  1.1  christos /* e.g. FCVTL<Q> <Vd>.<Ta>, <Vn>.<Tb>.  */
    888  1.1  christos #define QL_V2LONGHS2		\
    889  1.1  christos {				\
    890  1.1  christos   QLF2(V_4S , V_8H ),		\
    891  1.1  christos   QLF2(V_2D , V_4S ),		\
    892  1.1  christos }
    893  1.1  christos 
    894  1.1  christos /* e.g. XTN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    895  1.1  christos #define QL_V2NARRBHS		\
    896  1.1  christos {				\
    897  1.1  christos   QLF2(V_8B , V_8H ),		\
    898  1.1  christos   QLF2(V_4H , V_4S ),		\
    899  1.1  christos   QLF2(V_2S , V_2D ),		\
    900  1.1  christos }
    901  1.1  christos 
    902  1.1  christos /* e.g. XTN<Q> <Vd>.<Tb>, <Vn>.<Ta>.  */
    903  1.1  christos #define QL_V2NARRBHS2		\
    904  1.1  christos {				\
    905  1.1  christos   QLF2(V_16B, V_8H ),		\
    906  1.1  christos   QLF2(V_8H , V_4S ),		\
    907  1.1  christos   QLF2(V_4S , V_2D ),		\
    908  1.1  christos }
    909  1.1  christos 
    910  1.1  christos /* e.g. ORR.  */
    911  1.1  christos #define QL_V2SAMEB		\
    912  1.1  christos {				\
    913  1.1  christos   QLF2(V_8B , V_8B ),		\
    914  1.1  christos   QLF2(V_16B, V_16B),		\
    915  1.1  christos }
    916  1.1  christos 
    917  1.1  christos /* e.g. AESE.  */
    918  1.1  christos #define QL_V2SAME16B		\
    919  1.1  christos {				\
    920  1.1  christos   QLF2(V_16B, V_16B),		\
    921  1.1  christos }
    922  1.1  christos 
    923  1.1  christos /* e.g. SHA1SU1.  */
    924  1.1  christos #define QL_V2SAME4S		\
    925  1.1  christos {				\
    926  1.1  christos   QLF2(V_4S, V_4S),		\
    927  1.1  christos }
    928  1.1  christos 
    929  1.1  christos /* e.g. SHA1SU0.  */
    930  1.1  christos #define QL_V3SAME4S		\
    931  1.1  christos {				\
    932  1.1  christos   QLF3(V_4S, V_4S, V_4S),	\
    933  1.1  christos }
    934  1.1  christos 
    935  1.1  christos /* e.g. SHADD.  */
    936  1.1  christos #define QL_V3SAMEB		\
    937  1.1  christos {				\
    938  1.1  christos   QLF3(V_8B , V_8B , V_8B ),	\
    939  1.1  christos   QLF3(V_16B, V_16B, V_16B),	\
    940  1.1  christos }
    941  1.1  christos 
    942  1.1  christos /* e.g. EXT <Vd>.<T>, <Vn>.<T>, <Vm>.<T>, #<index>.  */
    943  1.1  christos #define QL_VEXT			\
    944  1.1  christos {					\
    945  1.1  christos   QLF4(V_8B , V_8B , V_8B , imm_0_7),	\
    946  1.1  christos   QLF4(V_16B, V_16B, V_16B, imm_0_15),	\
    947  1.1  christos }
    948  1.1  christos 
    949  1.1  christos /* e.g. .  */
    950  1.1  christos #define QL_V3SAMEHS		\
    951  1.1  christos {				\
    952  1.1  christos   QLF3(V_4H , V_4H , V_4H ),	\
    953  1.1  christos   QLF3(V_8H , V_8H , V_8H ),	\
    954  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    955  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    956  1.1  christos }
    957  1.1  christos 
    958  1.1  christos /* */
    959  1.1  christos #define QL_V3SAMESD		\
    960  1.1  christos {				\
    961  1.1  christos   QLF3(V_2S , V_2S , V_2S ),	\
    962  1.1  christos   QLF3(V_4S , V_4S , V_4S ),	\
    963  1.1  christos   QLF3(V_2D , V_2D , V_2D )	\
    964  1.1  christos }
    965  1.1  christos 
    966  1.6  christos /* e.g. FMAXNM <Vd>.<T>, <Vn>.<T>, <Vm>.<T>.  */
    967  1.6  christos #define QL_V3SAMEH		\
    968  1.6  christos {				\
    969  1.6  christos   QLF3 (V_4H , V_4H , V_4H ),	\
    970  1.6  christos   QLF3 (V_8H , V_8H , V_8H ),	\
    971  1.6  christos }
    972  1.6  christos 
    973  1.1  christos /* e.g. SQDMLAL<Q> <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Tb>.  */
    974  1.1  christos #define QL_V3LONGHS		\
    975  1.1  christos {				\
    976  1.1  christos   QLF3(V_4S , V_4H , V_4H ),	\
    977  1.1  christos   QLF3(V_2D , V_2S , V_2S ),	\
    978  1.1  christos }
    979  1.1  christos 
    980  1.1  christos /* e.g. SQDMLAL<Q> <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Tb>.  */
    981  1.1  christos #define QL_V3LONGHS2		\
    982  1.1  christos {				\
    983  1.1  christos   QLF3(V_4S , V_8H , V_8H ),	\
    984  1.1  christos   QLF3(V_2D , V_4S , V_4S ),	\
    985  1.1  christos }
    986  1.1  christos 
    987  1.1  christos /* e.g. SADDL<Q> <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Tb>.  */
    988  1.1  christos #define QL_V3LONGBHS		\
    989  1.1  christos {				\
    990  1.1  christos   QLF3(V_8H , V_8B , V_8B ),	\
    991  1.1  christos   QLF3(V_4S , V_4H , V_4H ),	\
    992  1.1  christos   QLF3(V_2D , V_2S , V_2S ),	\
    993  1.1  christos }
    994  1.1  christos 
    995  1.1  christos /* e.g. SADDL<Q> <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Tb>.  */
    996  1.1  christos #define QL_V3LONGBHS2		\
    997  1.1  christos {				\
    998  1.1  christos   QLF3(V_8H , V_16B , V_16B ),	\
    999  1.1  christos   QLF3(V_4S , V_8H , V_8H ),	\
   1000  1.1  christos   QLF3(V_2D , V_4S , V_4S ),	\
   1001  1.1  christos }
   1002  1.1  christos 
   1003  1.1  christos /* e.g. SADDW<Q> <Vd>.<Ta>, <Vn>.<Ta>, <Vm>.<Tb>.  */
   1004  1.1  christos #define QL_V3WIDEBHS		\
   1005  1.1  christos {				\
   1006  1.1  christos   QLF3(V_8H , V_8H , V_8B ),	\
   1007  1.1  christos   QLF3(V_4S , V_4S , V_4H ),	\
   1008  1.1  christos   QLF3(V_2D , V_2D , V_2S ),	\
   1009  1.1  christos }
   1010  1.1  christos 
   1011  1.1  christos /* e.g. SADDW<Q> <Vd>.<Ta>, <Vn>.<Ta>, <Vm>.<Tb>.  */
   1012  1.1  christos #define QL_V3WIDEBHS2		\
   1013  1.1  christos {				\
   1014  1.1  christos   QLF3(V_8H , V_8H , V_16B ),	\
   1015  1.1  christos   QLF3(V_4S , V_4S , V_8H ),	\
   1016  1.1  christos   QLF3(V_2D , V_2D , V_4S ),	\
   1017  1.1  christos }
   1018  1.1  christos 
   1019  1.1  christos /* e.g. ADDHN<Q> <Vd>.<Tb>, <Vn>.<Ta>, <Vm>.<Ta>.  */
   1020  1.1  christos #define QL_V3NARRBHS		\
   1021  1.1  christos {				\
   1022  1.1  christos   QLF3(V_8B , V_8H , V_8H ),	\
   1023  1.1  christos   QLF3(V_4H , V_4S , V_4S ),	\
   1024  1.1  christos   QLF3(V_2S , V_2D , V_2D ),	\
   1025  1.1  christos }
   1026  1.1  christos 
   1027  1.1  christos /* e.g. ADDHN<Q> <Vd>.<Tb>, <Vn>.<Ta>, <Vm>.<Ta>.  */
   1028  1.1  christos #define QL_V3NARRBHS2		\
   1029  1.1  christos {				\
   1030  1.1  christos   QLF3(V_16B , V_8H , V_8H ),	\
   1031  1.1  christos   QLF3(V_8H , V_4S , V_4S ),	\
   1032  1.1  christos   QLF3(V_4S , V_2D , V_2D ),	\
   1033  1.1  christos }
   1034  1.1  christos 
   1035  1.1  christos /* e.g. PMULL.  */
   1036  1.1  christos #define QL_V3LONGB		\
   1037  1.1  christos {				\
   1038  1.1  christos   QLF3(V_8H , V_8B , V_8B ),	\
   1039  1.1  christos }
   1040  1.1  christos 
   1041  1.1  christos /* e.g. PMULL crypto.  */
   1042  1.1  christos #define QL_V3LONGD		\
   1043  1.1  christos {				\
   1044  1.1  christos   QLF3(V_1Q , V_1D , V_1D ),	\
   1045  1.1  christos }
   1046  1.1  christos 
   1047  1.1  christos /* e.g. PMULL2.  */
   1048  1.1  christos #define QL_V3LONGB2		\
   1049  1.1  christos {				\
   1050  1.1  christos   QLF3(V_8H , V_16B, V_16B),	\
   1051  1.1  christos }
   1052  1.1  christos 
   1053  1.1  christos /* e.g. PMULL2 crypto.  */
   1054  1.1  christos #define QL_V3LONGD2		\
   1055  1.1  christos {				\
   1056  1.1  christos   QLF3(V_1Q , V_2D , V_2D ),	\
   1057  1.1  christos }
   1058  1.1  christos 
   1059  1.1  christos /* e.g. SHA1C.  */
   1060  1.1  christos #define QL_SHAUPT		\
   1061  1.1  christos {				\
   1062  1.1  christos   QLF3(S_Q, S_S, V_4S),		\
   1063  1.1  christos }
   1064  1.1  christos 
   1065  1.1  christos /* e.g. SHA256H2.  */
   1066  1.1  christos #define QL_SHA256UPT		\
   1067  1.1  christos {				\
   1068  1.1  christos   QLF3(S_Q, S_Q, V_4S),		\
   1069  1.1  christos }
   1070  1.1  christos 
   1071  1.1  christos /* e.g. LDXRB <Wt>, [<Xn|SP>{,#0}].  */
   1072  1.1  christos #define QL_W1_LDST_EXC		\
   1073  1.1  christos {				\
   1074  1.1  christos   QLF2(W, NIL),			\
   1075  1.1  christos }
   1076  1.1  christos 
   1077  1.1  christos /* e.g. LDXR <Xt>, [<Xn|SP>{,#0}].  */
   1078  1.1  christos #define QL_R1NIL		\
   1079  1.1  christos {				\
   1080  1.1  christos   QLF2(W, NIL),			\
   1081  1.1  christos   QLF2(X, NIL),			\
   1082  1.1  christos }
   1083  1.1  christos 
   1084  1.1  christos /* e.g. STXRB <Ws>, <Wt>, [<Xn|SP>{,#0}].  */
   1085  1.1  christos #define QL_W2_LDST_EXC		\
   1086  1.1  christos {				\
   1087  1.1  christos   QLF3(W, W, NIL),		\
   1088  1.1  christos }
   1089  1.1  christos 
   1090  1.1  christos /* e.g. STXR <Ws>, <Xt>, [<Xn|SP>{,#0}].  */
   1091  1.1  christos #define QL_R2_LDST_EXC		\
   1092  1.1  christos {				\
   1093  1.1  christos   QLF3(W, W, NIL),		\
   1094  1.1  christos   QLF3(W, X, NIL),		\
   1095  1.1  christos }
   1096  1.1  christos 
   1097  1.1  christos /* e.g. LDXP <Xt1>, <Xt2>, [<Xn|SP>{,#0}].  */
   1098  1.1  christos #define QL_R2NIL		\
   1099  1.1  christos {				\
   1100  1.1  christos   QLF3(W, W, NIL),		\
   1101  1.1  christos   QLF3(X, X, NIL),		\
   1102  1.1  christos }
   1103  1.1  christos 
   1104  1.3  christos /* e.g. CASP <Xt1>, <Xt1+1>, <Xt2>, <Xt2+1>, [<Xn|SP>{,#0}].  */
   1105  1.3  christos #define QL_R4NIL		\
   1106  1.3  christos {				\
   1107  1.3  christos   QLF5(W, W, W, W, NIL),	\
   1108  1.3  christos   QLF5(X, X, X, X, NIL),	\
   1109  1.3  christos }
   1110  1.3  christos 
   1111  1.1  christos /* e.g. STXP <Ws>, <Xt1>, <Xt2>, [<Xn|SP>{,#0}].  */
   1112  1.1  christos #define QL_R3_LDST_EXC		\
   1113  1.1  christos {				\
   1114  1.1  christos   QLF4(W, W, W, NIL),		\
   1115  1.1  christos   QLF4(W, X, X, NIL),		\
   1116  1.1  christos }
   1117  1.1  christos 
   1118  1.1  christos /* e.g. STR <Qt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1119  1.1  christos #define QL_LDST_FP		\
   1120  1.1  christos {				\
   1121  1.1  christos   QLF2(S_B, S_B),		\
   1122  1.1  christos   QLF2(S_H, S_H),		\
   1123  1.1  christos   QLF2(S_S, S_S),		\
   1124  1.1  christos   QLF2(S_D, S_D),		\
   1125  1.1  christos   QLF2(S_Q, S_Q),		\
   1126  1.1  christos }
   1127  1.1  christos 
   1128  1.1  christos /* e.g. STR <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1129  1.1  christos #define QL_LDST_R		\
   1130  1.1  christos {				\
   1131  1.1  christos   QLF2(W, S_S),			\
   1132  1.1  christos   QLF2(X, S_D),			\
   1133  1.1  christos }
   1134  1.1  christos 
   1135  1.1  christos /* e.g. STRB <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1136  1.1  christos #define QL_LDST_W8		\
   1137  1.1  christos {				\
   1138  1.1  christos   QLF2(W, S_B),			\
   1139  1.1  christos }
   1140  1.1  christos 
   1141  1.1  christos /* e.g. LDRSB <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1142  1.1  christos #define QL_LDST_R8		\
   1143  1.1  christos {				\
   1144  1.1  christos   QLF2(W, S_B),			\
   1145  1.1  christos   QLF2(X, S_B),			\
   1146  1.1  christos }
   1147  1.1  christos 
   1148  1.1  christos /* e.g. STRH <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1149  1.1  christos #define QL_LDST_W16		\
   1150  1.1  christos {				\
   1151  1.1  christos   QLF2(W, S_H),			\
   1152  1.1  christos }
   1153  1.1  christos 
   1154  1.1  christos /* e.g. LDRSW <Xt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1155  1.1  christos #define QL_LDST_X32		\
   1156  1.1  christos {				\
   1157  1.1  christos   QLF2(X, S_S),			\
   1158  1.1  christos }
   1159  1.1  christos 
   1160  1.1  christos /* e.g. LDRSH <Wt>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1161  1.1  christos #define QL_LDST_R16		\
   1162  1.1  christos {				\
   1163  1.1  christos   QLF2(W, S_H),			\
   1164  1.1  christos   QLF2(X, S_H),			\
   1165  1.1  christos }
   1166  1.1  christos 
   1167  1.1  christos /* e.g. PRFM <prfop>, [<Xn|SP>, <R><m>{, <extend> {<amount>}}].  */
   1168  1.1  christos #define QL_LDST_PRFM		\
   1169  1.1  christos {				\
   1170  1.1  christos   QLF2(NIL, S_D),		\
   1171  1.1  christos }
   1172  1.1  christos 
   1173  1.1  christos /* e.g. LDPSW <Xt1>, <Xt2>, [<Xn|SP>{, #<imm>}].  */
   1174  1.1  christos #define QL_LDST_PAIR_X32	\
   1175  1.1  christos {				\
   1176  1.1  christos   QLF3(X, X, S_S),		\
   1177  1.1  christos }
   1178  1.1  christos 
   1179  1.1  christos /* e.g. STP <Wt1>, <Wt2>, [<Xn|SP>, #<imm>]!.  */
   1180  1.1  christos #define QL_LDST_PAIR_R		\
   1181  1.1  christos {				\
   1182  1.1  christos   QLF3(W, W, S_S),		\
   1183  1.1  christos   QLF3(X, X, S_D),		\
   1184  1.1  christos }
   1185  1.1  christos 
   1186  1.1  christos /* e.g. STNP <Qt1>, <Qt2>, [<Xn|SP>{, #<imm>}].  */
   1187  1.1  christos #define QL_LDST_PAIR_FP		\
   1188  1.1  christos {				\
   1189  1.1  christos   QLF3(S_S, S_S, S_S),		\
   1190  1.1  christos   QLF3(S_D, S_D, S_D),		\
   1191  1.1  christos   QLF3(S_Q, S_Q, S_Q),		\
   1192  1.1  christos }
   1193  1.1  christos 
   1194  1.1  christos /* e.g. LD3 {<Vt>.<T>, <Vt2>.<T>, <Vt3>.<T>}, [<Xn|SP>].  */
   1195  1.1  christos #define QL_SIMD_LDST		\
   1196  1.1  christos {				\
   1197  1.1  christos   QLF2(V_8B, NIL),		\
   1198  1.1  christos   QLF2(V_16B, NIL),		\
   1199  1.1  christos   QLF2(V_4H, NIL),		\
   1200  1.1  christos   QLF2(V_8H, NIL),		\
   1201  1.1  christos   QLF2(V_2S, NIL),		\
   1202  1.1  christos   QLF2(V_4S, NIL),		\
   1203  1.1  christos   QLF2(V_2D, NIL),		\
   1204  1.1  christos }
   1205  1.1  christos 
   1206  1.1  christos /* e.g. LD1 {<Vt>.<T>, <Vt2>.<T>, <Vt3>.<T>}, [<Xn|SP>].  */
   1207  1.1  christos #define QL_SIMD_LDST_ANY	\
   1208  1.1  christos {				\
   1209  1.1  christos   QLF2(V_8B, NIL),		\
   1210  1.1  christos   QLF2(V_16B, NIL),		\
   1211  1.1  christos   QLF2(V_4H, NIL),		\
   1212  1.1  christos   QLF2(V_8H, NIL),		\
   1213  1.1  christos   QLF2(V_2S, NIL),		\
   1214  1.1  christos   QLF2(V_4S, NIL),		\
   1215  1.1  christos   QLF2(V_1D, NIL),		\
   1216  1.1  christos   QLF2(V_2D, NIL),		\
   1217  1.1  christos }
   1218  1.1  christos 
   1219  1.1  christos /* e.g. LD4 {<Vt>.<T>, <Vt2a>.<T>, <Vt3a>.<T>, <Vt4a>.<T>}[<index>], [<Xn|SP>].  */
   1220  1.1  christos #define QL_SIMD_LDSTONE		\
   1221  1.1  christos {				\
   1222  1.1  christos   QLF2(S_B, NIL),		\
   1223  1.1  christos   QLF2(S_H, NIL),		\
   1224  1.1  christos   QLF2(S_S, NIL),		\
   1225  1.1  christos   QLF2(S_D, NIL),		\
   1226  1.1  christos }
   1227  1.1  christos 
   1228  1.1  christos /* e.g. ADDV <V><d>, <Vn>.<T>.  */
   1229  1.1  christos #define QL_XLANES		\
   1230  1.1  christos {				\
   1231  1.1  christos   QLF2(S_B, V_8B),		\
   1232  1.1  christos   QLF2(S_B, V_16B),		\
   1233  1.1  christos   QLF2(S_H, V_4H),		\
   1234  1.1  christos   QLF2(S_H, V_8H),		\
   1235  1.1  christos   QLF2(S_S, V_4S),		\
   1236  1.1  christos }
   1237  1.1  christos 
   1238  1.1  christos /* e.g. FMINV <V><d>, <Vn>.<T>.  */
   1239  1.1  christos #define QL_XLANES_FP		\
   1240  1.1  christos {				\
   1241  1.1  christos   QLF2(S_S, V_4S),		\
   1242  1.1  christos }
   1243  1.1  christos 
   1244  1.6  christos /* e.g. FMINV <V><d>, <Vn>.<T>.  */
   1245  1.6  christos #define QL_XLANES_FP_H		\
   1246  1.6  christos {				\
   1247  1.6  christos   QLF2 (S_H, V_4H),		\
   1248  1.6  christos   QLF2 (S_H, V_8H),		\
   1249  1.6  christos }
   1250  1.6  christos 
   1251  1.1  christos /* e.g. SADDLV <V><d>, <Vn>.<T>.  */
   1252  1.1  christos #define QL_XLANES_L		\
   1253  1.1  christos {				\
   1254  1.1  christos   QLF2(S_H, V_8B),		\
   1255  1.1  christos   QLF2(S_H, V_16B),		\
   1256  1.1  christos   QLF2(S_S, V_4H),		\
   1257  1.1  christos   QLF2(S_S, V_8H),		\
   1258  1.1  christos   QLF2(S_D, V_4S),		\
   1259  1.1  christos }
   1260  1.1  christos 
   1261  1.1  christos /* e.g. MUL <Vd>.<T>, <Vn>.<T>, <Vm>.<Ts>[<index>].  */
   1262  1.1  christos #define QL_ELEMENT		\
   1263  1.1  christos {				\
   1264  1.1  christos   QLF3(V_4H, V_4H, S_H),	\
   1265  1.1  christos   QLF3(V_8H, V_8H, S_H),	\
   1266  1.1  christos   QLF3(V_2S, V_2S, S_S),	\
   1267  1.1  christos   QLF3(V_4S, V_4S, S_S),	\
   1268  1.1  christos }
   1269  1.1  christos 
   1270  1.1  christos /* e.g. SMLAL <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Ts>[<index>].  */
   1271  1.1  christos #define QL_ELEMENT_L		\
   1272  1.1  christos {				\
   1273  1.1  christos   QLF3(V_4S, V_4H, S_H),	\
   1274  1.1  christos   QLF3(V_2D, V_2S, S_S),	\
   1275  1.1  christos }
   1276  1.1  christos 
   1277  1.1  christos /* e.g. SMLAL2 <Vd>.<Ta>, <Vn>.<Tb>, <Vm>.<Ts>[<index>].  */
   1278  1.1  christos #define QL_ELEMENT_L2		\
   1279  1.1  christos {				\
   1280  1.1  christos   QLF3(V_4S, V_8H, S_H),	\
   1281  1.1  christos   QLF3(V_2D, V_4S, S_S),	\
   1282  1.1  christos }
   1283  1.1  christos 
   1284  1.1  christos /* e.g. FMLA <V><d>, <V><n>, <Vm>.<Ts>[<index>].  */
   1285  1.1  christos #define QL_ELEMENT_FP		\
   1286  1.1  christos {				\
   1287  1.1  christos   QLF3(V_2S, V_2S, S_S),	\
   1288  1.1  christos   QLF3(V_4S, V_4S, S_S),	\
   1289  1.1  christos   QLF3(V_2D, V_2D, S_D),	\
   1290  1.1  christos }
   1291  1.1  christos 
   1292  1.6  christos /* e.g. FMLA <V><d>, <V><n>, <Vm>.<Ts>[<index>].  */
   1293  1.6  christos #define QL_ELEMENT_FP_H		\
   1294  1.6  christos {				\
   1295  1.6  christos   QLF3 (V_4H, V_4H, S_H),	\
   1296  1.6  christos   QLF3 (V_8H, V_8H, S_H),	\
   1297  1.6  christos }
   1298  1.6  christos 
   1299  1.1  christos /* e.g. MOVI <Vd>.4S, #<imm8> {, LSL #<amount>}.  */
   1300  1.1  christos #define QL_SIMD_IMM_S0W		\
   1301  1.1  christos {				\
   1302  1.1  christos   QLF2(V_2S, LSL),		\
   1303  1.1  christos   QLF2(V_4S, LSL),		\
   1304  1.1  christos }
   1305  1.1  christos 
   1306  1.1  christos /* e.g. MOVI <Vd>.4S, #<imm8>, MSL #<amount>.  */
   1307  1.1  christos #define QL_SIMD_IMM_S1W		\
   1308  1.1  christos {				\
   1309  1.1  christos   QLF2(V_2S, MSL),		\
   1310  1.1  christos   QLF2(V_4S, MSL),		\
   1311  1.1  christos }
   1312  1.1  christos 
   1313  1.1  christos /* e.g. MOVI <Vd>.4H, #<imm8> {, LSL #<amount>}.  */
   1314  1.1  christos #define QL_SIMD_IMM_S0H		\
   1315  1.1  christos {				\
   1316  1.1  christos   QLF2(V_4H, LSL),		\
   1317  1.1  christos   QLF2(V_8H, LSL),		\
   1318  1.1  christos }
   1319  1.1  christos 
   1320  1.1  christos /* e.g. FMOV <Vd>.<T>, #<imm>.  */
   1321  1.1  christos #define QL_SIMD_IMM_S		\
   1322  1.1  christos {				\
   1323  1.1  christos   QLF2(V_2S, NIL),		\
   1324  1.1  christos   QLF2(V_4S, NIL),		\
   1325  1.1  christos }
   1326  1.1  christos 
   1327  1.1  christos /* e.g. MOVI <Vd>.8B, #<imm8> {, LSL #<amount>}.  */
   1328  1.1  christos #define QL_SIMD_IMM_B		\
   1329  1.1  christos {				\
   1330  1.1  christos   QLF2(V_8B, LSL),		\
   1331  1.1  christos   QLF2(V_16B, LSL),		\
   1332  1.1  christos }
   1333  1.1  christos /* e.g. MOVI <Dd>, #<imm>.  */
   1334  1.1  christos #define QL_SIMD_IMM_D		\
   1335  1.1  christos {				\
   1336  1.1  christos   QLF2(S_D, NIL),		\
   1337  1.1  christos }
   1338  1.1  christos 
   1339  1.6  christos /* e.g. FMOV <Vd>.<T>, #<imm>.  */
   1340  1.6  christos #define QL_SIMD_IMM_H		\
   1341  1.6  christos {				\
   1342  1.6  christos   QLF2 (V_4H, NIL),		\
   1343  1.6  christos   QLF2 (V_8H, NIL),		\
   1344  1.6  christos }
   1345  1.6  christos 
   1346  1.1  christos /* e.g. MOVI <Vd>.2D, #<imm>.  */
   1347  1.1  christos #define QL_SIMD_IMM_V2D		\
   1348  1.1  christos {				\
   1349  1.1  christos   QLF2(V_2D, NIL),		\
   1350  1.1  christos }
   1351  1.1  christos 
   1352  1.1  christos /* Opcode table.  */
   1354  1.1  christos 
   1355  1.1  christos static const aarch64_feature_set aarch64_feature_v8 =
   1356  1.1  christos   AARCH64_FEATURE (AARCH64_FEATURE_V8, 0);
   1357  1.1  christos static const aarch64_feature_set aarch64_feature_fp =
   1358  1.1  christos   AARCH64_FEATURE (AARCH64_FEATURE_FP, 0);
   1359  1.1  christos static const aarch64_feature_set aarch64_feature_simd =
   1360  1.1  christos   AARCH64_FEATURE (AARCH64_FEATURE_SIMD, 0);
   1361  1.1  christos static const aarch64_feature_set aarch64_feature_crypto =
   1362  1.1  christos   AARCH64_FEATURE (AARCH64_FEATURE_CRYPTO, 0);
   1363  1.1  christos static const aarch64_feature_set aarch64_feature_crc =
   1364  1.3  christos   AARCH64_FEATURE (AARCH64_FEATURE_CRC, 0);
   1365  1.3  christos static const aarch64_feature_set aarch64_feature_lse =
   1366  1.5  christos   AARCH64_FEATURE (AARCH64_FEATURE_LSE, 0);
   1367  1.5  christos static const aarch64_feature_set aarch64_feature_lor =
   1368  1.5  christos   AARCH64_FEATURE (AARCH64_FEATURE_LOR, 0);
   1369  1.5  christos static const aarch64_feature_set aarch64_feature_rdma =
   1370  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_RDMA, 0);
   1371  1.6  christos static const aarch64_feature_set aarch64_feature_ras =
   1372  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_RAS, 0);
   1373  1.6  christos static const aarch64_feature_set aarch64_feature_v8_2 =
   1374  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_V8_2, 0);
   1375  1.6  christos static const aarch64_feature_set aarch64_feature_fp_f16 =
   1376  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_F16 | AARCH64_FEATURE_FP, 0);
   1377  1.6  christos static const aarch64_feature_set aarch64_feature_simd_f16 =
   1378  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_F16 | AARCH64_FEATURE_SIMD, 0);
   1379  1.6  christos static const aarch64_feature_set aarch64_feature_stat_profile =
   1380  1.6  christos   AARCH64_FEATURE (AARCH64_FEATURE_PROFILE, 0);
   1381  1.6  christos 
   1382  1.6  christos #define CORE		&aarch64_feature_v8
   1383  1.6  christos #define FP		&aarch64_feature_fp
   1384  1.6  christos #define SIMD		&aarch64_feature_simd
   1385  1.6  christos #define CRYPTO		&aarch64_feature_crypto
   1386  1.6  christos #define CRC		&aarch64_feature_crc
   1387  1.6  christos #define LSE		&aarch64_feature_lse
   1388  1.6  christos #define LOR		&aarch64_feature_lor
   1389  1.6  christos #define RDMA		&aarch64_feature_rdma
   1390  1.6  christos #define FP_F16		&aarch64_feature_fp_f16
   1391  1.6  christos #define SIMD_F16	&aarch64_feature_simd_f16
   1392  1.6  christos #define RAS		&aarch64_feature_ras
   1393  1.6  christos #define STAT_PROFILE	&aarch64_feature_stat_profile
   1394  1.6  christos #define ARMV8_2		&aarch64_feature_v8_2
   1395  1.6  christos 
   1396  1.6  christos #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1397  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, CORE, OPS, QUALS, FLAGS, NULL }
   1398  1.6  christos #define __FP_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1399  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, FP, OPS, QUALS, FLAGS, NULL }
   1400  1.6  christos #define SIMD_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1401  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, SIMD, OPS, QUALS, FLAGS, NULL }
   1402  1.6  christos #define CRYP_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1403  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, CRYPTO, OPS, QUALS, FLAGS, NULL }
   1404  1.6  christos #define _CRC_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1405  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, CRC, OPS, QUALS, FLAGS, NULL }
   1406  1.6  christos #define _LSE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1407  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, LSE, OPS, QUALS, FLAGS, NULL }
   1408  1.6  christos #define _LOR_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1409  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, LOR, OPS, QUALS, FLAGS, NULL }
   1410  1.6  christos #define RDMA_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1411  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, RDMA, OPS, QUALS, FLAGS, NULL }
   1412  1.6  christos #define FF16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
   1413  1.6  christos   { NAME, OPCODE, MASK, CLASS, 0, FP_F16, OPS, QUALS, FLAGS, NULL }
   1414  1.6  christos #define SF16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS)		\
   1415  1.1  christos   { NAME, OPCODE, MASK, CLASS, 0, SIMD_F16, OPS, QUALS, FLAGS, NULL }
   1416  1.1  christos 
   1417  1.1  christos struct aarch64_opcode aarch64_opcode_table[] =
   1418  1.1  christos {
   1419  1.6  christos   /* Add/subtract (with carry).  */
   1420  1.6  christos   CORE_INSN ("adc",  0x1a000000, 0x7fe0fc00, addsub_carry, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
   1421  1.6  christos   CORE_INSN ("adcs", 0x3a000000, 0x7fe0fc00, addsub_carry, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
   1422  1.6  christos   CORE_INSN ("sbc",  0x5a000000, 0x7fe0fc00, addsub_carry, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   1423  1.6  christos   CORE_INSN ("ngc",  0x5a0003e0, 0x7fe0ffe0, addsub_carry, OP2 (Rd, Rm),     QL_I2SAME,  F_ALIAS | F_SF),
   1424  1.6  christos   CORE_INSN ("sbcs", 0x7a000000, 0x7fe0fc00, addsub_carry, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   1425  1.1  christos   CORE_INSN ("ngcs", 0x7a0003e0, 0x7fe0ffe0, addsub_carry, OP2 (Rd, Rm),     QL_I2SAME,  F_ALIAS | F_SF),
   1426  1.6  christos   /* Add/subtract (extended register).  */
   1427  1.6  christos   CORE_INSN ("add",  0x0b200000, 0x7fe00000, addsub_ext, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_SF),
   1428  1.6  christos   CORE_INSN ("adds", 0x2b200000, 0x7fe00000, addsub_ext, OP3 (Rd, Rn_SP, Rm_EXT),    QL_I3_EXT, F_HAS_ALIAS | F_SF),
   1429  1.6  christos   CORE_INSN ("cmn",  0x2b20001f, 0x7fe0001f, addsub_ext, OP2 (Rn_SP, Rm_EXT),        QL_I2_EXT, F_ALIAS | F_SF),
   1430  1.6  christos   CORE_INSN ("sub",  0x4b200000, 0x7fe00000, addsub_ext, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_SF),
   1431  1.6  christos   CORE_INSN ("subs", 0x6b200000, 0x7fe00000, addsub_ext, OP3 (Rd, Rn_SP, Rm_EXT),    QL_I3_EXT, F_HAS_ALIAS | F_SF),
   1432  1.1  christos   CORE_INSN ("cmp",  0x6b20001f, 0x7fe0001f, addsub_ext, OP2 (Rn_SP, Rm_EXT),        QL_I2_EXT, F_ALIAS | F_SF),
   1433  1.6  christos   /* Add/subtract (immediate).  */
   1434  1.6  christos   { "add",  0x11000000, 0x7f000000, addsub_imm, OP_ADD, CORE, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_HAS_ALIAS | F_SF, NULL},
   1435  1.6  christos   CORE_INSN ("mov",  0x11000000, 0x7ffffc00, addsub_imm, OP2 (Rd_SP, Rn_SP),       QL_I2SP, F_ALIAS | F_SF),
   1436  1.6  christos   CORE_INSN ("adds", 0x31000000, 0x7f000000, addsub_imm, OP3 (Rd, Rn_SP, AIMM),    QL_R2NIL, F_HAS_ALIAS | F_SF),
   1437  1.6  christos   CORE_INSN ("cmn",  0x3100001f, 0x7f00001f, addsub_imm, OP2 (Rn_SP, AIMM),        QL_R1NIL, F_ALIAS | F_SF),
   1438  1.6  christos   CORE_INSN ("sub",  0x51000000, 0x7f000000, addsub_imm, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_SF),
   1439  1.6  christos   CORE_INSN ("subs", 0x71000000, 0x7f000000, addsub_imm, OP3 (Rd, Rn_SP, AIMM),    QL_R2NIL, F_HAS_ALIAS | F_SF),
   1440  1.1  christos   CORE_INSN ("cmp",  0x7100001f, 0x7f00001f, addsub_imm, OP2 (Rn_SP, AIMM),        QL_R1NIL, F_ALIAS | F_SF),
   1441  1.6  christos   /* Add/subtract (shifted register).  */
   1442  1.6  christos   CORE_INSN ("add",  0x0b000000, 0x7f200000, addsub_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   1443  1.6  christos   CORE_INSN ("adds", 0x2b000000, 0x7f200000, addsub_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   1444  1.6  christos   CORE_INSN ("cmn",  0x2b00001f, 0x7f20001f, addsub_shift, OP2 (Rn, Rm_SFT),     QL_I2SAME,  F_ALIAS | F_SF),
   1445  1.6  christos   CORE_INSN ("sub",  0x4b000000, 0x7f200000, addsub_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   1446  1.6  christos   CORE_INSN ("neg",  0x4b0003e0, 0x7f2003e0, addsub_shift, OP2 (Rd, Rm_SFT),     QL_I2SAME,  F_ALIAS | F_SF),
   1447  1.6  christos   CORE_INSN ("subs", 0x6b000000, 0x7f200000, addsub_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   1448  1.6  christos   CORE_INSN ("cmp",  0x6b00001f, 0x7f20001f, addsub_shift, OP2 (Rn, Rm_SFT),     QL_I2SAME,  F_ALIAS | F_SF),
   1449  1.1  christos   CORE_INSN ("negs", 0x6b0003e0, 0x7f2003e0, addsub_shift, OP2 (Rd, Rm_SFT),     QL_I2SAME,  F_ALIAS | F_SF),
   1450  1.6  christos   /* AdvSIMD across lanes.  */
   1451  1.6  christos   SIMD_INSN ("saddlv", 0x0e303800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_L,    F_SIZEQ),
   1452  1.6  christos   SIMD_INSN ("smaxv",  0x0e30a800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES,      F_SIZEQ),
   1453  1.6  christos   SIMD_INSN ("sminv",  0x0e31a800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES,      F_SIZEQ),
   1454  1.6  christos   SIMD_INSN ("addv",   0x0e31b800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES,      F_SIZEQ),
   1455  1.6  christos   SIMD_INSN ("uaddlv", 0x2e303800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_L,    F_SIZEQ),
   1456  1.6  christos   SIMD_INSN ("umaxv",  0x2e30a800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES,      F_SIZEQ),
   1457  1.6  christos   SIMD_INSN ("uminv",  0x2e31a800, 0xbf3ffc00, asimdall, OP2 (Fd, Vn), QL_XLANES,      F_SIZEQ),
   1458  1.6  christos   SIMD_INSN ("fmaxnmv",0x2e30c800, 0xbfbffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP,   F_SIZEQ),
   1459  1.6  christos   SF16_INSN ("fmaxnmv",0x0e30c800, 0xbffffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP_H, F_SIZEQ),
   1460  1.6  christos   SIMD_INSN ("fmaxv",  0x2e30f800, 0xbfbffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP,   F_SIZEQ),
   1461  1.6  christos   SF16_INSN ("fmaxv",  0x0e30f800, 0xbffffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP_H, F_SIZEQ),
   1462  1.6  christos   SIMD_INSN ("fminnmv",0x2eb0c800, 0xbfbffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP,   F_SIZEQ),
   1463  1.6  christos   SF16_INSN ("fminnmv",0x0eb0c800, 0xbffffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP_H, F_SIZEQ),
   1464  1.6  christos   SIMD_INSN ("fminv",  0x2eb0f800, 0xbfbffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP,   F_SIZEQ),
   1465  1.1  christos   SF16_INSN ("fminv",  0x0eb0f800, 0xbffffc00, asimdall, OP2 (Fd, Vn), QL_XLANES_FP_H, F_SIZEQ),
   1466  1.6  christos   /* AdvSIMD three different.  */
   1467  1.6  christos   SIMD_INSN ("saddl",   0x0e200000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1468  1.6  christos   SIMD_INSN ("saddl2",  0x4e200000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1469  1.6  christos   SIMD_INSN ("saddw",   0x0e201000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS,  F_SIZEQ),
   1470  1.6  christos   SIMD_INSN ("saddw2",  0x4e201000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS2, F_SIZEQ),
   1471  1.6  christos   SIMD_INSN ("ssubl",   0x0e202000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1472  1.6  christos   SIMD_INSN ("ssubl2",  0x4e202000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1473  1.6  christos   SIMD_INSN ("ssubw",   0x0e203000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS,  F_SIZEQ),
   1474  1.6  christos   SIMD_INSN ("ssubw2",  0x4e203000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS2, F_SIZEQ),
   1475  1.6  christos   SIMD_INSN ("addhn",   0x0e204000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS,  F_SIZEQ),
   1476  1.6  christos   SIMD_INSN ("addhn2",  0x4e204000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS2, F_SIZEQ),
   1477  1.6  christos   SIMD_INSN ("sabal",   0x0e205000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1478  1.6  christos   SIMD_INSN ("sabal2",  0x4e205000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1479  1.6  christos   SIMD_INSN ("subhn",   0x0e206000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS,  F_SIZEQ),
   1480  1.6  christos   SIMD_INSN ("subhn2",  0x4e206000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS2, F_SIZEQ),
   1481  1.6  christos   SIMD_INSN ("sabdl",   0x0e207000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1482  1.6  christos   SIMD_INSN ("sabdl2",  0x4e207000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1483  1.6  christos   SIMD_INSN ("smlal",   0x0e208000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1484  1.6  christos   SIMD_INSN ("smlal2",  0x4e208000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1485  1.6  christos   SIMD_INSN ("sqdmlal", 0x0e209000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS,   F_SIZEQ),
   1486  1.6  christos   SIMD_INSN ("sqdmlal2",0x4e209000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS2,  F_SIZEQ),
   1487  1.6  christos   SIMD_INSN ("smlsl",   0x0e20a000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1488  1.6  christos   SIMD_INSN ("smlsl2",  0x4e20a000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1489  1.6  christos   SIMD_INSN ("sqdmlsl", 0x0e20b000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS,   F_SIZEQ),
   1490  1.6  christos   SIMD_INSN ("sqdmlsl2",0x4e20b000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS2,  F_SIZEQ),
   1491  1.6  christos   SIMD_INSN ("smull",   0x0e20c000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1492  1.6  christos   SIMD_INSN ("smull2",  0x4e20c000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1493  1.6  christos   SIMD_INSN ("sqdmull", 0x0e20d000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS,   F_SIZEQ),
   1494  1.6  christos   SIMD_INSN ("sqdmull2",0x4e20d000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGHS2,  F_SIZEQ),
   1495  1.6  christos   SIMD_INSN ("pmull",   0x0e20e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGB,    0),
   1496  1.6  christos   CRYP_INSN ("pmull",   0x0ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD,    0),
   1497  1.6  christos   SIMD_INSN ("pmull2",  0x4e20e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGB2,   0),
   1498  1.6  christos   CRYP_INSN ("pmull2",  0x4ee0e000, 0xffe0fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGD2,   0),
   1499  1.6  christos   SIMD_INSN ("uaddl",   0x2e200000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1500  1.6  christos   SIMD_INSN ("uaddl2",  0x6e200000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1501  1.6  christos   SIMD_INSN ("uaddw",   0x2e201000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS,  F_SIZEQ),
   1502  1.6  christos   SIMD_INSN ("uaddw2",  0x6e201000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS2, F_SIZEQ),
   1503  1.6  christos   SIMD_INSN ("usubl",   0x2e202000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1504  1.6  christos   SIMD_INSN ("usubl2",  0x6e202000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1505  1.6  christos   SIMD_INSN ("usubw",   0x2e203000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS,  F_SIZEQ),
   1506  1.6  christos   SIMD_INSN ("usubw2",  0x6e203000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3WIDEBHS2, F_SIZEQ),
   1507  1.6  christos   SIMD_INSN ("raddhn",  0x2e204000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS,  F_SIZEQ),
   1508  1.6  christos   SIMD_INSN ("raddhn2", 0x6e204000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS2, F_SIZEQ),
   1509  1.6  christos   SIMD_INSN ("uabal",   0x2e205000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1510  1.6  christos   SIMD_INSN ("uabal2",  0x6e205000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1511  1.6  christos   SIMD_INSN ("rsubhn",  0x2e206000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS,  F_SIZEQ),
   1512  1.6  christos   SIMD_INSN ("rsubhn2", 0x6e206000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3NARRBHS2, F_SIZEQ),
   1513  1.6  christos   SIMD_INSN ("uabdl",   0x2e207000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1514  1.6  christos   SIMD_INSN ("uabdl2",  0x6e207000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1515  1.6  christos   SIMD_INSN ("umlal",   0x2e208000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1516  1.6  christos   SIMD_INSN ("umlal2",  0x6e208000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1517  1.6  christos   SIMD_INSN ("umlsl",   0x2e20a000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1518  1.6  christos   SIMD_INSN ("umlsl2",  0x6e20a000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1519  1.6  christos   SIMD_INSN ("umull",   0x2e20c000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS,  F_SIZEQ),
   1520  1.1  christos   SIMD_INSN ("umull2",  0x6e20c000, 0xff20fc00, asimddiff, OP3 (Vd, Vn, Vm), QL_V3LONGBHS2, F_SIZEQ),
   1521  1.6  christos   /* AdvSIMD vector x indexed element.  */
   1522  1.6  christos   SIMD_INSN ("smlal",   0x0f002000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1523  1.6  christos   SIMD_INSN ("smlal2",  0x4f002000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1524  1.6  christos   SIMD_INSN ("sqdmlal", 0x0f003000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1525  1.6  christos   SIMD_INSN ("sqdmlal2",0x4f003000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1526  1.6  christos   SIMD_INSN ("smlsl",   0x0f006000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1527  1.6  christos   SIMD_INSN ("smlsl2",  0x4f006000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1528  1.6  christos   SIMD_INSN ("sqdmlsl", 0x0f007000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1529  1.6  christos   SIMD_INSN ("sqdmlsl2",0x4f007000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1530  1.6  christos   SIMD_INSN ("mul",     0x0f008000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1531  1.6  christos   SIMD_INSN ("smull",   0x0f00a000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1532  1.6  christos   SIMD_INSN ("smull2",  0x4f00a000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1533  1.6  christos   SIMD_INSN ("sqdmull", 0x0f00b000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1534  1.6  christos   SIMD_INSN ("sqdmull2",0x4f00b000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1535  1.6  christos   SIMD_INSN ("sqdmulh", 0x0f00c000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1536  1.6  christos   SIMD_INSN ("sqrdmulh",0x0f00d000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1537  1.6  christos   SIMD_INSN ("fmla",    0x0f801000, 0xbf80f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP,   F_SIZEQ),
   1538  1.6  christos   SF16_INSN ("fmla",    0x0f001000, 0xbfe0fc00, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP_H, F_SIZEQ),
   1539  1.6  christos   SIMD_INSN ("fmls",    0x0f805000, 0xbf80f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP,   F_SIZEQ),
   1540  1.6  christos   SF16_INSN ("fmls",    0x0f005000, 0xbfe0fc00, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP_H, F_SIZEQ),
   1541  1.6  christos   SIMD_INSN ("fmul",    0x0f809000, 0xbf80f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP,   F_SIZEQ),
   1542  1.6  christos   SF16_INSN ("fmul",    0x0f009000, 0xbfe0fc00, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP_H, F_SIZEQ),
   1543  1.6  christos   SIMD_INSN ("mla",     0x2f000000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1544  1.6  christos   SIMD_INSN ("umlal",   0x2f002000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1545  1.6  christos   SIMD_INSN ("umlal2",  0x6f002000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1546  1.6  christos   SIMD_INSN ("mls",     0x2f004000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1547  1.6  christos   SIMD_INSN ("umlsl",   0x2f006000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1548  1.6  christos   SIMD_INSN ("umlsl2",  0x6f006000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1549  1.6  christos   SIMD_INSN ("umull",   0x2f00a000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L,    F_SIZEQ),
   1550  1.6  christos   SIMD_INSN ("umull2",  0x6f00a000, 0xff00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_L2,   F_SIZEQ),
   1551  1.6  christos   SIMD_INSN ("fmulx",   0x2f809000, 0xbf80f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP,   F_SIZEQ),
   1552  1.6  christos   SF16_INSN ("fmulx",   0x2f009000, 0xbfe0fc00, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT_FP_H, F_SIZEQ),
   1553  1.6  christos   RDMA_INSN ("sqrdmlah",0x2f00d000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1554  1.1  christos   RDMA_INSN ("sqrdmlsh",0x2f00f000, 0xbf00f400, asimdelem, OP3 (Vd, Vn, Em), QL_ELEMENT,      F_SIZEQ),
   1555  1.6  christos   /* AdvSIMD EXT.  */
   1556  1.1  christos   SIMD_INSN ("ext",  0x2e000000, 0xbfe08400, asimdext, OP4 (Vd, Vn, Vm, IDX), QL_VEXT, F_SIZEQ),
   1557  1.6  christos   /* AdvSIMD modified immediate.  */
   1558  1.6  christos   SIMD_INSN ("movi", 0x0f000400, 0xbff89c00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ),
   1559  1.6  christos   SIMD_INSN ("orr",  0x0f001400, 0xbff89c00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ),
   1560  1.6  christos   SIMD_INSN ("movi", 0x0f008400, 0xbff8dc00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ),
   1561  1.6  christos   SIMD_INSN ("orr",  0x0f009400, 0xbff8dc00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ),
   1562  1.6  christos   SIMD_INSN ("movi", 0x0f00c400, 0xbff8ec00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S1W, F_SIZEQ),
   1563  1.6  christos   SIMD_INSN ("movi", 0x0f00e400, 0xbff8fc00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_B, F_SIZEQ),
   1564  1.6  christos   SIMD_INSN ("fmov", 0x0f00f400, 0xbff8fc00, asimdimm, OP2 (Vd, SIMD_FPIMM), QL_SIMD_IMM_S, F_SIZEQ),
   1565  1.6  christos   SF16_INSN ("fmov", 0x0f00fc00, 0xbff8fc00, asimdimm, OP2 (Vd, SIMD_FPIMM), QL_SIMD_IMM_H, F_SIZEQ),
   1566  1.6  christos   SIMD_INSN ("mvni", 0x2f000400, 0xbff89c00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ),
   1567  1.6  christos   SIMD_INSN ("bic",  0x2f001400, 0xbff89c00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0W, F_SIZEQ),
   1568  1.6  christos   SIMD_INSN ("mvni", 0x2f008400, 0xbff8dc00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ),
   1569  1.6  christos   SIMD_INSN ("bic",  0x2f009400, 0xbff8dc00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S0H, F_SIZEQ),
   1570  1.6  christos   SIMD_INSN ("mvni", 0x2f00c400, 0xbff8ec00, asimdimm, OP2 (Vd, SIMD_IMM_SFT), QL_SIMD_IMM_S1W, F_SIZEQ),
   1571  1.6  christos   SIMD_INSN ("movi", 0x2f00e400, 0xfff8fc00, asimdimm, OP2 (Sd, SIMD_IMM), QL_SIMD_IMM_D, F_SIZEQ),
   1572  1.6  christos   SIMD_INSN ("movi", 0x6f00e400, 0xfff8fc00, asimdimm, OP2 (Vd, SIMD_IMM), QL_SIMD_IMM_V2D, F_SIZEQ),
   1573  1.1  christos   SIMD_INSN ("fmov", 0x6f00f400, 0xfff8fc00, asimdimm, OP2 (Vd, SIMD_FPIMM), QL_SIMD_IMM_V2D, F_SIZEQ),
   1574  1.6  christos   /* AdvSIMD copy.  */
   1575  1.6  christos   SIMD_INSN ("dup", 0x0e000400, 0xbfe0fc00, asimdins, OP2 (Vd, En), QL_DUP_VX, F_T),
   1576  1.6  christos   SIMD_INSN ("dup", 0x0e000c00, 0xbfe0fc00, asimdins, OP2 (Vd, Rn), QL_DUP_VR, F_T),
   1577  1.6  christos   SIMD_INSN ("smov",0x0e002c00, 0xbfe0fc00, asimdins, OP2 (Rd, En), QL_SMOV, F_GPRSIZE_IN_Q),
   1578  1.6  christos   SIMD_INSN ("umov",0x0e003c00, 0xbfe0fc00, asimdins, OP2 (Rd, En), QL_UMOV, F_HAS_ALIAS | F_GPRSIZE_IN_Q),
   1579  1.6  christos   SIMD_INSN ("mov", 0x0e003c00, 0xbfe0fc00, asimdins, OP2 (Rd, En), QL_MOV, F_ALIAS | F_GPRSIZE_IN_Q),
   1580  1.6  christos   SIMD_INSN ("ins", 0x4e001c00, 0xffe0fc00, asimdins, OP2 (Ed, Rn), QL_INS_XR, F_HAS_ALIAS),
   1581  1.6  christos   SIMD_INSN ("mov", 0x4e001c00, 0xffe0fc00, asimdins, OP2 (Ed, Rn), QL_INS_XR, F_ALIAS),
   1582  1.6  christos   SIMD_INSN ("ins", 0x6e000400, 0xffe08400, asimdins, OP2 (Ed, En), QL_S_2SAME, F_HAS_ALIAS),
   1583  1.1  christos   SIMD_INSN ("mov", 0x6e000400, 0xffe08400, asimdins, OP2 (Ed, En), QL_S_2SAME, F_ALIAS),
   1584  1.6  christos   /* AdvSIMD two-reg misc.  */
   1585  1.6  christos   SIMD_INSN ("rev64", 0x0e200800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEBHS, F_SIZEQ),
   1586  1.6  christos   SIMD_INSN ("rev16", 0x0e201800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ),
   1587  1.6  christos   SIMD_INSN ("saddlp",0x0e202800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2PAIRWISELONGBHS, F_SIZEQ),
   1588  1.6  christos   SIMD_INSN ("suqadd",0x0e203800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1589  1.6  christos   SIMD_INSN ("cls",   0x0e204800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEBHS, F_SIZEQ),
   1590  1.6  christos   SIMD_INSN ("cnt",   0x0e205800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ),
   1591  1.6  christos   SIMD_INSN ("sadalp",0x0e206800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2PAIRWISELONGBHS, F_SIZEQ),
   1592  1.6  christos   SIMD_INSN ("sqabs", 0x0e207800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1593  1.6  christos   SIMD_INSN ("cmgt",  0x0e208800, 0xbf3ffc00, asimdmisc, OP3 (Vd, Vn, IMM0), QL_V2SAME, F_SIZEQ),
   1594  1.6  christos   SIMD_INSN ("cmeq",  0x0e209800, 0xbf3ffc00, asimdmisc, OP3 (Vd, Vn, IMM0), QL_V2SAME, F_SIZEQ),
   1595  1.6  christos   SIMD_INSN ("cmlt",  0x0e20a800, 0xbf3ffc00, asimdmisc, OP3 (Vd, Vn, IMM0), QL_V2SAME, F_SIZEQ),
   1596  1.6  christos   SIMD_INSN ("abs",   0x0e20b800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1597  1.6  christos   SIMD_INSN ("xtn",   0x0e212800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS, F_SIZEQ),
   1598  1.6  christos   SIMD_INSN ("xtn2",  0x4e212800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS2, F_SIZEQ),
   1599  1.6  christos   SIMD_INSN ("sqxtn", 0xe214800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS, F_SIZEQ),
   1600  1.6  christos   SIMD_INSN ("sqxtn2",0x4e214800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS2, F_SIZEQ),
   1601  1.6  christos   {"fcvtn",  0x0e216800, 0xffbffc00, asimdmisc, OP_FCVTN,  SIMD, OP2 (Vd, Vn), QL_V2NARRHS,  F_MISC, NULL},
   1602  1.6  christos   {"fcvtn2", 0x4e216800, 0xffbffc00, asimdmisc, OP_FCVTN2, SIMD, OP2 (Vd, Vn), QL_V2NARRHS2, F_MISC, NULL},
   1603  1.6  christos   {"fcvtl",  0x0e217800, 0xffbffc00, asimdmisc, OP_FCVTL,  SIMD, OP2 (Vd, Vn), QL_V2LONGHS,  F_MISC, NULL},
   1604  1.6  christos   {"fcvtl2", 0x4e217800, 0xffbffc00, asimdmisc, OP_FCVTL2, SIMD, OP2 (Vd, Vn), QL_V2LONGHS2, F_MISC, NULL},
   1605  1.6  christos   SIMD_INSN ("frintn", 0x0e218800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1606  1.6  christos   SF16_INSN ("frintn", 0x0e798800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1607  1.6  christos   SIMD_INSN ("frintm", 0x0e219800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1608  1.6  christos   SF16_INSN ("frintm", 0x0e799800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1609  1.6  christos   SIMD_INSN ("fcvtns", 0x0e21a800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1610  1.6  christos   SF16_INSN ("fcvtns", 0x0e79a800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1611  1.6  christos   SIMD_INSN ("fcvtms", 0x0e21b800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1612  1.6  christos   SF16_INSN ("fcvtms", 0x0e79b800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1613  1.6  christos   SIMD_INSN ("fcvtas", 0x0e21c800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1614  1.6  christos   SF16_INSN ("fcvtas", 0x0e79c800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1615  1.6  christos   SIMD_INSN ("scvtf",  0x0e21d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1616  1.6  christos   SF16_INSN ("scvtf",  0x0e79d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1617  1.6  christos   SIMD_INSN ("fcmgt",  0x0ea0c800, 0xbfbffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ),
   1618  1.6  christos   SF16_INSN ("fcmgt",  0x0ef8c800, 0xbffffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMEH, F_SIZEQ),
   1619  1.6  christos   SIMD_INSN ("fcmeq",  0x0ea0d800, 0xbfbffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ),
   1620  1.6  christos   SF16_INSN ("fcmeq",  0x0ef8d800, 0xbffffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMEH, F_SIZEQ),
   1621  1.6  christos   SIMD_INSN ("fcmlt",  0x0ea0e800, 0xbfbffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ),
   1622  1.6  christos   SF16_INSN ("fcmlt",  0x0ef8e800, 0xbffffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMEH, F_SIZEQ),
   1623  1.6  christos   SIMD_INSN ("fabs",   0x0ea0f800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1624  1.6  christos   SF16_INSN ("fabs",   0x0ef8f800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1625  1.6  christos   SIMD_INSN ("frintp", 0x0ea18800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1626  1.6  christos   SF16_INSN ("frintp", 0x0ef98800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1627  1.6  christos   SIMD_INSN ("frintz", 0x0ea19800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1628  1.6  christos   SF16_INSN ("frintz", 0x0ef99800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1629  1.6  christos   SIMD_INSN ("fcvtps", 0x0ea1a800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1630  1.6  christos   SF16_INSN ("fcvtps", 0x0ef9a800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1631  1.6  christos   SIMD_INSN ("fcvtzs", 0x0ea1b800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1632  1.6  christos   SF16_INSN ("fcvtzs", 0x0ef9b800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1633  1.6  christos   SIMD_INSN ("urecpe", 0x0ea1c800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMES, F_SIZEQ),
   1634  1.6  christos   SIMD_INSN ("frecpe", 0x0ea1d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1635  1.6  christos   SF16_INSN ("frecpe", 0x0ef9d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1636  1.6  christos   SIMD_INSN ("rev32",  0x2e200800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEBH, F_SIZEQ),
   1637  1.6  christos   SIMD_INSN ("uaddlp", 0x2e202800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2PAIRWISELONGBHS, F_SIZEQ),
   1638  1.6  christos   SIMD_INSN ("usqadd", 0x2e203800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1639  1.6  christos   SIMD_INSN ("clz",    0x2e204800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEBHS, F_SIZEQ),
   1640  1.6  christos   SIMD_INSN ("uadalp", 0x2e206800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2PAIRWISELONGBHS, F_SIZEQ),
   1641  1.6  christos   SIMD_INSN ("sqneg",  0x2e207800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1642  1.6  christos   SIMD_INSN ("cmge",   0x2e208800, 0xbf3ffc00, asimdmisc, OP3 (Vd, Vn, IMM0), QL_V2SAME, F_SIZEQ),
   1643  1.6  christos   SIMD_INSN ("cmle",   0x2e209800, 0xbf3ffc00, asimdmisc, OP3 (Vd, Vn, IMM0), QL_V2SAME, F_SIZEQ),
   1644  1.6  christos   SIMD_INSN ("neg",    0x2e20b800, 0xbf3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAME, F_SIZEQ),
   1645  1.6  christos   SIMD_INSN ("sqxtun", 0x2e212800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS, F_SIZEQ),
   1646  1.6  christos   SIMD_INSN ("sqxtun2",0x6e212800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS2, F_SIZEQ),
   1647  1.6  christos   SIMD_INSN ("shll",   0x2e213800, 0xff3ffc00, asimdmisc, OP3 (Vd, Vn, SHLL_IMM), QL_V2LONGBHS, F_SIZEQ),
   1648  1.6  christos   SIMD_INSN ("shll2",  0x6e213800, 0xff3ffc00, asimdmisc, OP3 (Vd, Vn, SHLL_IMM), QL_V2LONGBHS2, F_SIZEQ),
   1649  1.6  christos   SIMD_INSN ("uqxtn",  0x2e214800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS, F_SIZEQ),
   1650  1.6  christos   SIMD_INSN ("uqxtn2", 0x6e214800, 0xff3ffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRBHS2, F_SIZEQ),
   1651  1.6  christos   SIMD_INSN ("fcvtxn", 0x2e616800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRS, 0),
   1652  1.6  christos   SIMD_INSN ("fcvtxn2",0x6e616800, 0xfffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2NARRS2, 0),
   1653  1.6  christos   SIMD_INSN ("frinta", 0x2e218800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1654  1.6  christos   SF16_INSN ("frinta", 0x2e798800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1655  1.6  christos   SIMD_INSN ("frintx", 0x2e219800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1656  1.6  christos   SF16_INSN ("frintx", 0x2e799800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1657  1.6  christos   SIMD_INSN ("fcvtnu", 0x2e21a800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1658  1.6  christos   SF16_INSN ("fcvtnu", 0x2e79a800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1659  1.6  christos   SIMD_INSN ("fcvtmu", 0x2e21b800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1660  1.6  christos   SF16_INSN ("fcvtmu", 0x2e79b800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1661  1.6  christos   SIMD_INSN ("fcvtau", 0x2e21c800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1662  1.6  christos   SF16_INSN ("fcvtau", 0x2e79c800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1663  1.6  christos   SIMD_INSN ("ucvtf",  0x2e21d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1664  1.6  christos   SF16_INSN ("ucvtf",  0x2e79d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1665  1.6  christos   SIMD_INSN ("not",    0x2e205800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_HAS_ALIAS),
   1666  1.6  christos   SIMD_INSN ("mvn",    0x2e205800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ | F_ALIAS),
   1667  1.6  christos   SIMD_INSN ("rbit",   0x2e605800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEB, F_SIZEQ),
   1668  1.6  christos   SIMD_INSN ("fcmge",  0x2ea0c800, 0xbfbffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ),
   1669  1.6  christos   SF16_INSN ("fcmge",  0x2ef8c800, 0xbffffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMEH, F_SIZEQ),
   1670  1.6  christos   SIMD_INSN ("fcmle",  0x2ea0d800, 0xbfbffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMESD, F_SIZEQ),
   1671  1.6  christos   SF16_INSN ("fcmle",  0x2ef8d800, 0xbffffc00, asimdmisc, OP3 (Vd, Vn, FPIMM0), QL_V2SAMEH, F_SIZEQ),
   1672  1.6  christos   SIMD_INSN ("fneg",   0x2ea0f800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1673  1.6  christos   SF16_INSN ("fneg",   0x2ef8f800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1674  1.6  christos   SIMD_INSN ("frinti", 0x2ea19800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1675  1.6  christos   SF16_INSN ("frinti", 0x2ef99800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1676  1.6  christos   SIMD_INSN ("fcvtpu", 0x2ea1a800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1677  1.6  christos   SF16_INSN ("fcvtpu", 0x2ef9a800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1678  1.6  christos   SIMD_INSN ("fcvtzu", 0x2ea1b800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1679  1.6  christos   SF16_INSN ("fcvtzu", 0x2ef9b800, 0xbffffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1680  1.6  christos   SIMD_INSN ("ursqrte",0x2ea1c800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMES, F_SIZEQ),
   1681  1.6  christos   SIMD_INSN ("frsqrte",0x2ea1d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1682  1.6  christos   SF16_INSN ("frsqrte",0x2ef9d800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1683  1.6  christos   SIMD_INSN ("fsqrt",  0x2ea1f800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMESD, F_SIZEQ),
   1684  1.1  christos   SF16_INSN ("fsqrt",  0x2ef9f800, 0xbfbffc00, asimdmisc, OP2 (Vd, Vn), QL_V2SAMEH, F_SIZEQ),
   1685  1.6  christos   /* AdvSIMD ZIP/UZP/TRN.  */
   1686  1.6  christos   SIMD_INSN ("uzp1", 0xe001800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1687  1.6  christos   SIMD_INSN ("trn1", 0xe002800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1688  1.6  christos   SIMD_INSN ("zip1", 0xe003800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1689  1.6  christos   SIMD_INSN ("uzp2", 0xe005800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1690  1.6  christos   SIMD_INSN ("trn2", 0xe006800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1691  1.1  christos   SIMD_INSN ("zip2", 0xe007800, 0xbf20fc00, asimdperm, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1692  1.6  christos   /* AdvSIMD three same.  */
   1693  1.6  christos   SIMD_INSN ("shadd", 0xe200400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1694  1.6  christos   SIMD_INSN ("sqadd", 0xe200c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1695  1.6  christos   SIMD_INSN ("srhadd", 0xe201400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1696  1.6  christos   SIMD_INSN ("shsub", 0xe202400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1697  1.6  christos   SIMD_INSN ("sqsub", 0xe202c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1698  1.6  christos   SIMD_INSN ("cmgt", 0xe203400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1699  1.6  christos   SIMD_INSN ("cmge", 0xe203c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1700  1.6  christos   SIMD_INSN ("sshl", 0xe204400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1701  1.6  christos   SIMD_INSN ("sqshl", 0xe204c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1702  1.6  christos   SIMD_INSN ("srshl", 0xe205400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1703  1.6  christos   SIMD_INSN ("sqrshl", 0xe205c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1704  1.6  christos   SIMD_INSN ("smax", 0xe206400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1705  1.6  christos   SIMD_INSN ("smin", 0xe206c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1706  1.6  christos   SIMD_INSN ("sabd", 0xe207400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1707  1.6  christos   SIMD_INSN ("saba", 0xe207c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1708  1.6  christos   SIMD_INSN ("add", 0xe208400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1709  1.6  christos   SIMD_INSN ("cmtst", 0xe208c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1710  1.6  christos   SIMD_INSN ("mla", 0xe209400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1711  1.6  christos   SIMD_INSN ("mul", 0xe209c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1712  1.6  christos   SIMD_INSN ("smaxp", 0xe20a400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1713  1.6  christos   SIMD_INSN ("sminp", 0xe20ac00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1714  1.6  christos   SIMD_INSN ("sqdmulh", 0xe20b400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEHS, F_SIZEQ),
   1715  1.6  christos   SIMD_INSN ("addp", 0xe20bc00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1716  1.6  christos   SIMD_INSN ("fmaxnm", 0xe20c400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1717  1.6  christos   SF16_INSN ("fmaxnm", 0xe400400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1718  1.6  christos   SIMD_INSN ("fmla", 0xe20cc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1719  1.6  christos   SF16_INSN ("fmla", 0xe400c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1720  1.6  christos   SIMD_INSN ("fadd", 0xe20d400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1721  1.6  christos   SF16_INSN ("fadd", 0xe401400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1722  1.6  christos   SIMD_INSN ("fmulx", 0xe20dc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1723  1.6  christos   SF16_INSN ("fmulx", 0xe401c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1724  1.6  christos   SIMD_INSN ("fcmeq", 0xe20e400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1725  1.6  christos   SF16_INSN ("fcmeq", 0xe402400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1726  1.6  christos   SIMD_INSN ("fmax", 0xe20f400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1727  1.6  christos   SF16_INSN ("fmax", 0xe403400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1728  1.6  christos   SIMD_INSN ("frecps", 0xe20fc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1729  1.6  christos   SF16_INSN ("frecps", 0xe403c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1730  1.6  christos   SIMD_INSN ("and", 0xe201c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1731  1.6  christos   SIMD_INSN ("bic", 0xe601c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1732  1.6  christos   SIMD_INSN ("fminnm", 0xea0c400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1733  1.6  christos   SF16_INSN ("fminnm", 0xec00400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1734  1.6  christos   SIMD_INSN ("fmls", 0xea0cc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1735  1.6  christos   SF16_INSN ("fmls", 0xec00c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1736  1.6  christos   SIMD_INSN ("fsub", 0xea0d400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1737  1.6  christos   SF16_INSN ("fsub", 0xec01400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1738  1.6  christos   SIMD_INSN ("fmin", 0xea0f400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1739  1.6  christos   SF16_INSN ("fmin", 0xec03400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1740  1.6  christos   SIMD_INSN ("frsqrts", 0xea0fc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1741  1.6  christos   SF16_INSN ("frsqrts", 0xec03c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1742  1.6  christos   SIMD_INSN ("orr", 0xea01c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_HAS_ALIAS | F_SIZEQ),
   1743  1.6  christos   {"mov", 0xea01c00, 0xbfe0fc00, asimdsame, OP_MOV_V, SIMD, OP2 (Vd, Vn), QL_V2SAMEB, F_ALIAS | F_CONV, NULL},
   1744  1.6  christos   SIMD_INSN ("orn", 0xee01c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1745  1.6  christos   SIMD_INSN ("uhadd", 0x2e200400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1746  1.6  christos   SIMD_INSN ("uqadd", 0x2e200c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1747  1.6  christos   SIMD_INSN ("urhadd", 0x2e201400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1748  1.6  christos   SIMD_INSN ("uhsub", 0x2e202400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1749  1.6  christos   SIMD_INSN ("uqsub", 0x2e202c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1750  1.6  christos   SIMD_INSN ("cmhi", 0x2e203400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1751  1.6  christos   SIMD_INSN ("cmhs", 0x2e203c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1752  1.6  christos   SIMD_INSN ("ushl", 0x2e204400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1753  1.6  christos   SIMD_INSN ("uqshl", 0x2e204c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1754  1.6  christos   SIMD_INSN ("urshl", 0x2e205400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1755  1.6  christos   SIMD_INSN ("uqrshl", 0x2e205c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1756  1.6  christos   SIMD_INSN ("umax", 0x2e206400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1757  1.6  christos   SIMD_INSN ("umin", 0x2e206c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1758  1.6  christos   SIMD_INSN ("uabd", 0x2e207400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1759  1.6  christos   SIMD_INSN ("uaba", 0x2e207c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1760  1.6  christos   SIMD_INSN ("sub", 0x2e208400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1761  1.6  christos   SIMD_INSN ("cmeq", 0x2e208c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAME, F_SIZEQ),
   1762  1.6  christos   SIMD_INSN ("mls", 0x2e209400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1763  1.6  christos   SIMD_INSN ("pmul", 0x2e209c00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1764  1.6  christos   SIMD_INSN ("umaxp", 0x2e20a400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1765  1.6  christos   SIMD_INSN ("uminp", 0x2e20ac00, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEBHS, F_SIZEQ),
   1766  1.6  christos   SIMD_INSN ("sqrdmulh", 0x2e20b400, 0xbf20fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEHS, F_SIZEQ),
   1767  1.6  christos   SIMD_INSN ("fmaxnmp", 0x2e20c400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1768  1.6  christos   SF16_INSN ("fmaxnmp", 0x2e400400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1769  1.6  christos   SIMD_INSN ("faddp", 0x2e20d400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1770  1.6  christos   SF16_INSN ("faddp", 0x2e401400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1771  1.6  christos   SIMD_INSN ("fmul", 0x2e20dc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1772  1.6  christos   SF16_INSN ("fmul", 0x2e401c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1773  1.6  christos   SIMD_INSN ("fcmge", 0x2e20e400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1774  1.6  christos   SF16_INSN ("fcmge", 0x2e402400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1775  1.6  christos   SIMD_INSN ("facge", 0x2e20ec00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1776  1.6  christos   SF16_INSN ("facge", 0x2e402c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1777  1.6  christos   SIMD_INSN ("fmaxp", 0x2e20f400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1778  1.6  christos   SF16_INSN ("fmaxp", 0x2e403400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1779  1.6  christos   SIMD_INSN ("fdiv", 0x2e20fc00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1780  1.6  christos   SF16_INSN ("fdiv", 0x2e403c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1781  1.6  christos   SIMD_INSN ("eor", 0x2e201c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1782  1.6  christos   SIMD_INSN ("bsl", 0x2e601c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1783  1.6  christos   SIMD_INSN ("fminnmp", 0x2ea0c400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1784  1.6  christos   SF16_INSN ("fminnmp", 0x2ec00400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1785  1.6  christos   SIMD_INSN ("fabd", 0x2ea0d400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1786  1.6  christos   SF16_INSN ("fabd", 0x2ec01400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1787  1.6  christos   SIMD_INSN ("fcmgt", 0x2ea0e400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1788  1.6  christos   SF16_INSN ("fcmgt", 0x2ec02400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1789  1.6  christos   SIMD_INSN ("facgt", 0x2ea0ec00, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1790  1.6  christos   SF16_INSN ("facgt", 0x2ec02c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1791  1.6  christos   SIMD_INSN ("fminp", 0x2ea0f400, 0xbfa0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMESD, F_SIZEQ),
   1792  1.6  christos   SF16_INSN ("fminp", 0x2ec03400, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEH, F_SIZEQ),
   1793  1.6  christos   SIMD_INSN ("bit", 0x2ea01c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1794  1.5  christos   SIMD_INSN ("bif", 0x2ee01c00, 0xbfe0fc00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEB, F_SIZEQ),
   1795  1.6  christos   /* AdvSIMD three same extension.  */
   1796  1.6  christos   RDMA_INSN ("sqrdmlah",0x2e008400, 0xbf20fe00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEHS, F_SIZEQ),
   1797  1.1  christos   RDMA_INSN ("sqrdmlsh",0x2e008c00, 0xbf20fe00, asimdsame, OP3 (Vd, Vn, Vm), QL_V3SAMEHS, F_SIZEQ),
   1798  1.6  christos   /* AdvSIMD shift by immediate.  */
   1799  1.6  christos   SIMD_INSN ("sshr", 0xf000400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1800  1.6  christos   SIMD_INSN ("ssra", 0xf001400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1801  1.6  christos   SIMD_INSN ("srshr", 0xf002400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1802  1.6  christos   SIMD_INSN ("srsra", 0xf003400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1803  1.6  christos   SIMD_INSN ("shl", 0xf005400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFT, 0),
   1804  1.6  christos   SIMD_INSN ("sqshl", 0xf007400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFT, 0),
   1805  1.6  christos   SIMD_INSN ("shrn", 0xf008400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1806  1.6  christos   SIMD_INSN ("shrn2", 0x4f008400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1807  1.6  christos   SIMD_INSN ("rshrn", 0xf008c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1808  1.6  christos   SIMD_INSN ("rshrn2", 0x4f008c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1809  1.6  christos   SIMD_INSN ("sqshrn", 0xf009400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1810  1.6  christos   SIMD_INSN ("sqshrn2", 0x4f009400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1811  1.6  christos   SIMD_INSN ("sqrshrn", 0xf009c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1812  1.6  christos   SIMD_INSN ("sqrshrn2", 0x4f009c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1813  1.6  christos   SIMD_INSN ("sshll", 0xf00a400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, F_HAS_ALIAS),
   1814  1.6  christos   {"sxtl", 0xf00a400, 0xff87fc00, asimdshf, OP_SXTL, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS, F_ALIAS | F_CONV, NULL},
   1815  1.6  christos   SIMD_INSN ("sshll2", 0x4f00a400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, F_HAS_ALIAS),
   1816  1.6  christos   {"sxtl2", 0x4f00a400, 0xff87fc00, asimdshf, OP_SXTL2, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS2, F_ALIAS | F_CONV, NULL},
   1817  1.6  christos   SIMD_INSN ("scvtf", 0xf00e400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0),
   1818  1.6  christos   SF16_INSN ("scvtf", 0xf10e400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_H, 0),
   1819  1.6  christos   SIMD_INSN ("fcvtzs", 0xf00fc00, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0),
   1820  1.6  christos   SF16_INSN ("fcvtzs", 0xf10fc00, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_H, 0),
   1821  1.6  christos   SIMD_INSN ("ushr", 0x2f000400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1822  1.6  christos   SIMD_INSN ("usra", 0x2f001400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1823  1.6  christos   SIMD_INSN ("urshr", 0x2f002400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1824  1.6  christos   SIMD_INSN ("ursra", 0x2f003400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1825  1.6  christos   SIMD_INSN ("sri", 0x2f004400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT, 0),
   1826  1.6  christos   SIMD_INSN ("sli", 0x2f005400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFT, 0),
   1827  1.6  christos   SIMD_INSN ("sqshlu", 0x2f006400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFT, 0),
   1828  1.6  christos   SIMD_INSN ("uqshl", 0x2f007400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFT, 0),
   1829  1.6  christos   SIMD_INSN ("sqshrun", 0x2f008400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1830  1.6  christos   SIMD_INSN ("sqshrun2", 0x6f008400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1831  1.6  christos   SIMD_INSN ("sqrshrun", 0x2f008c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1832  1.6  christos   SIMD_INSN ("sqrshrun2", 0x6f008c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1833  1.6  christos   SIMD_INSN ("uqshrn", 0x2f009400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1834  1.6  christos   SIMD_INSN ("uqshrn2", 0x6f009400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1835  1.6  christos   SIMD_INSN ("uqrshrn", 0x2f009c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN, 0),
   1836  1.6  christos   SIMD_INSN ("uqrshrn2", 0x6f009c00, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFTN2, 0),
   1837  1.6  christos   SIMD_INSN ("ushll", 0x2f00a400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL, F_HAS_ALIAS),
   1838  1.6  christos   {"uxtl", 0x2f00a400, 0xff87fc00, asimdshf, OP_UXTL, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS, F_ALIAS | F_CONV, NULL},
   1839  1.6  christos   SIMD_INSN ("ushll2", 0x6f00a400, 0xff80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSL), QL_VSHIFTL2, F_HAS_ALIAS),
   1840  1.6  christos   {"uxtl2", 0x6f00a400, 0xff87fc00, asimdshf, OP_UXTL2, SIMD, OP2 (Vd, Vn), QL_V2LONGBHS2, F_ALIAS | F_CONV, NULL},
   1841  1.6  christos   SIMD_INSN ("ucvtf", 0x2f00e400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0),
   1842  1.6  christos   SF16_INSN ("ucvtf", 0x2f10e400, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_H, 0),
   1843  1.6  christos   SIMD_INSN ("fcvtzu", 0x2f00fc00, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_SD, 0),
   1844  1.1  christos   SF16_INSN ("fcvtzu", 0x2f10fc00, 0xbf80fc00, asimdshf, OP3 (Vd, Vn, IMM_VLSR), QL_VSHIFT_H, 0),
   1845  1.6  christos   /* AdvSIMD TBL/TBX.  */
   1846  1.6  christos   SIMD_INSN ("tbl", 0xe000000, 0xbfe09c00, asimdtbl, OP3 (Vd, LVn, Vm), QL_TABLE, F_SIZEQ),
   1847  1.1  christos   SIMD_INSN ("tbx", 0xe001000, 0xbfe09c00, asimdtbl, OP3 (Vd, LVn, Vm), QL_TABLE, F_SIZEQ),
   1848  1.6  christos   /* AdvSIMD scalar three different.  */
   1849  1.6  christos   SIMD_INSN ("sqdmlal", 0x5e209000, 0xff20fc00, asisddiff, OP3 (Sd, Sn, Sm), QL_SISDL_HS, F_SSIZE),
   1850  1.6  christos   SIMD_INSN ("sqdmlsl", 0x5e20b000, 0xff20fc00, asisddiff, OP3 (Sd, Sn, Sm), QL_SISDL_HS, F_SSIZE),
   1851  1.1  christos   SIMD_INSN ("sqdmull", 0x5e20d000, 0xff20fc00, asisddiff, OP3 (Sd, Sn, Sm), QL_SISDL_HS, F_SSIZE),
   1852  1.6  christos   /* AdvSIMD scalar x indexed element.  */
   1853  1.6  christos   SIMD_INSN ("sqdmlal", 0x5f003000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISDL_HS, F_SSIZE),
   1854  1.6  christos   SIMD_INSN ("sqdmlsl", 0x5f007000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISDL_HS, F_SSIZE),
   1855  1.6  christos   SIMD_INSN ("sqdmull", 0x5f00b000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISDL_HS, F_SSIZE),
   1856  1.6  christos   SIMD_INSN ("sqdmulh", 0x5f00c000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISD_HS, F_SSIZE),
   1857  1.6  christos   SIMD_INSN ("sqrdmulh", 0x5f00d000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISD_HS, F_SSIZE),
   1858  1.6  christos   SIMD_INSN ("fmla", 0x5f801000, 0xff80f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3, F_SSIZE),
   1859  1.6  christos   SF16_INSN ("fmla", 0x5f001000, 0xffc0f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3_H, F_SSIZE),
   1860  1.6  christos   SIMD_INSN ("fmls", 0x5f805000, 0xff80f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3, F_SSIZE),
   1861  1.6  christos   SF16_INSN ("fmls", 0x5f005000, 0xffc0f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3_H, F_SSIZE),
   1862  1.6  christos   SIMD_INSN ("fmul", 0x5f809000, 0xff80f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3, F_SSIZE),
   1863  1.6  christos   SF16_INSN ("fmul", 0x5f009000, 0xffc0f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3_H, F_SSIZE),
   1864  1.6  christos   SIMD_INSN ("fmulx", 0x7f809000, 0xff80f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3, F_SSIZE),
   1865  1.6  christos   SF16_INSN ("fmulx", 0x7f009000, 0xffc0f400, asisdelem, OP3 (Sd, Sn, Em), QL_FP3_H, F_SSIZE),
   1866  1.6  christos   RDMA_INSN ("sqrdmlah", 0x7f00d000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISD_HS, F_SSIZE),
   1867  1.1  christos   RDMA_INSN ("sqrdmlsh", 0x7f00f000, 0xff00f400, asisdelem, OP3 (Sd, Sn, Em), QL_SISD_HS, F_SSIZE),
   1868  1.6  christos   /* AdvSIMD load/store multiple structures.  */
   1869  1.6  christos   SIMD_INSN ("st4", 0xc000000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(4)),
   1870  1.6  christos   SIMD_INSN ("st1", 0xc000000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1871  1.6  christos   SIMD_INSN ("st2", 0xc000000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(2)),
   1872  1.6  christos   SIMD_INSN ("st3", 0xc000000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(3)),
   1873  1.6  christos   SIMD_INSN ("ld4", 0xc400000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(4)),
   1874  1.6  christos   SIMD_INSN ("ld1", 0xc400000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1875  1.6  christos   SIMD_INSN ("ld2", 0xc400000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(2)),
   1876  1.1  christos   SIMD_INSN ("ld3", 0xc400000, 0xbfff0000, asisdlse, OP2 (LVt, SIMD_ADDR_SIMPLE), QL_SIMD_LDST, F_SIZEQ | F_OD(3)),
   1877  1.6  christos   /* AdvSIMD load/store multiple structures (post-indexed).  */
   1878  1.6  christos   SIMD_INSN ("st4", 0xc800000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(4)),
   1879  1.6  christos   SIMD_INSN ("st1", 0xc800000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1880  1.6  christos   SIMD_INSN ("st2", 0xc800000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(2)),
   1881  1.6  christos   SIMD_INSN ("st3", 0xc800000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(3)),
   1882  1.6  christos   SIMD_INSN ("ld4", 0xcc00000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(4)),
   1883  1.6  christos   SIMD_INSN ("ld1", 0xcc00000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1884  1.6  christos   SIMD_INSN ("ld2", 0xcc00000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(2)),
   1885  1.1  christos   SIMD_INSN ("ld3", 0xcc00000, 0xbfe00000, asisdlsep, OP2 (LVt, SIMD_ADDR_POST), QL_SIMD_LDST, F_SIZEQ | F_OD(3)),
   1886  1.6  christos   /* AdvSIMD load/store single structure.  */
   1887  1.6  christos   SIMD_INSN ("st1", 0xd000000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(1)),
   1888  1.6  christos   SIMD_INSN ("st3", 0xd002000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(3)),
   1889  1.6  christos   SIMD_INSN ("st2", 0xd200000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(2)),
   1890  1.6  christos   SIMD_INSN ("st4", 0xd202000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(4)),
   1891  1.6  christos   SIMD_INSN ("ld1", 0xd400000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(1)),
   1892  1.6  christos   SIMD_INSN ("ld3", 0xd402000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(3)),
   1893  1.6  christos   SIMD_INSN ("ld1r", 0xd40c000, 0xbfffe000, asisdlso, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1894  1.6  christos   SIMD_INSN ("ld3r", 0xd40e000, 0xbfffe000, asisdlso, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
   1895  1.6  christos   SIMD_INSN ("ld2", 0xd600000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(2)),
   1896  1.6  christos   SIMD_INSN ("ld4", 0xd602000, 0xbfff2000, asisdlso, OP2 (LEt, SIMD_ADDR_SIMPLE), QL_SIMD_LDSTONE, F_OD(4)),
   1897  1.6  christos   SIMD_INSN ("ld2r", 0xd60c000, 0xbfffe000, asisdlso, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
   1898  1.1  christos   SIMD_INSN ("ld4r", 0xd60e000, 0xbfffe000, asisdlso, OP2 (LVt_AL, SIMD_ADDR_SIMPLE), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
   1899  1.6  christos   /* AdvSIMD load/store single structure (post-indexed).  */
   1900  1.6  christos   SIMD_INSN ("st1", 0xd800000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(1)),
   1901  1.6  christos   SIMD_INSN ("st3", 0xd802000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(3)),
   1902  1.6  christos   SIMD_INSN ("st2", 0xda00000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(2)),
   1903  1.6  christos   SIMD_INSN ("st4", 0xda02000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(4)),
   1904  1.6  christos   SIMD_INSN ("ld1", 0xdc00000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(1)),
   1905  1.6  christos   SIMD_INSN ("ld3", 0xdc02000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(3)),
   1906  1.6  christos   SIMD_INSN ("ld1r", 0xdc0c000, 0xbfe0e000, asisdlsop, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(1)),
   1907  1.6  christos   SIMD_INSN ("ld3r", 0xdc0e000, 0xbfe0e000, asisdlsop, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(3)),
   1908  1.6  christos   SIMD_INSN ("ld2", 0xde00000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(2)),
   1909  1.6  christos   SIMD_INSN ("ld4", 0xde02000, 0xbfe02000, asisdlsop, OP2 (LEt, SIMD_ADDR_POST), QL_SIMD_LDSTONE, F_OD(4)),
   1910  1.6  christos   SIMD_INSN ("ld2r", 0xde0c000, 0xbfe0e000, asisdlsop, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(2)),
   1911  1.1  christos   SIMD_INSN ("ld4r", 0xde0e000, 0xbfe0e000, asisdlsop, OP2 (LVt_AL, SIMD_ADDR_POST), QL_SIMD_LDST_ANY, F_SIZEQ | F_OD(4)),
   1912  1.6  christos   /* AdvSIMD scalar two-reg misc.  */
   1913  1.6  christos   SIMD_INSN ("suqadd", 0x5e203800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
   1914  1.6  christos   SIMD_INSN ("sqabs", 0x5e207800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
   1915  1.6  christos   SIMD_INSN ("cmgt", 0x5e208800, 0xff3ffc00, asisdmisc, OP3 (Sd, Sn, IMM0), QL_SISD_CMP_0, F_SSIZE),
   1916  1.6  christos   SIMD_INSN ("cmeq", 0x5e209800, 0xff3ffc00, asisdmisc, OP3 (Sd, Sn, IMM0), QL_SISD_CMP_0, F_SSIZE),
   1917  1.6  christos   SIMD_INSN ("cmlt", 0x5e20a800, 0xff3ffc00, asisdmisc, OP3 (Sd, Sn, IMM0), QL_SISD_CMP_0, F_SSIZE),
   1918  1.6  christos   SIMD_INSN ("abs", 0x5e20b800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_2SAMED, F_SSIZE),
   1919  1.6  christos   SIMD_INSN ("sqxtn", 0x5e214800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_SISD_NARROW, F_SSIZE),
   1920  1.6  christos   SIMD_INSN ("fcvtns", 0x5e21a800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1921  1.6  christos   SF16_INSN ("fcvtns", 0x5e79a800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1922  1.6  christos   SIMD_INSN ("fcvtms", 0x5e21b800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1923  1.6  christos   SF16_INSN ("fcvtms", 0x5e79b800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1924  1.6  christos   SIMD_INSN ("fcvtas", 0x5e21c800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1925  1.6  christos   SF16_INSN ("fcvtas", 0x5e79c800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1926  1.6  christos   SIMD_INSN ("scvtf", 0x5e21d800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1927  1.6  christos   SF16_INSN ("scvtf", 0x5e79d800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1928  1.6  christos   SIMD_INSN ("fcmgt", 0x5ea0c800, 0xffbffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE),
   1929  1.6  christos   SF16_INSN ("fcmgt", 0x5ef8c800, 0xfffffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_H_0, F_SSIZE),
   1930  1.6  christos   SIMD_INSN ("fcmeq", 0x5ea0d800, 0xffbffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE),
   1931  1.6  christos   SF16_INSN ("fcmeq", 0x5ef8d800, 0xfffffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_H_0, F_SSIZE),
   1932  1.6  christos   SIMD_INSN ("fcmlt", 0x5ea0e800, 0xffbffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE),
   1933  1.6  christos   SF16_INSN ("fcmlt", 0x5ef8e800, 0xfffffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_H_0, F_SSIZE),
   1934  1.6  christos   SIMD_INSN ("fcvtps", 0x5ea1a800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1935  1.6  christos   SF16_INSN ("fcvtps", 0x5ef9a800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1936  1.6  christos   SIMD_INSN ("fcvtzs", 0x5ea1b800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1937  1.6  christos   SF16_INSN ("fcvtzs", 0x5ef9b800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1938  1.6  christos   SIMD_INSN ("frecpe", 0x5ea1d800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1939  1.6  christos   SF16_INSN ("frecpe", 0x5ef9d800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1940  1.6  christos   SIMD_INSN ("frecpx", 0x5ea1f800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1941  1.6  christos   SF16_INSN ("frecpx", 0x5ef9f800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1942  1.6  christos   SIMD_INSN ("usqadd", 0x7e203800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
   1943  1.6  christos   SIMD_INSN ("sqneg", 0x7e207800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAME, F_SSIZE),
   1944  1.6  christos   SIMD_INSN ("cmge", 0x7e208800, 0xff3ffc00, asisdmisc, OP3 (Sd, Sn, IMM0), QL_SISD_CMP_0, F_SSIZE),
   1945  1.6  christos   SIMD_INSN ("cmle", 0x7e209800, 0xff3ffc00, asisdmisc, OP3 (Sd, Sn, IMM0), QL_SISD_CMP_0, F_SSIZE),
   1946  1.6  christos   SIMD_INSN ("neg", 0x7e20b800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_2SAMED, F_SSIZE),
   1947  1.6  christos   SIMD_INSN ("sqxtun", 0x7e212800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_SISD_NARROW, F_SSIZE),
   1948  1.6  christos   SIMD_INSN ("uqxtn", 0x7e214800, 0xff3ffc00, asisdmisc, OP2 (Sd, Sn), QL_SISD_NARROW, F_SSIZE),
   1949  1.6  christos   {"fcvtxn", 0x7e216800, 0xffbffc00, asisdmisc, OP_FCVTXN_S, SIMD, OP2 (Sd, Sn), QL_SISD_NARROW_S, F_MISC, NULL},
   1950  1.6  christos   SIMD_INSN ("fcvtnu", 0x7e21a800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1951  1.6  christos   SF16_INSN ("fcvtnu", 0x7e79a800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1952  1.6  christos   SIMD_INSN ("fcvtmu", 0x7e21b800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1953  1.6  christos   SF16_INSN ("fcvtmu", 0x7e79b800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1954  1.6  christos   SIMD_INSN ("fcvtau", 0x7e21c800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1955  1.6  christos   SF16_INSN ("fcvtau", 0x7e79c800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1956  1.6  christos   SIMD_INSN ("ucvtf", 0x7e21d800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1957  1.6  christos   SF16_INSN ("ucvtf", 0x7e79d800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1958  1.6  christos   SIMD_INSN ("fcmge", 0x7ea0c800, 0xffbffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE),
   1959  1.6  christos   SF16_INSN ("fcmge", 0x7ef8c800, 0xfffffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_H_0, F_SSIZE),
   1960  1.6  christos   SIMD_INSN ("fcmle", 0x7ea0d800, 0xffbffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_0, F_SSIZE),
   1961  1.6  christos   SF16_INSN ("fcmle", 0x7ef8d800, 0xfffffc00, asisdmisc, OP3 (Sd, Sn, FPIMM0), QL_SISD_FCMP_H_0, F_SSIZE),
   1962  1.6  christos   SIMD_INSN ("fcvtpu", 0x7ea1a800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1963  1.6  christos   SF16_INSN ("fcvtpu", 0x7ef9a800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_SISD_FCMP_H_0, F_SSIZE),
   1964  1.6  christos   SIMD_INSN ("fcvtzu", 0x7ea1b800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1965  1.6  christos   SF16_INSN ("fcvtzu", 0x7ef9b800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1966  1.6  christos   SIMD_INSN ("frsqrte", 0x7ea1d800, 0xffbffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMESD, F_SSIZE),
   1967  1.1  christos   SF16_INSN ("frsqrte", 0x7ef9d800, 0xfffffc00, asisdmisc, OP2 (Sd, Sn), QL_S_2SAMEH, F_SSIZE),
   1968  1.6  christos   /* AdvSIMD scalar copy.  */
   1969  1.6  christos   SIMD_INSN ("dup", 0x5e000400, 0xffe0fc00, asisdone, OP2 (Sd, En), QL_S_2SAME, F_HAS_ALIAS),
   1970  1.1  christos   SIMD_INSN ("mov", 0x5e000400, 0xffe0fc00, asisdone, OP2 (Sd, En), QL_S_2SAME, F_ALIAS),
   1971  1.6  christos   /* AdvSIMD scalar pairwise.  */
   1972  1.6  christos   SIMD_INSN ("addp", 0x5e31b800, 0xff3ffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_D, F_SIZEQ),
   1973  1.6  christos   SIMD_INSN ("fmaxnmp", 0x7e30c800, 0xffbffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR, F_SIZEQ),
   1974  1.6  christos   SF16_INSN ("fmaxnmp", 0x5e30c800, 0xfffffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_H, F_SIZEQ),
   1975  1.6  christos   SIMD_INSN ("faddp", 0x7e30d800, 0xffbffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR, F_SIZEQ),
   1976  1.6  christos   SF16_INSN ("faddp", 0x5e30d800, 0xfffffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_H, F_SIZEQ),
   1977  1.6  christos   SIMD_INSN ("fmaxp", 0x7e30f800, 0xffbffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR, F_SIZEQ),
   1978  1.6  christos   SF16_INSN ("fmaxp", 0x5e30f800, 0xfffffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_H, F_SIZEQ),
   1979  1.6  christos   SIMD_INSN ("fminnmp", 0x7eb0c800, 0xffbffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR, F_SIZEQ),
   1980  1.6  christos   SF16_INSN ("fminnmp", 0x5eb0c800, 0xfffffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_H, F_SIZEQ),
   1981  1.6  christos   SIMD_INSN ("fminp", 0x7eb0f800, 0xffbffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR, F_SIZEQ),
   1982  1.1  christos   SF16_INSN ("fminp", 0x5eb0f800, 0xfffffc00, asisdpair, OP2 (Sd, Vn), QL_SISD_PAIR_H, F_SIZEQ),
   1983  1.6  christos   /* AdvSIMD scalar three same.  */
   1984  1.6  christos   SIMD_INSN ("sqadd", 0x5e200c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   1985  1.6  christos   SIMD_INSN ("sqsub", 0x5e202c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   1986  1.6  christos   SIMD_INSN ("sqshl", 0x5e204c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   1987  1.6  christos   SIMD_INSN ("sqrshl", 0x5e205c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   1988  1.6  christos   SIMD_INSN ("sqdmulh", 0x5e20b400, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_SISD_HS, F_SSIZE),
   1989  1.6  christos   SIMD_INSN ("fmulx", 0x5e20dc00, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   1990  1.6  christos   SF16_INSN ("fmulx", 0x5e401c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   1991  1.6  christos   SIMD_INSN ("fcmeq", 0x5e20e400, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   1992  1.6  christos   SF16_INSN ("fcmeq", 0x5e402400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   1993  1.6  christos   SIMD_INSN ("frecps", 0x5e20fc00, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   1994  1.6  christos   SF16_INSN ("frecps", 0x5e403c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   1995  1.6  christos   SIMD_INSN ("frsqrts", 0x5ea0fc00, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   1996  1.6  christos   SF16_INSN ("frsqrts", 0x5ec03c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   1997  1.6  christos   SIMD_INSN ("cmgt", 0x5ee03400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   1998  1.6  christos   SIMD_INSN ("cmge", 0x5ee03c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   1999  1.6  christos   SIMD_INSN ("sshl", 0x5ee04400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2000  1.6  christos   SIMD_INSN ("srshl", 0x5ee05400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2001  1.6  christos   SIMD_INSN ("add", 0x5ee08400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2002  1.6  christos   SIMD_INSN ("cmtst", 0x5ee08c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2003  1.6  christos   SIMD_INSN ("uqadd", 0x7e200c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   2004  1.6  christos   SIMD_INSN ("uqsub", 0x7e202c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   2005  1.6  christos   SIMD_INSN ("uqshl", 0x7e204c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   2006  1.6  christos   SIMD_INSN ("uqrshl", 0x7e205c00, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAME, F_SSIZE),
   2007  1.6  christos   SIMD_INSN ("sqrdmulh", 0x7e20b400, 0xff20fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_SISD_HS, F_SSIZE),
   2008  1.6  christos   SIMD_INSN ("fcmge", 0x7e20e400, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   2009  1.6  christos   SF16_INSN ("fcmge", 0x7e402400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   2010  1.6  christos   SIMD_INSN ("facge", 0x7e20ec00, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   2011  1.6  christos   SF16_INSN ("facge", 0x7e402c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   2012  1.6  christos   SIMD_INSN ("fabd", 0x7ea0d400, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   2013  1.6  christos   SF16_INSN ("fabd", 0x7ec01400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   2014  1.6  christos   SIMD_INSN ("fcmgt", 0x7ea0e400, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   2015  1.6  christos   SF16_INSN ("fcmgt", 0x7ec02400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   2016  1.6  christos   SIMD_INSN ("facgt", 0x7ea0ec00, 0xffa0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3, F_SSIZE),
   2017  1.6  christos   SF16_INSN ("facgt", 0x7ec02c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_FP3_H, F_SSIZE),
   2018  1.6  christos   SIMD_INSN ("cmhi", 0x7ee03400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2019  1.6  christos   SIMD_INSN ("cmhs", 0x7ee03c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2020  1.6  christos   SIMD_INSN ("ushl", 0x7ee04400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2021  1.6  christos   SIMD_INSN ("urshl", 0x7ee05400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2022  1.6  christos   SIMD_INSN ("sub", 0x7ee08400, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2023  1.5  christos   SIMD_INSN ("cmeq", 0x7ee08c00, 0xffe0fc00, asisdsame, OP3 (Sd, Sn, Sm), QL_S_3SAMED, F_SSIZE),
   2024  1.6  christos   /* AdvSIMDs scalar three same extension.  */
   2025  1.6  christos   RDMA_INSN ("sqrdmlah", 0x7e008400, 0xff20fc00, asimdsame, OP3 (Sd, Sn, Sm), QL_SISD_HS, F_SSIZE),
   2026  1.1  christos   RDMA_INSN ("sqrdmlsh", 0x7e008c00, 0xff20fc00, asimdsame, OP3 (Sd, Sn, Sm), QL_SISD_HS, F_SSIZE),
   2027  1.6  christos   /* AdvSIMD scalar shift by immediate.  */
   2028  1.6  christos   SIMD_INSN ("sshr", 0x5f000400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2029  1.6  christos   SIMD_INSN ("ssra", 0x5f001400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2030  1.6  christos   SIMD_INSN ("srshr", 0x5f002400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2031  1.6  christos   SIMD_INSN ("srsra", 0x5f003400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2032  1.6  christos   SIMD_INSN ("shl", 0x5f005400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSL), QL_SSHIFT_D, 0),
   2033  1.6  christos   SIMD_INSN ("sqshl", 0x5f007400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSL), QL_SSHIFT, 0),
   2034  1.6  christos   SIMD_INSN ("sqshrn", 0x5f009400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2035  1.6  christos   SIMD_INSN ("sqrshrn", 0x5f009c00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2036  1.6  christos   SIMD_INSN ("scvtf", 0x5f00e400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_SD, 0),
   2037  1.6  christos   SF16_INSN ("scvtf", 0x5f10e400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_H, 0),
   2038  1.6  christos   SIMD_INSN ("fcvtzs", 0x5f00fc00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_SD, 0),
   2039  1.6  christos   SF16_INSN ("fcvtzs", 0x5f10fc00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_H, 0),
   2040  1.6  christos   SIMD_INSN ("ushr", 0x7f000400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2041  1.6  christos   SIMD_INSN ("usra", 0x7f001400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2042  1.6  christos   SIMD_INSN ("urshr", 0x7f002400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2043  1.6  christos   SIMD_INSN ("ursra", 0x7f003400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2044  1.6  christos   SIMD_INSN ("sri", 0x7f004400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_D, 0),
   2045  1.6  christos   SIMD_INSN ("sli", 0x7f005400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSL), QL_SSHIFT_D, 0),
   2046  1.6  christos   SIMD_INSN ("sqshlu", 0x7f006400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSL), QL_SSHIFT, 0),
   2047  1.6  christos   SIMD_INSN ("uqshl", 0x7f007400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSL), QL_SSHIFT, 0),
   2048  1.6  christos   SIMD_INSN ("sqshrun", 0x7f008400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2049  1.6  christos   SIMD_INSN ("sqrshrun", 0x7f008c00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2050  1.6  christos   SIMD_INSN ("uqshrn", 0x7f009400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2051  1.6  christos   SIMD_INSN ("uqrshrn", 0x7f009c00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFTN, 0),
   2052  1.6  christos   SIMD_INSN ("ucvtf", 0x7f00e400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_SD, 0),
   2053  1.6  christos   SF16_INSN ("ucvtf", 0x7f10e400, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_H, 0),
   2054  1.6  christos   SIMD_INSN ("fcvtzu", 0x7f00fc00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_SD, 0),
   2055  1.1  christos   SF16_INSN ("fcvtzu", 0x7f10fc00, 0xff80fc00, asisdshf, OP3 (Sd, Sn, IMM_VLSR), QL_SSHIFT_H, 0),
   2056  1.6  christos   /* Bitfield.  */
   2057  1.6  christos   CORE_INSN ("sbfm", 0x13000000, 0x7f800000, bitfield, OP4 (Rd, Rn, IMMR, IMMS), QL_BF, F_HAS_ALIAS | F_SF | F_N),
   2058  1.6  christos   {"sbfiz", 0x13000000, 0x7f800000, bitfield, OP_SBFIZ, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2059  1.6  christos   {"sbfx",  0x13000000, 0x7f800000, bitfield, OP_SBFX,  CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2060  1.6  christos   CORE_INSN ("sxtb", 0x13001c00, 0x7fbffc00, bitfield, OP2 (Rd, Rn), QL_EXT, F_ALIAS | F_P3 | F_SF | F_N),
   2061  1.6  christos   CORE_INSN ("sxth", 0x13003c00, 0x7fbffc00, bitfield, OP2 (Rd, Rn), QL_EXT, F_ALIAS | F_P3 | F_SF | F_N),
   2062  1.6  christos   CORE_INSN ("sxtw", 0x93407c00, 0xfffffc00, bitfield, OP2 (Rd, Rn), QL_EXT_W, F_ALIAS | F_P3),
   2063  1.6  christos   {"asr", 0x13000000, 0x7f800000, bitfield, OP_ASR_IMM, CORE, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV, NULL},
   2064  1.6  christos   CORE_INSN ("bfm", 0x33000000, 0x7f800000, bitfield, OP4 (Rd, Rn, IMMR, IMMS), QL_BF, F_HAS_ALIAS | F_SF | F_N),
   2065  1.6  christos   {"bfi", 0x33000000, 0x7f800000, bitfield, OP_BFI, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2066  1.6  christos   {"bfc", 0x330003e0, 0x7f8003e0, bitfield, OP_BFC, ARMV8_2, OP3 (Rd, IMM, WIDTH), QL_BF1, F_ALIAS | F_P2 | F_CONV, NULL},
   2067  1.6  christos   {"bfxil", 0x33000000, 0x7f800000, bitfield, OP_BFXIL, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2068  1.6  christos   CORE_INSN ("ubfm", 0x53000000, 0x7f800000, bitfield, OP4 (Rd, Rn, IMMR, IMMS), QL_BF, F_HAS_ALIAS | F_SF | F_N),
   2069  1.6  christos   {"ubfiz", 0x53000000, 0x7f800000, bitfield, OP_UBFIZ, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2070  1.6  christos   {"ubfx", 0x53000000, 0x7f800000, bitfield, OP_UBFX, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV, NULL},
   2071  1.6  christos   {"uxtb", 0x53001c00, 0xfffffc00, bitfield, OP_UXTB, CORE, OP2 (Rd, Rn), QL_I2SAMEW, F_ALIAS | F_P3, NULL},
   2072  1.6  christos   {"uxth", 0x53003c00, 0xfffffc00, bitfield, OP_UXTH, CORE, OP2 (Rd, Rn), QL_I2SAMEW, F_ALIAS | F_P3, NULL},
   2073  1.6  christos   {"lsl", 0x53000000, 0x7f800000, bitfield, OP_LSL_IMM, CORE, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV, NULL},
   2074  1.1  christos   {"lsr", 0x53000000, 0x7f800000, bitfield, OP_LSR_IMM, CORE, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV, NULL},
   2075  1.6  christos   /* Unconditional branch (immediate).  */
   2076  1.6  christos   {"b", 0x14000000, 0xfc000000, branch_imm, OP_B, CORE, OP1 (ADDR_PCREL26), QL_PCREL_26, 0, NULL},
   2077  1.1  christos   {"bl", 0x94000000, 0xfc000000, branch_imm, OP_BL, CORE, OP1 (ADDR_PCREL26), QL_PCREL_26, 0, NULL},
   2078  1.6  christos   /* Unconditional branch (register).  */
   2079  1.6  christos   CORE_INSN ("br", 0xd61f0000, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
   2080  1.6  christos   CORE_INSN ("blr", 0xd63f0000, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
   2081  1.6  christos   CORE_INSN ("ret", 0xd65f0000, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, F_OPD0_OPT | F_DEFAULT (30)),
   2082  1.6  christos   CORE_INSN ("eret", 0xd69f03e0, 0xffffffff, branch_reg, OP0 (), {}, 0),
   2083  1.1  christos   CORE_INSN ("drps", 0xd6bf03e0, 0xffffffff, branch_reg, OP0 (), {}, 0),
   2084  1.6  christos   /* Compare & branch (immediate).  */
   2085  1.6  christos   CORE_INSN ("cbz", 0x34000000, 0x7f000000, compbranch, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_SF),
   2086  1.1  christos   CORE_INSN ("cbnz", 0x35000000, 0x7f000000, compbranch, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_SF),
   2087  1.6  christos   /* Conditional branch (immediate).  */
   2088  1.1  christos   CORE_INSN ("b.c", 0x54000000, 0xff000010, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_COND),
   2089  1.6  christos   /* Conditional compare (immediate).  */
   2090  1.6  christos   CORE_INSN ("ccmn", 0x3a400800, 0x7fe00c10, condcmp_imm, OP4 (Rn, CCMP_IMM, NZCV, COND), QL_CCMP_IMM, F_SF),
   2091  1.1  christos   CORE_INSN ("ccmp", 0x7a400800, 0x7fe00c10, condcmp_imm, OP4 (Rn, CCMP_IMM, NZCV, COND), QL_CCMP_IMM, F_SF),
   2092  1.6  christos   /* Conditional compare (register).  */
   2093  1.6  christos   CORE_INSN ("ccmn", 0x3a400000, 0x7fe00c10, condcmp_reg, OP4 (Rn, Rm, NZCV, COND), QL_CCMP, F_SF),
   2094  1.1  christos   CORE_INSN ("ccmp", 0x7a400000, 0x7fe00c10, condcmp_reg, OP4 (Rn, Rm, NZCV, COND), QL_CCMP, F_SF),
   2095  1.6  christos   /* Conditional select.  */
   2096  1.6  christos   CORE_INSN ("csel", 0x1a800000, 0x7fe00c00, condsel, OP4 (Rd, Rn, Rm, COND), QL_CSEL, F_SF),
   2097  1.6  christos   CORE_INSN ("csinc", 0x1a800400, 0x7fe00c00, condsel, OP4 (Rd, Rn, Rm, COND), QL_CSEL, F_HAS_ALIAS | F_SF),
   2098  1.6  christos   {"cinc", 0x1a800400, 0x7fe00c00, condsel, OP_CINC, CORE, OP3 (Rd, Rn, COND1), QL_CSEL, F_ALIAS | F_SF | F_CONV, NULL},
   2099  1.6  christos   {"cset", 0x1a9f07e0, 0x7fff0fe0, condsel, OP_CSET, CORE, OP2 (Rd, COND1), QL_DST_R, F_ALIAS | F_P1 | F_SF | F_CONV, NULL},
   2100  1.6  christos   CORE_INSN ("csinv", 0x5a800000, 0x7fe00c00, condsel, OP4 (Rd, Rn, Rm, COND), QL_CSEL, F_HAS_ALIAS | F_SF),
   2101  1.6  christos   {"cinv", 0x5a800000, 0x7fe00c00, condsel, OP_CINV, CORE, OP3 (Rd, Rn, COND1), QL_CSEL, F_ALIAS | F_SF | F_CONV, NULL},
   2102  1.6  christos   {"csetm", 0x5a9f03e0, 0x7fff0fe0, condsel, OP_CSETM, CORE, OP2 (Rd, COND1), QL_DST_R, F_ALIAS | F_P1 | F_SF | F_CONV, NULL},
   2103  1.6  christos   CORE_INSN ("csneg", 0x5a800400, 0x7fe00c00, condsel, OP4 (Rd, Rn, Rm, COND), QL_CSEL, F_HAS_ALIAS | F_SF),
   2104  1.1  christos   {"cneg", 0x5a800400, 0x7fe00c00, condsel, OP_CNEG, CORE, OP3 (Rd, Rn, COND1), QL_CSEL, F_ALIAS | F_SF | F_CONV, NULL},
   2105  1.6  christos   /* Crypto AES.  */
   2106  1.6  christos   CRYP_INSN ("aese",     0x4e284800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
   2107  1.6  christos   CRYP_INSN ("aesd",     0x4e285800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
   2108  1.6  christos   CRYP_INSN ("aesmc",    0x4e286800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
   2109  1.1  christos   CRYP_INSN ("aesimc",   0x4e287800, 0xfffffc00, cryptoaes, OP2 (Vd, Vn), QL_V2SAME16B, 0),
   2110  1.6  christos   /* Crypto two-reg SHA.  */
   2111  1.6  christos   CRYP_INSN ("sha1h",    0x5e280800, 0xfffffc00, cryptosha2, OP2 (Fd, Fn), QL_2SAMES, 0),
   2112  1.6  christos   CRYP_INSN ("sha1su1",  0x5e281800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
   2113  1.1  christos   CRYP_INSN ("sha256su0",0x5e282800, 0xfffffc00, cryptosha2, OP2 (Vd, Vn), QL_V2SAME4S, 0),
   2114  1.6  christos   /* Crypto three-reg SHA.  */
   2115  1.6  christos   CRYP_INSN ("sha1c",    0x5e000000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
   2116  1.6  christos   CRYP_INSN ("sha1p",    0x5e001000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
   2117  1.6  christos   CRYP_INSN ("sha1m",    0x5e002000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHAUPT, 0),
   2118  1.6  christos   CRYP_INSN ("sha1su0",  0x5e003000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
   2119  1.6  christos   CRYP_INSN ("sha256h",  0x5e004000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
   2120  1.6  christos   CRYP_INSN ("sha256h2", 0x5e005000, 0xffe0fc00, cryptosha3, OP3 (Fd, Fn, Vm), QL_SHA256UPT, 0),
   2121  1.1  christos   CRYP_INSN ("sha256su1",0x5e006000, 0xffe0fc00, cryptosha3, OP3 (Vd, Vn, Vm), QL_V3SAME4S, 0),
   2122  1.6  christos   /* Data-processing (1 source).  */
   2123  1.6  christos   CORE_INSN ("rbit",  0x5ac00000, 0x7ffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAME, F_SF),
   2124  1.6  christos   CORE_INSN ("rev16", 0x5ac00400, 0x7ffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAME, F_SF),
   2125  1.6  christos   CORE_INSN ("rev",   0x5ac00800, 0xfffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAMEW, 0),
   2126  1.6  christos   CORE_INSN ("rev",   0xdac00c00, 0xfffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_HAS_ALIAS | F_P1),
   2127  1.6  christos   {"rev64", 0xdac00c00, 0xfffffc00, dp_1src, 0, ARMV8_2, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_ALIAS, NULL},
   2128  1.6  christos   CORE_INSN ("clz",   0x5ac01000, 0x7ffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAME, F_SF),
   2129  1.6  christos   CORE_INSN ("cls",   0x5ac01400, 0x7ffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAME, F_SF),
   2130  1.1  christos   CORE_INSN ("rev32", 0xdac00800, 0xfffffc00, dp_1src, OP2 (Rd, Rn), QL_I2SAMEX, 0),
   2131  1.6  christos   /* Data-processing (2 source).  */
   2132  1.6  christos   CORE_INSN ("udiv",  0x1ac00800, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
   2133  1.6  christos   CORE_INSN ("sdiv",  0x1ac00c00, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
   2134  1.6  christos   CORE_INSN ("lslv",  0x1ac02000, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
   2135  1.6  christos   CORE_INSN ("lsl",   0x1ac02000, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
   2136  1.6  christos   CORE_INSN ("lsrv",  0x1ac02400, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
   2137  1.6  christos   CORE_INSN ("lsr",   0x1ac02400, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
   2138  1.6  christos   CORE_INSN ("asrv",  0x1ac02800, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
   2139  1.6  christos   CORE_INSN ("asr",   0x1ac02800, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
   2140  1.6  christos   CORE_INSN ("rorv",  0x1ac02c00, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
   2141  1.1  christos   CORE_INSN ("ror",   0x1ac02c00, 0x7fe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
   2142  1.6  christos   /* CRC instructions.  */
   2143  1.6  christos   _CRC_INSN ("crc32b", 0x1ac04000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2144  1.6  christos   _CRC_INSN ("crc32h", 0x1ac04400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2145  1.6  christos   _CRC_INSN ("crc32w", 0x1ac04800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2146  1.6  christos   _CRC_INSN ("crc32x", 0x9ac04c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX,   0),
   2147  1.6  christos   _CRC_INSN ("crc32cb",0x1ac05000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2148  1.6  christos   _CRC_INSN ("crc32ch",0x1ac05400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2149  1.6  christos   _CRC_INSN ("crc32cw",0x1ac05800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
   2150  1.1  christos   _CRC_INSN ("crc32cx",0x9ac05c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX,   0),
   2151  1.6  christos   /* Data-processing (3 source).  */
   2152  1.6  christos   CORE_INSN ("madd",  0x1b000000, 0x7fe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMER, F_HAS_ALIAS | F_SF),
   2153  1.6  christos   CORE_INSN ("mul",   0x1b007c00, 0x7fe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMER, F_ALIAS | F_SF),
   2154  1.6  christos   CORE_INSN ("msub",  0x1b008000, 0x7fe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMER, F_HAS_ALIAS | F_SF),
   2155  1.6  christos   CORE_INSN ("mneg",  0x1b00fc00, 0x7fe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMER, F_ALIAS | F_SF),
   2156  1.6  christos   CORE_INSN ("smaddl",0x9b200000, 0xffe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMEL, F_HAS_ALIAS),
   2157  1.6  christos   CORE_INSN ("smull", 0x9b207c00, 0xffe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEL, F_ALIAS),
   2158  1.6  christos   CORE_INSN ("smsubl",0x9b208000, 0xffe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMEL, F_HAS_ALIAS),
   2159  1.6  christos   CORE_INSN ("smnegl",0x9b20fc00, 0xffe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEL, F_ALIAS),
   2160  1.6  christos   CORE_INSN ("smulh", 0x9b407c00, 0xffe08000, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEX, 0),
   2161  1.6  christos   CORE_INSN ("umaddl",0x9ba00000, 0xffe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMEL, F_HAS_ALIAS),
   2162  1.6  christos   CORE_INSN ("umull", 0x9ba07c00, 0xffe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEL, F_ALIAS),
   2163  1.6  christos   CORE_INSN ("umsubl",0x9ba08000, 0xffe08000, dp_3src, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMEL, F_HAS_ALIAS),
   2164  1.6  christos   CORE_INSN ("umnegl",0x9ba0fc00, 0xffe0fc00, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEL, F_ALIAS),
   2165  1.1  christos   CORE_INSN ("umulh", 0x9bc07c00, 0xffe08000, dp_3src, OP3 (Rd, Rn, Rm),     QL_I3SAMEX, 0),
   2166  1.6  christos   /* Excep'n generation.  */
   2167  1.6  christos   CORE_INSN ("svc",   0xd4000001, 0xffe0001f, exception, OP1 (EXCEPTION), {}, 0),
   2168  1.6  christos   CORE_INSN ("hvc",   0xd4000002, 0xffe0001f, exception, OP1 (EXCEPTION), {}, 0),
   2169  1.6  christos   CORE_INSN ("smc",   0xd4000003, 0xffe0001f, exception, OP1 (EXCEPTION), {}, 0),
   2170  1.6  christos   CORE_INSN ("brk",   0xd4200000, 0xffe0001f, exception, OP1 (EXCEPTION), {}, 0),
   2171  1.6  christos   CORE_INSN ("hlt",   0xd4400000, 0xffe0001f, exception, OP1 (EXCEPTION), {}, 0),
   2172  1.6  christos   CORE_INSN ("dcps1", 0xd4a00001, 0xffe0001f, exception, OP1 (EXCEPTION), {}, F_OPD0_OPT | F_DEFAULT (0)),
   2173  1.6  christos   CORE_INSN ("dcps2", 0xd4a00002, 0xffe0001f, exception, OP1 (EXCEPTION), {}, F_OPD0_OPT | F_DEFAULT (0)),
   2174  1.1  christos   CORE_INSN ("dcps3", 0xd4a00003, 0xffe0001f, exception, OP1 (EXCEPTION), {}, F_OPD0_OPT | F_DEFAULT (0)),
   2175  1.6  christos   /* Extract.  */
   2176  1.6  christos   CORE_INSN ("extr",  0x13800000, 0x7fa00000, extract, OP4 (Rd, Rn, Rm, IMMS), QL_EXTR, F_HAS_ALIAS | F_SF | F_N),
   2177  1.1  christos   {"ror", 0x13800000, 0x7fa00000, extract, OP_ROR_IMM, CORE, OP3 (Rd, Rm, IMMS), QL_SHIFT, F_ALIAS | F_CONV, NULL},
   2178  1.6  christos   /* Floating-point<->fixed-point conversions.  */
   2179  1.6  christos   __FP_INSN ("scvtf", 0x1e020000, 0x7f3f0000, float2fix, OP3 (Fd, Rn, FBITS), QL_FIX2FP, F_FPTYPE | F_SF),
   2180  1.6  christos   FF16_INSN ("scvtf", 0x1ec20000, 0x7f3f0000, float2fix, OP3 (Fd, Rn, FBITS), QL_FIX2FP_H, F_FPTYPE | F_SF),
   2181  1.6  christos   __FP_INSN ("ucvtf", 0x1e030000, 0x7f3f0000, float2fix, OP3 (Fd, Rn, FBITS), QL_FIX2FP, F_FPTYPE | F_SF),
   2182  1.6  christos   FF16_INSN ("ucvtf", 0x1ec30000, 0x7f3f0000, float2fix, OP3 (Fd, Rn, FBITS), QL_FIX2FP_H, F_FPTYPE | F_SF),
   2183  1.6  christos   __FP_INSN ("fcvtzs",0x1e180000, 0x7f3f0000, float2fix, OP3 (Rd, Fn, FBITS), QL_FP2FIX, F_FPTYPE | F_SF),
   2184  1.6  christos   FF16_INSN ("fcvtzs",0x1ed80000, 0x7f3f0000, float2fix, OP3 (Rd, Fn, FBITS), QL_FP2FIX_H, F_FPTYPE | F_SF),
   2185  1.6  christos   __FP_INSN ("fcvtzu",0x1e190000, 0x7f3f0000, float2fix, OP3 (Rd, Fn, FBITS), QL_FP2FIX, F_FPTYPE | F_SF),
   2186  1.1  christos   FF16_INSN ("fcvtzu",0x1ed90000, 0x7f3f0000, float2fix, OP3 (Rd, Fn, FBITS), QL_FP2FIX_H, F_FPTYPE | F_SF),
   2187  1.6  christos   /* Floating-point<->integer conversions.  */
   2188  1.6  christos   __FP_INSN ("fcvtns",0x1e200000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2189  1.6  christos   FF16_INSN ("fcvtns",0x1ee00000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2190  1.6  christos   __FP_INSN ("fcvtnu",0x1e210000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2191  1.6  christos   FF16_INSN ("fcvtnu",0x1ee10000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2192  1.6  christos   __FP_INSN ("scvtf", 0x1e220000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP, F_FPTYPE | F_SF),
   2193  1.6  christos   FF16_INSN ("scvtf", 0x1ee20000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
   2194  1.6  christos   __FP_INSN ("ucvtf", 0x1e230000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP, F_FPTYPE | F_SF),
   2195  1.6  christos   FF16_INSN ("ucvtf", 0x1ee30000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
   2196  1.6  christos   __FP_INSN ("fcvtas",0x1e240000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2197  1.6  christos   FF16_INSN ("fcvtas",0x1ee40000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2198  1.6  christos   __FP_INSN ("fcvtau",0x1e250000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2199  1.6  christos   FF16_INSN ("fcvtau",0x1ee50000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2200  1.6  christos   __FP_INSN ("fmov",  0x1e260000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2201  1.6  christos   FF16_INSN ("fmov",  0x1ee60000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2202  1.6  christos   __FP_INSN ("fmov",  0x1e270000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP, F_FPTYPE | F_SF),
   2203  1.6  christos   FF16_INSN ("fmov",  0x1ee70000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
   2204  1.6  christos   __FP_INSN ("fcvtps",0x1e280000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2205  1.6  christos   FF16_INSN ("fcvtps",0x1ee80000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2206  1.6  christos   __FP_INSN ("fcvtpu",0x1e290000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2207  1.6  christos   FF16_INSN ("fcvtpu",0x1ee90000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2208  1.6  christos   __FP_INSN ("fcvtms",0x1e300000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2209  1.6  christos   FF16_INSN ("fcvtms",0x1ef00000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2210  1.6  christos   __FP_INSN ("fcvtmu",0x1e310000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2211  1.6  christos   FF16_INSN ("fcvtmu",0x1ef10000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2212  1.6  christos   __FP_INSN ("fcvtzs",0x1e380000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2213  1.6  christos   FF16_INSN ("fcvtzs",0x1ef80000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2214  1.6  christos   __FP_INSN ("fcvtzu",0x1e390000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
   2215  1.6  christos   FF16_INSN ("fcvtzu",0x1ef90000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
   2216  1.6  christos   __FP_INSN ("fmov",  0x9eae0000, 0xfffffc00, float2int, OP2 (Rd, VnD1), QL_XVD1, 0),
   2217  1.1  christos   __FP_INSN ("fmov",  0x9eaf0000, 0xfffffc00, float2int, OP2 (VdD1, Rn), QL_VD1X, 0),
   2218  1.6  christos   /* Floating-point conditional compare.  */
   2219  1.6  christos   __FP_INSN ("fccmp", 0x1e200400, 0xff200c10, floatccmp, OP4 (Fn, Fm, NZCV, COND), QL_FCCMP, F_FPTYPE),
   2220  1.6  christos   FF16_INSN ("fccmp", 0x1ee00400, 0xff200c10, floatccmp, OP4 (Fn, Fm, NZCV, COND), QL_FCCMP_H, F_FPTYPE),
   2221  1.6  christos   __FP_INSN ("fccmpe",0x1e200410, 0xff200c10, floatccmp, OP4 (Fn, Fm, NZCV, COND), QL_FCCMP, F_FPTYPE),
   2222  1.1  christos   FF16_INSN ("fccmpe",0x1ee00410, 0xff200c10, floatccmp, OP4 (Fn, Fm, NZCV, COND), QL_FCCMP_H, F_FPTYPE),
   2223  1.6  christos   /* Floating-point compare.  */
   2224  1.6  christos   __FP_INSN ("fcmp",  0x1e202000, 0xff20fc1f, floatcmp, OP2 (Fn, Fm),     QL_FP2,   F_FPTYPE),
   2225  1.6  christos   FF16_INSN ("fcmp",  0x1ee02000, 0xff20fc1f, floatcmp, OP2 (Fn, Fm),     QL_FP2_H, F_FPTYPE),
   2226  1.6  christos   __FP_INSN ("fcmpe", 0x1e202010, 0xff20fc1f, floatcmp, OP2 (Fn, Fm),     QL_FP2,   F_FPTYPE),
   2227  1.6  christos   FF16_INSN ("fcmpe", 0x1ee02010, 0xff20fc1f, floatcmp, OP2 (Fn, Fm),     QL_FP2_H, F_FPTYPE),
   2228  1.6  christos   __FP_INSN ("fcmp",  0x1e202008, 0xff20fc1f, floatcmp, OP2 (Fn, FPIMM0), QL_DST_SD,F_FPTYPE),
   2229  1.6  christos   FF16_INSN ("fcmp",  0x1ee02008, 0xff20fc1f, floatcmp, OP2 (Fn, FPIMM0), QL_FP2_H, F_FPTYPE),
   2230  1.6  christos   __FP_INSN ("fcmpe", 0x1e202018, 0xff20fc1f, floatcmp, OP2 (Fn, FPIMM0), QL_DST_SD,F_FPTYPE),
   2231  1.1  christos   FF16_INSN ("fcmpe", 0x1ee02018, 0xff20fc1f, floatcmp, OP2 (Fn, FPIMM0), QL_FP2_H, F_FPTYPE),
   2232  1.6  christos   /* Floating-point data-processing (1 source).  */
   2233  1.6  christos   __FP_INSN ("fmov",  0x1e204000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2234  1.6  christos   FF16_INSN ("fmov",  0x1ee04000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2235  1.6  christos   __FP_INSN ("fabs",  0x1e20c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2236  1.6  christos   FF16_INSN ("fabs",  0x1ee0c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2237  1.6  christos   __FP_INSN ("fneg",  0x1e214000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2238  1.6  christos   FF16_INSN ("fneg",  0x1ee14000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2239  1.6  christos   __FP_INSN ("fsqrt", 0x1e21c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2240  1.6  christos   FF16_INSN ("fsqrt", 0x1ee1c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2241  1.6  christos   {"fcvt", 0x1e224000, 0xff3e7c00, floatdp1, OP_FCVT, FP, OP2 (Fd, Fn), QL_FCVT, F_FPTYPE | F_MISC, NULL },
   2242  1.6  christos   __FP_INSN ("frintn",0x1e244000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2243  1.6  christos   FF16_INSN ("frintn",0x1ee44000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2244  1.6  christos   __FP_INSN ("frintp",0x1e24c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2245  1.6  christos   FF16_INSN ("frintp",0x1ee4c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2246  1.6  christos   __FP_INSN ("frintm",0x1e254000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2247  1.6  christos   FF16_INSN ("frintm",0x1ee54000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2248  1.6  christos   __FP_INSN ("frintz",0x1e25c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2249  1.6  christos   FF16_INSN ("frintz",0x1ee5c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2250  1.6  christos   __FP_INSN ("frinta",0x1e264000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2251  1.6  christos   FF16_INSN ("frinta",0x1ee64000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2252  1.6  christos   __FP_INSN ("frintx",0x1e274000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2253  1.6  christos   FF16_INSN ("frintx",0x1ee74000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2254  1.6  christos   __FP_INSN ("frinti",0x1e27c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2,   F_FPTYPE),
   2255  1.1  christos   FF16_INSN ("frinti",0x1ee7c000, 0xff3ffc00, floatdp1, OP2 (Fd, Fn), QL_FP2_H, F_FPTYPE),
   2256  1.6  christos   /* Floating-point data-processing (2 source).  */
   2257  1.6  christos   __FP_INSN ("fmul",  0x1e200800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2258  1.6  christos   FF16_INSN ("fmul",  0x1ee00800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2259  1.6  christos   __FP_INSN ("fdiv",  0x1e201800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2260  1.6  christos   FF16_INSN ("fdiv",  0x1ee01800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2261  1.6  christos   __FP_INSN ("fadd",  0x1e202800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2262  1.6  christos   FF16_INSN ("fadd",  0x1ee02800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2263  1.6  christos   __FP_INSN ("fsub",  0x1e203800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2264  1.6  christos   FF16_INSN ("fsub",  0x1ee03800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2265  1.6  christos   __FP_INSN ("fmax",  0x1e204800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2266  1.6  christos   FF16_INSN ("fmax",  0x1ee04800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2267  1.6  christos   __FP_INSN ("fmin",  0x1e205800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2268  1.6  christos   FF16_INSN ("fmin",  0x1ee05800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2269  1.6  christos   __FP_INSN ("fmaxnm",0x1e206800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2270  1.6  christos   FF16_INSN ("fmaxnm",0x1ee06800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2271  1.6  christos   __FP_INSN ("fminnm",0x1e207800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2272  1.6  christos   FF16_INSN ("fminnm",0x1ee07800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2273  1.6  christos   __FP_INSN ("fnmul", 0x1e208800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3,   F_FPTYPE),
   2274  1.1  christos   FF16_INSN ("fnmul", 0x1ee08800, 0xff20fc00, floatdp2, OP3 (Fd, Fn, Fm), QL_FP3_H, F_FPTYPE),
   2275  1.6  christos   /* Floating-point data-processing (3 source).  */
   2276  1.6  christos   __FP_INSN ("fmadd", 0x1f000000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4,   F_FPTYPE),
   2277  1.6  christos   FF16_INSN ("fmadd", 0x1fc00000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4_H, F_FPTYPE),
   2278  1.6  christos   __FP_INSN ("fmsub", 0x1f008000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4,   F_FPTYPE),
   2279  1.6  christos   FF16_INSN ("fmsub", 0x1fc08000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4_H, F_FPTYPE),
   2280  1.6  christos   __FP_INSN ("fnmadd",0x1f200000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4,   F_FPTYPE),
   2281  1.6  christos   FF16_INSN ("fnmadd",0x1fe00000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4_H, F_FPTYPE),
   2282  1.6  christos   __FP_INSN ("fnmsub",0x1f208000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4,   F_FPTYPE),
   2283  1.1  christos   FF16_INSN ("fnmsub",0x1fe08000, 0xff208000, floatdp3, OP4 (Fd, Fn, Fm, Fa), QL_FP4_H, F_FPTYPE),
   2284  1.6  christos   /* Floating-point immediate.  */
   2285  1.6  christos   __FP_INSN ("fmov", 0x1e201000, 0xff201fe0, floatimm, OP2 (Fd, FPIMM), QL_DST_SD, F_FPTYPE),
   2286  1.1  christos   FF16_INSN ("fmov", 0x1ee01000, 0xff201fe0, floatimm, OP2 (Fd, FPIMM), QL_DST_H, F_FPTYPE),
   2287  1.6  christos   /* Floating-point conditional select.  */
   2288  1.6  christos   __FP_INSN ("fcsel", 0x1e200c00, 0xff200c00, floatsel, OP4 (Fd, Fn, Fm, COND), QL_FP_COND, F_FPTYPE),
   2289  1.1  christos   FF16_INSN ("fcsel", 0x1ee00c00, 0xff200c00, floatsel, OP4 (Fd, Fn, Fm, COND), QL_FP_COND_H, F_FPTYPE),
   2290  1.6  christos   /* Load/store register (immediate indexed).  */
   2291  1.6  christos   CORE_INSN ("strb", 0x38000400, 0xffe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
   2292  1.6  christos   CORE_INSN ("ldrb", 0x38400400, 0xffe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
   2293  1.6  christos   CORE_INSN ("ldrsb", 0x38800400, 0xffa00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_R8, F_LDS_SIZE),
   2294  1.6  christos   CORE_INSN ("str", 0x3c000400, 0x3f600400, ldst_imm9, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0),
   2295  1.6  christos   CORE_INSN ("ldr", 0x3c400400, 0x3f600400, ldst_imm9, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0),
   2296  1.6  christos   CORE_INSN ("strh", 0x78000400, 0xffe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
   2297  1.6  christos   CORE_INSN ("ldrh", 0x78400400, 0xffe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
   2298  1.6  christos   CORE_INSN ("ldrsh", 0x78800400, 0xffa00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_R16, F_LDS_SIZE),
   2299  1.6  christos   CORE_INSN ("str", 0xb8000400, 0xbfe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
   2300  1.6  christos   CORE_INSN ("ldr", 0xb8400400, 0xbfe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
   2301  1.1  christos   CORE_INSN ("ldrsw", 0xb8800400, 0xffe00400, ldst_imm9, OP2 (Rt, ADDR_SIMM9), QL_LDST_X32, 0),
   2302  1.6  christos   /* Load/store register (unsigned immediate).  */
   2303  1.6  christos   {"strb", 0x39000000, 0xffc00000, ldst_pos, OP_STRB_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0, NULL},
   2304  1.6  christos   {"ldrb", 0x39400000, 0xffc00000, ldst_pos, OP_LDRB_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0, NULL},
   2305  1.6  christos   {"ldrsb", 0x39800000, 0xff800000, ldst_pos, OP_LDRSB_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_R8, F_LDS_SIZE, NULL},
   2306  1.6  christos   {"str", 0x3d000000, 0x3f400000, ldst_pos, OP_STRF_POS, CORE, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0, NULL},
   2307  1.6  christos   {"ldr", 0x3d400000, 0x3f400000, ldst_pos, OP_LDRF_POS, CORE, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0, NULL},
   2308  1.6  christos   {"strh", 0x79000000, 0xffc00000, ldst_pos, OP_STRH_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0, NULL},
   2309  1.6  christos   {"ldrh", 0x79400000, 0xffc00000, ldst_pos, OP_LDRH_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0, NULL},
   2310  1.6  christos   {"ldrsh", 0x79800000, 0xff800000, ldst_pos, OP_LDRSH_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_R16, F_LDS_SIZE, NULL},
   2311  1.6  christos   {"str", 0xb9000000, 0xbfc00000, ldst_pos, OP_STR_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q, NULL},
   2312  1.6  christos   {"ldr", 0xb9400000, 0xbfc00000, ldst_pos, OP_LDR_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q, NULL},
   2313  1.6  christos   {"ldrsw", 0xb9800000, 0xffc00000, ldst_pos, OP_LDRSW_POS, CORE, OP2 (Rt, ADDR_UIMM12), QL_LDST_X32, 0, NULL},
   2314  1.1  christos   {"prfm", 0xf9800000, 0xffc00000, ldst_pos, OP_PRFM_POS, CORE, OP2 (PRFOP, ADDR_UIMM12), QL_LDST_PRFM, 0, NULL},
   2315  1.6  christos   /* Load/store register (register offset).  */
   2316  1.6  christos   CORE_INSN ("strb", 0x38200800, 0xffe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0),
   2317  1.6  christos   CORE_INSN ("ldrb", 0x38600800, 0xffe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0),
   2318  1.6  christos   CORE_INSN ("ldrsb", 0x38a00800, 0xffa00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_R8, F_LDS_SIZE),
   2319  1.6  christos   CORE_INSN ("str", 0x3c200800, 0x3f600c00, ldst_regoff, OP2 (Ft, ADDR_REGOFF), QL_LDST_FP, 0),
   2320  1.6  christos   CORE_INSN ("ldr", 0x3c600800, 0x3f600c00, ldst_regoff, OP2 (Ft, ADDR_REGOFF), QL_LDST_FP, 0),
   2321  1.6  christos   CORE_INSN ("strh", 0x78200800, 0xffe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_W16, 0),
   2322  1.6  christos   CORE_INSN ("ldrh", 0x78600800, 0xffe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_W16, 0),
   2323  1.6  christos   CORE_INSN ("ldrsh", 0x78a00800, 0xffa00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_R16, F_LDS_SIZE),
   2324  1.6  christos   CORE_INSN ("str", 0xb8200800, 0xbfe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_R, F_GPRSIZE_IN_Q),
   2325  1.6  christos   CORE_INSN ("ldr", 0xb8600800, 0xbfe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_R, F_GPRSIZE_IN_Q),
   2326  1.6  christos   CORE_INSN ("ldrsw", 0xb8a00800, 0xffe00c00, ldst_regoff, OP2 (Rt, ADDR_REGOFF), QL_LDST_X32, 0),
   2327  1.1  christos   CORE_INSN ("prfm", 0xf8a00800, 0xffe00c00, ldst_regoff, OP2 (PRFOP, ADDR_REGOFF), QL_LDST_PRFM, 0),
   2328  1.6  christos   /* Load/store register (unprivileged).  */
   2329  1.6  christos   CORE_INSN ("sttrb", 0x38000800, 0xffe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
   2330  1.6  christos   CORE_INSN ("ldtrb", 0x38400800, 0xffe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
   2331  1.6  christos   CORE_INSN ("ldtrsb", 0x38800800, 0xffa00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_R8, F_LDS_SIZE),
   2332  1.6  christos   CORE_INSN ("sttrh", 0x78000800, 0xffe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
   2333  1.6  christos   CORE_INSN ("ldtrh", 0x78400800, 0xffe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
   2334  1.6  christos   CORE_INSN ("ldtrsh", 0x78800800, 0xffa00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_R16, F_LDS_SIZE),
   2335  1.6  christos   CORE_INSN ("sttr", 0xb8000800, 0xbfe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
   2336  1.6  christos   CORE_INSN ("ldtr", 0xb8400800, 0xbfe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
   2337  1.1  christos   CORE_INSN ("ldtrsw", 0xb8800800, 0xffe00c00, ldst_unpriv, OP2 (Rt, ADDR_SIMM9), QL_LDST_X32, 0),
   2338  1.6  christos   /* Load/store register (unscaled immediate).  */
   2339  1.6  christos   {"sturb", 0x38000000, 0xffe00c00, ldst_unscaled, OP_STURB, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0, NULL},
   2340  1.6  christos   {"ldurb", 0x38400000, 0xffe00c00, ldst_unscaled, OP_LDURB, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0, NULL},
   2341  1.6  christos   {"ldursb", 0x38800000, 0xffa00c00, ldst_unscaled, OP_LDURSB, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_R8, F_LDS_SIZE, NULL},
   2342  1.6  christos   {"stur", 0x3c000000, 0x3f600c00, ldst_unscaled, OP_STURV, CORE, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0, NULL},
   2343  1.6  christos   {"ldur", 0x3c400000, 0x3f600c00, ldst_unscaled, OP_LDURV, CORE, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0, NULL},
   2344  1.6  christos   {"sturh", 0x78000000, 0xffe00c00, ldst_unscaled, OP_STURH, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0, NULL},
   2345  1.6  christos   {"ldurh", 0x78400000, 0xffe00c00, ldst_unscaled, OP_LDURH, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0, NULL},
   2346  1.6  christos   {"ldursh", 0x78800000, 0xffa00c00, ldst_unscaled, OP_LDURSH, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_R16, F_LDS_SIZE, NULL},
   2347  1.6  christos   {"stur", 0xb8000000, 0xbfe00c00, ldst_unscaled, OP_STUR, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q, NULL},
   2348  1.6  christos   {"ldur", 0xb8400000, 0xbfe00c00, ldst_unscaled, OP_LDUR, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q, NULL},
   2349  1.6  christos   {"ldursw", 0xb8800000, 0xffe00c00, ldst_unscaled, OP_LDURSW, CORE, OP2 (Rt, ADDR_SIMM9), QL_LDST_X32, 0, NULL},
   2350  1.1  christos   {"prfum", 0xf8800000, 0xffe00c00, ldst_unscaled, OP_PRFUM, CORE, OP2 (PRFOP, ADDR_SIMM9), QL_LDST_PRFM, 0, NULL},
   2351  1.6  christos   /* Load/store exclusive.  */
   2352  1.6  christos   CORE_INSN ("stxrb", 0x8007c00, 0xffe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2353  1.6  christos   CORE_INSN ("stlxrb", 0x800fc00, 0xffe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2354  1.6  christos   CORE_INSN ("ldxrb", 0x85f7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2355  1.6  christos   CORE_INSN ("ldaxrb", 0x85ffc00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2356  1.6  christos   CORE_INSN ("stlrb", 0x89ffc00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2357  1.6  christos   CORE_INSN ("ldarb", 0x8dffc00, 0xffeffc00, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2358  1.6  christos   CORE_INSN ("stxrh", 0x48007c00, 0xffe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2359  1.6  christos   CORE_INSN ("stlxrh", 0x4800fc00, 0xffe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2360  1.6  christos   CORE_INSN ("ldxrh", 0x485f7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2361  1.6  christos   CORE_INSN ("ldaxrh", 0x485ffc00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2362  1.6  christos   CORE_INSN ("stlrh", 0x489ffc00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2363  1.6  christos   CORE_INSN ("ldarh", 0x48dffc00, 0xffeffc00, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2364  1.6  christos   CORE_INSN ("stxr", 0x88007c00, 0xbfe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2_LDST_EXC, F_GPRSIZE_IN_Q),
   2365  1.6  christos   CORE_INSN ("stlxr", 0x8800fc00, 0xbfe08000, ldstexcl, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2_LDST_EXC, F_GPRSIZE_IN_Q),
   2366  1.6  christos   CORE_INSN ("stxp", 0x88200000, 0xbfe08000, ldstexcl, OP4 (Rs, Rt, Rt2, ADDR_SIMPLE), QL_R3_LDST_EXC, F_GPRSIZE_IN_Q),
   2367  1.6  christos   CORE_INSN ("stlxp", 0x88208000, 0xbfe08000, ldstexcl, OP4 (Rs, Rt, Rt2, ADDR_SIMPLE), QL_R3_LDST_EXC, F_GPRSIZE_IN_Q),
   2368  1.6  christos   CORE_INSN ("ldxr", 0x885f7c00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q),
   2369  1.6  christos   CORE_INSN ("ldaxr", 0x885ffc00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q),
   2370  1.6  christos   CORE_INSN ("ldxp", 0x887f0000, 0xbfe08000, ldstexcl, OP3 (Rt, Rt2, ADDR_SIMPLE), QL_R2NIL, F_GPRSIZE_IN_Q),
   2371  1.6  christos   CORE_INSN ("ldaxp", 0x887f8000, 0xbfe08000, ldstexcl, OP3 (Rt, Rt2, ADDR_SIMPLE), QL_R2NIL, F_GPRSIZE_IN_Q),
   2372  1.6  christos   CORE_INSN ("stlr", 0x889ffc00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q),
   2373  1.5  christos   CORE_INSN ("ldar", 0x88dffc00, 0xbfeffc00, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL, F_GPRSIZE_IN_Q),
   2374  1.6  christos   /* Limited Ordering Regions load/store instructions.  */
   2375  1.6  christos   _LOR_INSN ("ldlar",  0x88df7c00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL,       F_GPRSIZE_IN_Q),
   2376  1.6  christos   _LOR_INSN ("ldlarb", 0x08df7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2377  1.6  christos   _LOR_INSN ("ldlarh", 0x48df7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2378  1.6  christos   _LOR_INSN ("stllr",  0x889f7c00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_R1NIL,       F_GPRSIZE_IN_Q),
   2379  1.6  christos   _LOR_INSN ("stllrb", 0x089f7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2380  1.1  christos   _LOR_INSN ("stllrh", 0x489f7c00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
   2381  1.6  christos   /* Load/store no-allocate pair (offset).  */
   2382  1.6  christos   CORE_INSN ("stnp", 0x28000000, 0x7fc00000, ldstnapair_offs, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2383  1.6  christos   CORE_INSN ("ldnp", 0x28400000, 0x7fc00000, ldstnapair_offs, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2384  1.6  christos   CORE_INSN ("stnp", 0x2c000000, 0x3fc00000, ldstnapair_offs, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2385  1.1  christos   CORE_INSN ("ldnp", 0x2c400000, 0x3fc00000, ldstnapair_offs, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2386  1.6  christos   /* Load/store register pair (offset).  */
   2387  1.6  christos   CORE_INSN ("stp", 0x29000000, 0x7ec00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2388  1.6  christos   CORE_INSN ("ldp", 0x29400000, 0x7ec00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2389  1.6  christos   CORE_INSN ("stp", 0x2d000000, 0x3fc00000, ldstpair_off, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2390  1.6  christos   CORE_INSN ("ldp", 0x2d400000, 0x3fc00000, ldstpair_off, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2391  1.1  christos   {"ldpsw", 0x69400000, 0xffc00000, ldstpair_off, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, VERIFIER (ldpsw)},
   2392  1.6  christos   /* Load/store register pair (indexed).  */
   2393  1.6  christos   CORE_INSN ("stp", 0x28800000, 0x7ec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2394  1.6  christos   CORE_INSN ("ldp", 0x28c00000, 0x7ec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
   2395  1.6  christos   CORE_INSN ("stp", 0x2c800000, 0x3ec00000, ldstpair_indexed, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2396  1.6  christos   CORE_INSN ("ldp", 0x2cc00000, 0x3ec00000, ldstpair_indexed, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
   2397  1.1  christos   {"ldpsw", 0x68c00000, 0xfec00000, ldstpair_indexed, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, VERIFIER (ldpsw)},
   2398  1.6  christos   /* Load register (literal).  */
   2399  1.6  christos   {"ldr",   0x18000000, 0xbf000000, loadlit, OP_LDR_LIT,   CORE, OP2 (Rt, ADDR_PCREL19),    QL_R_PCREL, F_GPRSIZE_IN_Q, NULL},
   2400  1.6  christos   {"ldr",   0x1c000000, 0x3f000000, loadlit, OP_LDRV_LIT,  CORE, OP2 (Ft, ADDR_PCREL19),    QL_FP_PCREL, 0, NULL},
   2401  1.6  christos   {"ldrsw", 0x98000000, 0xff000000, loadlit, OP_LDRSW_LIT, CORE, OP2 (Rt, ADDR_PCREL19),    QL_X_PCREL, 0, NULL},
   2402  1.1  christos   {"prfm",  0xd8000000, 0xff000000, loadlit, OP_PRFM_LIT,  CORE, OP2 (PRFOP, ADDR_PCREL19), QL_PRFM_PCREL, 0, NULL},
   2403  1.6  christos   /* Logical (immediate).  */
   2404  1.6  christos   CORE_INSN ("and", 0x12000000, 0x7f800000, log_imm, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
   2405  1.6  christos   {"bic", 0x12000000, 0x7f800000, log_imm, OP_BIC, CORE, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_ALIAS | F_PSEUDO | F_SF, NULL},
   2406  1.6  christos   CORE_INSN ("orr", 0x32000000, 0x7f800000, log_imm, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
   2407  1.6  christos   {"mov", 0x320003e0, 0x7f8003e0, log_imm, OP_MOV_IMM_LOG, CORE, OP2 (Rd_SP, IMM_MOV), QL_R1NIL, F_ALIAS | F_P1 | F_SF | F_CONV, NULL},
   2408  1.6  christos   CORE_INSN ("eor", 0x52000000, 0x7f800000, log_imm, OP3 (Rd_SP, Rn, LIMM), QL_R2NIL, F_SF),
   2409  1.6  christos   CORE_INSN ("ands", 0x72000000, 0x7f800000, log_imm, OP3 (Rd, Rn, LIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
   2410  1.1  christos   CORE_INSN ("tst", 0x7200001f, 0x7f80001f, log_imm, OP2 (Rn, LIMM), QL_R1NIL, F_ALIAS | F_SF),
   2411  1.6  christos   /* Logical (shifted register).  */
   2412  1.6  christos   CORE_INSN ("and", 0xa000000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   2413  1.6  christos   CORE_INSN ("bic", 0xa200000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   2414  1.6  christos   CORE_INSN ("orr", 0x2a000000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   2415  1.6  christos   CORE_INSN ("mov", 0x2a0003e0, 0x7f2003e0, log_shift, OP2 (Rd, Rm_SFT), QL_I2SAMER, F_ALIAS | F_SF),
   2416  1.6  christos   {"uxtw", 0x2a0003e0, 0x7f2003e0, log_shift, OP_UXTW, CORE, OP2 (Rd, Rm), QL_I2SAMEW, F_ALIAS | F_PSEUDO, NULL},
   2417  1.6  christos   CORE_INSN ("orn", 0x2a200000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   2418  1.6  christos   CORE_INSN ("mvn", 0x2a2003e0, 0x7f2003e0, log_shift, OP2 (Rd, Rm_SFT), QL_I2SAMER, F_ALIAS | F_SF),
   2419  1.6  christos   CORE_INSN ("eor", 0x4a000000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   2420  1.6  christos   CORE_INSN ("eon", 0x4a200000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   2421  1.6  christos   CORE_INSN ("ands", 0x6a000000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
   2422  1.6  christos   CORE_INSN ("tst", 0x6a00001f, 0x7f20001f, log_shift, OP2 (Rn, Rm_SFT), QL_I2SAMER, F_ALIAS | F_SF),
   2423  1.3  christos   CORE_INSN ("bics", 0x6a200000, 0x7f200000, log_shift, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
   2424  1.6  christos   /* LSE extension (atomic).  */
   2425  1.6  christos   _LSE_INSN ("casb", 0x8a07c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2426  1.6  christos   _LSE_INSN ("cash", 0x48a07c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2427  1.6  christos   _LSE_INSN ("cas", 0x88a07c00, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2428  1.6  christos   _LSE_INSN ("casab", 0x8e07c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2429  1.6  christos   _LSE_INSN ("caslb", 0x8a0fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2430  1.6  christos   _LSE_INSN ("casalb", 0x8e0fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2431  1.6  christos   _LSE_INSN ("casah", 0x48e07c00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2432  1.6  christos   _LSE_INSN ("caslh", 0x48a0fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2433  1.6  christos   _LSE_INSN ("casalh", 0x48e0fc00, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2434  1.6  christos   _LSE_INSN ("casa", 0x88e07c00, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2435  1.6  christos   _LSE_INSN ("casl", 0x88a0fc00, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2436  1.6  christos   _LSE_INSN ("casal", 0x88e0fc00, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2437  1.6  christos   _LSE_INSN ("casp", 0x8207c00, 0xbfe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_R4NIL, F_LSE_SZ),
   2438  1.6  christos   _LSE_INSN ("caspa", 0x8607c00, 0xbfe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_R4NIL, F_LSE_SZ),
   2439  1.6  christos   _LSE_INSN ("caspl", 0x820fc00, 0xbfe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_R4NIL, F_LSE_SZ),
   2440  1.6  christos   _LSE_INSN ("caspal", 0x860fc00, 0xbfe0fc00, lse_atomic, OP5 (Rs, PAIRREG, Rt, PAIRREG, ADDR_SIMPLE), QL_R4NIL, F_LSE_SZ),
   2441  1.6  christos   _LSE_INSN ("swpb", 0x38208000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2442  1.6  christos   _LSE_INSN ("swph", 0x78208000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2443  1.6  christos   _LSE_INSN ("swp", 0xb8208000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2444  1.6  christos   _LSE_INSN ("swpab", 0x38a08000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2445  1.6  christos   _LSE_INSN ("swplb", 0x38608000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2446  1.6  christos   _LSE_INSN ("swpalb", 0x38e08000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2447  1.6  christos   _LSE_INSN ("swpah", 0x78a08000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2448  1.6  christos   _LSE_INSN ("swplh", 0x78608000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2449  1.6  christos   _LSE_INSN ("swpalh", 0x78e08000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2450  1.6  christos   _LSE_INSN ("swpa", 0xb8a08000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2451  1.6  christos   _LSE_INSN ("swpl", 0xb8608000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2452  1.6  christos   _LSE_INSN ("swpal", 0xb8e08000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2453  1.6  christos   _LSE_INSN ("ldaddb", 0x38200000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2454  1.6  christos   _LSE_INSN ("ldaddh", 0x78200000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2455  1.6  christos   _LSE_INSN ("ldadd", 0xb8200000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2456  1.6  christos   _LSE_INSN ("ldaddab", 0x38a00000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2457  1.6  christos   _LSE_INSN ("ldaddlb", 0x38600000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2458  1.6  christos   _LSE_INSN ("ldaddalb", 0x38e00000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2459  1.6  christos   _LSE_INSN ("ldaddah", 0x78a00000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2460  1.6  christos   _LSE_INSN ("ldaddlh", 0x78600000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2461  1.6  christos   _LSE_INSN ("ldaddalh", 0x78e00000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2462  1.6  christos   _LSE_INSN ("ldadda", 0xb8a00000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2463  1.6  christos   _LSE_INSN ("ldaddl", 0xb8600000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2464  1.6  christos   _LSE_INSN ("ldaddal", 0xb8e00000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2465  1.6  christos   _LSE_INSN ("ldclrb", 0x38201000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2466  1.6  christos   _LSE_INSN ("ldclrh", 0x78201000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2467  1.6  christos   _LSE_INSN ("ldclr", 0xb8201000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2468  1.6  christos   _LSE_INSN ("ldclrab", 0x38a01000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2469  1.6  christos   _LSE_INSN ("ldclrlb", 0x38601000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2470  1.6  christos   _LSE_INSN ("ldclralb", 0x38e01000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2471  1.6  christos   _LSE_INSN ("ldclrah", 0x78a01000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2472  1.6  christos   _LSE_INSN ("ldclrlh", 0x78601000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2473  1.6  christos   _LSE_INSN ("ldclralh", 0x78e01000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2474  1.6  christos   _LSE_INSN ("ldclra", 0xb8a01000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2475  1.6  christos   _LSE_INSN ("ldclrl", 0xb8601000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2476  1.6  christos   _LSE_INSN ("ldclral", 0xb8e01000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2477  1.6  christos   _LSE_INSN ("ldeorb", 0x38202000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2478  1.6  christos   _LSE_INSN ("ldeorh", 0x78202000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2479  1.6  christos   _LSE_INSN ("ldeor", 0xb8202000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2480  1.6  christos   _LSE_INSN ("ldeorab", 0x38a02000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2481  1.6  christos   _LSE_INSN ("ldeorlb", 0x38602000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2482  1.6  christos   _LSE_INSN ("ldeoralb", 0x38e02000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2483  1.6  christos   _LSE_INSN ("ldeorah", 0x78a02000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2484  1.6  christos   _LSE_INSN ("ldeorlh", 0x78602000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2485  1.6  christos   _LSE_INSN ("ldeoralh", 0x78e02000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2486  1.6  christos   _LSE_INSN ("ldeora", 0xb8a02000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2487  1.6  christos   _LSE_INSN ("ldeorl", 0xb8602000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2488  1.6  christos   _LSE_INSN ("ldeoral", 0xb8e02000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2489  1.6  christos   _LSE_INSN ("ldsetb", 0x38203000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2490  1.6  christos   _LSE_INSN ("ldseth", 0x78203000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2491  1.6  christos   _LSE_INSN ("ldset", 0xb8203000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2492  1.6  christos   _LSE_INSN ("ldsetab", 0x38a03000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2493  1.6  christos   _LSE_INSN ("ldsetlb", 0x38603000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2494  1.6  christos   _LSE_INSN ("ldsetalb", 0x38e03000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2495  1.6  christos   _LSE_INSN ("ldsetah", 0x78a03000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2496  1.6  christos   _LSE_INSN ("ldsetlh", 0x78603000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2497  1.6  christos   _LSE_INSN ("ldsetalh", 0x78e03000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2498  1.6  christos   _LSE_INSN ("ldseta", 0xb8a03000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2499  1.6  christos   _LSE_INSN ("ldsetl", 0xb8603000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2500  1.6  christos   _LSE_INSN ("ldsetal", 0xb8e03000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2501  1.6  christos   _LSE_INSN ("ldsmaxb", 0x38204000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2502  1.6  christos   _LSE_INSN ("ldsmaxh", 0x78204000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2503  1.6  christos   _LSE_INSN ("ldsmax", 0xb8204000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2504  1.6  christos   _LSE_INSN ("ldsmaxab", 0x38a04000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2505  1.6  christos   _LSE_INSN ("ldsmaxlb", 0x38604000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2506  1.6  christos   _LSE_INSN ("ldsmaxalb", 0x38e04000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2507  1.6  christos   _LSE_INSN ("ldsmaxah", 0x78a04000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2508  1.6  christos   _LSE_INSN ("ldsmaxlh", 0x78604000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2509  1.6  christos   _LSE_INSN ("ldsmaxalh", 0x78e04000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2510  1.6  christos   _LSE_INSN ("ldsmaxa", 0xb8a04000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2511  1.6  christos   _LSE_INSN ("ldsmaxl", 0xb8604000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2512  1.6  christos   _LSE_INSN ("ldsmaxal", 0xb8e04000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2513  1.6  christos   _LSE_INSN ("ldsminb", 0x38205000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2514  1.6  christos   _LSE_INSN ("ldsminh", 0x78205000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2515  1.6  christos   _LSE_INSN ("ldsmin", 0xb8205000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2516  1.6  christos   _LSE_INSN ("ldsminab", 0x38a05000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2517  1.6  christos   _LSE_INSN ("ldsminlb", 0x38605000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2518  1.6  christos   _LSE_INSN ("ldsminalb", 0x38e05000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2519  1.6  christos   _LSE_INSN ("ldsminah", 0x78a05000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2520  1.6  christos   _LSE_INSN ("ldsminlh", 0x78605000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2521  1.6  christos   _LSE_INSN ("ldsminalh", 0x78e05000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2522  1.6  christos   _LSE_INSN ("ldsmina", 0xb8a05000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2523  1.6  christos   _LSE_INSN ("ldsminl", 0xb8605000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2524  1.6  christos   _LSE_INSN ("ldsminal", 0xb8e05000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2525  1.6  christos   _LSE_INSN ("ldumaxb", 0x38206000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2526  1.6  christos   _LSE_INSN ("ldumaxh", 0x78206000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2527  1.6  christos   _LSE_INSN ("ldumax", 0xb8206000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2528  1.6  christos   _LSE_INSN ("ldumaxab", 0x38a06000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2529  1.6  christos   _LSE_INSN ("ldumaxlb", 0x38606000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2530  1.6  christos   _LSE_INSN ("ldumaxalb", 0x38e06000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2531  1.6  christos   _LSE_INSN ("ldumaxah", 0x78a06000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2532  1.6  christos   _LSE_INSN ("ldumaxlh", 0x78606000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2533  1.6  christos   _LSE_INSN ("ldumaxalh", 0x78e06000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2534  1.6  christos   _LSE_INSN ("ldumaxa", 0xb8a06000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2535  1.6  christos   _LSE_INSN ("ldumaxl", 0xb8606000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2536  1.6  christos   _LSE_INSN ("ldumaxal", 0xb8e06000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2537  1.6  christos   _LSE_INSN ("lduminb", 0x38207000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2538  1.6  christos   _LSE_INSN ("lduminh", 0x78207000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2539  1.6  christos   _LSE_INSN ("ldumin", 0xb8207000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2540  1.6  christos   _LSE_INSN ("lduminab", 0x38a07000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2541  1.6  christos   _LSE_INSN ("lduminlb", 0x38607000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2542  1.6  christos   _LSE_INSN ("lduminalb", 0x38e07000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2543  1.6  christos   _LSE_INSN ("lduminah", 0x78a07000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2544  1.6  christos   _LSE_INSN ("lduminlh", 0x78607000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, F_HAS_ALIAS),
   2545  1.6  christos   _LSE_INSN ("lduminalh", 0x78e07000, 0xffe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_W2_LDST_EXC, 0),
   2546  1.6  christos   _LSE_INSN ("ldumina", 0xb8a07000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2547  1.6  christos   _LSE_INSN ("lduminl", 0xb8607000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ | F_HAS_ALIAS),
   2548  1.6  christos   _LSE_INSN ("lduminal", 0xb8e07000, 0xbfe0fc00, lse_atomic, OP3 (Rs, Rt, ADDR_SIMPLE), QL_R2NIL, F_LSE_SZ),
   2549  1.6  christos   _LSE_INSN ("staddb", 0x3820001f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2550  1.6  christos   _LSE_INSN ("staddh", 0x7820001f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2551  1.6  christos   _LSE_INSN ("stadd", 0xb820001f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2552  1.6  christos   _LSE_INSN ("staddlb", 0x3860001f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2553  1.6  christos   _LSE_INSN ("staddlh", 0x7860001f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2554  1.6  christos   _LSE_INSN ("staddl", 0xb860001f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2555  1.6  christos   _LSE_INSN ("stclrb", 0x3820101f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2556  1.6  christos   _LSE_INSN ("stclrh", 0x7820101f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2557  1.6  christos   _LSE_INSN ("stclr", 0xb820101f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2558  1.6  christos   _LSE_INSN ("stclrlb", 0x3860101f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2559  1.6  christos   _LSE_INSN ("stclrlh", 0x7860101f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2560  1.6  christos   _LSE_INSN ("stclrl", 0xb860101f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2561  1.6  christos   _LSE_INSN ("steorb", 0x3820201f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2562  1.6  christos   _LSE_INSN ("steorh", 0x7820201f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2563  1.6  christos   _LSE_INSN ("steor", 0xb820201f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2564  1.6  christos   _LSE_INSN ("steorlb", 0x3860201f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2565  1.6  christos   _LSE_INSN ("steorlh", 0x7860201f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2566  1.6  christos   _LSE_INSN ("steorl", 0xb860201f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2567  1.6  christos   _LSE_INSN ("stsetb", 0x3820301f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2568  1.6  christos   _LSE_INSN ("stseth", 0x7820301f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2569  1.6  christos   _LSE_INSN ("stset", 0xb820301f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2570  1.6  christos   _LSE_INSN ("stsetlb", 0x3860301f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2571  1.6  christos   _LSE_INSN ("stsetlh", 0x7860301f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2572  1.6  christos   _LSE_INSN ("stsetl", 0xb860301f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2573  1.6  christos   _LSE_INSN ("stsmaxb", 0x3820401f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2574  1.6  christos   _LSE_INSN ("stsmaxh", 0x7820401f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2575  1.6  christos   _LSE_INSN ("stsmax", 0xb820401f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2576  1.6  christos   _LSE_INSN ("stsmaxlb", 0x3860401f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2577  1.6  christos   _LSE_INSN ("stsmaxlh", 0x7860401f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2578  1.6  christos   _LSE_INSN ("stsmaxl", 0xb860401f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2579  1.6  christos   _LSE_INSN ("stsminb", 0x3820501f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2580  1.6  christos   _LSE_INSN ("stsminh", 0x7820501f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2581  1.6  christos   _LSE_INSN ("stsmin", 0xb820501f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2582  1.6  christos   _LSE_INSN ("stsminlb", 0x3860501f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2583  1.6  christos   _LSE_INSN ("stsminlh", 0x7860501f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2584  1.6  christos   _LSE_INSN ("stsminl", 0xb860501f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2585  1.6  christos   _LSE_INSN ("stumaxb", 0x3820601f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2586  1.6  christos   _LSE_INSN ("stumaxh", 0x7820601f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2587  1.6  christos   _LSE_INSN ("stumax", 0xb820601f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2588  1.6  christos   _LSE_INSN ("stumaxlb", 0x3860601f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2589  1.6  christos   _LSE_INSN ("stumaxlh", 0x7860601f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2590  1.6  christos   _LSE_INSN ("stumaxl", 0xb860601f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2591  1.6  christos   _LSE_INSN ("stuminb", 0x3820701f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2592  1.6  christos   _LSE_INSN ("stuminh", 0x7820701f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2593  1.6  christos   _LSE_INSN ("stumin", 0xb820701f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2594  1.6  christos   _LSE_INSN ("stuminlb", 0x3860701f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2595  1.6  christos   _LSE_INSN ("stuminlh", 0x7860701f, 0xffe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_W1_LDST_EXC, F_ALIAS),
   2596  1.1  christos   _LSE_INSN ("stuminl", 0xb860701f, 0xbfe0fc1f, lse_atomic, OP2 (Rs, ADDR_SIMPLE), QL_R1NIL, F_LSE_SZ | F_ALIAS),
   2597  1.6  christos   /* Move wide (immediate).  */
   2598  1.6  christos   {"movn", 0x12800000, 0x7f800000, movewide, OP_MOVN, CORE, OP2 (Rd, HALF), QL_DST_R, F_SF | F_HAS_ALIAS, NULL},
   2599  1.6  christos   {"mov",  0x12800000, 0x7f800000, movewide, OP_MOV_IMM_WIDEN, CORE, OP2 (Rd, IMM_MOV), QL_DST_R, F_SF | F_ALIAS | F_CONV, NULL},
   2600  1.6  christos   {"movz", 0x52800000, 0x7f800000, movewide, OP_MOVZ, CORE, OP2 (Rd, HALF), QL_DST_R, F_SF | F_HAS_ALIAS, NULL},
   2601  1.6  christos   {"mov",  0x52800000, 0x7f800000, movewide, OP_MOV_IMM_WIDE, CORE, OP2 (Rd, IMM_MOV), QL_DST_R, F_SF | F_ALIAS | F_CONV, NULL},
   2602  1.1  christos   {"movk", 0x72800000, 0x7f800000, movewide, OP_MOVK, CORE, OP2 (Rd, HALF), QL_DST_R, F_SF, NULL},
   2603  1.6  christos   /* PC-rel. addressing.  */
   2604  1.6  christos   CORE_INSN ("adr",  0x10000000, 0x9f000000, pcreladdr, OP2 (Rd, ADDR_PCREL21), QL_ADRP, 0),
   2605  1.1  christos   CORE_INSN ("adrp", 0x90000000, 0x9f000000, pcreladdr, OP2 (Rd, ADDR_ADRP), QL_ADRP, 0),
   2606  1.6  christos   /* System.  */
   2607  1.6  christos   CORE_INSN ("msr", 0xd500401f, 0xfff8f01f, ic_system, OP2 (PSTATEFIELD, UIMM4), {}, 0),
   2608  1.6  christos   CORE_INSN ("hint",0xd503201f, 0xfffff01f, ic_system, OP1 (UIMM7), {}, F_HAS_ALIAS),
   2609  1.6  christos   CORE_INSN ("nop", 0xd503201f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2610  1.6  christos   CORE_INSN ("yield", 0xd503203f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2611  1.6  christos   CORE_INSN ("wfe", 0xd503205f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2612  1.6  christos   CORE_INSN ("wfi", 0xd503207f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2613  1.6  christos   CORE_INSN ("sev", 0xd503209f, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2614  1.6  christos   CORE_INSN ("sevl",0xd50320bf, 0xffffffff, ic_system, OP0 (), {}, F_ALIAS),
   2615  1.6  christos   {"esb", 0xd503221f, 0xffffffff, ic_system, 0, RAS, OP0 (), {}, F_ALIAS, NULL},
   2616  1.6  christos   {"psb", 0xd503223f, 0xffffffff, ic_system, 0, STAT_PROFILE, OP1 (BARRIER_PSB), {}, F_ALIAS, NULL},
   2617  1.6  christos   CORE_INSN ("clrex", 0xd503305f, 0xfffff0ff, ic_system, OP1 (UIMM4), {}, F_OPD0_OPT | F_DEFAULT (0xF)),
   2618  1.6  christos   CORE_INSN ("dsb", 0xd503309f, 0xfffff0ff, ic_system, OP1 (BARRIER), {}, 0),
   2619  1.6  christos   CORE_INSN ("dmb", 0xd50330bf, 0xfffff0ff, ic_system, OP1 (BARRIER), {}, 0),
   2620  1.6  christos   CORE_INSN ("isb", 0xd50330df, 0xfffff0ff, ic_system, OP1 (BARRIER_ISB), {}, F_OPD0_OPT | F_DEFAULT (0xF)),
   2621  1.6  christos   CORE_INSN ("sys", 0xd5080000, 0xfff80000, ic_system, OP5 (UIMM3_OP1, Cn, Cm, UIMM3_OP2, Rt), QL_SYS, F_HAS_ALIAS | F_OPD4_OPT | F_DEFAULT (0x1F)),
   2622  1.6  christos   CORE_INSN ("at",  0xd5080000, 0xfff80000, ic_system, OP2 (SYSREG_AT, Rt), QL_SRC_X, F_ALIAS),
   2623  1.6  christos   CORE_INSN ("dc",  0xd5080000, 0xfff80000, ic_system, OP2 (SYSREG_DC, Rt), QL_SRC_X, F_ALIAS),
   2624  1.6  christos   CORE_INSN ("ic",  0xd5080000, 0xfff80000, ic_system, OP2 (SYSREG_IC, Rt_SYS), QL_SRC_X, F_ALIAS | F_OPD1_OPT | F_DEFAULT (0x1F)),
   2625  1.6  christos   CORE_INSN ("tlbi",0xd5080000, 0xfff80000, ic_system, OP2 (SYSREG_TLBI, Rt_SYS), QL_SRC_X, F_ALIAS | F_OPD1_OPT | F_DEFAULT (0x1F)),
   2626  1.6  christos   CORE_INSN ("msr", 0xd5000000, 0xffe00000, ic_system, OP2 (SYSREG, Rt), QL_SRC_X, 0),
   2627  1.6  christos   CORE_INSN ("sysl",0xd5280000, 0xfff80000, ic_system, OP5 (Rt, UIMM3_OP1, Cn, Cm, UIMM3_OP2), QL_SYSL, 0),
   2628  1.1  christos   CORE_INSN ("mrs", 0xd5200000, 0xffe00000, ic_system, OP2 (Rt, SYSREG), QL_DST_X, 0),
   2629  1.6  christos   /* Test & branch (immediate).  */
   2630  1.6  christos   CORE_INSN ("tbz", 0x36000000, 0x7f000000, testbranch, OP3 (Rt, BIT_NUM, ADDR_PCREL14), QL_PCREL_14, 0),
   2631  1.1  christos   CORE_INSN ("tbnz",0x37000000, 0x7f000000, testbranch, OP3 (Rt, BIT_NUM, ADDR_PCREL14), QL_PCREL_14, 0),
   2632  1.6  christos   /* The old UAL conditional branch mnemonics (to aid portability).  */
   2633  1.6  christos   CORE_INSN ("beq", 0x54000000, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2634  1.6  christos   CORE_INSN ("bne", 0x54000001, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2635  1.6  christos   CORE_INSN ("bcs", 0x54000002, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2636  1.6  christos   CORE_INSN ("bhs", 0x54000002, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2637  1.6  christos   CORE_INSN ("bcc", 0x54000003, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2638  1.6  christos   CORE_INSN ("blo", 0x54000003, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2639  1.6  christos   CORE_INSN ("bmi", 0x54000004, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2640  1.6  christos   CORE_INSN ("bpl", 0x54000005, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2641  1.6  christos   CORE_INSN ("bvs", 0x54000006, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2642  1.6  christos   CORE_INSN ("bvc", 0x54000007, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2643  1.6  christos   CORE_INSN ("bhi", 0x54000008, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2644  1.6  christos   CORE_INSN ("bls", 0x54000009, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2645  1.6  christos   CORE_INSN ("bge", 0x5400000a, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2646  1.6  christos   CORE_INSN ("blt", 0x5400000b, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2647  1.6  christos   CORE_INSN ("bgt", 0x5400000c, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2648  1.1  christos   CORE_INSN ("ble", 0x5400000d, 0xff00001f, condbranch, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_ALIAS | F_PSEUDO),
   2649  1.6  christos 
   2650  1.1  christos   {0, 0, 0, 0, 0, 0, {}, {}, 0, NULL},
   2651  1.1  christos };
   2652  1.1  christos 
   2653  1.1  christos #ifdef AARCH64_OPERANDS
   2654  1.1  christos #undef AARCH64_OPERANDS
   2655  1.1  christos #endif
   2656  1.1  christos 
   2657  1.1  christos /* Macro-based operand decription; this will be fed into aarch64-gen for it
   2658  1.1  christos    to generate the structure aarch64_operands and the function
   2659  1.1  christos    aarch64_insert_operand and aarch64_extract_operand.
   2660  1.1  christos 
   2661  1.1  christos    These inserters and extracters in the description execute the conversion
   2662  1.1  christos    between the aarch64_opnd_info and value in the operand-related instruction
   2663  1.1  christos    field(s).  */
   2664  1.1  christos 
   2665  1.1  christos /* Y expects arguments (left to right) to be operand class, inserter/extractor
   2666  1.1  christos    name suffix, operand name, flags, related bitfield(s) and description.
   2667  1.1  christos    X only differs from Y by having the operand inserter and extractor names
   2668  1.1  christos    listed separately.  */
   2669  1.1  christos 
   2670  1.1  christos #define AARCH64_OPERANDS						\
   2671  1.1  christos     Y(INT_REG, regno, "Rd", 0, F(FLD_Rd), "an integer register")	\
   2672  1.1  christos     Y(INT_REG, regno, "Rn", 0, F(FLD_Rn), "an integer register")	\
   2673  1.1  christos     Y(INT_REG, regno, "Rm", 0, F(FLD_Rm), "an integer register")	\
   2674  1.1  christos     Y(INT_REG, regno, "Rt", 0, F(FLD_Rt), "an integer register")	\
   2675  1.1  christos     Y(INT_REG, regno, "Rt2", 0, F(FLD_Rt2), "an integer register")	\
   2676  1.1  christos     Y(INT_REG, regno, "Rs", 0, F(FLD_Rs), "an integer register")	\
   2677  1.1  christos     Y(INT_REG, regno, "Ra", 0, F(FLD_Ra), "an integer register")	\
   2678  1.1  christos     X(INT_REG, ins_regno, ext_regrt_sysins, "Rt_SYS", 0, F(FLD_Rt),	\
   2679  1.1  christos       "an integer register")						\
   2680  1.1  christos     Y(INT_REG, regno, "Rd_SP", OPD_F_MAYBE_SP, F(FLD_Rd),		\
   2681  1.1  christos       "an integer or stack pointer register")				\
   2682  1.1  christos     Y(INT_REG, regno, "Rn_SP", OPD_F_MAYBE_SP, F(FLD_Rn),		\
   2683  1.3  christos       "an integer or stack pointer register")				\
   2684  1.3  christos     X(INT_REG, 0, ext_regno_pair, "PAIRREG", 0, F(),			\
   2685  1.1  christos       "the second reg of a pair")					\
   2686  1.1  christos     Y(MODIFIED_REG, reg_extended, "Rm_EXT", 0, F(),			\
   2687  1.1  christos       "an integer register with optional extension")			\
   2688  1.1  christos     Y(MODIFIED_REG, reg_shifted, "Rm_SFT", 0, F(),			\
   2689  1.1  christos       "an integer register with optional shift")			\
   2690  1.1  christos     Y(FP_REG, regno, "Fd", 0, F(FLD_Rd), "a floating-point register")	\
   2691  1.1  christos     Y(FP_REG, regno, "Fn", 0, F(FLD_Rn), "a floating-point register")	\
   2692  1.1  christos     Y(FP_REG, regno, "Fm", 0, F(FLD_Rm), "a floating-point register")	\
   2693  1.1  christos     Y(FP_REG, regno, "Fa", 0, F(FLD_Ra), "a floating-point register")	\
   2694  1.1  christos     Y(FP_REG, ft, "Ft", 0, F(FLD_Rt), "a floating-point register")	\
   2695  1.1  christos     Y(FP_REG, regno, "Ft2", 0, F(FLD_Rt2), "a floating-point register")	\
   2696  1.1  christos     Y(SISD_REG, regno, "Sd", 0, F(FLD_Rd), "a SIMD scalar register")	\
   2697  1.1  christos     Y(SISD_REG, regno, "Sn", 0, F(FLD_Rn), "a SIMD scalar register")	\
   2698  1.1  christos     Y(SISD_REG, regno, "Sm", 0, F(FLD_Rm), "a SIMD scalar register")	\
   2699  1.1  christos     Y(SIMD_REG, regno, "Vd", 0, F(FLD_Rd), "a SIMD vector register")	\
   2700  1.1  christos     Y(SIMD_REG, regno, "Vn", 0, F(FLD_Rn), "a SIMD vector register")	\
   2701  1.1  christos     Y(SIMD_REG, regno, "Vm", 0, F(FLD_Rm), "a SIMD vector register")	\
   2702  1.1  christos     Y(FP_REG, regno, "VdD1", 0, F(FLD_Rd),				\
   2703  1.1  christos       "the top half of a 128-bit FP/SIMD register")			\
   2704  1.1  christos     Y(FP_REG, regno, "VnD1", 0, F(FLD_Rn),				\
   2705  1.1  christos       "the top half of a 128-bit FP/SIMD register")			\
   2706  1.1  christos     Y(SIMD_ELEMENT, reglane, "Ed", 0, F(FLD_Rd),			\
   2707  1.1  christos       "a SIMD vector element")						\
   2708  1.1  christos     Y(SIMD_ELEMENT, reglane, "En", 0, F(FLD_Rn),			\
   2709  1.1  christos       "a SIMD vector element")						\
   2710  1.1  christos     Y(SIMD_ELEMENT, reglane, "Em", 0, F(FLD_Rm),			\
   2711  1.1  christos       "a SIMD vector element")						\
   2712  1.1  christos     Y(SIMD_REGLIST, reglist, "LVn", 0, F(FLD_Rn),			\
   2713  1.1  christos       "a SIMD vector register list")					\
   2714  1.1  christos     Y(SIMD_REGLIST, ldst_reglist, "LVt", 0, F(),			\
   2715  1.1  christos       "a SIMD vector register list")					\
   2716  1.1  christos     Y(SIMD_REGLIST, ldst_reglist_r, "LVt_AL", 0, F(),			\
   2717  1.1  christos       "a SIMD vector register list")					\
   2718  1.1  christos     Y(SIMD_REGLIST, ldst_elemlist, "LEt", 0, F(),			\
   2719  1.1  christos       "a SIMD vector element list")					\
   2720  1.1  christos     Y(CP_REG, regno, "Cn", 0, F(FLD_CRn),				\
   2721  1.1  christos       "a 4-bit opcode field named for historical reasons C0 - C15")	\
   2722  1.1  christos     Y(CP_REG, regno, "Cm", 0, F(FLD_CRm),				\
   2723  1.1  christos       "a 4-bit opcode field named for historical reasons C0 - C15")	\
   2724  1.1  christos     Y(IMMEDIATE, imm, "IDX", 0, F(FLD_imm4),				\
   2725  1.1  christos       "an immediate as the index of the least significant byte")	\
   2726  1.1  christos     Y(IMMEDIATE, advsimd_imm_shift, "IMM_VLSL", 0, F(),			\
   2727  1.1  christos       "a left shift amount for an AdvSIMD register")			\
   2728  1.1  christos     Y(IMMEDIATE, advsimd_imm_shift, "IMM_VLSR", 0, F(),			\
   2729  1.1  christos       "a right shift amount for an AdvSIMD register")			\
   2730  1.1  christos     Y(IMMEDIATE, advsimd_imm_modified, "SIMD_IMM", 0, F(),		\
   2731  1.1  christos       "an immediate")							\
   2732  1.1  christos     Y(IMMEDIATE, advsimd_imm_modified, "SIMD_IMM_SFT", 0, F(),		\
   2733  1.1  christos       "an 8-bit unsigned immediate with optional shift")		\
   2734  1.1  christos     Y(IMMEDIATE, advsimd_imm_modified, "SIMD_FPIMM", 0, F(),		\
   2735  1.1  christos       "an 8-bit floating-point constant")				\
   2736  1.1  christos     X(IMMEDIATE, 0, ext_shll_imm, "SHLL_IMM", 0, F(),			\
   2737  1.1  christos       "an immediate shift amount of 8, 16 or 32")			\
   2738  1.1  christos     X(IMMEDIATE, 0, 0, "IMM0", 0, F(), "0")				\
   2739  1.1  christos     X(IMMEDIATE, 0, 0, "FPIMM0", 0, F(), "0.0")				\
   2740  1.1  christos     Y(IMMEDIATE, imm, "FPIMM", 0, F(FLD_imm8),				\
   2741  1.1  christos       "an 8-bit floating-point constant")				\
   2742  1.1  christos     Y(IMMEDIATE, imm, "IMMR", 0, F(FLD_immr),				\
   2743  1.1  christos       "the right rotate amount")					\
   2744  1.1  christos     Y(IMMEDIATE, imm, "IMMS", 0, F(FLD_imm6),				\
   2745  1.1  christos       "the leftmost bit number to be moved from the source")		\
   2746  1.1  christos     Y(IMMEDIATE, imm, "WIDTH", 0, F(FLD_imm6),				\
   2747  1.1  christos       "the width of the bit-field")					\
   2748  1.1  christos     Y(IMMEDIATE, imm, "IMM", 0, F(FLD_imm6), "an immediate")		\
   2749  1.1  christos     Y(IMMEDIATE, imm, "UIMM3_OP1", 0, F(FLD_op1),			\
   2750  1.1  christos       "a 3-bit unsigned immediate")					\
   2751  1.1  christos     Y(IMMEDIATE, imm, "UIMM3_OP2", 0, F(FLD_op2),			\
   2752  1.1  christos       "a 3-bit unsigned immediate")					\
   2753  1.1  christos     Y(IMMEDIATE, imm, "UIMM4", 0, F(FLD_CRm),				\
   2754  1.1  christos       "a 4-bit unsigned immediate")					\
   2755  1.1  christos     Y(IMMEDIATE, imm, "UIMM7", 0, F(FLD_CRm, FLD_op2),			\
   2756  1.1  christos       "a 7-bit unsigned immediate")					\
   2757  1.1  christos     Y(IMMEDIATE, imm, "BIT_NUM", 0, F(FLD_b5, FLD_b40),			\
   2758  1.1  christos       "the bit number to be tested")					\
   2759  1.1  christos     Y(IMMEDIATE, imm, "EXCEPTION", 0, F(FLD_imm16),			\
   2760  1.1  christos       "a 16-bit unsigned immediate")					\
   2761  1.1  christos     Y(IMMEDIATE, imm, "CCMP_IMM", 0, F(FLD_imm5),			\
   2762  1.1  christos       "a 5-bit unsigned immediate")					\
   2763  1.1  christos     Y(IMMEDIATE, imm, "NZCV", 0, F(FLD_nzcv),				\
   2764  1.1  christos       "a flag bit specifier giving an alternative value for each flag")	\
   2765  1.1  christos     Y(IMMEDIATE, limm, "LIMM", 0, F(FLD_N,FLD_immr,FLD_imms),		\
   2766  1.1  christos       "Logical immediate")						\
   2767  1.1  christos     Y(IMMEDIATE, aimm, "AIMM", 0, F(FLD_shift,FLD_imm12),		\
   2768  1.1  christos       "a 12-bit unsigned immediate with optional left shift of 12 bits")\
   2769  1.1  christos     Y(IMMEDIATE, imm_half, "HALF", 0, F(FLD_imm16),			\
   2770  1.1  christos       "a 16-bit immediate with optional left shift")			\
   2771  1.1  christos     Y(IMMEDIATE, fbits, "FBITS", 0, F(FLD_scale),			\
   2772  1.1  christos       "the number of bits after the binary point in the fixed-point value")\
   2773  1.1  christos     X(IMMEDIATE, 0, 0, "IMM_MOV", 0, F(), "an immediate")		\
   2774  1.1  christos     Y(COND, cond, "COND", 0, F(), "a condition")			\
   2775  1.1  christos     Y(COND, cond, "COND1", 0, F(),					\
   2776  1.1  christos       "one of the standard conditions, excluding AL and NV.")		\
   2777  1.1  christos     X(ADDRESS, 0, ext_imm, "ADDR_ADRP", OPD_F_SEXT, F(FLD_immhi, FLD_immlo),\
   2778  1.1  christos       "21-bit PC-relative address of a 4KB page")			\
   2779  1.1  christos     Y(ADDRESS, imm, "ADDR_PCREL14", OPD_F_SEXT | OPD_F_SHIFT_BY_2,	\
   2780  1.1  christos       F(FLD_imm14), "14-bit PC-relative address")			\
   2781  1.1  christos     Y(ADDRESS, imm, "ADDR_PCREL19", OPD_F_SEXT | OPD_F_SHIFT_BY_2,	\
   2782  1.1  christos       F(FLD_imm19), "19-bit PC-relative address")			\
   2783  1.1  christos     Y(ADDRESS, imm, "ADDR_PCREL21", OPD_F_SEXT, F(FLD_immhi,FLD_immlo),	\
   2784  1.1  christos       "21-bit PC-relative address")					\
   2785  1.1  christos     Y(ADDRESS, imm, "ADDR_PCREL26", OPD_F_SEXT | OPD_F_SHIFT_BY_2,	\
   2786  1.1  christos       F(FLD_imm26), "26-bit PC-relative address")			\
   2787  1.1  christos     Y(ADDRESS, addr_simple, "ADDR_SIMPLE", 0, F(),			\
   2788  1.1  christos       "an address with base register (no offset)")			\
   2789  1.1  christos     Y(ADDRESS, addr_regoff, "ADDR_REGOFF", 0, F(),			\
   2790  1.1  christos       "an address with register offset")				\
   2791  1.1  christos     Y(ADDRESS, addr_simm, "ADDR_SIMM7", 0, F(FLD_imm7,FLD_index2),	\
   2792  1.1  christos       "an address with 7-bit signed immediate offset")			\
   2793  1.1  christos     Y(ADDRESS, addr_simm, "ADDR_SIMM9", 0, F(FLD_imm9,FLD_index),	\
   2794  1.1  christos       "an address with 9-bit signed immediate offset")			\
   2795  1.1  christos     Y(ADDRESS, addr_simm, "ADDR_SIMM9_2", 0, F(FLD_imm9,FLD_index),	\
   2796  1.1  christos       "an address with 9-bit negative or unaligned immediate offset")	\
   2797  1.1  christos     Y(ADDRESS, addr_uimm12, "ADDR_UIMM12", 0, F(FLD_Rn,FLD_imm12),	\
   2798  1.1  christos       "an address with scaled, unsigned immediate offset")		\
   2799  1.1  christos     Y(ADDRESS, addr_simple, "SIMD_ADDR_SIMPLE", 0, F(),			\
   2800  1.1  christos       "an address with base register (no offset)")			\
   2801  1.1  christos     Y(ADDRESS, simd_addr_post, "SIMD_ADDR_POST", 0, F(),		\
   2802  1.1  christos       "a post-indexed address with immediate or register increment")	\
   2803  1.1  christos     Y(SYSTEM, sysreg, "SYSREG", 0, F(), "a system register")		\
   2804  1.1  christos     Y(SYSTEM, pstatefield, "PSTATEFIELD", 0, F(),			\
   2805  1.1  christos       "a PSTATE field name")						\
   2806  1.1  christos     Y(SYSTEM, sysins_op, "SYSREG_AT", 0, F(),				\
   2807  1.1  christos       "an address translation operation specifier")			\
   2808  1.1  christos     Y(SYSTEM, sysins_op, "SYSREG_DC", 0, F(),				\
   2809  1.1  christos       "a data cache maintenance operation specifier")			\
   2810  1.6  christos     Y(SYSTEM, sysins_op, "SYSREG_IC", 0, F(),				\
   2811  1.1  christos       "an instruction cache maintenance operation specifier")		\
   2812  1.1  christos     Y(SYSTEM, sysins_op, "SYSREG_TLBI", 0, F(),				\
   2813  1.1  christos       "a TBL invalidation operation specifier")				\
   2814  1.1  christos     Y(SYSTEM, barrier, "BARRIER", 0, F(),				\
   2815  1.1  christos       "a barrier option name")						\
   2816  1.1  christos     Y(SYSTEM, barrier, "BARRIER_ISB", 0, F(),				\
   2817  1.1  christos       "the ISB option name SY or an optional 4-bit unsigned immediate")	\
   2818  1.6  christos     Y(SYSTEM, prfop, "PRFOP", 0, F(),					\
   2819  1.6  christos       "a prefetch operation specifier")					\
   2820  1.6  christos     Y (SYSTEM, hint, "BARRIER_PSB", 0, F (),				\
   2821                      "the PSB option name CSYNC")
   2822