summaryrefslogtreecommitdiff
path: root/arch/arm64/disassembler/encodings_dec.c
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-09-18 11:46:39 -0700
committerMark Rowe <mark@vector35.com>2025-09-25 08:41:48 -0700
commit6e1306923c60b3d6c1cefb1fcc240f1a064d6f20 (patch)
tree57fb65f74fecfa95dd394ecc5b664512d8f87609 /arch/arm64/disassembler/encodings_dec.c
parent0deeb4a61749737b98f7946ec88b693068180e28 (diff)
[AArch64] Update disassembler based on 2025-06 ARM ISA data
Alongside this I also added support for decoding: * LDR / STR (table) * PMULLB / PMULLT * ABS / CNT / CTZ * SMIN / SMAX / UMIN / UMAX * RPRFM * PSEL Note that while these instructions will now be disassembled, they are not yet lifted to LLIL. Additionally, I fixed a number of errors in the decoding of some less commonly occurring instructions.
Diffstat (limited to 'arch/arm64/disassembler/encodings_dec.c')
-rw-r--r--arch/arm64/disassembler/encodings_dec.c2376
1 files changed, 2286 insertions, 90 deletions
diff --git a/arch/arm64/disassembler/encodings_dec.c b/arch/arm64/disassembler/encodings_dec.c
index e96b9a66..daba555b 100644
--- a/arch/arm64/disassembler/encodings_dec.c
+++ b/arch/arm64/disassembler/encodings_dec.c
@@ -7,9 +7,12 @@
enum Operation enc_to_oper(enum ENCODING enc)
{
switch(enc) {
+ case ENC_ABS_32_DP_1SRC:
+ case ENC_ABS_64_DP_1SRC:
case ENC_ABS_ASISDMISC_R:
case ENC_ABS_ASIMDMISC_R:
- case ENC_ABS_Z_P_Z_:
+ case ENC_ABS_Z_P_Z_M:
+ case ENC_ABS_Z_P_Z_Z:
return ARM64_ABS;
case ENC_ADC_32_ADDSUB_CARRY:
case ENC_ADC_64_ADDSUB_CARRY:
@@ -29,9 +32,17 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ADD_64_ADDSUB_SHIFT:
case ENC_ADD_ASISDSAME_ONLY:
case ENC_ADD_ASIMDSAME_ONLY:
+ case ENC_ADD_MZ_ZZV_2X1:
+ case ENC_ADD_MZ_ZZV_4X1:
case ENC_ADD_Z_P_ZZ_:
case ENC_ADD_Z_ZI_:
case ENC_ADD_Z_ZZ_:
+ case ENC_ADD_ZA_ZW_2X2:
+ case ENC_ADD_ZA_ZW_4X4:
+ case ENC_ADD_ZA_ZZV_2X1:
+ case ENC_ADD_ZA_ZZV_4X1:
+ case ENC_ADD_ZA_ZZW_2X2:
+ case ENC_ADD_ZA_ZZW_4X4:
return ARM64_ADD;
case ENC_ADDG_64_ADDSUB_IMMTAGS:
return ARM64_ADDG;
@@ -52,6 +63,12 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_ADDP;
case ENC_ADDPL_R_RI_:
return ARM64_ADDPL;
+ case ENC_ADDPT_64_ADDSUB_PT:
+ case ENC_ADDPT_Z_P_ZZ_:
+ case ENC_ADDPT_Z_ZZ_:
+ return ARM64_ADDPT;
+ case ENC_ADDQV_Z_P_Z_:
+ return ARM64_ADDQV;
case ENC_ADDS_32S_ADDSUB_EXT:
case ENC_ADDS_64S_ADDSUB_EXT:
case ENC_ADDS_32S_ADDSUB_IMM:
@@ -59,6 +76,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ADDS_32_ADDSUB_SHIFT:
case ENC_ADDS_64_ADDSUB_SHIFT:
return ARM64_ADDS;
+ case ENC_ADDSPL_R_RI_:
+ return ARM64_ADDSPL;
+ case ENC_ADDSVL_R_RI_:
+ return ARM64_ADDSVL;
case ENC_ADDV_ASIMDALL_ONLY:
return ARM64_ADDV;
case ENC_ADDVA_ZA_PP_Z_32:
@@ -74,11 +95,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ADRP_ONLY_PCRELADDR:
return ARM64_ADRP;
case ENC_AESD_B_CRYPTOAES:
+ case ENC_AESD_MZ_ZZI_2X1:
+ case ENC_AESD_MZ_ZZI_4X1:
case ENC_AESD_Z_ZZ_:
return ARM64_AESD;
+ case ENC_AESDIMC_MZ_ZZI_2X1:
+ case ENC_AESDIMC_MZ_ZZI_4X1:
+ return ARM64_AESDIMC;
case ENC_AESE_B_CRYPTOAES:
+ case ENC_AESE_MZ_ZZI_2X1:
+ case ENC_AESE_MZ_ZZI_4X1:
case ENC_AESE_Z_ZZ_:
return ARM64_AESE;
+ case ENC_AESEMC_MZ_ZZI_2X1:
+ case ENC_AESEMC_MZ_ZZI_4X1:
+ return ARM64_AESEMC;
case ENC_AESIMC_B_CRYPTOAES:
case ENC_AESIMC_Z_Z_:
return ARM64_AESIMC;
@@ -95,6 +126,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_AND_Z_ZI_:
case ENC_AND_Z_ZZ_:
return ARM64_AND;
+ case ENC_ANDQV_Z_P_Z_:
+ return ARM64_ANDQV;
case ENC_ANDS_32S_LOG_IMM:
case ENC_ANDS_64S_LOG_IMM:
case ENC_ANDS_32_LOG_SHIFT:
@@ -103,6 +136,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_ANDS;
case ENC_ANDV_R_P_Z_:
return ARM64_ANDV;
+ case ENC_APAS_SYS_CR_SYSTEMINSTRS:
+ return ARM64_APAS;
case ENC_ASR_ASRV_32_DP_2SRC:
case ENC_ASR_ASRV_64_DP_2SRC:
case ENC_ASR_SBFM_32M_BITFIELD:
@@ -134,16 +169,28 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_AUTIA;
case ENC_AUTIA1716_HI_HINTS:
return ARM64_AUTIA1716;
+ case ENC_AUTIA171615_64LR_DP_1SRC:
+ return ARM64_AUTIA171615;
case ENC_AUTIASP_HI_HINTS:
return ARM64_AUTIASP;
+ case ENC_AUTIASPPC_ONLY_DP_1SRC_IMM:
+ return ARM64_AUTIASPPC;
+ case ENC_AUTIASPPCR_64LRR_DP_1SRC:
+ return ARM64_AUTIASPPCR;
case ENC_AUTIAZ_HI_HINTS:
return ARM64_AUTIAZ;
case ENC_AUTIB_64P_DP_1SRC:
return ARM64_AUTIB;
case ENC_AUTIB1716_HI_HINTS:
return ARM64_AUTIB1716;
+ case ENC_AUTIB171615_64LR_DP_1SRC:
+ return ARM64_AUTIB171615;
case ENC_AUTIBSP_HI_HINTS:
return ARM64_AUTIBSP;
+ case ENC_AUTIBSPPC_ONLY_DP_1SRC_IMM:
+ return ARM64_AUTIBSPPC;
+ case ENC_AUTIBSPPCR_64LRR_DP_1SRC:
+ return ARM64_AUTIBSPPCR;
case ENC_AUTIBZ_HI_HINTS:
return ARM64_AUTIBZ;
case ENC_AUTIZA_64Z_DP_1SRC:
@@ -155,6 +202,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_B_ONLY_CONDBRANCH:
case ENC_B_ONLY_BRANCH_IMM:
return ARM64_B;
+ case ENC_BC_ONLY_CONDBRANCH:
+ return ARM64_BC;
case ENC_BCAX_VVV16_CRYPTO4:
case ENC_BCAX_Z_ZZZ_:
return ARM64_BCAX;
@@ -162,22 +211,63 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_BDEP;
case ENC_BEXT_Z_ZZ_:
return ARM64_BEXT;
+ case ENC_BF1CVT_MZ2_Z8_:
+ case ENC_BF1CVT_Z_Z8_B2BF:
+ return ARM64_BF1CVT;
+ case ENC_BF1CVTL_ASIMDMISC_V:
+ case ENC_BF1CVTL_MZ2_Z8_:
+ return ARM64_BF1CVTL;
+ //case ENC_BF1CVTL_ASIMDMISC_V:
+ // return ARM64_BF1CVTL2;
+ case ENC_BF1CVTLT_Z_Z8_B2BF:
+ return ARM64_BF1CVTLT;
+ case ENC_BF2CVT_MZ2_Z8_:
+ case ENC_BF2CVT_Z_Z8_B2BF:
+ return ARM64_BF2CVT;
+ case ENC_BF2CVTL_ASIMDMISC_V:
+ case ENC_BF2CVTL_MZ2_Z8_:
+ return ARM64_BF2CVTL;
+ //case ENC_BF2CVTL_ASIMDMISC_V:
+ // return ARM64_BF2CVTL2;
+ case ENC_BF2CVTLT_Z_Z8_B2BF:
+ return ARM64_BF2CVTLT;
+ case ENC_BFADD_Z_P_ZZ_:
+ case ENC_BFADD_Z_ZZ_:
+ case ENC_BFADD_ZA_ZW_2X2_16:
+ case ENC_BFADD_ZA_ZW_4X4_16:
+ return ARM64_BFADD;
case ENC_BFC_BFM_32M_BITFIELD:
case ENC_BFC_BFM_64M_BITFIELD:
return ARM64_BFC;
+ case ENC_BFCLAMP_MZ_ZZ_2:
+ case ENC_BFCLAMP_MZ_ZZ_4:
+ case ENC_BFCLAMP_Z_ZZ_:
+ return ARM64_BFCLAMP;
case ENC_BFCVT_BS_FLOATDP1:
+ case ENC_BFCVT_Z8_MZ2_:
+ case ENC_BFCVT_Z_MZ2_:
case ENC_BFCVT_Z_P_Z_S2BF:
+ case ENC_BFCVT_Z_P_Z_S2BFZ:
return ARM64_BFCVT;
case ENC_BFCVTN_ASIMDMISC_4S:
+ case ENC_BFCVTN_Z8_MZ2_BF2B:
+ case ENC_BFCVTN_Z_MZ2_:
return ARM64_BFCVTN;
//case ENC_BFCVTN_ASIMDMISC_4S:
// return ARM64_BFCVTN2;
case ENC_BFCVTNT_Z_P_Z_S2BF:
+ case ENC_BFCVTNT_Z_P_Z_S2BFZ:
return ARM64_BFCVTNT;
case ENC_BFDOT_ASIMDELEM_E:
case ENC_BFDOT_ASIMDSAME2_D:
case ENC_BFDOT_Z_ZZZ_:
case ENC_BFDOT_Z_ZZZI_:
+ case ENC_BFDOT_ZA_ZZI_2XI:
+ case ENC_BFDOT_ZA_ZZI_4XI:
+ case ENC_BFDOT_ZA_ZZV_2X1:
+ case ENC_BFDOT_ZA_ZZV_4X1:
+ case ENC_BFDOT_ZA_ZZW_2X2:
+ case ENC_BFDOT_ZA_ZZW_4X4:
return ARM64_BFDOT;
case ENC_BFI_BFM_32M_BITFIELD:
case ENC_BFI_BFM_64M_BITFIELD:
@@ -185,8 +275,49 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_BFM_32M_BITFIELD:
case ENC_BFM_64M_BITFIELD:
return ARM64_BFM;
+ case ENC_BFMAX_MZ_ZZV_2X1:
+ case ENC_BFMAX_MZ_ZZV_4X1:
+ case ENC_BFMAX_MZ_ZZW_2X2:
+ case ENC_BFMAX_MZ_ZZW_4X4:
+ case ENC_BFMAX_Z_P_ZZ_:
+ return ARM64_BFMAX;
+ case ENC_BFMAXNM_MZ_ZZV_2X1:
+ case ENC_BFMAXNM_MZ_ZZV_4X1:
+ case ENC_BFMAXNM_MZ_ZZW_2X2:
+ case ENC_BFMAXNM_MZ_ZZW_4X4:
+ case ENC_BFMAXNM_Z_P_ZZ_:
+ return ARM64_BFMAXNM;
+ case ENC_BFMIN_MZ_ZZV_2X1:
+ case ENC_BFMIN_MZ_ZZV_4X1:
+ case ENC_BFMIN_MZ_ZZW_2X2:
+ case ENC_BFMIN_MZ_ZZW_4X4:
+ case ENC_BFMIN_Z_P_ZZ_:
+ return ARM64_BFMIN;
+ case ENC_BFMINNM_MZ_ZZV_2X1:
+ case ENC_BFMINNM_MZ_ZZV_4X1:
+ case ENC_BFMINNM_MZ_ZZW_2X2:
+ case ENC_BFMINNM_MZ_ZZW_4X4:
+ case ENC_BFMINNM_Z_P_ZZ_:
+ return ARM64_BFMINNM;
+ case ENC_BFMLA_Z_P_ZZZ_:
+ case ENC_BFMLA_Z_ZZZI_H:
+ case ENC_BFMLA_ZA_ZZI_H2XI:
+ case ENC_BFMLA_ZA_ZZI_H4XI:
+ case ENC_BFMLA_ZA_ZZV_2X1_16:
+ case ENC_BFMLA_ZA_ZZV_4X1_16:
+ case ENC_BFMLA_ZA_ZZW_2X2_16:
+ case ENC_BFMLA_ZA_ZZW_4X4_16:
+ return ARM64_BFMLA;
case ENC_BFMLAL_ASIMDELEM_F:
case ENC_BFMLAL_ASIMDSAME2_F_:
+ case ENC_BFMLAL_ZA_ZZI_1:
+ case ENC_BFMLAL_ZA_ZZI_2XI:
+ case ENC_BFMLAL_ZA_ZZI_4XI:
+ case ENC_BFMLAL_ZA_ZZV_1:
+ case ENC_BFMLAL_ZA_ZZV_2X1:
+ case ENC_BFMLAL_ZA_ZZV_4X1:
+ case ENC_BFMLAL_ZA_ZZW_2X2:
+ case ENC_BFMLAL_ZA_ZZW_4X4:
return ARM64_BFMLAL;
case ENC_BFMLALB_Z_ZZZ_:
case ENC_BFMLALB_Z_ZZZI_:
@@ -194,13 +325,81 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_BFMLALT_Z_ZZZ_:
case ENC_BFMLALT_Z_ZZZI_:
return ARM64_BFMLALT;
+ case ENC_BFMLS_Z_P_ZZZ_:
+ case ENC_BFMLS_Z_ZZZI_H:
+ case ENC_BFMLS_ZA_ZZI_H2XI:
+ case ENC_BFMLS_ZA_ZZI_H4XI:
+ case ENC_BFMLS_ZA_ZZV_2X1_16:
+ case ENC_BFMLS_ZA_ZZV_4X1_16:
+ case ENC_BFMLS_ZA_ZZW_2X2_16:
+ case ENC_BFMLS_ZA_ZZW_4X4_16:
+ return ARM64_BFMLS;
+ case ENC_BFMLSL_ZA_ZZI_1:
+ case ENC_BFMLSL_ZA_ZZI_2XI:
+ case ENC_BFMLSL_ZA_ZZI_4XI:
+ case ENC_BFMLSL_ZA_ZZV_1:
+ case ENC_BFMLSL_ZA_ZZV_2X1:
+ case ENC_BFMLSL_ZA_ZZV_4X1:
+ case ENC_BFMLSL_ZA_ZZW_2X2:
+ case ENC_BFMLSL_ZA_ZZW_4X4:
+ return ARM64_BFMLSL;
+ case ENC_BFMLSLB_Z_ZZZ_:
+ case ENC_BFMLSLB_Z_ZZZI_:
+ return ARM64_BFMLSLB;
+ case ENC_BFMLSLT_Z_ZZZ_:
+ case ENC_BFMLSLT_Z_ZZZI_:
+ return ARM64_BFMLSLT;
case ENC_BFMMLA_ASIMDSAME2_E:
case ENC_BFMMLA_Z_ZZZ_:
return ARM64_BFMMLA;
+ case ENC_BFMOP4A_ZA32_ZZ_H1X2:
+ case ENC_BFMOP4A_ZA32_ZZ_H1X1:
+ case ENC_BFMOP4A_ZA32_ZZ_H2X1:
+ case ENC_BFMOP4A_ZA32_ZZ_H2X2:
+ case ENC_BFMOP4A_ZA_ZZ_H1X2:
+ case ENC_BFMOP4A_ZA_ZZ_H1X1:
+ case ENC_BFMOP4A_ZA_ZZ_H2X1:
+ case ENC_BFMOP4A_ZA_ZZ_H2X2:
+ return ARM64_BFMOP4A;
+ case ENC_BFMOP4S_ZA32_ZZ_H1X2:
+ case ENC_BFMOP4S_ZA32_ZZ_H1X1:
+ case ENC_BFMOP4S_ZA32_ZZ_H2X1:
+ case ENC_BFMOP4S_ZA32_ZZ_H2X2:
+ case ENC_BFMOP4S_ZA_ZZ_H1X2:
+ case ENC_BFMOP4S_ZA_ZZ_H1X1:
+ case ENC_BFMOP4S_ZA_ZZ_H2X1:
+ case ENC_BFMOP4S_ZA_ZZ_H2X2:
+ return ARM64_BFMOP4S;
case ENC_BFMOPA_ZA32_PP_ZZ_:
+ case ENC_BFMOPA_ZA_PP_ZZ_16:
return ARM64_BFMOPA;
case ENC_BFMOPS_ZA32_PP_ZZ_:
+ case ENC_BFMOPS_ZA_PP_ZZ_16:
return ARM64_BFMOPS;
+ case ENC_BFMUL_MZ_ZZV_2X1:
+ case ENC_BFMUL_MZ_ZZV_4X1:
+ case ENC_BFMUL_MZ_ZZW_2X2:
+ case ENC_BFMUL_MZ_ZZW_4X4:
+ case ENC_BFMUL_Z_P_ZZ_:
+ case ENC_BFMUL_Z_ZZ_:
+ case ENC_BFMUL_Z_ZZI_H:
+ return ARM64_BFMUL;
+ case ENC_BFSCALE_MZ_ZZV_2X1:
+ case ENC_BFSCALE_MZ_ZZV_4X1:
+ case ENC_BFSCALE_MZ_ZZW_2X2:
+ case ENC_BFSCALE_MZ_ZZW_4X4:
+ case ENC_BFSCALE_Z_P_ZZ_:
+ return ARM64_BFSCALE;
+ case ENC_BFSUB_Z_P_ZZ_:
+ case ENC_BFSUB_Z_ZZ_:
+ case ENC_BFSUB_ZA_ZW_2X2_16:
+ case ENC_BFSUB_ZA_ZW_4X4_16:
+ return ARM64_BFSUB;
+ case ENC_BFTMOPA_ZA32_ZZZI_H2X1:
+ case ENC_BFTMOPA_ZA_ZZZI_H2X1:
+ return ARM64_BFTMOPA;
+ case ENC_BFVDOT_ZA_ZZI_2XI:
+ return ARM64_BFVDOT;
case ENC_BFXIL_BFM_32M_BITFIELD:
case ENC_BFXIL_BFM_64M_BITFIELD:
return ARM64_BFXIL;
@@ -209,9 +408,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_BIC_ASIMDIMM_L_HL:
case ENC_BIC_ASIMDIMM_L_SL:
case ENC_BIC_ASIMDSAME_ONLY:
- case ENC_BIC_AND_Z_ZI_:
case ENC_BIC_32_LOG_SHIFT:
case ENC_BIC_64_LOG_SHIFT:
+ case ENC_BIC_Z_ZI__AND_Z_ZI_:
case ENC_BIC_P_P_PP_Z:
case ENC_BIC_Z_P_ZZ_:
case ENC_BIC_Z_ZZ_:
@@ -236,6 +435,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_BLRAB;
case ENC_BLRABZ_64_BRANCH_REG:
return ARM64_BLRABZ;
+ case ENC_BMOPA_ZA_PP_ZZ_32:
+ return ARM64_BMOPA;
+ case ENC_BMOPS_ZA_PP_ZZ_32:
+ return ARM64_BMOPS;
case ENC_BR_64_BRANCH_REG:
return ARM64_BR;
case ENC_BRAA_64P_BRANCH_REG:
@@ -246,6 +449,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_BRAB;
case ENC_BRABZ_64_BRANCH_REG:
return ARM64_BRABZ;
+ case ENC_BRB_SYS_CR_SYSTEMINSTRS:
+ return ARM64_BRB;
case ENC_BRK_EX_EXCEPTION:
return ARM64_BRK;
case ENC_BRKA_P_P_P_:
@@ -328,6 +533,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_CASALB;
case ENC_CASALH_C32_COMSWAP:
return ARM64_CASALH;
+ case ENC_CASALT_C64_COMSWAP_UNPRIV:
+ return ARM64_CASALT;
+ case ENC_CASAT_C64_COMSWAP_UNPRIV:
+ return ARM64_CASAT;
case ENC_CASB_C32_COMSWAP:
return ARM64_CASB;
case ENC_CASH_C32_COMSWAP:
@@ -339,6 +548,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_CASLB;
case ENC_CASLH_C32_COMSWAP:
return ARM64_CASLH;
+ case ENC_CASLT_C64_COMSWAP_UNPRIV:
+ return ARM64_CASLT;
case ENC_CASP_CP32_COMSWAPPR:
case ENC_CASP_CP64_COMSWAPPR:
return ARM64_CASP;
@@ -348,9 +559,109 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CASPAL_CP32_COMSWAPPR:
case ENC_CASPAL_CP64_COMSWAPPR:
return ARM64_CASPAL;
+ case ENC_CASPALT_CP64_COMSWAPPR_UNPRIV:
+ return ARM64_CASPALT;
+ case ENC_CASPAT_CP64_COMSWAPPR_UNPRIV:
+ return ARM64_CASPAT;
case ENC_CASPL_CP32_COMSWAPPR:
case ENC_CASPL_CP64_COMSWAPPR:
return ARM64_CASPL;
+ case ENC_CASPLT_CP64_COMSWAPPR_UNPRIV:
+ return ARM64_CASPLT;
+ case ENC_CASPT_CP64_COMSWAPPR_UNPRIV:
+ return ARM64_CASPT;
+ case ENC_CAST_C64_COMSWAP_UNPRIV:
+ return ARM64_CAST;
+ case ENC_CBBEQ_8_REGS:
+ return ARM64_CBBEQ;
+ case ENC_CBBGE_8_REGS:
+ return ARM64_CBBGE;
+ case ENC_CBBGT_8_REGS:
+ return ARM64_CBBGT;
+ case ENC_CBBHI_8_REGS:
+ return ARM64_CBBHI;
+ case ENC_CBBHS_8_REGS:
+ return ARM64_CBBHS;
+ case ENC_CBBLE_CBBGE_8_REGS:
+ return ARM64_CBBLE;
+ case ENC_CBBLO_CBBHI_8_REGS:
+ return ARM64_CBBLO;
+ case ENC_CBBLS_CBBHS_8_REGS:
+ return ARM64_CBBLS;
+ case ENC_CBBLT_CBBGT_8_REGS:
+ return ARM64_CBBLT;
+ case ENC_CBBNE_8_REGS:
+ return ARM64_CBBNE;
+ case ENC_CBEQ_32_IMM:
+ case ENC_CBEQ_64_IMM:
+ case ENC_CBEQ_32_REGS:
+ case ENC_CBEQ_64_REGS:
+ return ARM64_CBEQ;
+ case ENC_CBGE_CBGT_32_IMM:
+ case ENC_CBGE_CBGT_64_IMM:
+ case ENC_CBGE_32_REGS:
+ case ENC_CBGE_64_REGS:
+ return ARM64_CBGE;
+ case ENC_CBGT_32_IMM:
+ case ENC_CBGT_64_IMM:
+ case ENC_CBGT_32_REGS:
+ case ENC_CBGT_64_REGS:
+ return ARM64_CBGT;
+ case ENC_CBHEQ_16_REGS:
+ return ARM64_CBHEQ;
+ case ENC_CBHGE_16_REGS:
+ return ARM64_CBHGE;
+ case ENC_CBHGT_16_REGS:
+ return ARM64_CBHGT;
+ case ENC_CBHHI_16_REGS:
+ return ARM64_CBHHI;
+ case ENC_CBHHS_16_REGS:
+ return ARM64_CBHHS;
+ case ENC_CBHI_32_IMM:
+ case ENC_CBHI_64_IMM:
+ case ENC_CBHI_32_REGS:
+ case ENC_CBHI_64_REGS:
+ return ARM64_CBHI;
+ case ENC_CBHLE_CBHGE_16_REGS:
+ return ARM64_CBHLE;
+ case ENC_CBHLO_CBHHI_16_REGS:
+ return ARM64_CBHLO;
+ case ENC_CBHLS_CBHHS_16_REGS:
+ return ARM64_CBHLS;
+ case ENC_CBHLT_CBHGT_16_REGS:
+ return ARM64_CBHLT;
+ case ENC_CBHNE_16_REGS:
+ return ARM64_CBHNE;
+ case ENC_CBHS_CBHI_32_IMM:
+ case ENC_CBHS_CBHI_64_IMM:
+ case ENC_CBHS_32_REGS:
+ case ENC_CBHS_64_REGS:
+ return ARM64_CBHS;
+ case ENC_CBLE_CBLT_32_IMM:
+ case ENC_CBLE_CBLT_64_IMM:
+ case ENC_CBLE_CBGE_32_REGS:
+ case ENC_CBLE_CBGE_64_REGS:
+ return ARM64_CBLE;
+ case ENC_CBLO_CBHI_32_REGS:
+ case ENC_CBLO_CBHI_64_REGS:
+ case ENC_CBLO_32_IMM:
+ case ENC_CBLO_64_IMM:
+ return ARM64_CBLO;
+ case ENC_CBLS_CBLO_32_IMM:
+ case ENC_CBLS_CBLO_64_IMM:
+ case ENC_CBLS_CBHS_32_REGS:
+ case ENC_CBLS_CBHS_64_REGS:
+ return ARM64_CBLS;
+ case ENC_CBLT_CBGT_32_REGS:
+ case ENC_CBLT_CBGT_64_REGS:
+ case ENC_CBLT_32_IMM:
+ case ENC_CBLT_64_IMM:
+ return ARM64_CBLT;
+ case ENC_CBNE_32_IMM:
+ case ENC_CBNE_64_IMM:
+ case ENC_CBNE_32_REGS:
+ case ENC_CBNE_64_REGS:
+ return ARM64_CBNE;
case ENC_CBNZ_32_COMPBRANCH:
case ENC_CBNZ_64_COMPBRANCH:
return ARM64_CBNZ;
@@ -375,6 +686,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_CFINV;
case ENC_CFP_SYS_CR_SYSTEMINSTRS:
return ARM64_CFP;
+ case ENC_CHKFEAT_HF_HINTS:
+ return ARM64_CHKFEAT;
case ENC_CINC_CSINC_32_CONDSEL:
case ENC_CINC_CSINC_64_CONDSEL:
return ARM64_CINC;
@@ -389,17 +702,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CLASTB_V_P_Z_:
case ENC_CLASTB_Z_P_ZZ_:
return ARM64_CLASTB;
+ case ENC_CLRBHB_HI_HINTS:
+ return ARM64_CLRBHB;
case ENC_CLREX_BN_BARRIERS:
return ARM64_CLREX;
case ENC_CLS_ASIMDMISC_R:
case ENC_CLS_32_DP_1SRC:
case ENC_CLS_64_DP_1SRC:
- case ENC_CLS_Z_P_Z_:
+ case ENC_CLS_Z_P_Z_M:
+ case ENC_CLS_Z_P_Z_Z:
return ARM64_CLS;
case ENC_CLZ_ASIMDMISC_R:
case ENC_CLZ_32_DP_1SRC:
case ENC_CLZ_64_DP_1SRC:
- case ENC_CLZ_Z_P_Z_:
+ case ENC_CLZ_Z_P_Z_M:
+ case ENC_CLZ_Z_P_Z_Z:
return ARM64_CLZ;
case ENC_CMEQ_ASISDSAME_ONLY:
case ENC_CMEQ_ASIMDSAME_ONLY:
@@ -466,21 +783,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CMPHS_P_P_ZW_:
case ENC_CMPHS_P_P_ZZ_:
return ARM64_CMPHS;
- case ENC_CMPLE_CMPGE_P_P_ZZ_:
case ENC_CMPLE_P_P_ZI_:
case ENC_CMPLE_P_P_ZW_:
+ case ENC_CMPLE_P_P_ZZ__CMPGE_P_P_ZZ_:
return ARM64_CMPLE;
- case ENC_CMPLO_CMPHI_P_P_ZZ_:
case ENC_CMPLO_P_P_ZI_:
case ENC_CMPLO_P_P_ZW_:
+ case ENC_CMPLO_P_P_ZZ__CMPHI_P_P_ZZ_:
return ARM64_CMPLO;
- case ENC_CMPLS_CMPHS_P_P_ZZ_:
case ENC_CMPLS_P_P_ZI_:
case ENC_CMPLS_P_P_ZW_:
+ case ENC_CMPLS_P_P_ZZ__CMPHS_P_P_ZZ_:
return ARM64_CMPLS;
- case ENC_CMPLT_CMPGT_P_P_ZZ_:
case ENC_CMPLT_P_P_ZI_:
case ENC_CMPLT_P_P_ZW_:
+ case ENC_CMPLT_P_P_ZZ__CMPGT_P_P_ZZ_:
return ARM64_CMPLT;
case ENC_CMPNE_P_P_ZI_:
case ENC_CMPNE_P_P_ZW_:
@@ -494,10 +811,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CNEG_CSNEG_32_CONDSEL:
case ENC_CNEG_CSNEG_64_CONDSEL:
return ARM64_CNEG;
- case ENC_CNOT_Z_P_Z_:
+ case ENC_CNOT_Z_P_Z_M:
+ case ENC_CNOT_Z_P_Z_Z:
return ARM64_CNOT;
+ case ENC_CNT_32_DP_1SRC:
+ case ENC_CNT_64_DP_1SRC:
case ENC_CNT_ASIMDMISC_R:
- case ENC_CNT_Z_P_Z_:
+ case ENC_CNT_Z_P_Z_M:
+ case ENC_CNT_Z_P_Z_Z:
return ARM64_CNT;
case ENC_CNTB_R_S_:
return ARM64_CNTB;
@@ -506,11 +827,15 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CNTH_R_S_:
return ARM64_CNTH;
case ENC_CNTP_R_P_P_:
+ case ENC_CNTP_R_PN_:
return ARM64_CNTP;
case ENC_CNTW_R_S_:
return ARM64_CNTW;
+ case ENC_COMPACT_Z_P_Z_S:
case ENC_COMPACT_Z_P_Z_:
return ARM64_COMPACT;
+ case ENC_COSP_SYS_CR_SYSTEMINSTRS:
+ return ARM64_COSP;
case ENC_CPP_SYS_CR_SYSTEMINSTRS:
return ARM64_CPP;
case ENC_CPY_Z_O_I_:
@@ -518,6 +843,198 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_CPY_Z_P_R_:
case ENC_CPY_Z_P_V_:
return ARM64_CPY;
+ case ENC_CPYE_CPY_MEMCMS:
+ return ARM64_CPYE;
+ case ENC_CPYEN_CPY_MEMCMS:
+ return ARM64_CPYEN;
+ case ENC_CPYERN_CPY_MEMCMS:
+ return ARM64_CPYERN;
+ case ENC_CPYERT_CPY_MEMCMS:
+ return ARM64_CPYERT;
+ case ENC_CPYERTN_CPY_MEMCMS:
+ return ARM64_CPYERTN;
+ case ENC_CPYERTRN_CPY_MEMCMS:
+ return ARM64_CPYERTRN;
+ case ENC_CPYERTWN_CPY_MEMCMS:
+ return ARM64_CPYERTWN;
+ case ENC_CPYET_CPY_MEMCMS:
+ return ARM64_CPYET;
+ case ENC_CPYETN_CPY_MEMCMS:
+ return ARM64_CPYETN;
+ case ENC_CPYETRN_CPY_MEMCMS:
+ return ARM64_CPYETRN;
+ case ENC_CPYETWN_CPY_MEMCMS:
+ return ARM64_CPYETWN;
+ case ENC_CPYEWN_CPY_MEMCMS:
+ return ARM64_CPYEWN;
+ case ENC_CPYEWT_CPY_MEMCMS:
+ return ARM64_CPYEWT;
+ case ENC_CPYEWTN_CPY_MEMCMS:
+ return ARM64_CPYEWTN;
+ case ENC_CPYEWTRN_CPY_MEMCMS:
+ return ARM64_CPYEWTRN;
+ case ENC_CPYEWTWN_CPY_MEMCMS:
+ return ARM64_CPYEWTWN;
+ case ENC_CPYFE_CPY_MEMCMS:
+ return ARM64_CPYFE;
+ case ENC_CPYFEN_CPY_MEMCMS:
+ return ARM64_CPYFEN;
+ case ENC_CPYFERN_CPY_MEMCMS:
+ return ARM64_CPYFERN;
+ case ENC_CPYFERT_CPY_MEMCMS:
+ return ARM64_CPYFERT;
+ case ENC_CPYFERTN_CPY_MEMCMS:
+ return ARM64_CPYFERTN;
+ case ENC_CPYFERTRN_CPY_MEMCMS:
+ return ARM64_CPYFERTRN;
+ case ENC_CPYFERTWN_CPY_MEMCMS:
+ return ARM64_CPYFERTWN;
+ case ENC_CPYFET_CPY_MEMCMS:
+ return ARM64_CPYFET;
+ case ENC_CPYFETN_CPY_MEMCMS:
+ return ARM64_CPYFETN;
+ case ENC_CPYFETRN_CPY_MEMCMS:
+ return ARM64_CPYFETRN;
+ case ENC_CPYFETWN_CPY_MEMCMS:
+ return ARM64_CPYFETWN;
+ case ENC_CPYFEWN_CPY_MEMCMS:
+ return ARM64_CPYFEWN;
+ case ENC_CPYFEWT_CPY_MEMCMS:
+ return ARM64_CPYFEWT;
+ case ENC_CPYFEWTN_CPY_MEMCMS:
+ return ARM64_CPYFEWTN;
+ case ENC_CPYFEWTRN_CPY_MEMCMS:
+ return ARM64_CPYFEWTRN;
+ case ENC_CPYFEWTWN_CPY_MEMCMS:
+ return ARM64_CPYFEWTWN;
+ case ENC_CPYFM_CPY_MEMCMS:
+ return ARM64_CPYFM;
+ case ENC_CPYFMN_CPY_MEMCMS:
+ return ARM64_CPYFMN;
+ case ENC_CPYFMRN_CPY_MEMCMS:
+ return ARM64_CPYFMRN;
+ case ENC_CPYFMRT_CPY_MEMCMS:
+ return ARM64_CPYFMRT;
+ case ENC_CPYFMRTN_CPY_MEMCMS:
+ return ARM64_CPYFMRTN;
+ case ENC_CPYFMRTRN_CPY_MEMCMS:
+ return ARM64_CPYFMRTRN;
+ case ENC_CPYFMRTWN_CPY_MEMCMS:
+ return ARM64_CPYFMRTWN;
+ case ENC_CPYFMT_CPY_MEMCMS:
+ return ARM64_CPYFMT;
+ case ENC_CPYFMTN_CPY_MEMCMS:
+ return ARM64_CPYFMTN;
+ case ENC_CPYFMTRN_CPY_MEMCMS:
+ return ARM64_CPYFMTRN;
+ case ENC_CPYFMTWN_CPY_MEMCMS:
+ return ARM64_CPYFMTWN;
+ case ENC_CPYFMWN_CPY_MEMCMS:
+ return ARM64_CPYFMWN;
+ case ENC_CPYFMWT_CPY_MEMCMS:
+ return ARM64_CPYFMWT;
+ case ENC_CPYFMWTN_CPY_MEMCMS:
+ return ARM64_CPYFMWTN;
+ case ENC_CPYFMWTRN_CPY_MEMCMS:
+ return ARM64_CPYFMWTRN;
+ case ENC_CPYFMWTWN_CPY_MEMCMS:
+ return ARM64_CPYFMWTWN;
+ case ENC_CPYFP_CPY_MEMCMS:
+ return ARM64_CPYFP;
+ case ENC_CPYFPN_CPY_MEMCMS:
+ return ARM64_CPYFPN;
+ case ENC_CPYFPRN_CPY_MEMCMS:
+ return ARM64_CPYFPRN;
+ case ENC_CPYFPRT_CPY_MEMCMS:
+ return ARM64_CPYFPRT;
+ case ENC_CPYFPRTN_CPY_MEMCMS:
+ return ARM64_CPYFPRTN;
+ case ENC_CPYFPRTRN_CPY_MEMCMS:
+ return ARM64_CPYFPRTRN;
+ case ENC_CPYFPRTWN_CPY_MEMCMS:
+ return ARM64_CPYFPRTWN;
+ case ENC_CPYFPT_CPY_MEMCMS:
+ return ARM64_CPYFPT;
+ case ENC_CPYFPTN_CPY_MEMCMS:
+ return ARM64_CPYFPTN;
+ case ENC_CPYFPTRN_CPY_MEMCMS:
+ return ARM64_CPYFPTRN;
+ case ENC_CPYFPTWN_CPY_MEMCMS:
+ return ARM64_CPYFPTWN;
+ case ENC_CPYFPWN_CPY_MEMCMS:
+ return ARM64_CPYFPWN;
+ case ENC_CPYFPWT_CPY_MEMCMS:
+ return ARM64_CPYFPWT;
+ case ENC_CPYFPWTN_CPY_MEMCMS:
+ return ARM64_CPYFPWTN;
+ case ENC_CPYFPWTRN_CPY_MEMCMS:
+ return ARM64_CPYFPWTRN;
+ case ENC_CPYFPWTWN_CPY_MEMCMS:
+ return ARM64_CPYFPWTWN;
+ case ENC_CPYM_CPY_MEMCMS:
+ return ARM64_CPYM;
+ case ENC_CPYMN_CPY_MEMCMS:
+ return ARM64_CPYMN;
+ case ENC_CPYMRN_CPY_MEMCMS:
+ return ARM64_CPYMRN;
+ case ENC_CPYMRT_CPY_MEMCMS:
+ return ARM64_CPYMRT;
+ case ENC_CPYMRTN_CPY_MEMCMS:
+ return ARM64_CPYMRTN;
+ case ENC_CPYMRTRN_CPY_MEMCMS:
+ return ARM64_CPYMRTRN;
+ case ENC_CPYMRTWN_CPY_MEMCMS:
+ return ARM64_CPYMRTWN;
+ case ENC_CPYMT_CPY_MEMCMS:
+ return ARM64_CPYMT;
+ case ENC_CPYMTN_CPY_MEMCMS:
+ return ARM64_CPYMTN;
+ case ENC_CPYMTRN_CPY_MEMCMS:
+ return ARM64_CPYMTRN;
+ case ENC_CPYMTWN_CPY_MEMCMS:
+ return ARM64_CPYMTWN;
+ case ENC_CPYMWN_CPY_MEMCMS:
+ return ARM64_CPYMWN;
+ case ENC_CPYMWT_CPY_MEMCMS:
+ return ARM64_CPYMWT;
+ case ENC_CPYMWTN_CPY_MEMCMS:
+ return ARM64_CPYMWTN;
+ case ENC_CPYMWTRN_CPY_MEMCMS:
+ return ARM64_CPYMWTRN;
+ case ENC_CPYMWTWN_CPY_MEMCMS:
+ return ARM64_CPYMWTWN;
+ case ENC_CPYP_CPY_MEMCMS:
+ return ARM64_CPYP;
+ case ENC_CPYPN_CPY_MEMCMS:
+ return ARM64_CPYPN;
+ case ENC_CPYPRN_CPY_MEMCMS:
+ return ARM64_CPYPRN;
+ case ENC_CPYPRT_CPY_MEMCMS:
+ return ARM64_CPYPRT;
+ case ENC_CPYPRTN_CPY_MEMCMS:
+ return ARM64_CPYPRTN;
+ case ENC_CPYPRTRN_CPY_MEMCMS:
+ return ARM64_CPYPRTRN;
+ case ENC_CPYPRTWN_CPY_MEMCMS:
+ return ARM64_CPYPRTWN;
+ case ENC_CPYPT_CPY_MEMCMS:
+ return ARM64_CPYPT;
+ case ENC_CPYPTN_CPY_MEMCMS:
+ return ARM64_CPYPTN;
+ case ENC_CPYPTRN_CPY_MEMCMS:
+ return ARM64_CPYPTRN;
+ case ENC_CPYPTWN_CPY_MEMCMS:
+ return ARM64_CPYPTWN;
+ case ENC_CPYPWN_CPY_MEMCMS:
+ return ARM64_CPYPWN;
+ case ENC_CPYPWT_CPY_MEMCMS:
+ return ARM64_CPYPWT;
+ case ENC_CPYPWTN_CPY_MEMCMS:
+ return ARM64_CPYPWTN;
+ case ENC_CPYPWTRN_CPY_MEMCMS:
+ return ARM64_CPYPWTRN;
+ case ENC_CPYPWTWN_CPY_MEMCMS:
+ return ARM64_CPYPWTWN;
case ENC_CRC32B_32C_DP_2SRC:
return ARM64_CRC32B;
case ENC_CRC32CB_32C_DP_2SRC:
@@ -558,6 +1075,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_CTERMEQ;
case ENC_CTERMNE_RR_:
return ARM64_CTERMNE;
+ case ENC_CTZ_32_DP_1SRC:
+ case ENC_CTZ_64_DP_1SRC:
+ return ARM64_CTZ;
case ENC_DC_SYS_CR_SYSTEMINSTRS:
return ARM64_DC;
case ENC_DCPS1_DC_EXCEPTION:
@@ -592,18 +1112,19 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_DUP_ASISDONE_ONLY:
case ENC_DUP_ASIMDINS_DV_V:
case ENC_DUP_ASIMDINS_DR_R:
- case ENC_DUP_P_P_PI_:
case ENC_DUP_Z_I_:
case ENC_DUP_Z_R_:
case ENC_DUP_Z_ZI_:
return ARM64_DUP;
case ENC_DUPM_Z_I_:
return ARM64_DUPM;
+ case ENC_DUPQ_Z_ZI_:
+ return ARM64_DUPQ;
case ENC_DVP_SYS_CR_SYSTEMINSTRS:
return ARM64_DVP;
case ENC_EON_32_LOG_SHIFT:
case ENC_EON_64_LOG_SHIFT:
- case ENC_EON_EOR_Z_ZI_:
+ case ENC_EON_Z_ZI__EOR_Z_ZI_:
return ARM64_EON;
case ENC_EOR_ASIMDSAME_ONLY:
case ENC_EOR_32_LOG_IMM:
@@ -620,6 +1141,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_EOR3;
case ENC_EORBT_Z_ZZ_:
return ARM64_EORBT;
+ case ENC_EORQV_Z_P_Z_:
+ return ARM64_EORQV;
case ENC_EORS_P_P_PP_Z:
return ARM64_EORS;
case ENC_EORTB_Z_ZZ_:
@@ -634,13 +1157,37 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_ERETAB;
case ENC_ESB_HI_HINTS:
return ARM64_ESB;
+ case ENC_EXPAND_Z_P_Z_:
+ return ARM64_EXPAND;
case ENC_EXT_ASIMDEXT_ONLY:
case ENC_EXT_Z_ZI_CON:
case ENC_EXT_Z_ZI_DES:
return ARM64_EXT;
+ case ENC_EXTQ_Z_ZI_DES:
+ return ARM64_EXTQ;
case ENC_EXTR_32_EXTRACT:
case ENC_EXTR_64_EXTRACT:
return ARM64_EXTR;
+ case ENC_F1CVT_MZ2_Z8_:
+ case ENC_F1CVT_Z_Z8_B2H:
+ return ARM64_F1CVT;
+ case ENC_F1CVTL_ASIMDMISC_V:
+ case ENC_F1CVTL_MZ2_Z8_:
+ return ARM64_F1CVTL;
+ //case ENC_F1CVTL_ASIMDMISC_V:
+ // return ARM64_F1CVTL2;
+ case ENC_F1CVTLT_Z_Z8_B2H:
+ return ARM64_F1CVTLT;
+ case ENC_F2CVT_MZ2_Z8_:
+ case ENC_F2CVT_Z_Z8_B2H:
+ return ARM64_F2CVT;
+ case ENC_F2CVTL_ASIMDMISC_V:
+ case ENC_F2CVTL_MZ2_Z8_:
+ return ARM64_F2CVTL;
+ //case ENC_F2CVTL_ASIMDMISC_V:
+ // return ARM64_F2CVTL2;
+ case ENC_F2CVTLT_Z_Z8_B2H:
+ return ARM64_F2CVTLT;
case ENC_FABD_ASISDSAMEFP16_ONLY:
case ENC_FABD_ASISDSAME_ONLY:
case ENC_FABD_ASIMDSAMEFP16_ONLY:
@@ -652,7 +1199,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FABS_H_FLOATDP1:
case ENC_FABS_S_FLOATDP1:
case ENC_FABS_D_FLOATDP1:
- case ENC_FABS_Z_P_Z_:
+ case ENC_FABS_Z_P_Z_M:
+ case ENC_FABS_Z_P_Z_Z:
return ARM64_FABS;
case ENC_FACGE_ASISDSAMEFP16_ONLY:
case ENC_FACGE_ASISDSAME_ONLY:
@@ -666,9 +1214,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FACGT_ASIMDSAME_ONLY:
case ENC_FACGT_P_P_ZZ_:
return ARM64_FACGT;
- case ENC_FACLE_FACGE_P_P_ZZ_:
+ case ENC_FACLE_P_P_ZZ__FACGE_P_P_ZZ_:
return ARM64_FACLE;
- case ENC_FACLT_FACGT_P_P_ZZ_:
+ case ENC_FACLT_P_P_ZZ__FACGT_P_P_ZZ_:
return ARM64_FACLT;
case ENC_FADD_ASIMDSAMEFP16_ONLY:
case ENC_FADD_ASIMDSAME_ONLY:
@@ -678,6 +1226,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FADD_Z_P_ZS_:
case ENC_FADD_Z_P_ZZ_:
case ENC_FADD_Z_ZZ_:
+ case ENC_FADD_ZA_ZW_2X2:
+ case ENC_FADD_ZA_ZW_2X2_16:
+ case ENC_FADD_ZA_ZW_4X4:
+ case ENC_FADD_ZA_ZW_4X4_16:
return ARM64_FADD;
case ENC_FADDA_V_P_Z_:
return ARM64_FADDA;
@@ -687,8 +1239,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FADDP_ASIMDSAME_ONLY:
case ENC_FADDP_Z_P_ZZ_:
return ARM64_FADDP;
+ case ENC_FADDQV_Z_P_Z_:
+ return ARM64_FADDQV;
case ENC_FADDV_V_P_Z_:
return ARM64_FADDV;
+ case ENC_FAMAX_ASIMDSAMEFP16_ONLY:
+ case ENC_FAMAX_ASIMDSAME_ONLY:
+ case ENC_FAMAX_MZ_ZZW_2X2:
+ case ENC_FAMAX_MZ_ZZW_4X4:
+ case ENC_FAMAX_Z_P_ZZ_:
+ return ARM64_FAMAX;
+ case ENC_FAMIN_ASIMDSAMEFP16_ONLY:
+ case ENC_FAMIN_ASIMDSAME_ONLY:
+ case ENC_FAMIN_MZ_ZZW_2X2:
+ case ENC_FAMIN_MZ_ZZW_4X4:
+ case ENC_FAMIN_Z_P_ZZ_:
+ return ARM64_FAMIN;
case ENC_FCADD_ASIMDSAME2_C:
case ENC_FCADD_Z_P_ZZ_:
return ARM64_FCADD;
@@ -700,6 +1266,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCCMPE_S_FLOATCCMP:
case ENC_FCCMPE_D_FLOATCCMP:
return ARM64_FCCMPE;
+ case ENC_FCLAMP_MZ_ZZ_2:
+ case ENC_FCLAMP_MZ_ZZ_4:
+ case ENC_FCLAMP_Z_ZZ_:
+ return ARM64_FCLAMP;
case ENC_FCMEQ_ASISDSAMEFP16_ONLY:
case ENC_FCMEQ_ASISDSAME_ONLY:
case ENC_FCMEQ_ASIMDSAMEFP16_ONLY:
@@ -733,8 +1303,7 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCMGT_P_P_Z0_:
case ENC_FCMGT_P_P_ZZ_:
return ARM64_FCMGT;
- case ENC_FCMLA_ASIMDELEM_C_H:
- case ENC_FCMLA_ASIMDELEM_C_S:
+ case ENC_FCMLA_ADVSIMD_ELT:
case ENC_FCMLA_ASIMDSAME2_C:
case ENC_FCMLA_Z_P_ZZZ_:
case ENC_FCMLA_Z_ZZZI_H:
@@ -744,15 +1313,15 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCMLE_ASISDMISC_FZ:
case ENC_FCMLE_ASIMDMISCFP16_FZ:
case ENC_FCMLE_ASIMDMISC_FZ:
- case ENC_FCMLE_FCMGE_P_P_ZZ_:
case ENC_FCMLE_P_P_Z0_:
+ case ENC_FCMLE_P_P_ZZ__FCMGE_P_P_ZZ_:
return ARM64_FCMLE;
case ENC_FCMLT_ASISDMISCFP16_FZ:
case ENC_FCMLT_ASISDMISC_FZ:
case ENC_FCMLT_ASIMDMISCFP16_FZ:
case ENC_FCMLT_ASIMDMISC_FZ:
- case ENC_FCMLT_FCMGT_P_P_ZZ_:
case ENC_FCMLT_P_P_Z0_:
+ case ENC_FCMLT_P_P_ZZ__FCMGT_P_P_ZZ_:
return ARM64_FCMLT;
case ENC_FCMNE_P_P_Z0_:
case ENC_FCMNE_P_P_ZZ_:
@@ -785,12 +1354,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVT_DS_FLOATDP1:
case ENC_FCVT_HD_FLOATDP1:
case ENC_FCVT_SD_FLOATDP1:
+ case ENC_FCVT_MZ2_Z_:
+ case ENC_FCVT_Z8_MZ2_:
+ case ENC_FCVT_Z8_MZ4_:
+ case ENC_FCVT_Z_MZ2_:
case ENC_FCVT_Z_P_Z_H2S:
+ case ENC_FCVT_Z_P_Z_H2SZ:
case ENC_FCVT_Z_P_Z_H2D:
+ case ENC_FCVT_Z_P_Z_H2DZ:
case ENC_FCVT_Z_P_Z_S2H:
+ case ENC_FCVT_Z_P_Z_S2HZ:
case ENC_FCVT_Z_P_Z_S2D:
+ case ENC_FCVT_Z_P_Z_S2DZ:
case ENC_FCVT_Z_P_Z_D2H:
+ case ENC_FCVT_Z_P_Z_D2HZ:
case ENC_FCVT_Z_P_Z_D2S:
+ case ENC_FCVT_Z_P_Z_D2SZ:
return ARM64_FCVT;
case ENC_FCVTAS_ASISDMISCFP16_R:
case ENC_FCVTAS_ASISDMISC_R:
@@ -802,6 +1381,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTAS_64S_FLOAT2INT:
case ENC_FCVTAS_32D_FLOAT2INT:
case ENC_FCVTAS_64D_FLOAT2INT:
+ case ENC_FCVTAS_SISD_32H:
+ case ENC_FCVTAS_SISD_64H:
+ case ENC_FCVTAS_SISD_64S:
+ case ENC_FCVTAS_SISD_32D:
return ARM64_FCVTAS;
case ENC_FCVTAU_ASISDMISCFP16_R:
case ENC_FCVTAU_ASISDMISC_R:
@@ -813,13 +1396,20 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTAU_64S_FLOAT2INT:
case ENC_FCVTAU_32D_FLOAT2INT:
case ENC_FCVTAU_64D_FLOAT2INT:
+ case ENC_FCVTAU_SISD_32H:
+ case ENC_FCVTAU_SISD_64H:
+ case ENC_FCVTAU_SISD_64S:
+ case ENC_FCVTAU_SISD_32D:
return ARM64_FCVTAU;
case ENC_FCVTL_ASIMDMISC_L:
+ case ENC_FCVTL_MZ2_Z_:
return ARM64_FCVTL;
//case ENC_FCVTL_ASIMDMISC_L:
// return ARM64_FCVTL2;
case ENC_FCVTLT_Z_P_Z_H2S:
+ case ENC_FCVTLT_Z_P_Z_H2SZ:
case ENC_FCVTLT_Z_P_Z_S2D:
+ case ENC_FCVTLT_Z_P_Z_S2DZ:
return ARM64_FCVTLT;
case ENC_FCVTMS_ASISDMISCFP16_R:
case ENC_FCVTMS_ASISDMISC_R:
@@ -831,6 +1421,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTMS_64S_FLOAT2INT:
case ENC_FCVTMS_32D_FLOAT2INT:
case ENC_FCVTMS_64D_FLOAT2INT:
+ case ENC_FCVTMS_SISD_32H:
+ case ENC_FCVTMS_SISD_64H:
+ case ENC_FCVTMS_SISD_64S:
+ case ENC_FCVTMS_SISD_32D:
return ARM64_FCVTMS;
case ENC_FCVTMU_ASISDMISCFP16_R:
case ENC_FCVTMU_ASISDMISC_R:
@@ -842,11 +1436,23 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTMU_64S_FLOAT2INT:
case ENC_FCVTMU_32D_FLOAT2INT:
case ENC_FCVTMU_64D_FLOAT2INT:
+ case ENC_FCVTMU_SISD_32H:
+ case ENC_FCVTMU_SISD_64H:
+ case ENC_FCVTMU_SISD_64S:
+ case ENC_FCVTMU_SISD_32D:
return ARM64_FCVTMU;
case ENC_FCVTN_ASIMDMISC_N:
+ case ENC_FCVTN_ASIMDSAME2_D:
+ case ENC_FCVTN_ASIMDSAME2_H:
+ case ENC_FCVTN_Z8_MZ2_H2B:
+ case ENC_FCVTN_Z8_MZ4_:
+ case ENC_FCVTN_Z_MZ2_:
return ARM64_FCVTN;
//case ENC_FCVTN_ASIMDMISC_N:
+ //case ENC_FCVTN_ASIMDSAME2_H:
// return ARM64_FCVTN2;
+ case ENC_FCVTNB_Z8_MZ2_S2B:
+ return ARM64_FCVTNB;
case ENC_FCVTNS_ASISDMISCFP16_R:
case ENC_FCVTNS_ASISDMISC_R:
case ENC_FCVTNS_ASIMDMISCFP16_R:
@@ -857,9 +1463,16 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTNS_64S_FLOAT2INT:
case ENC_FCVTNS_32D_FLOAT2INT:
case ENC_FCVTNS_64D_FLOAT2INT:
+ case ENC_FCVTNS_SISD_32H:
+ case ENC_FCVTNS_SISD_64H:
+ case ENC_FCVTNS_SISD_64S:
+ case ENC_FCVTNS_SISD_32D:
return ARM64_FCVTNS;
+ case ENC_FCVTNT_Z8_MZ2_S2B:
case ENC_FCVTNT_Z_P_Z_S2H:
+ case ENC_FCVTNT_Z_P_Z_S2HZ:
case ENC_FCVTNT_Z_P_Z_D2S:
+ case ENC_FCVTNT_Z_P_Z_D2SZ:
return ARM64_FCVTNT;
case ENC_FCVTNU_ASISDMISCFP16_R:
case ENC_FCVTNU_ASISDMISC_R:
@@ -871,6 +1484,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTNU_64S_FLOAT2INT:
case ENC_FCVTNU_32D_FLOAT2INT:
case ENC_FCVTNU_64D_FLOAT2INT:
+ case ENC_FCVTNU_SISD_32H:
+ case ENC_FCVTNU_SISD_64H:
+ case ENC_FCVTNU_SISD_64S:
+ case ENC_FCVTNU_SISD_32D:
return ARM64_FCVTNU;
case ENC_FCVTPS_ASISDMISCFP16_R:
case ENC_FCVTPS_ASISDMISC_R:
@@ -882,6 +1499,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTPS_64S_FLOAT2INT:
case ENC_FCVTPS_32D_FLOAT2INT:
case ENC_FCVTPS_64D_FLOAT2INT:
+ case ENC_FCVTPS_SISD_32H:
+ case ENC_FCVTPS_SISD_64H:
+ case ENC_FCVTPS_SISD_64S:
+ case ENC_FCVTPS_SISD_32D:
return ARM64_FCVTPS;
case ENC_FCVTPU_ASISDMISCFP16_R:
case ENC_FCVTPU_ASISDMISC_R:
@@ -893,8 +1514,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTPU_64S_FLOAT2INT:
case ENC_FCVTPU_32D_FLOAT2INT:
case ENC_FCVTPU_64D_FLOAT2INT:
+ case ENC_FCVTPU_SISD_32H:
+ case ENC_FCVTPU_SISD_64H:
+ case ENC_FCVTPU_SISD_64S:
+ case ENC_FCVTPU_SISD_32D:
return ARM64_FCVTPU;
case ENC_FCVTX_Z_P_Z_D2S:
+ case ENC_FCVTX_Z_P_Z_D2SZ:
return ARM64_FCVTX;
case ENC_FCVTXN_ASISDMISC_N:
case ENC_FCVTXN_ASIMDMISC_N:
@@ -902,6 +1528,7 @@ enum Operation enc_to_oper(enum ENCODING enc)
//case ENC_FCVTXN_ASIMDMISC_N:
// return ARM64_FCVTXN2;
case ENC_FCVTXNT_Z_P_Z_D2S:
+ case ENC_FCVTXNT_Z_P_Z_D2SZ:
return ARM64_FCVTXNT;
case ENC_FCVTZS_ASISDSHF_C:
case ENC_FCVTZS_ASIMDSHF_C:
@@ -921,13 +1548,26 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTZS_64S_FLOAT2INT:
case ENC_FCVTZS_32D_FLOAT2INT:
case ENC_FCVTZS_64D_FLOAT2INT:
+ case ENC_FCVTZS_SISD_32H:
+ case ENC_FCVTZS_SISD_64H:
+ case ENC_FCVTZS_SISD_64S:
+ case ENC_FCVTZS_SISD_32D:
+ case ENC_FCVTZS_MZ_Z_2:
+ case ENC_FCVTZS_MZ_Z_4:
case ENC_FCVTZS_Z_P_Z_FP162H:
+ case ENC_FCVTZS_Z_P_Z_FP162HZ:
case ENC_FCVTZS_Z_P_Z_FP162W:
+ case ENC_FCVTZS_Z_P_Z_FP162WZ:
case ENC_FCVTZS_Z_P_Z_FP162X:
+ case ENC_FCVTZS_Z_P_Z_FP162XZ:
case ENC_FCVTZS_Z_P_Z_S2W:
+ case ENC_FCVTZS_Z_P_Z_S2WZ:
case ENC_FCVTZS_Z_P_Z_S2X:
+ case ENC_FCVTZS_Z_P_Z_S2XZ:
case ENC_FCVTZS_Z_P_Z_D2W:
+ case ENC_FCVTZS_Z_P_Z_D2WZ:
case ENC_FCVTZS_Z_P_Z_D2X:
+ case ENC_FCVTZS_Z_P_Z_D2XZ:
return ARM64_FCVTZS;
case ENC_FCVTZU_ASISDSHF_C:
case ENC_FCVTZU_ASIMDSHF_C:
@@ -947,13 +1587,26 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FCVTZU_64S_FLOAT2INT:
case ENC_FCVTZU_32D_FLOAT2INT:
case ENC_FCVTZU_64D_FLOAT2INT:
+ case ENC_FCVTZU_SISD_32H:
+ case ENC_FCVTZU_SISD_64H:
+ case ENC_FCVTZU_SISD_64S:
+ case ENC_FCVTZU_SISD_32D:
+ case ENC_FCVTZU_MZ_Z_2:
+ case ENC_FCVTZU_MZ_Z_4:
case ENC_FCVTZU_Z_P_Z_FP162H:
+ case ENC_FCVTZU_Z_P_Z_FP162HZ:
case ENC_FCVTZU_Z_P_Z_FP162W:
+ case ENC_FCVTZU_Z_P_Z_FP162WZ:
case ENC_FCVTZU_Z_P_Z_FP162X:
+ case ENC_FCVTZU_Z_P_Z_FP162XZ:
case ENC_FCVTZU_Z_P_Z_S2W:
+ case ENC_FCVTZU_Z_P_Z_S2WZ:
case ENC_FCVTZU_Z_P_Z_S2X:
+ case ENC_FCVTZU_Z_P_Z_S2XZ:
case ENC_FCVTZU_Z_P_Z_D2W:
+ case ENC_FCVTZU_Z_P_Z_D2WZ:
case ENC_FCVTZU_Z_P_Z_D2X:
+ case ENC_FCVTZU_Z_P_Z_D2XZ:
return ARM64_FCVTZU;
case ENC_FDIV_ASIMDSAMEFP16_ONLY:
case ENC_FDIV_ASIMDSAME_ONLY:
@@ -964,13 +1617,45 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_FDIV;
case ENC_FDIVR_Z_P_ZZ_:
return ARM64_FDIVR;
+ case ENC_FDOT_ASIMDELEM_G:
+ case ENC_FDOT_ASIMDSAME2_D:
+ case ENC_FDOT_ASIMDELEM_D:
+ case ENC_FDOT_ASIMDSAME2_DD:
+ case ENC_FDOT_Z32_ZZ8Z8_:
+ case ENC_FDOT_Z32_ZZ8Z8I_:
+ case ENC_FDOT_Z_ZZ8Z8_:
+ case ENC_FDOT_Z_ZZ8Z8I_:
+ case ENC_FDOT_Z_ZZZ_:
+ case ENC_FDOT_Z_ZZZI_:
+ case ENC_FDOT_ZA32_Z8Z8I_2XI:
+ case ENC_FDOT_ZA32_Z8Z8I_4XI:
+ case ENC_FDOT_ZA32_Z8Z8V_2X1:
+ case ENC_FDOT_ZA32_Z8Z8V_4X1:
+ case ENC_FDOT_ZA32_Z8Z8W_2X2:
+ case ENC_FDOT_ZA32_Z8Z8W_4X4:
+ case ENC_FDOT_ZA_Z8Z8I_2XI:
+ case ENC_FDOT_ZA_Z8Z8I_4XI:
+ case ENC_FDOT_ZA_Z8Z8V_2X1:
+ case ENC_FDOT_ZA_Z8Z8V_4X1:
+ case ENC_FDOT_ZA_Z8Z8W_2X2:
+ case ENC_FDOT_ZA_Z8Z8W_4X4:
+ case ENC_FDOT_ZA_ZZI_2XI:
+ case ENC_FDOT_ZA_ZZI_4XI:
+ case ENC_FDOT_ZA_ZZV_2X1:
+ case ENC_FDOT_ZA_ZZV_4X1:
+ case ENC_FDOT_ZA_ZZW_2X2:
+ case ENC_FDOT_ZA_ZZW_4X4:
+ return ARM64_FDOT;
case ENC_FDUP_Z_I_:
return ARM64_FDUP;
case ENC_FEXPA_Z_Z_:
return ARM64_FEXPA;
+ case ENC_FIRSTP_R_P_P_:
+ return ARM64_FIRSTP;
case ENC_FJCVTZS_32D_FLOAT2INT:
return ARM64_FJCVTZS;
- case ENC_FLOGB_Z_P_Z_:
+ case ENC_FLOGB_Z_P_Z_M:
+ case ENC_FLOGB_Z_P_Z_Z:
return ARM64_FLOGB;
case ENC_FMAD_Z_P_ZZZ_:
return ARM64_FMAD;
@@ -983,6 +1668,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMAX_H_FLOATDP2:
case ENC_FMAX_S_FLOATDP2:
case ENC_FMAX_D_FLOATDP2:
+ case ENC_FMAX_MZ_ZZV_2X1:
+ case ENC_FMAX_MZ_ZZV_4X1:
+ case ENC_FMAX_MZ_ZZW_2X2:
+ case ENC_FMAX_MZ_ZZW_4X4:
case ENC_FMAX_Z_P_ZS_:
case ENC_FMAX_Z_P_ZZ_:
return ARM64_FMAX;
@@ -991,6 +1680,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMAXNM_H_FLOATDP2:
case ENC_FMAXNM_S_FLOATDP2:
case ENC_FMAXNM_D_FLOATDP2:
+ case ENC_FMAXNM_MZ_ZZV_2X1:
+ case ENC_FMAXNM_MZ_ZZV_4X1:
+ case ENC_FMAXNM_MZ_ZZW_2X2:
+ case ENC_FMAXNM_MZ_ZZW_4X4:
case ENC_FMAXNM_Z_P_ZS_:
case ENC_FMAXNM_Z_P_ZZ_:
return ARM64_FMAXNM;
@@ -1000,6 +1693,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMAXNMP_ASIMDSAME_ONLY:
case ENC_FMAXNMP_Z_P_ZZ_:
return ARM64_FMAXNMP;
+ case ENC_FMAXNMQV_Z_P_Z_:
+ return ARM64_FMAXNMQV;
case ENC_FMAXNMV_ASIMDALL_ONLY_H:
case ENC_FMAXNMV_ASIMDALL_ONLY_SD:
case ENC_FMAXNMV_V_P_Z_:
@@ -1010,6 +1705,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMAXP_ASIMDSAME_ONLY:
case ENC_FMAXP_Z_P_ZZ_:
return ARM64_FMAXP;
+ case ENC_FMAXQV_Z_P_Z_:
+ return ARM64_FMAXQV;
case ENC_FMAXV_ASIMDALL_ONLY_H:
case ENC_FMAXV_ASIMDALL_ONLY_SD:
case ENC_FMAXV_V_P_Z_:
@@ -1019,6 +1716,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMIN_H_FLOATDP2:
case ENC_FMIN_S_FLOATDP2:
case ENC_FMIN_D_FLOATDP2:
+ case ENC_FMIN_MZ_ZZV_2X1:
+ case ENC_FMIN_MZ_ZZV_4X1:
+ case ENC_FMIN_MZ_ZZW_2X2:
+ case ENC_FMIN_MZ_ZZW_4X4:
case ENC_FMIN_Z_P_ZS_:
case ENC_FMIN_Z_P_ZZ_:
return ARM64_FMIN;
@@ -1027,6 +1728,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMINNM_H_FLOATDP2:
case ENC_FMINNM_S_FLOATDP2:
case ENC_FMINNM_D_FLOATDP2:
+ case ENC_FMINNM_MZ_ZZV_2X1:
+ case ENC_FMINNM_MZ_ZZV_4X1:
+ case ENC_FMINNM_MZ_ZZW_2X2:
+ case ENC_FMINNM_MZ_ZZW_4X4:
case ENC_FMINNM_Z_P_ZS_:
case ENC_FMINNM_Z_P_ZZ_:
return ARM64_FMINNM;
@@ -1036,6 +1741,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMINNMP_ASIMDSAME_ONLY:
case ENC_FMINNMP_Z_P_ZZ_:
return ARM64_FMINNMP;
+ case ENC_FMINNMQV_Z_P_Z_:
+ return ARM64_FMINNMQV;
case ENC_FMINNMV_ASIMDALL_ONLY_H:
case ENC_FMINNMV_ASIMDALL_ONLY_SD:
case ENC_FMINNMV_V_P_Z_:
@@ -1046,6 +1753,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMINP_ASIMDSAME_ONLY:
case ENC_FMINP_Z_P_ZZ_:
return ARM64_FMINP;
+ case ENC_FMINQV_Z_P_Z_:
+ return ARM64_FMINQV;
case ENC_FMINV_ASIMDALL_ONLY_H:
case ENC_FMINV_ASIMDALL_ONLY_SD:
case ENC_FMINV_V_P_Z_:
@@ -1060,16 +1769,83 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMLA_Z_ZZZI_H:
case ENC_FMLA_Z_ZZZI_S:
case ENC_FMLA_Z_ZZZI_D:
+ case ENC_FMLA_ZA_ZZI_H2XI:
+ case ENC_FMLA_ZA_ZZI_S2XI:
+ case ENC_FMLA_ZA_ZZI_D2XI:
+ case ENC_FMLA_ZA_ZZI_H4XI:
+ case ENC_FMLA_ZA_ZZI_S4XI:
+ case ENC_FMLA_ZA_ZZI_D4XI:
+ case ENC_FMLA_ZA_ZZV_2X1:
+ case ENC_FMLA_ZA_ZZV_2X1_16:
+ case ENC_FMLA_ZA_ZZV_4X1:
+ case ENC_FMLA_ZA_ZZV_4X1_16:
+ case ENC_FMLA_ZA_ZZW_2X2:
+ case ENC_FMLA_ZA_ZZW_2X2_16:
+ case ENC_FMLA_ZA_ZZW_4X4:
+ case ENC_FMLA_ZA_ZZW_4X4_16:
return ARM64_FMLA;
case ENC_FMLAL_ASIMDELEM_LH:
case ENC_FMLAL_ASIMDSAME_F:
+ case ENC_FMLAL_ZA_Z8Z8I_1:
+ case ENC_FMLAL_ZA_Z8Z8I_2XI:
+ case ENC_FMLAL_ZA_Z8Z8I_4XI:
+ case ENC_FMLAL_ZA_Z8Z8V_1:
+ case ENC_FMLAL_ZA_Z8Z8V_2X1:
+ case ENC_FMLAL_ZA_Z8Z8V_4X1:
+ case ENC_FMLAL_ZA_Z8Z8W_2X2:
+ case ENC_FMLAL_ZA_Z8Z8W_4X4:
+ case ENC_FMLAL_ZA_ZZI_1:
+ case ENC_FMLAL_ZA_ZZI_2XI:
+ case ENC_FMLAL_ZA_ZZI_4XI:
+ case ENC_FMLAL_ZA_ZZV_1:
+ case ENC_FMLAL_ZA_ZZV_2X1:
+ case ENC_FMLAL_ZA_ZZV_4X1:
+ case ENC_FMLAL_ZA_ZZW_2X2:
+ case ENC_FMLAL_ZA_ZZW_4X4:
return ARM64_FMLAL;
case ENC_FMLAL2_ASIMDELEM_LH:
case ENC_FMLAL2_ASIMDSAME_F:
return ARM64_FMLAL2;
+ case ENC_FMLALB_ASIMDELEM_H:
+ case ENC_FMLALB_ASIMDSAME2_J:
+ case ENC_FMLALB_Z_Z8Z8Z8_:
+ case ENC_FMLALB_Z_Z8Z8Z8I_:
case ENC_FMLALB_Z_ZZZ_:
case ENC_FMLALB_Z_ZZZI_S:
return ARM64_FMLALB;
+ case ENC_FMLALL_ZA32_Z8Z8I_1:
+ case ENC_FMLALL_ZA32_Z8Z8I_2XI:
+ case ENC_FMLALL_ZA32_Z8Z8I_4XI:
+ case ENC_FMLALL_ZA32_Z8Z8V_1:
+ case ENC_FMLALL_ZA32_Z8Z8V_2X1:
+ case ENC_FMLALL_ZA32_Z8Z8V_4X1:
+ case ENC_FMLALL_ZA32_Z8Z8W_2X2:
+ case ENC_FMLALL_ZA32_Z8Z8W_4X4:
+ return ARM64_FMLALL;
+ case ENC_FMLALLBB_ASIMDELEM_J:
+ case ENC_FMLALLBB_ASIMDSAME2_G:
+ case ENC_FMLALLBB_Z32_Z8Z8Z8_:
+ case ENC_FMLALLBB_Z32_Z8Z8Z8I_:
+ return ARM64_FMLALLBB;
+ case ENC_FMLALLBT_ASIMDELEM_J:
+ case ENC_FMLALLBT_ASIMDSAME2_G:
+ case ENC_FMLALLBT_Z32_Z8Z8Z8_:
+ case ENC_FMLALLBT_Z32_Z8Z8Z8I_:
+ return ARM64_FMLALLBT;
+ case ENC_FMLALLTB_ASIMDELEM_J:
+ case ENC_FMLALLTB_ASIMDSAME2_G:
+ case ENC_FMLALLTB_Z32_Z8Z8Z8_:
+ case ENC_FMLALLTB_Z32_Z8Z8Z8I_:
+ return ARM64_FMLALLTB;
+ case ENC_FMLALLTT_ASIMDELEM_J:
+ case ENC_FMLALLTT_ASIMDSAME2_G:
+ case ENC_FMLALLTT_Z32_Z8Z8Z8_:
+ case ENC_FMLALLTT_Z32_Z8Z8Z8I_:
+ return ARM64_FMLALLTT;
+ case ENC_FMLALT_ASIMDELEM_H:
+ case ENC_FMLALT_ASIMDSAME2_J:
+ case ENC_FMLALT_Z_Z8Z8Z8_:
+ case ENC_FMLALT_Z_Z8Z8Z8I_:
case ENC_FMLALT_Z_ZZZ_:
case ENC_FMLALT_Z_ZZZI_S:
return ARM64_FMLALT;
@@ -1083,9 +1859,31 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMLS_Z_ZZZI_H:
case ENC_FMLS_Z_ZZZI_S:
case ENC_FMLS_Z_ZZZI_D:
+ case ENC_FMLS_ZA_ZZI_H2XI:
+ case ENC_FMLS_ZA_ZZI_S2XI:
+ case ENC_FMLS_ZA_ZZI_D2XI:
+ case ENC_FMLS_ZA_ZZI_H4XI:
+ case ENC_FMLS_ZA_ZZI_S4XI:
+ case ENC_FMLS_ZA_ZZI_D4XI:
+ case ENC_FMLS_ZA_ZZV_2X1:
+ case ENC_FMLS_ZA_ZZV_2X1_16:
+ case ENC_FMLS_ZA_ZZV_4X1:
+ case ENC_FMLS_ZA_ZZV_4X1_16:
+ case ENC_FMLS_ZA_ZZW_2X2:
+ case ENC_FMLS_ZA_ZZW_2X2_16:
+ case ENC_FMLS_ZA_ZZW_4X4:
+ case ENC_FMLS_ZA_ZZW_4X4_16:
return ARM64_FMLS;
case ENC_FMLSL_ASIMDELEM_LH:
case ENC_FMLSL_ASIMDSAME_F:
+ case ENC_FMLSL_ZA_ZZI_1:
+ case ENC_FMLSL_ZA_ZZI_2XI:
+ case ENC_FMLSL_ZA_ZZI_4XI:
+ case ENC_FMLSL_ZA_ZZV_1:
+ case ENC_FMLSL_ZA_ZZV_2X1:
+ case ENC_FMLSL_ZA_ZZV_4X1:
+ case ENC_FMLSL_ZA_ZZW_2X2:
+ case ENC_FMLSL_ZA_ZZW_4X4:
return ARM64_FMLSL;
case ENC_FMLSL2_ASIMDELEM_LH:
case ENC_FMLSL2_ASIMDSAME_F:
@@ -1096,24 +1894,71 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMLSLT_Z_ZZZ_:
case ENC_FMLSLT_Z_ZZZI_S:
return ARM64_FMLSLT;
+ case ENC_FMMLA_ASIMD_FP8FP16:
+ case ENC_FMMLA_ASIMD_FP8FP32:
+ case ENC_FMMLA_Z16_ZZ8Z8_:
+ case ENC_FMMLA_Z32_ZZ8Z8_:
+ case ENC_FMMLA_Z32_ZZZ_H:
case ENC_FMMLA_Z_ZZZ_S:
case ENC_FMMLA_Z_ZZZ_D:
return ARM64_FMMLA;
+ case ENC_FMOP4A_ZA16_Z8Z8_B1X2:
+ case ENC_FMOP4A_ZA16_Z8Z8_B1X1:
+ case ENC_FMOP4A_ZA16_Z8Z8_B2X1:
+ case ENC_FMOP4A_ZA16_Z8Z8_B2X2:
+ case ENC_FMOP4A_ZA32_Z8Z8_B1X2:
+ case ENC_FMOP4A_ZA32_Z8Z8_B1X1:
+ case ENC_FMOP4A_ZA32_Z8Z8_B2X1:
+ case ENC_FMOP4A_ZA32_Z8Z8_B2X2:
+ case ENC_FMOP4A_ZA32_ZZ_H1X2:
+ case ENC_FMOP4A_ZA32_ZZ_H1X1:
+ case ENC_FMOP4A_ZA32_ZZ_H2X1:
+ case ENC_FMOP4A_ZA32_ZZ_H2X2:
+ case ENC_FMOP4A_ZA_ZZ_H1X2:
+ case ENC_FMOP4A_ZA_ZZ_H1X1:
+ case ENC_FMOP4A_ZA_ZZ_H2X1:
+ case ENC_FMOP4A_ZA_ZZ_H2X2:
+ case ENC_FMOP4A_ZA_ZZ_S1X2:
+ case ENC_FMOP4A_ZA_ZZ_S1X1:
+ case ENC_FMOP4A_ZA_ZZ_S2X1:
+ case ENC_FMOP4A_ZA_ZZ_S2X2:
+ case ENC_FMOP4A_ZA_ZZ_D1X2:
+ case ENC_FMOP4A_ZA_ZZ_D1X1:
+ case ENC_FMOP4A_ZA_ZZ_D2X1:
+ case ENC_FMOP4A_ZA_ZZ_D2X2:
+ return ARM64_FMOP4A;
+ case ENC_FMOP4S_ZA32_ZZ_H1X2:
+ case ENC_FMOP4S_ZA32_ZZ_H1X1:
+ case ENC_FMOP4S_ZA32_ZZ_H2X1:
+ case ENC_FMOP4S_ZA32_ZZ_H2X2:
+ case ENC_FMOP4S_ZA_ZZ_H1X2:
+ case ENC_FMOP4S_ZA_ZZ_H1X1:
+ case ENC_FMOP4S_ZA_ZZ_H2X1:
+ case ENC_FMOP4S_ZA_ZZ_H2X2:
+ case ENC_FMOP4S_ZA_ZZ_S1X2:
+ case ENC_FMOP4S_ZA_ZZ_S1X1:
+ case ENC_FMOP4S_ZA_ZZ_S2X1:
+ case ENC_FMOP4S_ZA_ZZ_S2X2:
+ case ENC_FMOP4S_ZA_ZZ_D1X2:
+ case ENC_FMOP4S_ZA_ZZ_D1X1:
+ case ENC_FMOP4S_ZA_ZZ_D2X1:
+ case ENC_FMOP4S_ZA_ZZ_D2X2:
+ return ARM64_FMOP4S;
+ case ENC_FMOPA_ZA16_PP_Z8Z8_8:
+ case ENC_FMOPA_ZA32_PP_Z8Z8_8:
case ENC_FMOPA_ZA32_PP_ZZ_16:
+ case ENC_FMOPA_ZA_PP_ZZ_16:
case ENC_FMOPA_ZA_PP_ZZ_32:
case ENC_FMOPA_ZA_PP_ZZ_64:
return ARM64_FMOPA;
case ENC_FMOPS_ZA32_PP_ZZ_16:
+ case ENC_FMOPS_ZA_PP_ZZ_16:
case ENC_FMOPS_ZA_PP_ZZ_32:
case ENC_FMOPS_ZA_PP_ZZ_64:
return ARM64_FMOPS;
case ENC_FMOV_ASIMDIMM_H_H:
case ENC_FMOV_ASIMDIMM_S_S:
case ENC_FMOV_ASIMDIMM_D2_D:
- case ENC_FMOV_CPY_Z_P_I_:
- case ENC_FMOV_DUP_Z_I_:
- case ENC_FMOV_FCPY_Z_P_I_:
- case ENC_FMOV_FDUP_Z_I_:
case ENC_FMOV_H_FLOATDP1:
case ENC_FMOV_S_FLOATDP1:
case ENC_FMOV_D_FLOATDP1:
@@ -1130,6 +1975,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMOV_H_FLOATIMM:
case ENC_FMOV_S_FLOATIMM:
case ENC_FMOV_D_FLOATIMM:
+ case ENC_FMOV_Z_P_0__CPY_Z_P_I_:
+ case ENC_FMOV_Z_0__DUP_Z_I_:
+ case ENC_FMOV_Z_P_I__FCPY_Z_P_I_:
+ case ENC_FMOV_Z_I__FDUP_Z_I_:
return ARM64_FMOV;
case ENC_FMSB_Z_P_ZZZ_:
return ARM64_FMSB;
@@ -1146,6 +1995,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FMUL_H_FLOATDP2:
case ENC_FMUL_S_FLOATDP2:
case ENC_FMUL_D_FLOATDP2:
+ case ENC_FMUL_MZ_ZZV_2X1:
+ case ENC_FMUL_MZ_ZZV_4X1:
+ case ENC_FMUL_MZ_ZZW_2X2:
+ case ENC_FMUL_MZ_ZZW_4X4:
case ENC_FMUL_Z_P_ZS_:
case ENC_FMUL_Z_P_ZZ_:
case ENC_FMUL_Z_ZZ_:
@@ -1168,7 +2021,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FNEG_H_FLOATDP1:
case ENC_FNEG_S_FLOATDP1:
case ENC_FNEG_D_FLOATDP1:
- case ENC_FNEG_Z_P_Z_:
+ case ENC_FNEG_Z_P_Z_M:
+ case ENC_FNEG_Z_P_Z_Z:
return ARM64_FNEG;
case ENC_FNMAD_Z_P_ZZZ_:
return ARM64_FNMAD;
@@ -1204,72 +2058,96 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_FRECPS;
case ENC_FRECPX_ASISDMISCFP16_R:
case ENC_FRECPX_ASISDMISC_R:
- case ENC_FRECPX_Z_P_Z_:
+ case ENC_FRECPX_Z_P_Z_M:
+ case ENC_FRECPX_Z_P_Z_Z:
return ARM64_FRECPX;
case ENC_FRINT32X_ASIMDMISC_R:
case ENC_FRINT32X_S_FLOATDP1:
case ENC_FRINT32X_D_FLOATDP1:
+ case ENC_FRINT32X_Z_P_Z_M:
+ case ENC_FRINT32X_Z_P_Z_Z:
return ARM64_FRINT32X;
case ENC_FRINT32Z_ASIMDMISC_R:
case ENC_FRINT32Z_S_FLOATDP1:
case ENC_FRINT32Z_D_FLOATDP1:
+ case ENC_FRINT32Z_Z_P_Z_M:
+ case ENC_FRINT32Z_Z_P_Z_Z:
return ARM64_FRINT32Z;
case ENC_FRINT64X_ASIMDMISC_R:
case ENC_FRINT64X_S_FLOATDP1:
case ENC_FRINT64X_D_FLOATDP1:
+ case ENC_FRINT64X_Z_P_Z_M:
+ case ENC_FRINT64X_Z_P_Z_Z:
return ARM64_FRINT64X;
case ENC_FRINT64Z_ASIMDMISC_R:
case ENC_FRINT64Z_S_FLOATDP1:
case ENC_FRINT64Z_D_FLOATDP1:
+ case ENC_FRINT64Z_Z_P_Z_M:
+ case ENC_FRINT64Z_Z_P_Z_Z:
return ARM64_FRINT64Z;
case ENC_FRINTA_ASIMDMISCFP16_R:
case ENC_FRINTA_ASIMDMISC_R:
case ENC_FRINTA_H_FLOATDP1:
case ENC_FRINTA_S_FLOATDP1:
case ENC_FRINTA_D_FLOATDP1:
- case ENC_FRINTA_Z_P_Z_:
+ case ENC_FRINTA_MZ_Z_2:
+ case ENC_FRINTA_MZ_Z_4:
+ case ENC_FRINTA_Z_P_Z_M:
+ case ENC_FRINTA_Z_P_Z_Z:
return ARM64_FRINTA;
case ENC_FRINTI_ASIMDMISCFP16_R:
case ENC_FRINTI_ASIMDMISC_R:
case ENC_FRINTI_H_FLOATDP1:
case ENC_FRINTI_S_FLOATDP1:
case ENC_FRINTI_D_FLOATDP1:
- case ENC_FRINTI_Z_P_Z_:
+ case ENC_FRINTI_Z_P_Z_M:
+ case ENC_FRINTI_Z_P_Z_Z:
return ARM64_FRINTI;
case ENC_FRINTM_ASIMDMISCFP16_R:
case ENC_FRINTM_ASIMDMISC_R:
case ENC_FRINTM_H_FLOATDP1:
case ENC_FRINTM_S_FLOATDP1:
case ENC_FRINTM_D_FLOATDP1:
- case ENC_FRINTM_Z_P_Z_:
+ case ENC_FRINTM_Z_P_Z_M:
+ case ENC_FRINTM_Z_P_Z_Z:
+ case ENC_FRINTM_MZ_Z_2:
+ case ENC_FRINTM_MZ_Z_4:
return ARM64_FRINTM;
case ENC_FRINTN_ASIMDMISCFP16_R:
case ENC_FRINTN_ASIMDMISC_R:
case ENC_FRINTN_H_FLOATDP1:
case ENC_FRINTN_S_FLOATDP1:
case ENC_FRINTN_D_FLOATDP1:
- case ENC_FRINTN_Z_P_Z_:
+ case ENC_FRINTN_Z_P_Z_M:
+ case ENC_FRINTN_Z_P_Z_Z:
+ case ENC_FRINTN_MZ_Z_2:
+ case ENC_FRINTN_MZ_Z_4:
return ARM64_FRINTN;
case ENC_FRINTP_ASIMDMISCFP16_R:
case ENC_FRINTP_ASIMDMISC_R:
case ENC_FRINTP_H_FLOATDP1:
case ENC_FRINTP_S_FLOATDP1:
case ENC_FRINTP_D_FLOATDP1:
- case ENC_FRINTP_Z_P_Z_:
+ case ENC_FRINTP_Z_P_Z_M:
+ case ENC_FRINTP_Z_P_Z_Z:
+ case ENC_FRINTP_MZ_Z_2:
+ case ENC_FRINTP_MZ_Z_4:
return ARM64_FRINTP;
case ENC_FRINTX_ASIMDMISCFP16_R:
case ENC_FRINTX_ASIMDMISC_R:
case ENC_FRINTX_H_FLOATDP1:
case ENC_FRINTX_S_FLOATDP1:
case ENC_FRINTX_D_FLOATDP1:
- case ENC_FRINTX_Z_P_Z_:
+ case ENC_FRINTX_Z_P_Z_M:
+ case ENC_FRINTX_Z_P_Z_Z:
return ARM64_FRINTX;
case ENC_FRINTZ_ASIMDMISCFP16_R:
case ENC_FRINTZ_ASIMDMISC_R:
case ENC_FRINTZ_H_FLOATDP1:
case ENC_FRINTZ_S_FLOATDP1:
case ENC_FRINTZ_D_FLOATDP1:
- case ENC_FRINTZ_Z_P_Z_:
+ case ENC_FRINTZ_Z_P_Z_M:
+ case ENC_FRINTZ_Z_P_Z_Z:
return ARM64_FRINTZ;
case ENC_FRSQRTE_ASISDMISCFP16_R:
case ENC_FRSQRTE_ASISDMISC_R:
@@ -1283,6 +2161,12 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FRSQRTS_ASIMDSAME_ONLY:
case ENC_FRSQRTS_Z_ZZ_:
return ARM64_FRSQRTS;
+ case ENC_FSCALE_ASIMDSAMEFP16_ONLY:
+ case ENC_FSCALE_ASIMDSAME_ONLY:
+ case ENC_FSCALE_MZ_ZZV_2X1:
+ case ENC_FSCALE_MZ_ZZV_4X1:
+ case ENC_FSCALE_MZ_ZZW_2X2:
+ case ENC_FSCALE_MZ_ZZW_4X4:
case ENC_FSCALE_Z_P_ZZ_:
return ARM64_FSCALE;
case ENC_FSQRT_ASIMDMISCFP16_R:
@@ -1290,7 +2174,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FSQRT_H_FLOATDP1:
case ENC_FSQRT_S_FLOATDP1:
case ENC_FSQRT_D_FLOATDP1:
- case ENC_FSQRT_Z_P_Z_:
+ case ENC_FSQRT_Z_P_Z_M:
+ case ENC_FSQRT_Z_P_Z_Z:
return ARM64_FSQRT;
case ENC_FSUB_ASIMDSAMEFP16_ONLY:
case ENC_FSUB_ASIMDSAME_ONLY:
@@ -1300,16 +2185,53 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_FSUB_Z_P_ZS_:
case ENC_FSUB_Z_P_ZZ_:
case ENC_FSUB_Z_ZZ_:
+ case ENC_FSUB_ZA_ZW_2X2:
+ case ENC_FSUB_ZA_ZW_2X2_16:
+ case ENC_FSUB_ZA_ZW_4X4:
+ case ENC_FSUB_ZA_ZW_4X4_16:
return ARM64_FSUB;
case ENC_FSUBR_Z_P_ZS_:
case ENC_FSUBR_Z_P_ZZ_:
return ARM64_FSUBR;
case ENC_FTMAD_Z_ZZI_:
return ARM64_FTMAD;
+ case ENC_FTMOPA_ZA16_Z8Z8ZI_B2X1:
+ case ENC_FTMOPA_ZA32_Z8Z8ZI_B2X1:
+ case ENC_FTMOPA_ZA32_ZZZI_H2X1:
+ case ENC_FTMOPA_ZA_ZZZI_H2X1:
+ case ENC_FTMOPA_ZA_ZZZI_S2X1:
+ return ARM64_FTMOPA;
case ENC_FTSMUL_Z_ZZ_:
return ARM64_FTSMUL;
case ENC_FTSSEL_Z_ZZ_:
return ARM64_FTSSEL;
+ case ENC_FVDOT_ZA_Z8Z8I_2XI:
+ case ENC_FVDOT_ZA_ZZI_2XI:
+ return ARM64_FVDOT;
+ case ENC_FVDOTB_ZA32_Z8Z8I_2XI:
+ return ARM64_FVDOTB;
+ case ENC_FVDOTT_ZA32_Z8Z8I_2XI:
+ return ARM64_FVDOTT;
+ case ENC_GCSB_HD_HINTS:
+ return ARM64_GCSB;
+ case ENC_GCSPOPCX_SYS_CR_SYSTEMINSTRS:
+ return ARM64_GCSPOPCX;
+ case ENC_GCSPOPM_SYSL_RC_SYSTEMINSTRS:
+ return ARM64_GCSPOPM;
+ case ENC_GCSPOPX_SYS_CR_SYSTEMINSTRS:
+ return ARM64_GCSPOPX;
+ case ENC_GCSPUSHM_SYS_CR_SYSTEMINSTRS:
+ return ARM64_GCSPUSHM;
+ case ENC_GCSPUSHX_SYS_CR_SYSTEMINSTRS:
+ return ARM64_GCSPUSHX;
+ case ENC_GCSSS1_SYS_CR_SYSTEMINSTRS:
+ return ARM64_GCSSS1;
+ case ENC_GCSSS2_SYSL_RC_SYSTEMINSTRS:
+ return ARM64_GCSSS2;
+ case ENC_GCSSTR_64_LDST_GCS:
+ return ARM64_GCSSTR;
+ case ENC_GCSSTTR_64_LDST_GCS:
+ return ARM64_GCSSTTR;
case ENC_GMI_64G_DP_2SRC:
return ARM64_GMI;
case ENC_HINT_HM_HINTS:
@@ -1359,6 +2281,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LASTB_R_P_Z_:
case ENC_LASTB_V_P_Z_:
return ARM64_LASTB;
+ case ENC_LASTP_R_P_P_:
+ return ARM64_LASTP;
case ENC_LD1_ASISDLSE_R1_1V:
case ENC_LD1_ASISDLSE_R2_2V:
case ENC_LD1_ASISDLSE_R3_3V:
@@ -1377,13 +2301,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD1_ASISDLSO_D1_1D:
case ENC_LD1_ASISDLSOP_B1_I1B:
case ENC_LD1_ASISDLSOP_BX1_R1B:
+ case ENC_LD1_ASISDLSOP_D1_I1D:
+ case ENC_LD1_ASISDLSOP_DX1_R1D:
case ENC_LD1_ASISDLSOP_H1_I1H:
case ENC_LD1_ASISDLSOP_HX1_R1H:
case ENC_LD1_ASISDLSOP_S1_I1S:
case ENC_LD1_ASISDLSOP_SX1_R1S:
- case ENC_LD1_ASISDLSOP_D1_I1D:
- case ENC_LD1_ASISDLSOP_DX1_R1D:
return ARM64_LD1;
+ case ENC_LD1B_MZ_P_BI_2:
+ case ENC_LD1B_MZ_P_BI_4:
+ case ENC_LD1B_MZ_P_BR_2:
+ case ENC_LD1B_MZ_P_BR_4:
+ case ENC_LD1B_MZX_P_BI_2X8:
+ case ENC_LD1B_MZX_P_BI_4X4:
+ case ENC_LD1B_MZX_P_BR_2X8:
+ case ENC_LD1B_MZX_P_BR_4X4:
case ENC_LD1B_Z_P_AI_S:
case ENC_LD1B_Z_P_AI_D:
case ENC_LD1B_Z_P_BI_U8:
@@ -1399,15 +2331,33 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD1B_Z_P_BZ_D_64_UNSCALED:
case ENC_LD1B_ZA_P_RRR_:
return ARM64_LD1B;
+ case ENC_LD1D_MZ_P_BI_2:
+ case ENC_LD1D_MZ_P_BI_4:
+ case ENC_LD1D_MZ_P_BR_2:
+ case ENC_LD1D_MZ_P_BR_4:
+ case ENC_LD1D_MZX_P_BI_2X8:
+ case ENC_LD1D_MZX_P_BI_4X4:
+ case ENC_LD1D_MZX_P_BR_2X8:
+ case ENC_LD1D_MZX_P_BR_4X4:
case ENC_LD1D_Z_P_AI_D:
case ENC_LD1D_Z_P_BI_U64:
+ case ENC_LD1D_Z_P_BI_U128:
case ENC_LD1D_Z_P_BR_U64:
+ case ENC_LD1D_Z_P_BR_U128:
case ENC_LD1D_Z_P_BZ_D_X32_SCALED:
case ENC_LD1D_Z_P_BZ_D_X32_UNSCALED:
case ENC_LD1D_Z_P_BZ_D_64_SCALED:
case ENC_LD1D_Z_P_BZ_D_64_UNSCALED:
case ENC_LD1D_ZA_P_RRR_:
return ARM64_LD1D;
+ case ENC_LD1H_MZ_P_BI_2:
+ case ENC_LD1H_MZ_P_BI_4:
+ case ENC_LD1H_MZ_P_BR_2:
+ case ENC_LD1H_MZ_P_BR_4:
+ case ENC_LD1H_MZX_P_BI_2X8:
+ case ENC_LD1H_MZX_P_BI_4X4:
+ case ENC_LD1H_MZX_P_BR_2X8:
+ case ENC_LD1H_MZX_P_BR_4X4:
case ENC_LD1H_Z_P_AI_S:
case ENC_LD1H_Z_P_AI_D:
case ENC_LD1H_Z_P_BI_U16:
@@ -1424,6 +2374,7 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD1H_Z_P_BZ_D_64_UNSCALED:
case ENC_LD1H_ZA_P_RRR_:
return ARM64_LD1H;
+ case ENC_LD1Q_Z_P_AR_D_64_UNSCALED:
case ENC_LD1Q_ZA_P_RRR_:
return ARM64_LD1Q;
case ENC_LD1R_ASISDLSO_R1:
@@ -1510,12 +2461,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD1SW_Z_P_BZ_D_64_SCALED:
case ENC_LD1SW_Z_P_BZ_D_64_UNSCALED:
return ARM64_LD1SW;
+ case ENC_LD1W_MZ_P_BI_2:
+ case ENC_LD1W_MZ_P_BI_4:
+ case ENC_LD1W_MZ_P_BR_2:
+ case ENC_LD1W_MZ_P_BR_4:
+ case ENC_LD1W_MZX_P_BI_2X8:
+ case ENC_LD1W_MZX_P_BI_4X4:
+ case ENC_LD1W_MZX_P_BR_2X8:
+ case ENC_LD1W_MZX_P_BR_4X4:
case ENC_LD1W_Z_P_AI_S:
case ENC_LD1W_Z_P_AI_D:
case ENC_LD1W_Z_P_BI_U32:
case ENC_LD1W_Z_P_BI_U64:
+ case ENC_LD1W_Z_P_BI_U128:
case ENC_LD1W_Z_P_BR_U32:
case ENC_LD1W_Z_P_BR_U64:
+ case ENC_LD1W_Z_P_BR_U128:
case ENC_LD1W_Z_P_BZ_S_X32_SCALED:
case ENC_LD1W_Z_P_BZ_D_X32_SCALED:
case ENC_LD1W_Z_P_BZ_D_X32_UNSCALED:
@@ -1549,6 +2510,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD2H_Z_P_BI_CONTIGUOUS:
case ENC_LD2H_Z_P_BR_CONTIGUOUS:
return ARM64_LD2H;
+ case ENC_LD2Q_Z_P_BI_CONTIGUOUS:
+ case ENC_LD2Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_LD2Q;
case ENC_LD2R_ASISDLSO_R2:
case ENC_LD2R_ASISDLSOP_R2_I:
case ENC_LD2R_ASISDLSOP_RX2_R:
@@ -1581,6 +2545,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD3H_Z_P_BI_CONTIGUOUS:
case ENC_LD3H_Z_P_BR_CONTIGUOUS:
return ARM64_LD3H;
+ case ENC_LD3Q_Z_P_BI_CONTIGUOUS:
+ case ENC_LD3Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_LD3Q;
case ENC_LD3R_ASISDLSO_R3:
case ENC_LD3R_ASISDLSOP_R3_I:
case ENC_LD3R_ASISDLSOP_RX3_R:
@@ -1613,6 +2580,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LD4H_Z_P_BI_CONTIGUOUS:
case ENC_LD4H_Z_P_BR_CONTIGUOUS:
return ARM64_LD4H;
+ case ENC_LD4Q_Z_P_BI_CONTIGUOUS:
+ case ENC_LD4Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_LD4Q;
case ENC_LD4R_ASISDLSO_R4:
case ENC_LD4R_ASISDLSOP_R4_I:
case ENC_LD4R_ASISDLSOP_RX4_R:
@@ -1650,6 +2620,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDADDLB;
case ENC_LDADDLH_32_MEMOP:
return ARM64_LDADDLH;
+ case ENC_LDAP1_ASISDLSO_D1:
+ return ARM64_LDAP1;
+ case ENC_LDAPR_32L_LDAPSTL_WRITEBACK:
+ case ENC_LDAPR_64L_LDAPSTL_WRITEBACK:
case ENC_LDAPR_32L_MEMOP:
case ENC_LDAPR_64L_MEMOP:
return ARM64_LDAPR;
@@ -1657,6 +2631,11 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDAPRB;
case ENC_LDAPRH_32L_MEMOP:
return ARM64_LDAPRH;
+ case ENC_LDAPUR_B_LDAPSTL_SIMD:
+ case ENC_LDAPUR_H_LDAPSTL_SIMD:
+ case ENC_LDAPUR_S_LDAPSTL_SIMD:
+ case ENC_LDAPUR_D_LDAPSTL_SIMD:
+ case ENC_LDAPUR_Q_LDAPSTL_SIMD:
case ENC_LDAPUR_32_LDAPSTL_UNSCALED:
case ENC_LDAPUR_64_LDAPSTL_UNSCALED:
return ARM64_LDAPUR;
@@ -1679,6 +2658,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDARB;
case ENC_LDARH_LR32_LDSTORD:
return ARM64_LDARH;
+ case ENC_LDATXR_LR32_LDSTEXCLR_UNPRIV:
+ case ENC_LDATXR_LR64_LDSTEXCLR_UNPRIV:
+ return ARM64_LDATXR;
case ENC_LDAXP_LP32_LDSTEXCLP:
case ENC_LDAXP_LP64_LDSTEXCLP:
return ARM64_LDAXP;
@@ -1689,6 +2671,46 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDAXRB;
case ENC_LDAXRH_LR32_LDSTEXCLR:
return ARM64_LDAXRH;
+ case ENC_LDBFADD_16:
+ return ARM64_LDBFADD;
+ case ENC_LDBFADDA_16:
+ return ARM64_LDBFADDA;
+ case ENC_LDBFADDAL_16:
+ return ARM64_LDBFADDAL;
+ case ENC_LDBFADDL_16:
+ return ARM64_LDBFADDL;
+ case ENC_LDBFMAX_16:
+ return ARM64_LDBFMAX;
+ case ENC_LDBFMAXA_16:
+ return ARM64_LDBFMAXA;
+ case ENC_LDBFMAXAL_16:
+ return ARM64_LDBFMAXAL;
+ case ENC_LDBFMAXL_16:
+ return ARM64_LDBFMAXL;
+ case ENC_LDBFMAXNM_16:
+ return ARM64_LDBFMAXNM;
+ case ENC_LDBFMAXNMA_16:
+ return ARM64_LDBFMAXNMA;
+ case ENC_LDBFMAXNMAL_16:
+ return ARM64_LDBFMAXNMAL;
+ case ENC_LDBFMAXNML_16:
+ return ARM64_LDBFMAXNML;
+ case ENC_LDBFMIN_16:
+ return ARM64_LDBFMIN;
+ case ENC_LDBFMINA_16:
+ return ARM64_LDBFMINA;
+ case ENC_LDBFMINAL_16:
+ return ARM64_LDBFMINAL;
+ case ENC_LDBFMINL_16:
+ return ARM64_LDBFMINL;
+ case ENC_LDBFMINNM_16:
+ return ARM64_LDBFMINNM;
+ case ENC_LDBFMINNMA_16:
+ return ARM64_LDBFMINNMA;
+ case ENC_LDBFMINNMAL_16:
+ return ARM64_LDBFMINNMAL;
+ case ENC_LDBFMINNML_16:
+ return ARM64_LDBFMINNML;
case ENC_LDCLR_32_MEMOP:
case ENC_LDCLR_64_MEMOP:
return ARM64_LDCLR;
@@ -1717,6 +2739,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDCLRLB;
case ENC_LDCLRLH_32_MEMOP:
return ARM64_LDCLRLH;
+ case ENC_LDCLRP_128_MEMOP_128:
+ return ARM64_LDCLRP;
+ case ENC_LDCLRPA_128_MEMOP_128:
+ return ARM64_LDCLRPA;
+ case ENC_LDCLRPAL_128_MEMOP_128:
+ return ARM64_LDCLRPAL;
+ case ENC_LDCLRPL_128_MEMOP_128:
+ return ARM64_LDCLRPL;
case ENC_LDEOR_32_MEMOP:
case ENC_LDEOR_64_MEMOP:
return ARM64_LDEOR;
@@ -1745,6 +2775,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDEORLB;
case ENC_LDEORLH_32_MEMOP:
return ARM64_LDEORLH;
+ case ENC_LDFADD_16:
+ case ENC_LDFADD_32:
+ case ENC_LDFADD_64:
+ return ARM64_LDFADD;
+ case ENC_LDFADDA_16:
+ case ENC_LDFADDA_32:
+ case ENC_LDFADDA_64:
+ return ARM64_LDFADDA;
+ case ENC_LDFADDAL_16:
+ case ENC_LDFADDAL_32:
+ case ENC_LDFADDAL_64:
+ return ARM64_LDFADDAL;
+ case ENC_LDFADDL_16:
+ case ENC_LDFADDL_32:
+ case ENC_LDFADDL_64:
+ return ARM64_LDFADDL;
case ENC_LDFF1B_Z_P_AI_S:
case ENC_LDFF1B_Z_P_AI_D:
case ENC_LDFF1B_Z_P_BR_U8:
@@ -1812,10 +2858,79 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LDFF1W_Z_P_BZ_D_64_SCALED:
case ENC_LDFF1W_Z_P_BZ_D_64_UNSCALED:
return ARM64_LDFF1W;
+ case ENC_LDFMAX_16:
+ case ENC_LDFMAX_32:
+ case ENC_LDFMAX_64:
+ return ARM64_LDFMAX;
+ case ENC_LDFMAXA_16:
+ case ENC_LDFMAXA_32:
+ case ENC_LDFMAXA_64:
+ return ARM64_LDFMAXA;
+ case ENC_LDFMAXAL_16:
+ case ENC_LDFMAXAL_32:
+ case ENC_LDFMAXAL_64:
+ return ARM64_LDFMAXAL;
+ case ENC_LDFMAXL_16:
+ case ENC_LDFMAXL_32:
+ case ENC_LDFMAXL_64:
+ return ARM64_LDFMAXL;
+ case ENC_LDFMAXNM_16:
+ case ENC_LDFMAXNM_32:
+ case ENC_LDFMAXNM_64:
+ return ARM64_LDFMAXNM;
+ case ENC_LDFMAXNMA_16:
+ case ENC_LDFMAXNMA_32:
+ case ENC_LDFMAXNMA_64:
+ return ARM64_LDFMAXNMA;
+ case ENC_LDFMAXNMAL_16:
+ case ENC_LDFMAXNMAL_32:
+ case ENC_LDFMAXNMAL_64:
+ return ARM64_LDFMAXNMAL;
+ case ENC_LDFMAXNML_16:
+ case ENC_LDFMAXNML_32:
+ case ENC_LDFMAXNML_64:
+ return ARM64_LDFMAXNML;
+ case ENC_LDFMIN_16:
+ case ENC_LDFMIN_32:
+ case ENC_LDFMIN_64:
+ return ARM64_LDFMIN;
+ case ENC_LDFMINA_16:
+ case ENC_LDFMINA_32:
+ case ENC_LDFMINA_64:
+ return ARM64_LDFMINA;
+ case ENC_LDFMINAL_16:
+ case ENC_LDFMINAL_32:
+ case ENC_LDFMINAL_64:
+ return ARM64_LDFMINAL;
+ case ENC_LDFMINL_16:
+ case ENC_LDFMINL_32:
+ case ENC_LDFMINL_64:
+ return ARM64_LDFMINL;
+ case ENC_LDFMINNM_16:
+ case ENC_LDFMINNM_32:
+ case ENC_LDFMINNM_64:
+ return ARM64_LDFMINNM;
+ case ENC_LDFMINNMA_16:
+ case ENC_LDFMINNMA_32:
+ case ENC_LDFMINNMA_64:
+ return ARM64_LDFMINNMA;
+ case ENC_LDFMINNMAL_16:
+ case ENC_LDFMINNMAL_32:
+ case ENC_LDFMINNMAL_64:
+ return ARM64_LDFMINNMAL;
+ case ENC_LDFMINNML_16:
+ case ENC_LDFMINNML_32:
+ case ENC_LDFMINNML_64:
+ return ARM64_LDFMINNML;
case ENC_LDG_64LOFFSET_LDSTTAGS:
return ARM64_LDG;
case ENC_LDGM_64BULK_LDSTTAGS:
return ARM64_LDGM;
+ case ENC_LDIAPP_32LE_LDIAPPSTILP:
+ case ENC_LDIAPP_32L_LDIAPPSTILP:
+ case ENC_LDIAPP_64LS_LDIAPPSTILP:
+ case ENC_LDIAPP_64L_LDIAPPSTILP:
+ return ARM64_LDIAPP;
case ENC_LDLAR_LR32_LDSTORD:
case ENC_LDLAR_LR64_LDSTORD:
return ARM64_LDLAR;
@@ -1852,15 +2967,39 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LDNP_32_LDSTNAPAIR_OFFS:
case ENC_LDNP_64_LDSTNAPAIR_OFFS:
return ARM64_LDNP;
+ case ENC_LDNT1B_MZ_P_BI_2:
+ case ENC_LDNT1B_MZ_P_BI_4:
+ case ENC_LDNT1B_MZ_P_BR_2:
+ case ENC_LDNT1B_MZ_P_BR_4:
+ case ENC_LDNT1B_MZX_P_BI_2X8:
+ case ENC_LDNT1B_MZX_P_BI_4X4:
+ case ENC_LDNT1B_MZX_P_BR_2X8:
+ case ENC_LDNT1B_MZX_P_BR_4X4:
case ENC_LDNT1B_Z_P_AR_S_X32_UNSCALED:
case ENC_LDNT1B_Z_P_AR_D_64_UNSCALED:
case ENC_LDNT1B_Z_P_BI_CONTIGUOUS:
case ENC_LDNT1B_Z_P_BR_CONTIGUOUS:
return ARM64_LDNT1B;
+ case ENC_LDNT1D_MZ_P_BI_2:
+ case ENC_LDNT1D_MZ_P_BI_4:
+ case ENC_LDNT1D_MZ_P_BR_2:
+ case ENC_LDNT1D_MZ_P_BR_4:
+ case ENC_LDNT1D_MZX_P_BI_2X8:
+ case ENC_LDNT1D_MZX_P_BI_4X4:
+ case ENC_LDNT1D_MZX_P_BR_2X8:
+ case ENC_LDNT1D_MZX_P_BR_4X4:
case ENC_LDNT1D_Z_P_AR_D_64_UNSCALED:
case ENC_LDNT1D_Z_P_BI_CONTIGUOUS:
case ENC_LDNT1D_Z_P_BR_CONTIGUOUS:
return ARM64_LDNT1D;
+ case ENC_LDNT1H_MZ_P_BI_2:
+ case ENC_LDNT1H_MZ_P_BI_4:
+ case ENC_LDNT1H_MZ_P_BR_2:
+ case ENC_LDNT1H_MZ_P_BR_4:
+ case ENC_LDNT1H_MZX_P_BI_2X8:
+ case ENC_LDNT1H_MZX_P_BI_4X4:
+ case ENC_LDNT1H_MZX_P_BR_2X8:
+ case ENC_LDNT1H_MZX_P_BR_4X4:
case ENC_LDNT1H_Z_P_AR_S_X32_UNSCALED:
case ENC_LDNT1H_Z_P_AR_D_64_UNSCALED:
case ENC_LDNT1H_Z_P_BI_CONTIGUOUS:
@@ -1874,6 +3013,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDNT1SH;
case ENC_LDNT1SW_Z_P_AR_D_64_UNSCALED:
return ARM64_LDNT1SW;
+ case ENC_LDNT1W_MZ_P_BI_2:
+ case ENC_LDNT1W_MZ_P_BI_4:
+ case ENC_LDNT1W_MZ_P_BR_2:
+ case ENC_LDNT1W_MZ_P_BR_4:
+ case ENC_LDNT1W_MZX_P_BI_2X8:
+ case ENC_LDNT1W_MZX_P_BI_4X4:
+ case ENC_LDNT1W_MZX_P_BR_2X8:
+ case ENC_LDNT1W_MZX_P_BR_4X4:
case ENC_LDNT1W_Z_P_AR_S_X32_UNSCALED:
case ENC_LDNT1W_Z_P_AR_D_64_UNSCALED:
case ENC_LDNT1W_Z_P_BI_CONTIGUOUS:
@@ -1936,6 +3083,7 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LDR_P_BI_:
case ENC_LDR_Z_BI_:
case ENC_LDR_ZA_RI_:
+ case ENC_LDR_ZT_BR_:
return ARM64_LDR;
case ENC_LDRAA_64_LDST_PAC:
case ENC_LDRAA_64W_LDST_PAC:
@@ -2008,6 +3156,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDSETLB;
case ENC_LDSETLH_32_MEMOP:
return ARM64_LDSETLH;
+ case ENC_LDSETP_128_MEMOP_128:
+ return ARM64_LDSETP;
+ case ENC_LDSETPA_128_MEMOP_128:
+ return ARM64_LDSETPA;
+ case ENC_LDSETPAL_128_MEMOP_128:
+ return ARM64_LDSETPAL;
+ case ENC_LDSETPL_128_MEMOP_128:
+ return ARM64_LDSETPL;
case ENC_LDSMAX_32_MEMOP:
case ENC_LDSMAX_64_MEMOP:
return ARM64_LDSMAX;
@@ -2064,6 +3220,40 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDSMINLB;
case ENC_LDSMINLH_32_MEMOP:
return ARM64_LDSMINLH;
+ case ENC_LDTADD_32_MEMOP_UNPRIV:
+ case ENC_LDTADD_64_MEMOP_UNPRIV:
+ return ARM64_LDTADD;
+ case ENC_LDTADDA_32_MEMOP_UNPRIV:
+ case ENC_LDTADDA_64_MEMOP_UNPRIV:
+ return ARM64_LDTADDA;
+ case ENC_LDTADDAL_32_MEMOP_UNPRIV:
+ case ENC_LDTADDAL_64_MEMOP_UNPRIV:
+ return ARM64_LDTADDAL;
+ case ENC_LDTADDL_32_MEMOP_UNPRIV:
+ case ENC_LDTADDL_64_MEMOP_UNPRIV:
+ return ARM64_LDTADDL;
+ case ENC_LDTCLR_32_MEMOP_UNPRIV:
+ case ENC_LDTCLR_64_MEMOP_UNPRIV:
+ return ARM64_LDTCLR;
+ case ENC_LDTCLRA_32_MEMOP_UNPRIV:
+ case ENC_LDTCLRA_64_MEMOP_UNPRIV:
+ return ARM64_LDTCLRA;
+ case ENC_LDTCLRAL_32_MEMOP_UNPRIV:
+ case ENC_LDTCLRAL_64_MEMOP_UNPRIV:
+ return ARM64_LDTCLRAL;
+ case ENC_LDTCLRL_32_MEMOP_UNPRIV:
+ case ENC_LDTCLRL_64_MEMOP_UNPRIV:
+ return ARM64_LDTCLRL;
+ case ENC_LDTNP_Q_LDSTNAPAIR_OFFS:
+ case ENC_LDTNP_64_LDSTNAPAIR_OFFS:
+ return ARM64_LDTNP;
+ case ENC_LDTP_Q_LDSTPAIR_POST:
+ case ENC_LDTP_Q_LDSTPAIR_PRE:
+ case ENC_LDTP_Q_LDSTPAIR_OFF:
+ case ENC_LDTP_64_LDSTPAIR_POST:
+ case ENC_LDTP_64_LDSTPAIR_PRE:
+ case ENC_LDTP_64_LDSTPAIR_OFF:
+ return ARM64_LDTP;
case ENC_LDTR_32_LDST_UNPRIV:
case ENC_LDTR_64_LDST_UNPRIV:
return ARM64_LDTR;
@@ -2079,6 +3269,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_LDTRSH;
case ENC_LDTRSW_64_LDST_UNPRIV:
return ARM64_LDTRSW;
+ case ENC_LDTSET_32_MEMOP_UNPRIV:
+ case ENC_LDTSET_64_MEMOP_UNPRIV:
+ return ARM64_LDTSET;
+ case ENC_LDTSETA_32_MEMOP_UNPRIV:
+ case ENC_LDTSETA_64_MEMOP_UNPRIV:
+ return ARM64_LDTSETA;
+ case ENC_LDTSETAL_32_MEMOP_UNPRIV:
+ case ENC_LDTSETAL_64_MEMOP_UNPRIV:
+ return ARM64_LDTSETAL;
+ case ENC_LDTSETL_32_MEMOP_UNPRIV:
+ case ENC_LDTSETL_64_MEMOP_UNPRIV:
+ return ARM64_LDTSETL;
+ case ENC_LDTXR_LR32_LDSTEXCLR_UNPRIV:
+ case ENC_LDTXR_LR64_LDSTEXCLR_UNPRIV:
+ return ARM64_LDTXR;
case ENC_LDUMAX_32_MEMOP:
case ENC_LDUMAX_64_MEMOP:
return ARM64_LDUMAX;
@@ -2195,11 +3400,38 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_LSRV_32_DP_2SRC:
case ENC_LSRV_64_DP_2SRC:
return ARM64_LSRV;
+ case ENC_LUTI2_ASIMDTBL_L5:
+ case ENC_LUTI2_ASIMDTBL_L6:
+ case ENC_LUTI2_MZ2_ZTZ_1:
+ case ENC_LUTI2_MZ2_ZTZ_8:
+ case ENC_LUTI2_MZ4_ZTZ_1:
+ case ENC_LUTI2_MZ4_ZTZ_4:
+ case ENC_LUTI2_Z_ZTZ_:
+ case ENC_LUTI2_Z_ZZ_8:
+ case ENC_LUTI2_Z_ZZ_16:
+ return ARM64_LUTI2;
+ case ENC_LUTI4_ASIMDTBL_L5:
+ case ENC_LUTI4_ASIMDTBL_L7:
+ case ENC_LUTI4_MZ2_ZTZ_1:
+ case ENC_LUTI4_MZ2_ZTZ_8:
+ case ENC_LUTI4_MZ4_ZTMZ2_1:
+ case ENC_LUTI4_MZ4_ZTMZ2_4:
+ case ENC_LUTI4_MZ4_ZTZ_1:
+ case ENC_LUTI4_MZ4_ZTZ_4:
+ case ENC_LUTI4_Z_ZTZ_:
+ case ENC_LUTI4_Z_ZZ_8:
+ case ENC_LUTI4_Z_ZZ_2X16:
+ case ENC_LUTI4_Z_ZZ_1X16:
+ return ARM64_LUTI4;
case ENC_MAD_Z_P_ZZZ_:
return ARM64_MAD;
case ENC_MADD_32A_DP_3SRC:
case ENC_MADD_64A_DP_3SRC:
return ARM64_MADD;
+ case ENC_MADDPT_64A_DP_3SRC:
+ return ARM64_MADDPT;
+ case ENC_MADPT_Z_ZZZ_:
+ return ARM64_MADPT;
case ENC_MATCH_P_P_ZZ_:
return ARM64_MATCH;
case ENC_MLA_ASIMDELEM_R:
@@ -2209,6 +3441,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_MLA_Z_ZZZI_S:
case ENC_MLA_Z_ZZZI_D:
return ARM64_MLA;
+ case ENC_MLAPT_Z_ZZZ_:
+ return ARM64_MLAPT;
case ENC_MLS_ASIMDELEM_R:
case ENC_MLS_ASIMDSAME_ONLY:
case ENC_MLS_Z_P_ZZZ_:
@@ -2235,42 +3469,98 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_MOV_ORR_64_LOG_SHIFT:
case ENC_MOV_UMOV_ASIMDINS_W_W:
case ENC_MOV_UMOV_ASIMDINS_X_X:
- case ENC_MOV_AND_P_P_PP_Z:
- case ENC_MOV_CPY_Z_O_I_:
- case ENC_MOV_CPY_Z_P_I_:
- case ENC_MOV_CPY_Z_P_R_:
- case ENC_MOV_CPY_Z_P_V_:
- case ENC_MOV_DUP_Z_I_:
- case ENC_MOV_DUP_Z_R_:
- case ENC_MOV_DUP_Z_ZI_:
- case ENC_MOV_DUP_Z_ZI_2:
- case ENC_MOV_DUPM_Z_I_:
- case ENC_MOV_MOVA_Z_P_RZA_B:
- case ENC_MOV_MOVA_Z_P_RZA_H:
- case ENC_MOV_MOVA_Z_P_RZA_W:
- case ENC_MOV_MOVA_Z_P_RZA_D:
- case ENC_MOV_MOVA_Z_P_RZA_Q:
- case ENC_MOV_MOVA_ZA_P_RZ_B:
- case ENC_MOV_MOVA_ZA_P_RZ_H:
- case ENC_MOV_MOVA_ZA_P_RZ_W:
- case ENC_MOV_MOVA_ZA_P_RZ_D:
- case ENC_MOV_MOVA_ZA_P_RZ_Q:
- case ENC_MOV_ORR_P_P_PP_Z:
- case ENC_MOV_ORR_Z_ZZ_:
- case ENC_MOV_SEL_P_P_PP_:
- case ENC_MOV_SEL_Z_P_ZZ_:
+ case ENC_MOVZ_P_P_P__AND_P_P_PP_Z:
+ case ENC_MOV_Z_O_I__CPY_Z_O_I_:
+ case ENC_MOV_Z_P_I__CPY_Z_P_I_:
+ case ENC_MOV_Z_P_R__CPY_Z_P_R_:
+ case ENC_MOV_Z_P_V__CPY_Z_P_V_:
+ case ENC_MOV_Z_I__DUP_Z_I_:
+ case ENC_MOV_Z_R__DUP_Z_R_:
+ case ENC_MOV_Z_V__DUP_Z_ZI_:
+ case ENC_MOV_Z_ZI__DUP_Z_ZI_:
+ case ENC_MOV_Z_M__DUPM_Z_I_:
+ case ENC_MOV_MZ2_ZA_B1_MOVA_MZ2_ZA_B1:
+ case ENC_MOV_MZ2_ZA_H1_MOVA_MZ2_ZA_H1:
+ case ENC_MOV_MZ2_ZA_W1_MOVA_MZ2_ZA_W1:
+ case ENC_MOV_MZ2_ZA_D1_MOVA_MZ2_ZA_D1:
+ case ENC_MOV_MZ4_ZA_B1_MOVA_MZ4_ZA_B1:
+ case ENC_MOV_MZ4_ZA_H1_MOVA_MZ4_ZA_H1:
+ case ENC_MOV_MZ4_ZA_W1_MOVA_MZ4_ZA_W1:
+ case ENC_MOV_MZ4_ZA_D1_MOVA_MZ4_ZA_D1:
+ case ENC_MOV_MZ_ZA2_1_MOVA_MZ_ZA2_1:
+ case ENC_MOV_MZ_ZA4_1_MOVA_MZ_ZA4_1:
+ case ENC_MOV_Z_P_RZA_B_MOVA_Z_P_RZA_B:
+ case ENC_MOV_Z_P_RZA_H_MOVA_Z_P_RZA_H:
+ case ENC_MOV_Z_P_RZA_W_MOVA_Z_P_RZA_W:
+ case ENC_MOV_Z_P_RZA_D_MOVA_Z_P_RZA_D:
+ case ENC_MOV_Z_P_RZA_Q_MOVA_Z_P_RZA_Q:
+ case ENC_MOV_ZA2_Z_B1_MOVA_ZA2_Z_B1:
+ case ENC_MOV_ZA2_Z_H1_MOVA_ZA2_Z_H1:
+ case ENC_MOV_ZA2_Z_W1_MOVA_ZA2_Z_W1:
+ case ENC_MOV_ZA2_Z_D1_MOVA_ZA2_Z_D1:
+ case ENC_MOV_ZA4_Z_B1_MOVA_ZA4_Z_B1:
+ case ENC_MOV_ZA4_Z_H1_MOVA_ZA4_Z_H1:
+ case ENC_MOV_ZA4_Z_W1_MOVA_ZA4_Z_W1:
+ case ENC_MOV_ZA4_Z_D1_MOVA_ZA4_Z_D1:
+ case ENC_MOV_ZA_MZ2_1_MOVA_ZA_MZ2_1:
+ case ENC_MOV_ZA_MZ4_1_MOVA_ZA_MZ4_1:
+ case ENC_MOV_ZA_P_RZ_B_MOVA_ZA_P_RZ_B:
+ case ENC_MOV_ZA_P_RZ_H_MOVA_ZA_P_RZ_H:
+ case ENC_MOV_ZA_P_RZ_W_MOVA_ZA_P_RZ_W:
+ case ENC_MOV_ZA_P_RZ_D_MOVA_ZA_P_RZ_D:
+ case ENC_MOV_ZA_P_RZ_Q_MOVA_ZA_P_RZ_Q:
+ case ENC_MOV_P_P__ORR_P_P_PP_Z:
+ case ENC_MOV_Z_Z__ORR_Z_ZZ_:
+ case ENC_MOVM_P_P_P__SEL_P_P_PP_:
+ case ENC_MOV_Z_P_Z__SEL_Z_P_ZZ_:
return ARM64_MOV;
+ case ENC_MOVA_MZ2_ZA_B1:
+ case ENC_MOVA_MZ2_ZA_H1:
+ case ENC_MOVA_MZ2_ZA_W1:
+ case ENC_MOVA_MZ2_ZA_D1:
+ case ENC_MOVA_MZ4_ZA_B1:
+ case ENC_MOVA_MZ4_ZA_H1:
+ case ENC_MOVA_MZ4_ZA_W1:
+ case ENC_MOVA_MZ4_ZA_D1:
+ case ENC_MOVA_MZ_ZA2_1:
+ case ENC_MOVA_MZ_ZA4_1:
case ENC_MOVA_Z_P_RZA_B:
case ENC_MOVA_Z_P_RZA_H:
case ENC_MOVA_Z_P_RZA_W:
case ENC_MOVA_Z_P_RZA_D:
case ENC_MOVA_Z_P_RZA_Q:
+ case ENC_MOVA_ZA2_Z_B1:
+ case ENC_MOVA_ZA2_Z_H1:
+ case ENC_MOVA_ZA2_Z_W1:
+ case ENC_MOVA_ZA2_Z_D1:
+ case ENC_MOVA_ZA4_Z_B1:
+ case ENC_MOVA_ZA4_Z_H1:
+ case ENC_MOVA_ZA4_Z_W1:
+ case ENC_MOVA_ZA4_Z_D1:
+ case ENC_MOVA_ZA_MZ2_1:
+ case ENC_MOVA_ZA_MZ4_1:
case ENC_MOVA_ZA_P_RZ_B:
case ENC_MOVA_ZA_P_RZ_H:
case ENC_MOVA_ZA_P_RZ_W:
case ENC_MOVA_ZA_P_RZ_D:
case ENC_MOVA_ZA_P_RZ_Q:
return ARM64_MOVA;
+ case ENC_MOVAZ_MZ2_ZA_B1:
+ case ENC_MOVAZ_MZ2_ZA_H1:
+ case ENC_MOVAZ_MZ2_ZA_W1:
+ case ENC_MOVAZ_MZ2_ZA_D1:
+ case ENC_MOVAZ_MZ4_ZA_B1:
+ case ENC_MOVAZ_MZ4_ZA_H1:
+ case ENC_MOVAZ_MZ4_ZA_W1:
+ case ENC_MOVAZ_MZ4_ZA_D1:
+ case ENC_MOVAZ_MZ_ZA2_1:
+ case ENC_MOVAZ_MZ_ZA4_1:
+ case ENC_MOVAZ_Z_RZA_B:
+ case ENC_MOVAZ_Z_RZA_H:
+ case ENC_MOVAZ_Z_RZA_W:
+ case ENC_MOVAZ_Z_RZA_D:
+ case ENC_MOVAZ_Z_RZA_Q:
+ return ARM64_MOVAZ;
case ENC_MOVI_ASIMDIMM_N_B:
case ENC_MOVI_ASIMDIMM_L_HL:
case ENC_MOVI_ASIMDIMM_L_SL:
@@ -2287,12 +3577,18 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_MOVPRFX_Z_P_Z_:
case ENC_MOVPRFX_Z_Z_:
return ARM64_MOVPRFX;
- case ENC_MOVS_ANDS_P_P_PP_Z:
- case ENC_MOVS_ORRS_P_P_PP_Z:
+ case ENC_MOVZS_P_P_P__ANDS_P_P_PP_Z:
+ case ENC_MOVS_P_P__ORRS_P_P_PP_Z:
return ARM64_MOVS;
+ case ENC_MOVT_R_ZT_:
+ case ENC_MOVT_ZT_R_:
+ case ENC_MOVT_ZT_Z_:
+ return ARM64_MOVT;
case ENC_MOVZ_32_MOVEWIDE:
case ENC_MOVZ_64_MOVEWIDE:
return ARM64_MOVZ;
+ case ENC_MRRS_RS_SYSTEMMOVEPR:
+ return ARM64_MRRS;
case ENC_MRS_RS_SYSTEMMOVE:
return ARM64_MRS;
case ENC_MSB_Z_P_ZZZ_:
@@ -2300,9 +3596,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_MSR_SI_PSTATE:
case ENC_MSR_SR_SYSTEMMOVE:
return ARM64_MSR;
+ case ENC_MSRR_SR_SYSTEMMOVEPR:
+ return ARM64_MSRR;
case ENC_MSUB_32A_DP_3SRC:
case ENC_MSUB_64A_DP_3SRC:
return ARM64_MSUB;
+ case ENC_MSUBPT_64A_DP_3SRC:
+ return ARM64_MSUBPT;
case ENC_MUL_MADD_32A_DP_3SRC:
case ENC_MUL_MADD_64A_DP_3SRC:
case ENC_MUL_ASIMDELEM_R:
@@ -2332,7 +3632,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_NEG_SUB_64_ADDSUB_SHIFT:
case ENC_NEG_ASISDMISC_R:
case ENC_NEG_ASIMDMISC_R:
- case ENC_NEG_Z_P_Z_:
+ case ENC_NEG_Z_P_Z_M:
+ case ENC_NEG_Z_P_Z_Z:
return ARM64_NEG;
case ENC_NEGS_SUBS_32_ADDSUB_SHIFT:
case ENC_NEGS_SUBS_64_ADDSUB_SHIFT:
@@ -2352,19 +3653,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_NORS_P_P_PP_Z:
return ARM64_NORS;
case ENC_NOT_ASIMDMISC_R:
- case ENC_NOT_EOR_P_P_PP_Z:
- case ENC_NOT_Z_P_Z_:
+ case ENC_NOT_P_P_P_Z_EOR_P_P_PP_Z:
+ case ENC_NOT_Z_P_Z_M:
+ case ENC_NOT_Z_P_Z_Z:
return ARM64_NOT;
- case ENC_NOTS_EORS_P_P_PP_Z:
+ case ENC_NOTS_P_P_P_Z_EORS_P_P_PP_Z:
return ARM64_NOTS;
case ENC_ORN_ASIMDSAME_ONLY:
case ENC_ORN_32_LOG_SHIFT:
case ENC_ORN_64_LOG_SHIFT:
- case ENC_ORN_ORR_Z_ZI_:
+ case ENC_ORN_Z_ZI__ORR_Z_ZI_:
case ENC_ORN_P_P_PP_Z:
return ARM64_ORN;
case ENC_ORNS_P_P_PP_Z:
return ARM64_ORNS;
+ case ENC_ORQV_Z_P_Z_:
+ return ARM64_ORQV;
case ENC_ORR_ASIMDIMM_L_HL:
case ENC_ORR_ASIMDIMM_L_SL:
case ENC_ORR_ASIMDSAME_ONLY:
@@ -2395,36 +3699,67 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_PACIA;
case ENC_PACIA1716_HI_HINTS:
return ARM64_PACIA1716;
+ case ENC_PACIA171615_64LR_DP_1SRC:
+ return ARM64_PACIA171615;
case ENC_PACIASP_HI_HINTS:
return ARM64_PACIASP;
+ case ENC_PACIASPPC_64LR_DP_1SRC:
+ return ARM64_PACIASPPC;
case ENC_PACIAZ_HI_HINTS:
return ARM64_PACIAZ;
case ENC_PACIB_64P_DP_1SRC:
return ARM64_PACIB;
case ENC_PACIB1716_HI_HINTS:
return ARM64_PACIB1716;
+ case ENC_PACIB171615_64LR_DP_1SRC:
+ return ARM64_PACIB171615;
case ENC_PACIBSP_HI_HINTS:
return ARM64_PACIBSP;
+ case ENC_PACIBSPPC_64LR_DP_1SRC:
+ return ARM64_PACIBSPPC;
case ENC_PACIBZ_HI_HINTS:
return ARM64_PACIBZ;
case ENC_PACIZA_64Z_DP_1SRC:
return ARM64_PACIZA;
case ENC_PACIZB_64Z_DP_1SRC:
return ARM64_PACIZB;
+ case ENC_PACM_HI_HINTS:
+ return ARM64_PACM;
+ case ENC_PACNBIASPPC_64LR_DP_1SRC:
+ return ARM64_PACNBIASPPC;
+ case ENC_PACNBIBSPPC_64LR_DP_1SRC:
+ return ARM64_PACNBIBSPPC;
+ case ENC_PEXT_PN_RR_:
+ case ENC_PEXT_PP_RR_:
+ return ARM64_PEXT;
case ENC_PFALSE_P_:
return ARM64_PFALSE;
case ENC_PFIRST_P_P_P_:
return ARM64_PFIRST;
+ case ENC_PMLAL_MZ_ZZZW_1X2:
+ return ARM64_PMLAL;
+ case ENC_PMOV_P_ZI_B:
+ case ENC_PMOV_P_ZI_D:
+ case ENC_PMOV_P_ZI_H:
+ case ENC_PMOV_P_ZI_S:
+ case ENC_PMOV_Z_PI_B:
+ case ENC_PMOV_Z_PI_D:
+ case ENC_PMOV_Z_PI_H:
+ case ENC_PMOV_Z_PI_S:
+ return ARM64_PMOV;
case ENC_PMUL_ASIMDSAME_ONLY:
case ENC_PMUL_Z_ZZ_:
return ARM64_PMUL;
case ENC_PMULL_ASIMDDIFF_L:
+ case ENC_PMULL_MZ_ZZW_1X2:
return ARM64_PMULL;
//case ENC_PMULL_ASIMDDIFF_L:
// return ARM64_PMULL2;
case ENC_PMULLB_Z_ZZ_:
+ case ENC_PMULLB_Z_ZZ_Q:
return ARM64_PMULLB;
case ENC_PMULLT_Z_ZZ_:
+ case ENC_PMULLT_Z_ZZ_Q:
return ARM64_PMULLT;
case ENC_PNEXT_P_P_P_:
return ARM64_PNEXT;
@@ -2468,11 +3803,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_PRFW;
case ENC_PSB_HC_HINTS:
return ARM64_PSB;
+ case ENC_PSEL_P_PPI_:
+ return ARM64_PSEL;
case ENC_PSSBB_DSB_BO_BARRIERS:
return ARM64_PSSBB;
- case ENC_PTEST_P_P_:
+ case ENC_PTEST__P_P_:
return ARM64_PTEST;
case ENC_PTRUE_P_S_:
+ case ENC_PTRUE_PN_I_:
return ARM64_PTRUE;
case ENC_PTRUES_P_S_:
return ARM64_PTRUES;
@@ -2494,21 +3832,160 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_RBIT_ASIMDMISC_R:
case ENC_RBIT_32_DP_1SRC:
case ENC_RBIT_64_DP_1SRC:
- case ENC_RBIT_Z_P_Z_:
+ case ENC_RBIT_Z_P_Z_M:
+ case ENC_RBIT_Z_P_Z_Z:
return ARM64_RBIT;
+ case ENC_RCWCAS_C64_RCWCOMSWAP:
+ return ARM64_RCWCAS;
+ case ENC_RCWCASA_C64_RCWCOMSWAP:
+ return ARM64_RCWCASA;
+ case ENC_RCWCASAL_C64_RCWCOMSWAP:
+ return ARM64_RCWCASAL;
+ case ENC_RCWCASL_C64_RCWCOMSWAP:
+ return ARM64_RCWCASL;
+ case ENC_RCWCASP_C64_RCWCOMSWAPPR:
+ return ARM64_RCWCASP;
+ case ENC_RCWCASPA_C64_RCWCOMSWAPPR:
+ return ARM64_RCWCASPA;
+ case ENC_RCWCASPAL_C64_RCWCOMSWAPPR:
+ return ARM64_RCWCASPAL;
+ case ENC_RCWCASPL_C64_RCWCOMSWAPPR:
+ return ARM64_RCWCASPL;
+ case ENC_RCWCLR_64_MEMOP:
+ return ARM64_RCWCLR;
+ case ENC_RCWCLRA_64_MEMOP:
+ return ARM64_RCWCLRA;
+ case ENC_RCWCLRAL_64_MEMOP:
+ return ARM64_RCWCLRAL;
+ case ENC_RCWCLRL_64_MEMOP:
+ return ARM64_RCWCLRL;
+ case ENC_RCWCLRP_128_MEMOP_128:
+ return ARM64_RCWCLRP;
+ case ENC_RCWCLRPA_128_MEMOP_128:
+ return ARM64_RCWCLRPA;
+ case ENC_RCWCLRPAL_128_MEMOP_128:
+ return ARM64_RCWCLRPAL;
+ case ENC_RCWCLRPL_128_MEMOP_128:
+ return ARM64_RCWCLRPL;
+ case ENC_RCWSCAS_C64_RCWCOMSWAP:
+ return ARM64_RCWSCAS;
+ case ENC_RCWSCASA_C64_RCWCOMSWAP:
+ return ARM64_RCWSCASA;
+ case ENC_RCWSCASAL_C64_RCWCOMSWAP:
+ return ARM64_RCWSCASAL;
+ case ENC_RCWSCASL_C64_RCWCOMSWAP:
+ return ARM64_RCWSCASL;
+ case ENC_RCWSCASP_C64_RCWCOMSWAPPR:
+ return ARM64_RCWSCASP;
+ case ENC_RCWSCASPA_C64_RCWCOMSWAPPR:
+ return ARM64_RCWSCASPA;
+ case ENC_RCWSCASPAL_C64_RCWCOMSWAPPR:
+ return ARM64_RCWSCASPAL;
+ case ENC_RCWSCASPL_C64_RCWCOMSWAPPR:
+ return ARM64_RCWSCASPL;
+ case ENC_RCWSCLR_64_MEMOP:
+ return ARM64_RCWSCLR;
+ case ENC_RCWSCLRA_64_MEMOP:
+ return ARM64_RCWSCLRA;
+ case ENC_RCWSCLRAL_64_MEMOP:
+ return ARM64_RCWSCLRAL;
+ case ENC_RCWSCLRL_64_MEMOP:
+ return ARM64_RCWSCLRL;
+ case ENC_RCWSCLRP_128_MEMOP_128:
+ return ARM64_RCWSCLRP;
+ case ENC_RCWSCLRPA_128_MEMOP_128:
+ return ARM64_RCWSCLRPA;
+ case ENC_RCWSCLRPAL_128_MEMOP_128:
+ return ARM64_RCWSCLRPAL;
+ case ENC_RCWSCLRPL_128_MEMOP_128:
+ return ARM64_RCWSCLRPL;
+ case ENC_RCWSET_64_MEMOP:
+ return ARM64_RCWSET;
+ case ENC_RCWSETA_64_MEMOP:
+ return ARM64_RCWSETA;
+ case ENC_RCWSETAL_64_MEMOP:
+ return ARM64_RCWSETAL;
+ case ENC_RCWSETL_64_MEMOP:
+ return ARM64_RCWSETL;
+ case ENC_RCWSETP_128_MEMOP_128:
+ return ARM64_RCWSETP;
+ case ENC_RCWSETPA_128_MEMOP_128:
+ return ARM64_RCWSETPA;
+ case ENC_RCWSETPAL_128_MEMOP_128:
+ return ARM64_RCWSETPAL;
+ case ENC_RCWSETPL_128_MEMOP_128:
+ return ARM64_RCWSETPL;
+ case ENC_RCWSSET_64_MEMOP:
+ return ARM64_RCWSSET;
+ case ENC_RCWSSETA_64_MEMOP:
+ return ARM64_RCWSSETA;
+ case ENC_RCWSSETAL_64_MEMOP:
+ return ARM64_RCWSSETAL;
+ case ENC_RCWSSETL_64_MEMOP:
+ return ARM64_RCWSSETL;
+ case ENC_RCWSSETP_128_MEMOP_128:
+ return ARM64_RCWSSETP;
+ case ENC_RCWSSETPA_128_MEMOP_128:
+ return ARM64_RCWSSETPA;
+ case ENC_RCWSSETPAL_128_MEMOP_128:
+ return ARM64_RCWSSETPAL;
+ case ENC_RCWSSETPL_128_MEMOP_128:
+ return ARM64_RCWSSETPL;
+ case ENC_RCWSSWP_64_MEMOP:
+ return ARM64_RCWSSWP;
+ case ENC_RCWSSWPA_64_MEMOP:
+ return ARM64_RCWSSWPA;
+ case ENC_RCWSSWPAL_64_MEMOP:
+ return ARM64_RCWSSWPAL;
+ case ENC_RCWSSWPL_64_MEMOP:
+ return ARM64_RCWSSWPL;
+ case ENC_RCWSSWPP_128_MEMOP_128:
+ return ARM64_RCWSSWPP;
+ case ENC_RCWSSWPPA_128_MEMOP_128:
+ return ARM64_RCWSSWPPA;
+ case ENC_RCWSSWPPAL_128_MEMOP_128:
+ return ARM64_RCWSSWPPAL;
+ case ENC_RCWSSWPPL_128_MEMOP_128:
+ return ARM64_RCWSSWPPL;
+ case ENC_RCWSWP_64_MEMOP:
+ return ARM64_RCWSWP;
+ case ENC_RCWSWPA_64_MEMOP:
+ return ARM64_RCWSWPA;
+ case ENC_RCWSWPAL_64_MEMOP:
+ return ARM64_RCWSWPAL;
+ case ENC_RCWSWPL_64_MEMOP:
+ return ARM64_RCWSWPL;
+ case ENC_RCWSWPP_128_MEMOP_128:
+ return ARM64_RCWSWPP;
+ case ENC_RCWSWPPA_128_MEMOP_128:
+ return ARM64_RCWSWPPA;
+ case ENC_RCWSWPPAL_128_MEMOP_128:
+ return ARM64_RCWSWPPAL;
+ case ENC_RCWSWPPL_128_MEMOP_128:
+ return ARM64_RCWSWPPL;
case ENC_RDFFR_P_F_:
case ENC_RDFFR_P_P_F_:
return ARM64_RDFFR;
case ENC_RDFFRS_P_P_F_:
return ARM64_RDFFRS;
+ case ENC_RDSVL_R_I_:
+ return ARM64_RDSVL;
case ENC_RDVL_R_I_:
return ARM64_RDVL;
case ENC_RET_64R_BRANCH_REG:
return ARM64_RET;
case ENC_RETAA_64E_BRANCH_REG:
return ARM64_RETAA;
+ case ENC_RETAASPPC_ONLY_MISCBRANCH:
+ return ARM64_RETAASPPC;
+ case ENC_RETAASPPCR_64M_BRANCH_REG:
+ return ARM64_RETAASPPCR;
case ENC_RETAB_64E_BRANCH_REG:
return ARM64_RETAB;
+ case ENC_RETABSPPC_ONLY_MISCBRANCH:
+ return ARM64_RETABSPPC;
+ case ENC_RETABSPPCR_64M_BRANCH_REG:
+ return ARM64_RETABSPPCR;
case ENC_REV_32_DP_1SRC:
case ENC_REV_64_DP_1SRC:
case ENC_REV_P_P_:
@@ -2524,13 +4001,17 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_REV64_REV_64_DP_1SRC:
case ENC_REV64_ASIMDMISC_R:
return ARM64_REV64;
- case ENC_REVB_Z_Z_:
+ case ENC_REVB_Z_Z_M:
+ case ENC_REVB_Z_Z_Z:
return ARM64_REVB;
- case ENC_REVD_Z_P_Z_:
+ case ENC_REVD_Z_P_Z_M:
+ case ENC_REVD_Z_P_Z_Z:
return ARM64_REVD;
- case ENC_REVH_Z_Z_:
+ case ENC_REVH_Z_Z_M:
+ case ENC_REVH_Z_Z_Z:
return ARM64_REVH;
- case ENC_REVW_Z_Z_:
+ case ENC_REVW_Z_Z_M:
+ case ENC_REVW_Z_Z_Z:
return ARM64_REVW;
case ENC_RMIF_ONLY_RMIF:
return ARM64_RMIF;
@@ -2542,6 +4023,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_RORV_32_DP_2SRC:
case ENC_RORV_64_DP_2SRC:
return ARM64_RORV;
+ case ENC_RPRFM_R_LDST_REGOFF:
+ return ARM64_RPRFM;
case ENC_RSHRN_ASIMDSHF_N:
return ARM64_RSHRN;
//case ENC_RSHRN_ASIMDSHF_N:
@@ -2628,6 +4111,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SBFX_SBFM_32M_BITFIELD:
case ENC_SBFX_SBFM_64M_BITFIELD:
return ARM64_SBFX;
+ case ENC_SCLAMP_MZ_ZZ_2:
+ case ENC_SCLAMP_MZ_ZZ_4:
case ENC_SCLAMP_Z_ZZ_:
return ARM64_SCLAMP;
case ENC_SCVTF_ASISDSHF_C:
@@ -2637,10 +4122,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SCVTF_ASIMDMISCFP16_R:
case ENC_SCVTF_ASIMDMISC_R:
case ENC_SCVTF_H32_FLOAT2FIX:
- case ENC_SCVTF_S32_FLOAT2FIX:
- case ENC_SCVTF_D32_FLOAT2FIX:
case ENC_SCVTF_H64_FLOAT2FIX:
+ case ENC_SCVTF_S32_FLOAT2FIX:
case ENC_SCVTF_S64_FLOAT2FIX:
+ case ENC_SCVTF_D32_FLOAT2FIX:
case ENC_SCVTF_D64_FLOAT2FIX:
case ENC_SCVTF_H32_FLOAT2INT:
case ENC_SCVTF_S32_FLOAT2INT:
@@ -2648,13 +4133,26 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SCVTF_H64_FLOAT2INT:
case ENC_SCVTF_S64_FLOAT2INT:
case ENC_SCVTF_D64_FLOAT2INT:
+ case ENC_SCVTF_SISD_32H:
+ case ENC_SCVTF_SISD_32D:
+ case ENC_SCVTF_SISD_64H:
+ case ENC_SCVTF_SISD_64S:
+ case ENC_SCVTF_MZ_Z_2:
+ case ENC_SCVTF_MZ_Z_4:
case ENC_SCVTF_Z_P_Z_H2FP16:
+ case ENC_SCVTF_Z_P_Z_H2FP16Z:
case ENC_SCVTF_Z_P_Z_W2FP16:
+ case ENC_SCVTF_Z_P_Z_W2FP16Z:
case ENC_SCVTF_Z_P_Z_W2S:
+ case ENC_SCVTF_Z_P_Z_W2SZ:
case ENC_SCVTF_Z_P_Z_W2D:
+ case ENC_SCVTF_Z_P_Z_W2DZ:
case ENC_SCVTF_Z_P_Z_X2FP16:
+ case ENC_SCVTF_Z_P_Z_X2FP16Z:
case ENC_SCVTF_Z_P_Z_X2S:
+ case ENC_SCVTF_Z_P_Z_X2SZ:
case ENC_SCVTF_Z_P_Z_X2D:
+ case ENC_SCVTF_Z_P_Z_X2DZ:
return ARM64_SCVTF;
case ENC_SDIV_32_DP_2SRC:
case ENC_SDIV_64_DP_2SRC:
@@ -2664,19 +4162,85 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SDIVR;
case ENC_SDOT_ASIMDELEM_D:
case ENC_SDOT_ASIMDSAME2_D:
+ case ENC_SDOT_Z32_ZZZ_:
+ case ENC_SDOT_Z32_ZZZI_:
case ENC_SDOT_Z_ZZZ_:
case ENC_SDOT_Z_ZZZI_S:
case ENC_SDOT_Z_ZZZI_D:
+ case ENC_SDOT_ZA32_ZZI_2XI:
+ case ENC_SDOT_ZA32_ZZI_4XI:
+ case ENC_SDOT_ZA32_ZZV_2X1:
+ case ENC_SDOT_ZA32_ZZV_4X1:
+ case ENC_SDOT_ZA32_ZZW_2X2:
+ case ENC_SDOT_ZA32_ZZW_4X4:
+ case ENC_SDOT_ZA_ZZI_S2XI:
+ case ENC_SDOT_ZA_ZZI_D2XI:
+ case ENC_SDOT_ZA_ZZI_S4XI:
+ case ENC_SDOT_ZA_ZZI_D4XI:
+ case ENC_SDOT_ZA_ZZV_2X1:
+ case ENC_SDOT_ZA_ZZV_4X1:
+ case ENC_SDOT_ZA_ZZW_2X2:
+ case ENC_SDOT_ZA_ZZW_4X4:
return ARM64_SDOT;
+ case ENC_SEL_MZ_P_ZZ_2:
+ case ENC_SEL_MZ_P_ZZ_4:
case ENC_SEL_P_P_PP_:
case ENC_SEL_Z_P_ZZ_:
return ARM64_SEL;
+ case ENC_SETE_SET_MEMCMS:
+ return ARM64_SETE;
+ case ENC_SETEN_SET_MEMCMS:
+ return ARM64_SETEN;
+ case ENC_SETET_SET_MEMCMS:
+ return ARM64_SETET;
+ case ENC_SETETN_SET_MEMCMS:
+ return ARM64_SETETN;
case ENC_SETF16_ONLY_SETF:
return ARM64_SETF16;
case ENC_SETF8_ONLY_SETF:
return ARM64_SETF8;
case ENC_SETFFR_F_:
return ARM64_SETFFR;
+ case ENC_SETGE_SET_MEMCMS:
+ return ARM64_SETGE;
+ case ENC_SETGEN_SET_MEMCMS:
+ return ARM64_SETGEN;
+ case ENC_SETGET_SET_MEMCMS:
+ return ARM64_SETGET;
+ case ENC_SETGETN_SET_MEMCMS:
+ return ARM64_SETGETN;
+ case ENC_SETGM_SET_MEMCMS:
+ return ARM64_SETGM;
+ case ENC_SETGMN_SET_MEMCMS:
+ return ARM64_SETGMN;
+ case ENC_SETGMT_SET_MEMCMS:
+ return ARM64_SETGMT;
+ case ENC_SETGMTN_SET_MEMCMS:
+ return ARM64_SETGMTN;
+ case ENC_SETGP_SET_MEMCMS:
+ return ARM64_SETGP;
+ case ENC_SETGPN_SET_MEMCMS:
+ return ARM64_SETGPN;
+ case ENC_SETGPT_SET_MEMCMS:
+ return ARM64_SETGPT;
+ case ENC_SETGPTN_SET_MEMCMS:
+ return ARM64_SETGPTN;
+ case ENC_SETM_SET_MEMCMS:
+ return ARM64_SETM;
+ case ENC_SETMN_SET_MEMCMS:
+ return ARM64_SETMN;
+ case ENC_SETMT_SET_MEMCMS:
+ return ARM64_SETMT;
+ case ENC_SETMTN_SET_MEMCMS:
+ return ARM64_SETMTN;
+ case ENC_SETP_SET_MEMCMS:
+ return ARM64_SETP;
+ case ENC_SETPN_SET_MEMCMS:
+ return ARM64_SETPN;
+ case ENC_SETPT_SET_MEMCMS:
+ return ARM64_SETPT;
+ case ENC_SETPTN_SET_MEMCMS:
+ return ARM64_SETPTN;
case ENC_SEV_HI_HINTS:
return ARM64_SEV;
case ENC_SEVL_HI_HINTS:
@@ -2759,29 +4323,57 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SMADDL_64WA_DP_3SRC:
return ARM64_SMADDL;
case ENC_SMAX_ASIMDSAME_ONLY:
+ case ENC_SMAX_32_MINMAX_IMM:
+ case ENC_SMAX_64_MINMAX_IMM:
+ case ENC_SMAX_32_DP_2SRC:
+ case ENC_SMAX_64_DP_2SRC:
+ case ENC_SMAX_MZ_ZZV_2X1:
+ case ENC_SMAX_MZ_ZZV_4X1:
+ case ENC_SMAX_MZ_ZZW_2X2:
+ case ENC_SMAX_MZ_ZZW_4X4:
case ENC_SMAX_Z_P_ZZ_:
case ENC_SMAX_Z_ZI_:
return ARM64_SMAX;
case ENC_SMAXP_ASIMDSAME_ONLY:
case ENC_SMAXP_Z_P_ZZ_:
return ARM64_SMAXP;
+ case ENC_SMAXQV_Z_P_Z_:
+ return ARM64_SMAXQV;
case ENC_SMAXV_ASIMDALL_ONLY:
case ENC_SMAXV_R_P_Z_:
return ARM64_SMAXV;
case ENC_SMC_EX_EXCEPTION:
return ARM64_SMC;
case ENC_SMIN_ASIMDSAME_ONLY:
+ case ENC_SMIN_32_MINMAX_IMM:
+ case ENC_SMIN_64_MINMAX_IMM:
+ case ENC_SMIN_32_DP_2SRC:
+ case ENC_SMIN_64_DP_2SRC:
+ case ENC_SMIN_MZ_ZZV_2X1:
+ case ENC_SMIN_MZ_ZZV_4X1:
+ case ENC_SMIN_MZ_ZZW_2X2:
+ case ENC_SMIN_MZ_ZZW_4X4:
case ENC_SMIN_Z_P_ZZ_:
case ENC_SMIN_Z_ZI_:
return ARM64_SMIN;
case ENC_SMINP_ASIMDSAME_ONLY:
case ENC_SMINP_Z_P_ZZ_:
return ARM64_SMINP;
+ case ENC_SMINQV_Z_P_Z_:
+ return ARM64_SMINQV;
case ENC_SMINV_ASIMDALL_ONLY:
case ENC_SMINV_R_P_Z_:
return ARM64_SMINV;
case ENC_SMLAL_ASIMDELEM_L:
case ENC_SMLAL_ASIMDDIFF_L:
+ case ENC_SMLAL_ZA_ZZI_1:
+ case ENC_SMLAL_ZA_ZZI_2XI:
+ case ENC_SMLAL_ZA_ZZI_4XI:
+ case ENC_SMLAL_ZA_ZZV_1:
+ case ENC_SMLAL_ZA_ZZV_2X1:
+ case ENC_SMLAL_ZA_ZZV_4X1:
+ case ENC_SMLAL_ZA_ZZW_2X2:
+ case ENC_SMLAL_ZA_ZZW_4X4:
return ARM64_SMLAL;
//case ENC_SMLAL_ASIMDELEM_L:
//case ENC_SMLAL_ASIMDDIFF_L:
@@ -2790,12 +4382,32 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SMLALB_Z_ZZZI_S:
case ENC_SMLALB_Z_ZZZI_D:
return ARM64_SMLALB;
+ case ENC_SMLALL_ZA_ZZI_S:
+ case ENC_SMLALL_ZA_ZZI_D:
+ case ENC_SMLALL_ZA_ZZI_S2XI:
+ case ENC_SMLALL_ZA_ZZI_D2XI:
+ case ENC_SMLALL_ZA_ZZI_S4XI:
+ case ENC_SMLALL_ZA_ZZI_D4XI:
+ case ENC_SMLALL_ZA_ZZV_1:
+ case ENC_SMLALL_ZA_ZZV_2X1:
+ case ENC_SMLALL_ZA_ZZV_4X1:
+ case ENC_SMLALL_ZA_ZZW_2X2:
+ case ENC_SMLALL_ZA_ZZW_4X4:
+ return ARM64_SMLALL;
case ENC_SMLALT_Z_ZZZ_:
case ENC_SMLALT_Z_ZZZI_S:
case ENC_SMLALT_Z_ZZZI_D:
return ARM64_SMLALT;
case ENC_SMLSL_ASIMDELEM_L:
case ENC_SMLSL_ASIMDDIFF_L:
+ case ENC_SMLSL_ZA_ZZI_1:
+ case ENC_SMLSL_ZA_ZZI_2XI:
+ case ENC_SMLSL_ZA_ZZI_4XI:
+ case ENC_SMLSL_ZA_ZZV_1:
+ case ENC_SMLSL_ZA_ZZV_2X1:
+ case ENC_SMLSL_ZA_ZZV_4X1:
+ case ENC_SMLSL_ZA_ZZW_2X2:
+ case ENC_SMLSL_ZA_ZZW_4X4:
return ARM64_SMLSL;
//case ENC_SMLSL_ASIMDELEM_L:
//case ENC_SMLSL_ASIMDDIFF_L:
@@ -2804,6 +4416,18 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SMLSLB_Z_ZZZI_S:
case ENC_SMLSLB_Z_ZZZI_D:
return ARM64_SMLSLB;
+ case ENC_SMLSLL_ZA_ZZI_S:
+ case ENC_SMLSLL_ZA_ZZI_D:
+ case ENC_SMLSLL_ZA_ZZI_S2XI:
+ case ENC_SMLSLL_ZA_ZZI_D2XI:
+ case ENC_SMLSLL_ZA_ZZI_S4XI:
+ case ENC_SMLSLL_ZA_ZZI_D4XI:
+ case ENC_SMLSLL_ZA_ZZV_1:
+ case ENC_SMLSLL_ZA_ZZV_2X1:
+ case ENC_SMLSLL_ZA_ZZV_4X1:
+ case ENC_SMLSLL_ZA_ZZW_2X2:
+ case ENC_SMLSLL_ZA_ZZW_4X4:
+ return ARM64_SMLSLL;
case ENC_SMLSLT_Z_ZZZ_:
case ENC_SMLSLT_Z_ZZZI_S:
case ENC_SMLSLT_Z_ZZZI_D:
@@ -2813,9 +4437,37 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SMMLA;
case ENC_SMNEGL_SMSUBL_64WA_DP_3SRC:
return ARM64_SMNEGL;
+ case ENC_SMOP4A_ZA32_ZZ_H1X2:
+ case ENC_SMOP4A_ZA32_ZZ_H1X1:
+ case ENC_SMOP4A_ZA32_ZZ_H2X1:
+ case ENC_SMOP4A_ZA32_ZZ_H2X2:
+ case ENC_SMOP4A_ZA_ZZ_B1X2:
+ case ENC_SMOP4A_ZA_ZZ_B1X1:
+ case ENC_SMOP4A_ZA_ZZ_B2X1:
+ case ENC_SMOP4A_ZA_ZZ_B2X2:
+ case ENC_SMOP4A_ZA_ZZ_H1X2:
+ case ENC_SMOP4A_ZA_ZZ_H1X1:
+ case ENC_SMOP4A_ZA_ZZ_H2X1:
+ case ENC_SMOP4A_ZA_ZZ_H2X2:
+ return ARM64_SMOP4A;
+ case ENC_SMOP4S_ZA32_ZZ_H1X2:
+ case ENC_SMOP4S_ZA32_ZZ_H1X1:
+ case ENC_SMOP4S_ZA32_ZZ_H2X1:
+ case ENC_SMOP4S_ZA32_ZZ_H2X2:
+ case ENC_SMOP4S_ZA_ZZ_B1X2:
+ case ENC_SMOP4S_ZA_ZZ_B1X1:
+ case ENC_SMOP4S_ZA_ZZ_B2X1:
+ case ENC_SMOP4S_ZA_ZZ_B2X2:
+ case ENC_SMOP4S_ZA_ZZ_H1X2:
+ case ENC_SMOP4S_ZA_ZZ_H1X1:
+ case ENC_SMOP4S_ZA_ZZ_H2X1:
+ case ENC_SMOP4S_ZA_ZZ_H2X2:
+ return ARM64_SMOP4S;
+ case ENC_SMOPA_ZA32_PP_ZZ_16:
case ENC_SMOPA_ZA_PP_ZZ_32:
case ENC_SMOPA_ZA_PP_ZZ_64:
return ARM64_SMOPA;
+ case ENC_SMOPS_ZA32_PP_ZZ_16:
case ENC_SMOPS_ZA_PP_ZZ_32:
case ENC_SMOPS_ZA_PP_ZZ_64:
return ARM64_SMOPS;
@@ -2852,7 +4504,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SPLICE;
case ENC_SQABS_ASISDMISC_R:
case ENC_SQABS_ASIMDMISC_R:
- case ENC_SQABS_Z_P_Z_:
+ case ENC_SQABS_Z_P_Z_M:
+ case ENC_SQABS_Z_P_Z_Z:
return ARM64_SQABS;
case ENC_SQADD_ASISDSAME_ONLY:
case ENC_SQADD_ASIMDSAME_ONLY:
@@ -2862,6 +4515,18 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SQADD;
case ENC_SQCADD_Z_ZZ_:
return ARM64_SQCADD;
+ case ENC_SQCVT_Z_MZ2_:
+ case ENC_SQCVT_Z_MZ4_:
+ return ARM64_SQCVT;
+ case ENC_SQCVTN_Z_MZ2_:
+ case ENC_SQCVTN_Z_MZ4_:
+ return ARM64_SQCVTN;
+ case ENC_SQCVTU_Z_MZ2_:
+ case ENC_SQCVTU_Z_MZ4_:
+ return ARM64_SQCVTU;
+ case ENC_SQCVTUN_Z_MZ2_:
+ case ENC_SQCVTUN_Z_MZ4_:
+ return ARM64_SQCVTUN;
case ENC_SQDECB_R_RS_SX:
case ENC_SQDECB_R_RS_X:
return ARM64_SQDECB;
@@ -2921,13 +4586,17 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SQDMULH_ASIMDELEM_R:
case ENC_SQDMULH_ASISDSAME_ONLY:
case ENC_SQDMULH_ASIMDSAME_ONLY:
+ case ENC_SQDMULH_MZ_ZZV_2X1:
+ case ENC_SQDMULH_MZ_ZZV_4X1:
+ case ENC_SQDMULH_MZ_ZZW_2X2:
+ case ENC_SQDMULH_MZ_ZZW_4X4:
case ENC_SQDMULH_Z_ZZ_:
case ENC_SQDMULH_Z_ZZI_H:
case ENC_SQDMULH_Z_ZZI_S:
case ENC_SQDMULH_Z_ZZI_D:
return ARM64_SQDMULH;
- case ENC_SQDMULL_ASISDELEM_L:
case ENC_SQDMULL_ASIMDELEM_L:
+ case ENC_SQDMULL_ASISDELEM_L:
case ENC_SQDMULL_ASISDDIFF_ONLY:
case ENC_SQDMULL_ASIMDDIFF_L:
return ARM64_SQDMULL;
@@ -2963,7 +4632,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SQINCW;
case ENC_SQNEG_ASISDMISC_R:
case ENC_SQNEG_ASIMDMISC_R:
- case ENC_SQNEG_Z_P_Z_:
+ case ENC_SQNEG_Z_P_Z_M:
+ case ENC_SQNEG_Z_P_Z_Z:
return ARM64_SQNEG;
case ENC_SQRDCMLAH_Z_ZZZ_:
case ENC_SQRDCMLAH_Z_ZZZI_H:
@@ -3002,8 +4672,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SQRSHL;
case ENC_SQRSHLR_Z_P_ZZ_:
return ARM64_SQRSHLR;
+ case ENC_SQRSHR_Z_MZ2_:
+ case ENC_SQRSHR_Z_MZ4_:
+ return ARM64_SQRSHR;
case ENC_SQRSHRN_ASISDSHF_N:
case ENC_SQRSHRN_ASIMDSHF_N:
+ case ENC_SQRSHRN_Z_MZ2_:
+ case ENC_SQRSHRN_Z_MZ4_:
return ARM64_SQRSHRN;
//case ENC_SQRSHRN_ASIMDSHF_N:
// return ARM64_SQRSHRN2;
@@ -3011,8 +4686,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SQRSHRNB;
case ENC_SQRSHRNT_Z_ZI_:
return ARM64_SQRSHRNT;
+ case ENC_SQRSHRU_Z_MZ2_:
+ case ENC_SQRSHRU_Z_MZ4_:
+ return ARM64_SQRSHRU;
case ENC_SQRSHRUN_ASISDSHF_N:
case ENC_SQRSHRUN_ASIMDSHF_N:
+ case ENC_SQRSHRUN_Z_MZ2_:
+ case ENC_SQRSHRUN_Z_MZ4_:
return ARM64_SQRSHRUN;
//case ENC_SQRSHRUN_ASIMDSHF_N:
// return ARM64_SQRSHRUN2;
@@ -3086,6 +4766,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SRI;
case ENC_SRSHL_ASISDSAME_ONLY:
case ENC_SRSHL_ASIMDSAME_ONLY:
+ case ENC_SRSHL_MZ_ZZV_2X1:
+ case ENC_SRSHL_MZ_ZZV_4X1:
+ case ENC_SRSHL_MZ_ZZW_2X2:
+ case ENC_SRSHL_MZ_ZZW_4X4:
case ENC_SRSHL_Z_P_ZZ_:
return ARM64_SRSHL;
case ENC_SRSHLR_Z_P_ZZ_:
@@ -3163,6 +4847,14 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST1_ASISDLSOP_D1_I1D:
case ENC_ST1_ASISDLSOP_DX1_R1D:
return ARM64_ST1;
+ case ENC_ST1B_MZ_P_BI_2:
+ case ENC_ST1B_MZ_P_BI_4:
+ case ENC_ST1B_MZ_P_BR_2:
+ case ENC_ST1B_MZ_P_BR_4:
+ case ENC_ST1B_MZX_P_BI_2X8:
+ case ENC_ST1B_MZX_P_BI_4X4:
+ case ENC_ST1B_MZX_P_BR_2X8:
+ case ENC_ST1B_MZX_P_BR_4X4:
case ENC_ST1B_Z_P_AI_S:
case ENC_ST1B_Z_P_AI_D:
case ENC_ST1B_Z_P_BI_:
@@ -3172,15 +4864,33 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST1B_Z_P_BZ_D_64_UNSCALED:
case ENC_ST1B_ZA_P_RRR_:
return ARM64_ST1B;
+ case ENC_ST1D_MZ_P_BI_2:
+ case ENC_ST1D_MZ_P_BI_4:
+ case ENC_ST1D_MZ_P_BR_2:
+ case ENC_ST1D_MZ_P_BR_4:
+ case ENC_ST1D_MZX_P_BI_2X8:
+ case ENC_ST1D_MZX_P_BI_4X4:
+ case ENC_ST1D_MZX_P_BR_2X8:
+ case ENC_ST1D_MZX_P_BR_4X4:
case ENC_ST1D_Z_P_AI_D:
case ENC_ST1D_Z_P_BI_:
+ case ENC_ST1D_Z_P_BI_U128:
case ENC_ST1D_Z_P_BR_:
+ case ENC_ST1D_Z_P_BR_U128:
case ENC_ST1D_Z_P_BZ_D_X32_SCALED:
case ENC_ST1D_Z_P_BZ_D_X32_UNSCALED:
case ENC_ST1D_Z_P_BZ_D_64_SCALED:
case ENC_ST1D_Z_P_BZ_D_64_UNSCALED:
case ENC_ST1D_ZA_P_RRR_:
return ARM64_ST1D;
+ case ENC_ST1H_MZ_P_BI_2:
+ case ENC_ST1H_MZ_P_BI_4:
+ case ENC_ST1H_MZ_P_BR_2:
+ case ENC_ST1H_MZ_P_BR_4:
+ case ENC_ST1H_MZX_P_BI_2X8:
+ case ENC_ST1H_MZX_P_BI_4X4:
+ case ENC_ST1H_MZX_P_BR_2X8:
+ case ENC_ST1H_MZX_P_BR_4X4:
case ENC_ST1H_Z_P_AI_S:
case ENC_ST1H_Z_P_AI_D:
case ENC_ST1H_Z_P_BI_:
@@ -3193,12 +4903,23 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST1H_Z_P_BZ_D_64_UNSCALED:
case ENC_ST1H_ZA_P_RRR_:
return ARM64_ST1H;
+ case ENC_ST1Q_Z_P_AR_D_64_UNSCALED:
case ENC_ST1Q_ZA_P_RRR_:
return ARM64_ST1Q;
+ case ENC_ST1W_MZ_P_BI_2:
+ case ENC_ST1W_MZ_P_BI_4:
+ case ENC_ST1W_MZ_P_BR_2:
+ case ENC_ST1W_MZ_P_BR_4:
+ case ENC_ST1W_MZX_P_BI_2X8:
+ case ENC_ST1W_MZX_P_BI_4X4:
+ case ENC_ST1W_MZX_P_BR_2X8:
+ case ENC_ST1W_MZX_P_BR_4X4:
case ENC_ST1W_Z_P_AI_S:
case ENC_ST1W_Z_P_AI_D:
case ENC_ST1W_Z_P_BI_:
+ case ENC_ST1W_Z_P_BI_U128:
case ENC_ST1W_Z_P_BR_:
+ case ENC_ST1W_Z_P_BR_U128:
case ENC_ST1W_Z_P_BZ_S_X32_SCALED:
case ENC_ST1W_Z_P_BZ_D_X32_SCALED:
case ENC_ST1W_Z_P_BZ_D_X32_UNSCALED:
@@ -3236,6 +4957,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST2H_Z_P_BI_CONTIGUOUS:
case ENC_ST2H_Z_P_BR_CONTIGUOUS:
return ARM64_ST2H;
+ case ENC_ST2Q_Z_P_BI_CONTIGUOUS:
+ case ENC_ST2Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_ST2Q;
case ENC_ST2W_Z_P_BI_CONTIGUOUS:
case ENC_ST2W_Z_P_BR_CONTIGUOUS:
return ARM64_ST2W;
@@ -3264,6 +4988,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST3H_Z_P_BI_CONTIGUOUS:
case ENC_ST3H_Z_P_BR_CONTIGUOUS:
return ARM64_ST3H;
+ case ENC_ST3Q_Z_P_BI_CONTIGUOUS:
+ case ENC_ST3Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_ST3Q;
case ENC_ST3W_Z_P_BI_CONTIGUOUS:
case ENC_ST3W_Z_P_BR_CONTIGUOUS:
return ARM64_ST3W;
@@ -3292,6 +5019,9 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ST4H_Z_P_BI_CONTIGUOUS:
case ENC_ST4H_Z_P_BR_CONTIGUOUS:
return ARM64_ST4H;
+ case ENC_ST4Q_Z_P_BI_CONTIGUOUS:
+ case ENC_ST4Q_Z_P_BR_CONTIGUOUS:
+ return ARM64_ST4Q;
case ENC_ST4W_Z_P_BI_CONTIGUOUS:
case ENC_ST4W_Z_P_BR_CONTIGUOUS:
return ARM64_ST4W;
@@ -3315,6 +5045,26 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STADDLB;
case ENC_STADDLH_LDADDLH_32_MEMOP:
return ARM64_STADDLH;
+ case ENC_STBFADD_16:
+ return ARM64_STBFADD;
+ case ENC_STBFADDL_16:
+ return ARM64_STBFADDL;
+ case ENC_STBFMAX_16:
+ return ARM64_STBFMAX;
+ case ENC_STBFMAXL_16:
+ return ARM64_STBFMAXL;
+ case ENC_STBFMAXNM_16:
+ return ARM64_STBFMAXNM;
+ case ENC_STBFMAXNML_16:
+ return ARM64_STBFMAXNML;
+ case ENC_STBFMIN_16:
+ return ARM64_STBFMIN;
+ case ENC_STBFMINL_16:
+ return ARM64_STBFMINL;
+ case ENC_STBFMINNM_16:
+ return ARM64_STBFMINNM;
+ case ENC_STBFMINNML_16:
+ return ARM64_STBFMINNML;
case ENC_STCLR_LDCLR_32_MEMOP:
case ENC_STCLR_LDCLR_64_MEMOP:
return ARM64_STCLR;
@@ -3343,6 +5093,46 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STEORLB;
case ENC_STEORLH_LDEORLH_32_MEMOP:
return ARM64_STEORLH;
+ case ENC_STFADD_16:
+ case ENC_STFADD_32:
+ case ENC_STFADD_64:
+ return ARM64_STFADD;
+ case ENC_STFADDL_16:
+ case ENC_STFADDL_32:
+ case ENC_STFADDL_64:
+ return ARM64_STFADDL;
+ case ENC_STFMAX_16:
+ case ENC_STFMAX_32:
+ case ENC_STFMAX_64:
+ return ARM64_STFMAX;
+ case ENC_STFMAXL_16:
+ case ENC_STFMAXL_32:
+ case ENC_STFMAXL_64:
+ return ARM64_STFMAXL;
+ case ENC_STFMAXNM_16:
+ case ENC_STFMAXNM_32:
+ case ENC_STFMAXNM_64:
+ return ARM64_STFMAXNM;
+ case ENC_STFMAXNML_16:
+ case ENC_STFMAXNML_32:
+ case ENC_STFMAXNML_64:
+ return ARM64_STFMAXNML;
+ case ENC_STFMIN_16:
+ case ENC_STFMIN_32:
+ case ENC_STFMIN_64:
+ return ARM64_STFMIN;
+ case ENC_STFMINL_16:
+ case ENC_STFMINL_32:
+ case ENC_STFMINL_64:
+ return ARM64_STFMINL;
+ case ENC_STFMINNM_16:
+ case ENC_STFMINNM_32:
+ case ENC_STFMINNM_64:
+ return ARM64_STFMINNM;
+ case ENC_STFMINNML_16:
+ case ENC_STFMINNML_32:
+ case ENC_STFMINNML_64:
+ return ARM64_STFMINNML;
case ENC_STG_64SPOST_LDSTTAGS:
case ENC_STG_64SPRE_LDSTTAGS:
case ENC_STG_64SOFFSET_LDSTTAGS:
@@ -3353,6 +5143,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_STGP_64_LDSTPAIR_PRE:
case ENC_STGP_64_LDSTPAIR_OFF:
return ARM64_STGP;
+ case ENC_STILP_32SE_LDIAPPSTILP:
+ case ENC_STILP_32S_LDIAPPSTILP:
+ case ENC_STILP_64SS_LDIAPPSTILP:
+ case ENC_STILP_64S_LDIAPPSTILP:
+ return ARM64_STILP;
+ case ENC_STL1_ASISDLSO_D1:
+ return ARM64_STL1;
case ENC_STLLR_SL32_LDSTORD:
case ENC_STLLR_SL64_LDSTORD:
return ARM64_STLLR;
@@ -3362,11 +5159,21 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STLLRH;
case ENC_STLR_SL32_LDSTORD:
case ENC_STLR_SL64_LDSTORD:
+ case ENC_STLR_32S_LDAPSTL_WRITEBACK:
+ case ENC_STLR_64S_LDAPSTL_WRITEBACK:
return ARM64_STLR;
case ENC_STLRB_SL32_LDSTORD:
return ARM64_STLRB;
case ENC_STLRH_SL32_LDSTORD:
return ARM64_STLRH;
+ case ENC_STLTXR_SR32_LDSTEXCLR_UNPRIV:
+ case ENC_STLTXR_SR64_LDSTEXCLR_UNPRIV:
+ return ARM64_STLTXR;
+ case ENC_STLUR_B_LDAPSTL_SIMD:
+ case ENC_STLUR_H_LDAPSTL_SIMD:
+ case ENC_STLUR_S_LDAPSTL_SIMD:
+ case ENC_STLUR_D_LDAPSTL_SIMD:
+ case ENC_STLUR_Q_LDAPSTL_SIMD:
case ENC_STLUR_32_LDAPSTL_UNSCALED:
case ENC_STLUR_64_LDAPSTL_UNSCALED:
return ARM64_STLUR;
@@ -3384,26 +5191,61 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STLXRB;
case ENC_STLXRH_SR32_LDSTEXCLR:
return ARM64_STLXRH;
+ case ENC_STMOPA_ZA32_ZZZI_H2X1:
+ case ENC_STMOPA_ZA_ZZZI_B2X1:
+ return ARM64_STMOPA;
case ENC_STNP_S_LDSTNAPAIR_OFFS:
case ENC_STNP_D_LDSTNAPAIR_OFFS:
case ENC_STNP_Q_LDSTNAPAIR_OFFS:
case ENC_STNP_32_LDSTNAPAIR_OFFS:
case ENC_STNP_64_LDSTNAPAIR_OFFS:
return ARM64_STNP;
+ case ENC_STNT1B_MZ_P_BI_2:
+ case ENC_STNT1B_MZ_P_BI_4:
+ case ENC_STNT1B_MZ_P_BR_2:
+ case ENC_STNT1B_MZ_P_BR_4:
+ case ENC_STNT1B_MZX_P_BI_2X8:
+ case ENC_STNT1B_MZX_P_BI_4X4:
+ case ENC_STNT1B_MZX_P_BR_2X8:
+ case ENC_STNT1B_MZX_P_BR_4X4:
case ENC_STNT1B_Z_P_AR_S_X32_UNSCALED:
case ENC_STNT1B_Z_P_AR_D_64_UNSCALED:
case ENC_STNT1B_Z_P_BI_CONTIGUOUS:
case ENC_STNT1B_Z_P_BR_CONTIGUOUS:
return ARM64_STNT1B;
+ case ENC_STNT1D_MZ_P_BI_2:
+ case ENC_STNT1D_MZ_P_BI_4:
+ case ENC_STNT1D_MZ_P_BR_2:
+ case ENC_STNT1D_MZ_P_BR_4:
+ case ENC_STNT1D_MZX_P_BI_2X8:
+ case ENC_STNT1D_MZX_P_BI_4X4:
+ case ENC_STNT1D_MZX_P_BR_2X8:
+ case ENC_STNT1D_MZX_P_BR_4X4:
case ENC_STNT1D_Z_P_AR_D_64_UNSCALED:
case ENC_STNT1D_Z_P_BI_CONTIGUOUS:
case ENC_STNT1D_Z_P_BR_CONTIGUOUS:
return ARM64_STNT1D;
+ case ENC_STNT1H_MZ_P_BI_2:
+ case ENC_STNT1H_MZ_P_BI_4:
+ case ENC_STNT1H_MZ_P_BR_2:
+ case ENC_STNT1H_MZ_P_BR_4:
+ case ENC_STNT1H_MZX_P_BI_2X8:
+ case ENC_STNT1H_MZX_P_BI_4X4:
+ case ENC_STNT1H_MZX_P_BR_2X8:
+ case ENC_STNT1H_MZX_P_BR_4X4:
case ENC_STNT1H_Z_P_AR_S_X32_UNSCALED:
case ENC_STNT1H_Z_P_AR_D_64_UNSCALED:
case ENC_STNT1H_Z_P_BI_CONTIGUOUS:
case ENC_STNT1H_Z_P_BR_CONTIGUOUS:
return ARM64_STNT1H;
+ case ENC_STNT1W_MZ_P_BI_2:
+ case ENC_STNT1W_MZ_P_BI_4:
+ case ENC_STNT1W_MZ_P_BR_2:
+ case ENC_STNT1W_MZ_P_BR_4:
+ case ENC_STNT1W_MZX_P_BI_2X8:
+ case ENC_STNT1W_MZX_P_BI_4X4:
+ case ENC_STNT1W_MZX_P_BR_2X8:
+ case ENC_STNT1W_MZX_P_BR_4X4:
case ENC_STNT1W_Z_P_AR_S_X32_UNSCALED:
case ENC_STNT1W_Z_P_AR_D_64_UNSCALED:
case ENC_STNT1W_Z_P_BI_CONTIGUOUS:
@@ -3457,6 +5299,7 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_STR_P_BI_:
case ENC_STR_Z_BI_:
case ENC_STR_ZA_RI_:
+ case ENC_STR_ZT_BR_:
return ARM64_STR;
case ENC_STRB_32_LDST_IMMPOST:
case ENC_STRB_32_LDST_IMMPRE:
@@ -3483,6 +5326,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STSETLB;
case ENC_STSETLH_LDSETLH_32_MEMOP:
return ARM64_STSETLH;
+ case ENC_STSHH_HI_HINTS:
+ return ARM64_STSHH;
case ENC_STSMAX_LDSMAX_32_MEMOP:
case ENC_STSMAX_LDSMAX_64_MEMOP:
return ARM64_STSMAX;
@@ -3511,6 +5356,28 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STSMINLB;
case ENC_STSMINLH_LDSMINLH_32_MEMOP:
return ARM64_STSMINLH;
+ case ENC_STTADD_LDTADD_32_MEMOP_UNPRIV:
+ case ENC_STTADD_LDTADD_64_MEMOP_UNPRIV:
+ return ARM64_STTADD;
+ case ENC_STTADDL_LDTADDL_32_MEMOP_UNPRIV:
+ case ENC_STTADDL_LDTADDL_64_MEMOP_UNPRIV:
+ return ARM64_STTADDL;
+ case ENC_STTCLR_LDTCLR_32_MEMOP_UNPRIV:
+ case ENC_STTCLR_LDTCLR_64_MEMOP_UNPRIV:
+ return ARM64_STTCLR;
+ case ENC_STTCLRL_LDTCLRL_32_MEMOP_UNPRIV:
+ case ENC_STTCLRL_LDTCLRL_64_MEMOP_UNPRIV:
+ return ARM64_STTCLRL;
+ case ENC_STTNP_Q_LDSTNAPAIR_OFFS:
+ case ENC_STTNP_64_LDSTNAPAIR_OFFS:
+ return ARM64_STTNP;
+ case ENC_STTP_Q_LDSTPAIR_POST:
+ case ENC_STTP_Q_LDSTPAIR_PRE:
+ case ENC_STTP_Q_LDSTPAIR_OFF:
+ case ENC_STTP_64_LDSTPAIR_POST:
+ case ENC_STTP_64_LDSTPAIR_PRE:
+ case ENC_STTP_64_LDSTPAIR_OFF:
+ return ARM64_STTP;
case ENC_STTR_32_LDST_UNPRIV:
case ENC_STTR_64_LDST_UNPRIV:
return ARM64_STTR;
@@ -3518,6 +5385,15 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_STTRB;
case ENC_STTRH_32_LDST_UNPRIV:
return ARM64_STTRH;
+ case ENC_STTSET_LDTSET_32_MEMOP_UNPRIV:
+ case ENC_STTSET_LDTSET_64_MEMOP_UNPRIV:
+ return ARM64_STTSET;
+ case ENC_STTSETL_LDTSETL_32_MEMOP_UNPRIV:
+ case ENC_STTSETL_LDTSETL_64_MEMOP_UNPRIV:
+ return ARM64_STTSETL;
+ case ENC_STTXR_SR32_LDSTEXCLR_UNPRIV:
+ case ENC_STTXR_SR64_LDSTEXCLR_UNPRIV:
+ return ARM64_STTXR;
case ENC_STUMAX_LDUMAX_32_MEMOP:
case ENC_STUMAX_LDUMAX_64_MEMOP:
return ARM64_STUMAX;
@@ -3589,6 +5465,12 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SUB_Z_P_ZZ_:
case ENC_SUB_Z_ZI_:
case ENC_SUB_Z_ZZ_:
+ case ENC_SUB_ZA_ZW_2X2:
+ case ENC_SUB_ZA_ZW_4X4:
+ case ENC_SUB_ZA_ZZV_2X1:
+ case ENC_SUB_ZA_ZZV_4X1:
+ case ENC_SUB_ZA_ZZW_2X2:
+ case ENC_SUB_ZA_ZZW_4X4:
return ARM64_SUB;
case ENC_SUBG_64_ADDSUB_IMMTAGS:
return ARM64_SUBG;
@@ -3604,6 +5486,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SUBP;
case ENC_SUBPS_64S_DP_2SRC:
return ARM64_SUBPS;
+ case ENC_SUBPT_64_ADDSUB_PT:
+ case ENC_SUBPT_Z_P_ZZ_:
+ case ENC_SUBPT_Z_ZZ_:
+ return ARM64_SUBPT;
case ENC_SUBR_Z_P_ZZ_:
case ENC_SUBR_Z_ZI_:
return ARM64_SUBR;
@@ -3616,13 +5502,44 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SUBS;
case ENC_SUDOT_ASIMDELEM_D:
case ENC_SUDOT_Z_ZZZI_S:
+ case ENC_SUDOT_ZA_ZZI_S2XI:
+ case ENC_SUDOT_ZA_ZZI_S4XI:
+ case ENC_SUDOT_ZA_ZZV_S2X1:
+ case ENC_SUDOT_ZA_ZZV_S4X1:
return ARM64_SUDOT;
+ case ENC_SUMLALL_ZA_ZZI_S:
+ case ENC_SUMLALL_ZA_ZZI_S2XI:
+ case ENC_SUMLALL_ZA_ZZI_S4XI:
+ case ENC_SUMLALL_ZA_ZZV_S2X1:
+ case ENC_SUMLALL_ZA_ZZV_S4X1:
+ return ARM64_SUMLALL;
+ case ENC_SUMOP4A_ZA_ZZ_B1X2:
+ case ENC_SUMOP4A_ZA_ZZ_B1X1:
+ case ENC_SUMOP4A_ZA_ZZ_B2X1:
+ case ENC_SUMOP4A_ZA_ZZ_B2X2:
+ case ENC_SUMOP4A_ZA_ZZ_H1X2:
+ case ENC_SUMOP4A_ZA_ZZ_H1X1:
+ case ENC_SUMOP4A_ZA_ZZ_H2X1:
+ case ENC_SUMOP4A_ZA_ZZ_H2X2:
+ return ARM64_SUMOP4A;
+ case ENC_SUMOP4S_ZA_ZZ_B1X2:
+ case ENC_SUMOP4S_ZA_ZZ_B1X1:
+ case ENC_SUMOP4S_ZA_ZZ_B2X1:
+ case ENC_SUMOP4S_ZA_ZZ_B2X2:
+ case ENC_SUMOP4S_ZA_ZZ_H1X2:
+ case ENC_SUMOP4S_ZA_ZZ_H1X1:
+ case ENC_SUMOP4S_ZA_ZZ_H2X1:
+ case ENC_SUMOP4S_ZA_ZZ_H2X2:
+ return ARM64_SUMOP4S;
case ENC_SUMOPA_ZA_PP_ZZ_32:
case ENC_SUMOPA_ZA_PP_ZZ_64:
return ARM64_SUMOPA;
case ENC_SUMOPS_ZA_PP_ZZ_32:
case ENC_SUMOPS_ZA_PP_ZZ_64:
return ARM64_SUMOPS;
+ case ENC_SUNPK_MZ_Z_2:
+ case ENC_SUNPK_MZ_Z_4:
+ return ARM64_SUNPK;
case ENC_SUNPKHI_Z_Z_:
return ARM64_SUNPKHI;
case ENC_SUNPKLO_Z_Z_:
@@ -3631,8 +5548,16 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_SUQADD_ASIMDMISC_R:
case ENC_SUQADD_Z_P_ZZ_:
return ARM64_SUQADD;
+ case ENC_SUTMOPA_ZA_ZZZI_B2X1:
+ return ARM64_SUTMOPA;
+ case ENC_SUVDOT_ZA_ZZI_S4XI:
+ return ARM64_SUVDOT;
case ENC_SVC_EX_EXCEPTION:
return ARM64_SVC;
+ case ENC_SVDOT_ZA32_ZZI_2XI:
+ case ENC_SVDOT_ZA_ZZI_S4XI:
+ case ENC_SVDOT_ZA_ZZI_D4XI:
+ return ARM64_SVDOT;
case ENC_SWP_32_MEMOP:
case ENC_SWP_64_MEMOP:
return ARM64_SWP;
@@ -3661,40 +5586,69 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_SWPLB;
case ENC_SWPLH_32_MEMOP:
return ARM64_SWPLH;
+ case ENC_SWPP_128_MEMOP_128:
+ return ARM64_SWPP;
+ case ENC_SWPPA_128_MEMOP_128:
+ return ARM64_SWPPA;
+ case ENC_SWPPAL_128_MEMOP_128:
+ return ARM64_SWPPAL;
+ case ENC_SWPPL_128_MEMOP_128:
+ return ARM64_SWPPL;
+ case ENC_SWPT_32_MEMOP_UNPRIV:
+ case ENC_SWPT_64_MEMOP_UNPRIV:
+ return ARM64_SWPT;
+ case ENC_SWPTA_32_MEMOP_UNPRIV:
+ case ENC_SWPTA_64_MEMOP_UNPRIV:
+ return ARM64_SWPTA;
+ case ENC_SWPTAL_32_MEMOP_UNPRIV:
+ case ENC_SWPTAL_64_MEMOP_UNPRIV:
+ return ARM64_SWPTAL;
+ case ENC_SWPTL_32_MEMOP_UNPRIV:
+ case ENC_SWPTL_64_MEMOP_UNPRIV:
+ return ARM64_SWPTL;
case ENC_SXTB_SBFM_32M_BITFIELD:
case ENC_SXTB_SBFM_64M_BITFIELD:
- case ENC_SXTB_Z_P_Z_:
+ case ENC_SXTB_Z_P_Z_M:
+ case ENC_SXTB_Z_P_Z_Z:
return ARM64_SXTB;
case ENC_SXTH_SBFM_32M_BITFIELD:
case ENC_SXTH_SBFM_64M_BITFIELD:
- case ENC_SXTH_Z_P_Z_:
+ case ENC_SXTH_Z_P_Z_M:
+ case ENC_SXTH_Z_P_Z_Z:
return ARM64_SXTH;
case ENC_SXTL_SSHLL_ASIMDSHF_L:
return ARM64_SXTL;
//case ENC_SXTL_SSHLL_ASIMDSHF_L:
// return ARM64_SXTL2;
case ENC_SXTW_SBFM_64M_BITFIELD:
- case ENC_SXTW_Z_P_Z_:
+ case ENC_SXTW_Z_P_Z_M:
+ case ENC_SXTW_Z_P_Z_Z:
return ARM64_SXTW;
case ENC_SYS_CR_SYSTEMINSTRS:
return ARM64_SYS;
case ENC_SYSL_RC_SYSTEMINSTRS:
return ARM64_SYSL;
+ case ENC_SYSP_CR_SYSPAIRINSTRS:
+ return ARM64_SYSP;
+ case ENC_TBL_ASIMDTBL_L1_1:
case ENC_TBL_ASIMDTBL_L2_2:
case ENC_TBL_ASIMDTBL_L3_3:
case ENC_TBL_ASIMDTBL_L4_4:
- case ENC_TBL_ASIMDTBL_L1_1:
case ENC_TBL_Z_ZZ_1:
case ENC_TBL_Z_ZZ_2:
return ARM64_TBL;
+ case ENC_TBLQ_Z_ZZ_:
+ return ARM64_TBLQ;
case ENC_TBNZ_ONLY_TESTBRANCH:
return ARM64_TBNZ;
+ case ENC_TBX_ASIMDTBL_L1_1:
case ENC_TBX_ASIMDTBL_L2_2:
case ENC_TBX_ASIMDTBL_L3_3:
case ENC_TBX_ASIMDTBL_L4_4:
- case ENC_TBX_ASIMDTBL_L1_1:
case ENC_TBX_Z_ZZ_:
return ARM64_TBX;
+ case ENC_TBXQ_Z_ZZ_:
+ return ARM64_TBXQ;
case ENC_TBZ_ONLY_TESTBRANCH:
return ARM64_TBZ;
case ENC_TCANCEL_EX_EXCEPTION:
@@ -3703,6 +5657,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_TCOMMIT;
case ENC_TLBI_SYS_CR_SYSTEMINSTRS:
return ARM64_TLBI;
+ case ENC_TLBIP_SYSP_CR_SYSPAIRINSTRS:
+ return ARM64_TLBIP;
+ case ENC_TRCIT_SYS_CR_SYSTEMINSTRS:
+ return ARM64_TRCIT;
case ENC_TRN1_ASIMDPERM_ONLY:
case ENC_TRN1_P_PP_:
case ENC_TRN1_Z_ZZ_:
@@ -3780,6 +5738,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UBFX_UBFM_32M_BITFIELD:
case ENC_UBFX_UBFM_64M_BITFIELD:
return ARM64_UBFX;
+ case ENC_UCLAMP_MZ_ZZ_2:
+ case ENC_UCLAMP_MZ_ZZ_4:
case ENC_UCLAMP_Z_ZZ_:
return ARM64_UCLAMP;
case ENC_UCVTF_ASISDSHF_C:
@@ -3789,10 +5749,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UCVTF_ASIMDMISCFP16_R:
case ENC_UCVTF_ASIMDMISC_R:
case ENC_UCVTF_H32_FLOAT2FIX:
- case ENC_UCVTF_S32_FLOAT2FIX:
- case ENC_UCVTF_D32_FLOAT2FIX:
case ENC_UCVTF_H64_FLOAT2FIX:
+ case ENC_UCVTF_S32_FLOAT2FIX:
case ENC_UCVTF_S64_FLOAT2FIX:
+ case ENC_UCVTF_D32_FLOAT2FIX:
case ENC_UCVTF_D64_FLOAT2FIX:
case ENC_UCVTF_H32_FLOAT2INT:
case ENC_UCVTF_S32_FLOAT2INT:
@@ -3800,13 +5760,26 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UCVTF_H64_FLOAT2INT:
case ENC_UCVTF_S64_FLOAT2INT:
case ENC_UCVTF_D64_FLOAT2INT:
+ case ENC_UCVTF_SISD_32H:
+ case ENC_UCVTF_SISD_32D:
+ case ENC_UCVTF_SISD_64H:
+ case ENC_UCVTF_SISD_64S:
+ case ENC_UCVTF_MZ_Z_2:
+ case ENC_UCVTF_MZ_Z_4:
case ENC_UCVTF_Z_P_Z_H2FP16:
+ case ENC_UCVTF_Z_P_Z_H2FP16Z:
case ENC_UCVTF_Z_P_Z_W2FP16:
+ case ENC_UCVTF_Z_P_Z_W2FP16Z:
case ENC_UCVTF_Z_P_Z_W2S:
+ case ENC_UCVTF_Z_P_Z_W2SZ:
case ENC_UCVTF_Z_P_Z_W2D:
+ case ENC_UCVTF_Z_P_Z_W2DZ:
case ENC_UCVTF_Z_P_Z_X2FP16:
+ case ENC_UCVTF_Z_P_Z_X2FP16Z:
case ENC_UCVTF_Z_P_Z_X2S:
+ case ENC_UCVTF_Z_P_Z_X2SZ:
case ENC_UCVTF_Z_P_Z_X2D:
+ case ENC_UCVTF_Z_P_Z_X2DZ:
return ARM64_UCVTF;
case ENC_UDF_ONLY_PERM_UNDEF:
return ARM64_UDF;
@@ -3818,9 +5791,25 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_UDIVR;
case ENC_UDOT_ASIMDELEM_D:
case ENC_UDOT_ASIMDSAME2_D:
+ case ENC_UDOT_Z32_ZZZ_:
+ case ENC_UDOT_Z32_ZZZI_:
case ENC_UDOT_Z_ZZZ_:
case ENC_UDOT_Z_ZZZI_S:
case ENC_UDOT_Z_ZZZI_D:
+ case ENC_UDOT_ZA32_ZZI_2XI:
+ case ENC_UDOT_ZA32_ZZI_4XI:
+ case ENC_UDOT_ZA32_ZZV_2X1:
+ case ENC_UDOT_ZA32_ZZV_4X1:
+ case ENC_UDOT_ZA32_ZZW_2X2:
+ case ENC_UDOT_ZA32_ZZW_4X4:
+ case ENC_UDOT_ZA_ZZI_S2XI:
+ case ENC_UDOT_ZA_ZZI_D2XI:
+ case ENC_UDOT_ZA_ZZI_S4XI:
+ case ENC_UDOT_ZA_ZZI_D4XI:
+ case ENC_UDOT_ZA_ZZV_2X1:
+ case ENC_UDOT_ZA_ZZV_4X1:
+ case ENC_UDOT_ZA_ZZW_2X2:
+ case ENC_UDOT_ZA_ZZW_4X4:
return ARM64_UDOT;
case ENC_UHADD_ASIMDSAME_ONLY:
case ENC_UHADD_Z_P_ZZ_:
@@ -3833,27 +5822,55 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UMADDL_64WA_DP_3SRC:
return ARM64_UMADDL;
case ENC_UMAX_ASIMDSAME_ONLY:
+ case ENC_UMAX_32U_MINMAX_IMM:
+ case ENC_UMAX_64U_MINMAX_IMM:
+ case ENC_UMAX_32_DP_2SRC:
+ case ENC_UMAX_64_DP_2SRC:
+ case ENC_UMAX_MZ_ZZV_2X1:
+ case ENC_UMAX_MZ_ZZV_4X1:
+ case ENC_UMAX_MZ_ZZW_2X2:
+ case ENC_UMAX_MZ_ZZW_4X4:
case ENC_UMAX_Z_P_ZZ_:
case ENC_UMAX_Z_ZI_:
return ARM64_UMAX;
case ENC_UMAXP_ASIMDSAME_ONLY:
case ENC_UMAXP_Z_P_ZZ_:
return ARM64_UMAXP;
+ case ENC_UMAXQV_Z_P_Z_:
+ return ARM64_UMAXQV;
case ENC_UMAXV_ASIMDALL_ONLY:
case ENC_UMAXV_R_P_Z_:
return ARM64_UMAXV;
case ENC_UMIN_ASIMDSAME_ONLY:
+ case ENC_UMIN_32U_MINMAX_IMM:
+ case ENC_UMIN_64U_MINMAX_IMM:
+ case ENC_UMIN_32_DP_2SRC:
+ case ENC_UMIN_64_DP_2SRC:
+ case ENC_UMIN_MZ_ZZV_2X1:
+ case ENC_UMIN_MZ_ZZV_4X1:
+ case ENC_UMIN_MZ_ZZW_2X2:
+ case ENC_UMIN_MZ_ZZW_4X4:
case ENC_UMIN_Z_P_ZZ_:
case ENC_UMIN_Z_ZI_:
return ARM64_UMIN;
case ENC_UMINP_ASIMDSAME_ONLY:
case ENC_UMINP_Z_P_ZZ_:
return ARM64_UMINP;
+ case ENC_UMINQV_Z_P_Z_:
+ return ARM64_UMINQV;
case ENC_UMINV_ASIMDALL_ONLY:
case ENC_UMINV_R_P_Z_:
return ARM64_UMINV;
case ENC_UMLAL_ASIMDELEM_L:
case ENC_UMLAL_ASIMDDIFF_L:
+ case ENC_UMLAL_ZA_ZZI_1:
+ case ENC_UMLAL_ZA_ZZI_2XI:
+ case ENC_UMLAL_ZA_ZZI_4XI:
+ case ENC_UMLAL_ZA_ZZV_1:
+ case ENC_UMLAL_ZA_ZZV_2X1:
+ case ENC_UMLAL_ZA_ZZV_4X1:
+ case ENC_UMLAL_ZA_ZZW_2X2:
+ case ENC_UMLAL_ZA_ZZW_4X4:
return ARM64_UMLAL;
//case ENC_UMLAL_ASIMDELEM_L:
//case ENC_UMLAL_ASIMDDIFF_L:
@@ -3862,12 +5879,32 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UMLALB_Z_ZZZI_S:
case ENC_UMLALB_Z_ZZZI_D:
return ARM64_UMLALB;
+ case ENC_UMLALL_ZA_ZZI_S:
+ case ENC_UMLALL_ZA_ZZI_D:
+ case ENC_UMLALL_ZA_ZZI_S2XI:
+ case ENC_UMLALL_ZA_ZZI_D2XI:
+ case ENC_UMLALL_ZA_ZZI_S4XI:
+ case ENC_UMLALL_ZA_ZZI_D4XI:
+ case ENC_UMLALL_ZA_ZZV_1:
+ case ENC_UMLALL_ZA_ZZV_2X1:
+ case ENC_UMLALL_ZA_ZZV_4X1:
+ case ENC_UMLALL_ZA_ZZW_2X2:
+ case ENC_UMLALL_ZA_ZZW_4X4:
+ return ARM64_UMLALL;
case ENC_UMLALT_Z_ZZZ_:
case ENC_UMLALT_Z_ZZZI_S:
case ENC_UMLALT_Z_ZZZI_D:
return ARM64_UMLALT;
case ENC_UMLSL_ASIMDELEM_L:
case ENC_UMLSL_ASIMDDIFF_L:
+ case ENC_UMLSL_ZA_ZZI_1:
+ case ENC_UMLSL_ZA_ZZI_2XI:
+ case ENC_UMLSL_ZA_ZZI_4XI:
+ case ENC_UMLSL_ZA_ZZV_1:
+ case ENC_UMLSL_ZA_ZZV_2X1:
+ case ENC_UMLSL_ZA_ZZV_4X1:
+ case ENC_UMLSL_ZA_ZZW_2X2:
+ case ENC_UMLSL_ZA_ZZW_4X4:
return ARM64_UMLSL;
//case ENC_UMLSL_ASIMDELEM_L:
//case ENC_UMLSL_ASIMDDIFF_L:
@@ -3876,6 +5913,18 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UMLSLB_Z_ZZZI_S:
case ENC_UMLSLB_Z_ZZZI_D:
return ARM64_UMLSLB;
+ case ENC_UMLSLL_ZA_ZZI_S:
+ case ENC_UMLSLL_ZA_ZZI_D:
+ case ENC_UMLSLL_ZA_ZZI_S2XI:
+ case ENC_UMLSLL_ZA_ZZI_D2XI:
+ case ENC_UMLSLL_ZA_ZZI_S4XI:
+ case ENC_UMLSLL_ZA_ZZI_D4XI:
+ case ENC_UMLSLL_ZA_ZZV_1:
+ case ENC_UMLSLL_ZA_ZZV_2X1:
+ case ENC_UMLSLL_ZA_ZZV_4X1:
+ case ENC_UMLSLL_ZA_ZZW_2X2:
+ case ENC_UMLSLL_ZA_ZZW_4X4:
+ return ARM64_UMLSLL;
case ENC_UMLSLT_Z_ZZZ_:
case ENC_UMLSLT_Z_ZZZI_S:
case ENC_UMLSLT_Z_ZZZI_D:
@@ -3885,9 +5934,37 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_UMMLA;
case ENC_UMNEGL_UMSUBL_64WA_DP_3SRC:
return ARM64_UMNEGL;
+ case ENC_UMOP4A_ZA32_ZZ_H1X2:
+ case ENC_UMOP4A_ZA32_ZZ_H1X1:
+ case ENC_UMOP4A_ZA32_ZZ_H2X1:
+ case ENC_UMOP4A_ZA32_ZZ_H2X2:
+ case ENC_UMOP4A_ZA_ZZ_B1X2:
+ case ENC_UMOP4A_ZA_ZZ_B1X1:
+ case ENC_UMOP4A_ZA_ZZ_B2X1:
+ case ENC_UMOP4A_ZA_ZZ_B2X2:
+ case ENC_UMOP4A_ZA_ZZ_H1X2:
+ case ENC_UMOP4A_ZA_ZZ_H1X1:
+ case ENC_UMOP4A_ZA_ZZ_H2X1:
+ case ENC_UMOP4A_ZA_ZZ_H2X2:
+ return ARM64_UMOP4A;
+ case ENC_UMOP4S_ZA32_ZZ_H1X2:
+ case ENC_UMOP4S_ZA32_ZZ_H1X1:
+ case ENC_UMOP4S_ZA32_ZZ_H2X1:
+ case ENC_UMOP4S_ZA32_ZZ_H2X2:
+ case ENC_UMOP4S_ZA_ZZ_B1X2:
+ case ENC_UMOP4S_ZA_ZZ_B1X1:
+ case ENC_UMOP4S_ZA_ZZ_B2X1:
+ case ENC_UMOP4S_ZA_ZZ_B2X2:
+ case ENC_UMOP4S_ZA_ZZ_H1X2:
+ case ENC_UMOP4S_ZA_ZZ_H1X1:
+ case ENC_UMOP4S_ZA_ZZ_H2X1:
+ case ENC_UMOP4S_ZA_ZZ_H2X2:
+ return ARM64_UMOP4S;
+ case ENC_UMOPA_ZA32_PP_ZZ_16:
case ENC_UMOPA_ZA_PP_ZZ_32:
case ENC_UMOPA_ZA_PP_ZZ_64:
return ARM64_UMOPA;
+ case ENC_UMOPS_ZA32_PP_ZZ_16:
case ENC_UMOPS_ZA_PP_ZZ_32:
case ENC_UMOPS_ZA_PP_ZZ_64:
return ARM64_UMOPS;
@@ -3921,6 +5998,12 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UQADD_Z_ZI_:
case ENC_UQADD_Z_ZZ_:
return ARM64_UQADD;
+ case ENC_UQCVT_Z_MZ2_:
+ case ENC_UQCVT_Z_MZ4_:
+ return ARM64_UQCVT;
+ case ENC_UQCVTN_Z_MZ2_:
+ case ENC_UQCVTN_Z_MZ4_:
+ return ARM64_UQCVTN;
case ENC_UQDECB_R_RS_UW:
case ENC_UQDECB_R_RS_X:
return ARM64_UQDECB;
@@ -3965,8 +6048,13 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_UQRSHL;
case ENC_UQRSHLR_Z_P_ZZ_:
return ARM64_UQRSHLR;
+ case ENC_UQRSHR_Z_MZ2_:
+ case ENC_UQRSHR_Z_MZ4_:
+ return ARM64_UQRSHR;
case ENC_UQRSHRN_ASISDSHF_N:
case ENC_UQRSHRN_ASIMDSHF_N:
+ case ENC_UQRSHRN_Z_MZ2_:
+ case ENC_UQRSHRN_Z_MZ4_:
return ARM64_UQRSHRN;
//case ENC_UQRSHRN_ASIMDSHF_N:
// return ARM64_UQRSHRN2;
@@ -4010,13 +6098,18 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UQXTNT_Z_ZZ_:
return ARM64_UQXTNT;
case ENC_URECPE_ASIMDMISC_R:
- case ENC_URECPE_Z_P_Z_:
+ case ENC_URECPE_Z_P_Z_M:
+ case ENC_URECPE_Z_P_Z_Z:
return ARM64_URECPE;
case ENC_URHADD_ASIMDSAME_ONLY:
case ENC_URHADD_Z_P_ZZ_:
return ARM64_URHADD;
case ENC_URSHL_ASISDSAME_ONLY:
case ENC_URSHL_ASIMDSAME_ONLY:
+ case ENC_URSHL_MZ_ZZV_2X1:
+ case ENC_URSHL_MZ_ZZV_4X1:
+ case ENC_URSHL_MZ_ZZW_2X2:
+ case ENC_URSHL_MZ_ZZW_4X4:
case ENC_URSHL_Z_P_ZZ_:
return ARM64_URSHL;
case ENC_URSHLR_Z_P_ZZ_:
@@ -4026,7 +6119,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_URSHR_Z_P_ZI_:
return ARM64_URSHR;
case ENC_URSQRTE_ASIMDMISC_R:
- case ENC_URSQRTE_Z_P_Z_:
+ case ENC_URSQRTE_Z_P_Z_M:
+ case ENC_URSQRTE_Z_P_Z_Z:
return ARM64_URSQRTE;
case ENC_URSRA_ASISDSHF_R:
case ENC_URSRA_ASIMDSHF_R:
@@ -4036,6 +6130,12 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_USDOT_ASIMDSAME2_D:
case ENC_USDOT_Z_ZZZ_S:
case ENC_USDOT_Z_ZZZI_S:
+ case ENC_USDOT_ZA_ZZI_S2XI:
+ case ENC_USDOT_ZA_ZZI_S4XI:
+ case ENC_USDOT_ZA_ZZV_S2X1:
+ case ENC_USDOT_ZA_ZZV_S4X1:
+ case ENC_USDOT_ZA_ZZW_S2X2:
+ case ENC_USDOT_ZA_ZZW_S4X4:
return ARM64_USDOT;
case ENC_USHL_ASISDSAME_ONLY:
case ENC_USHL_ASIMDSAME_ONLY:
@@ -4051,9 +6151,36 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_USHR_ASISDSHF_R:
case ENC_USHR_ASIMDSHF_R:
return ARM64_USHR;
+ case ENC_USMLALL_ZA_ZZI_S:
+ case ENC_USMLALL_ZA_ZZI_S2XI:
+ case ENC_USMLALL_ZA_ZZI_S4XI:
+ case ENC_USMLALL_ZA_ZZV_S:
+ case ENC_USMLALL_ZA_ZZV_S2X1:
+ case ENC_USMLALL_ZA_ZZV_S4X1:
+ case ENC_USMLALL_ZA_ZZW_S2X2:
+ case ENC_USMLALL_ZA_ZZW_S4X4:
+ return ARM64_USMLALL;
case ENC_USMMLA_ASIMDSAME2_G:
case ENC_USMMLA_Z_ZZZ_:
return ARM64_USMMLA;
+ case ENC_USMOP4A_ZA_ZZ_B1X2:
+ case ENC_USMOP4A_ZA_ZZ_B1X1:
+ case ENC_USMOP4A_ZA_ZZ_B2X1:
+ case ENC_USMOP4A_ZA_ZZ_B2X2:
+ case ENC_USMOP4A_ZA_ZZ_H1X2:
+ case ENC_USMOP4A_ZA_ZZ_H1X1:
+ case ENC_USMOP4A_ZA_ZZ_H2X1:
+ case ENC_USMOP4A_ZA_ZZ_H2X2:
+ return ARM64_USMOP4A;
+ case ENC_USMOP4S_ZA_ZZ_B1X2:
+ case ENC_USMOP4S_ZA_ZZ_B1X1:
+ case ENC_USMOP4S_ZA_ZZ_B2X1:
+ case ENC_USMOP4S_ZA_ZZ_B2X2:
+ case ENC_USMOP4S_ZA_ZZ_H1X2:
+ case ENC_USMOP4S_ZA_ZZ_H1X1:
+ case ENC_USMOP4S_ZA_ZZ_H2X1:
+ case ENC_USMOP4S_ZA_ZZ_H2X2:
+ return ARM64_USMOP4S;
case ENC_USMOPA_ZA_PP_ZZ_32:
case ENC_USMOPA_ZA_PP_ZZ_64:
return ARM64_USMOPA;
@@ -4068,6 +6195,8 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_USRA_ASIMDSHF_R:
case ENC_USRA_Z_ZI_:
return ARM64_USRA;
+ case ENC_USTMOPA_ZA_ZZZI_B2X1:
+ return ARM64_USTMOPA;
case ENC_USUBL_ASIMDDIFF_L:
return ARM64_USUBL;
//case ENC_USUBL_ASIMDDIFF_L:
@@ -4084,22 +6213,42 @@ enum Operation enc_to_oper(enum ENCODING enc)
return ARM64_USUBWB;
case ENC_USUBWT_Z_ZZ_:
return ARM64_USUBWT;
+ case ENC_USVDOT_ZA_ZZI_S4XI:
+ return ARM64_USVDOT;
+ case ENC_UTMOPA_ZA32_ZZZI_H2X1:
+ case ENC_UTMOPA_ZA_ZZZI_B2X1:
+ return ARM64_UTMOPA;
+ case ENC_UUNPK_MZ_Z_2:
+ case ENC_UUNPK_MZ_Z_4:
+ return ARM64_UUNPK;
case ENC_UUNPKHI_Z_Z_:
return ARM64_UUNPKHI;
case ENC_UUNPKLO_Z_Z_:
return ARM64_UUNPKLO;
+ case ENC_UVDOT_ZA32_ZZI_2XI:
+ case ENC_UVDOT_ZA_ZZI_S4XI:
+ case ENC_UVDOT_ZA_ZZI_D4XI:
+ return ARM64_UVDOT;
case ENC_UXTB_UBFM_32M_BITFIELD:
- case ENC_UXTB_Z_P_Z_:
+ case ENC_UXTB_Z_P_Z_M:
+ case ENC_UXTB_Z_P_Z_Z:
return ARM64_UXTB;
case ENC_UXTH_UBFM_32M_BITFIELD:
- case ENC_UXTH_Z_P_Z_:
+ case ENC_UXTH_Z_P_Z_M:
+ case ENC_UXTH_Z_P_Z_Z:
return ARM64_UXTH;
case ENC_UXTL_USHLL_ASIMDSHF_L:
return ARM64_UXTL;
//case ENC_UXTL_USHLL_ASIMDSHF_L:
// return ARM64_UXTL2;
- case ENC_UXTW_Z_P_Z_:
+ case ENC_UXTW_Z_P_Z_M:
+ case ENC_UXTW_Z_P_Z_Z:
return ARM64_UXTW;
+ case ENC_UZP_MZ_Z_4:
+ case ENC_UZP_MZ_Z_4Q:
+ case ENC_UZP_MZ_ZZ_2:
+ case ENC_UZP_MZ_ZZ_2Q:
+ return ARM64_UZP;
case ENC_UZP1_ASIMDPERM_ONLY:
case ENC_UZP1_P_PP_:
case ENC_UZP1_Z_ZZ_:
@@ -4110,6 +6259,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_UZP2_Z_ZZ_:
case ENC_UZP2_Z_ZZ_Q:
return ARM64_UZP2;
+ case ENC_UZPQ1_Z_ZZ_:
+ return ARM64_UZPQ1;
+ case ENC_UZPQ2_Z_ZZ_:
+ return ARM64_UZPQ2;
case ENC_WFE_HI_HINTS:
return ARM64_WFE;
case ENC_WFET_ONLY_SYSTEMINSTRSWITHREG:
@@ -4119,20 +6272,36 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_WFIT_ONLY_SYSTEMINSTRSWITHREG:
return ARM64_WFIT;
case ENC_WHILEGE_P_P_RR_:
+ case ENC_WHILEGE_PN_RR_:
+ case ENC_WHILEGE_PP_RR_:
return ARM64_WHILEGE;
case ENC_WHILEGT_P_P_RR_:
+ case ENC_WHILEGT_PN_RR_:
+ case ENC_WHILEGT_PP_RR_:
return ARM64_WHILEGT;
case ENC_WHILEHI_P_P_RR_:
+ case ENC_WHILEHI_PN_RR_:
+ case ENC_WHILEHI_PP_RR_:
return ARM64_WHILEHI;
case ENC_WHILEHS_P_P_RR_:
+ case ENC_WHILEHS_PN_RR_:
+ case ENC_WHILEHS_PP_RR_:
return ARM64_WHILEHS;
case ENC_WHILELE_P_P_RR_:
+ case ENC_WHILELE_PN_RR_:
+ case ENC_WHILELE_PP_RR_:
return ARM64_WHILELE;
case ENC_WHILELO_P_P_RR_:
+ case ENC_WHILELO_PN_RR_:
+ case ENC_WHILELO_PP_RR_:
return ARM64_WHILELO;
case ENC_WHILELS_P_P_RR_:
+ case ENC_WHILELS_PN_RR_:
+ case ENC_WHILELS_PP_RR_:
return ARM64_WHILELS;
case ENC_WHILELT_P_P_RR_:
+ case ENC_WHILELT_PN_RR_:
+ case ENC_WHILELT_PP_RR_:
return ARM64_WHILELT;
case ENC_WHILERW_P_RR_:
return ARM64_WHILERW;
@@ -4157,8 +6326,22 @@ enum Operation enc_to_oper(enum ENCODING enc)
// return ARM64_XTN2;
case ENC_YIELD_HI_HINTS:
return ARM64_YIELD;
+ case ENC_ZERO_ZA1_RI_2:
+ case ENC_ZERO_ZA1_RI_4:
+ case ENC_ZERO_ZA2_RI_1:
+ case ENC_ZERO_ZA2_RI_2:
+ case ENC_ZERO_ZA2_RI_4:
+ case ENC_ZERO_ZA4_RI_1:
+ case ENC_ZERO_ZA4_RI_2:
+ case ENC_ZERO_ZA4_RI_4:
case ENC_ZERO_ZA_I_:
+ case ENC_ZERO_ZT_I_:
return ARM64_ZERO;
+ case ENC_ZIP_MZ_Z_4:
+ case ENC_ZIP_MZ_Z_4Q:
+ case ENC_ZIP_MZ_ZZ_2:
+ case ENC_ZIP_MZ_ZZ_2Q:
+ return ARM64_ZIP;
case ENC_ZIP1_ASIMDPERM_ONLY:
case ENC_ZIP1_P_PP_:
case ENC_ZIP1_Z_ZZ_:
@@ -4169,6 +6352,10 @@ enum Operation enc_to_oper(enum ENCODING enc)
case ENC_ZIP2_Z_ZZ_:
case ENC_ZIP2_Z_ZZ_Q:
return ARM64_ZIP2;
+ case ENC_ZIPQ1_Z_ZZ_:
+ return ARM64_ZIPQ1;
+ case ENC_ZIPQ2_Z_ZZ_:
+ return ARM64_ZIPQ2;
default:
return ARM64_ERROR;
}
@@ -4179,11 +6366,20 @@ enum Operation enc_to_oper2(enum ENCODING enc)
switch(enc) {
case ENC_ADDHN_ASIMDDIFF_N:
return ARM64_ADDHN2;
+ case ENC_BF1CVTL_ASIMDMISC_V:
+ return ARM64_BF1CVTL2;
+ case ENC_BF2CVTL_ASIMDMISC_V:
+ return ARM64_BF2CVTL2;
case ENC_BFCVTN_ASIMDMISC_4S:
return ARM64_BFCVTN2;
+ case ENC_F1CVTL_ASIMDMISC_V:
+ return ARM64_F1CVTL2;
+ case ENC_F2CVTL_ASIMDMISC_V:
+ return ARM64_F2CVTL2;
case ENC_FCVTL_ASIMDMISC_L:
return ARM64_FCVTL2;
case ENC_FCVTN_ASIMDMISC_N:
+ case ENC_FCVTN_ASIMDSAME2_H:
return ARM64_FCVTN2;
case ENC_FCVTXN_ASIMDMISC_N:
return ARM64_FCVTXN2;