summaryrefslogtreecommitdiff
path: root/arch/arm64/disassembler/decode2.h
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/decode2.h
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/decode2.h')
-rw-r--r--arch/arm64/disassembler/decode2.h770
1 files changed, 735 insertions, 35 deletions
diff --git a/arch/arm64/disassembler/decode2.h b/arch/arm64/disassembler/decode2.h
index 278df619..0b9ea822 100644
--- a/arch/arm64/disassembler/decode2.h
+++ b/arch/arm64/disassembler/decode2.h
@@ -1,10 +1,12 @@
/* GENERATED FILE */
#pragma once
+int ABS(context *ctx, Instruction *instr);
int ABS_advsimd(context *ctx, Instruction *instr);
int ADC(context *ctx, Instruction *instr);
int ADCS(context *ctx, Instruction *instr);
int ADDG(context *ctx, Instruction *instr);
int ADDHN_advsimd(context *ctx, Instruction *instr);
+int ADDPT(context *ctx, Instruction *instr);
int ADDP_advsimd_pair(context *ctx, Instruction *instr);
int ADDP_advsimd_vec(context *ctx, Instruction *instr);
int ADDS_addsub_ext(context *ctx, Instruction *instr);
@@ -26,6 +28,7 @@ int ANDS_log_shift(context *ctx, Instruction *instr);
int AND_advsimd(context *ctx, Instruction *instr);
int AND_log_imm(context *ctx, Instruction *instr);
int AND_log_shift(context *ctx, Instruction *instr);
+int APAS_SYS(context *ctx, Instruction *instr);
int ASRV(context *ctx, Instruction *instr);
int ASR_ASRV(context *ctx, Instruction *instr);
int ASR_SBFM(context *ctx, Instruction *instr);
@@ -33,9 +36,17 @@ int AT_SYS(context *ctx, Instruction *instr);
int AUTDA(context *ctx, Instruction *instr);
int AUTDB(context *ctx, Instruction *instr);
int AUTIA(context *ctx, Instruction *instr);
+int AUTIA171615(context *ctx, Instruction *instr);
+int AUTIASPPCR(context *ctx, Instruction *instr);
+int AUTIASPPC_imm(context *ctx, Instruction *instr);
int AUTIB(context *ctx, Instruction *instr);
+int AUTIB171615(context *ctx, Instruction *instr);
+int AUTIBSPPCR(context *ctx, Instruction *instr);
+int AUTIBSPPC_imm(context *ctx, Instruction *instr);
int AXFLAG(context *ctx, Instruction *instr);
int BCAX_advsimd(context *ctx, Instruction *instr);
+int BC_cond(context *ctx, Instruction *instr);
+int BF12CVTL_advsimd(context *ctx, Instruction *instr);
int BFCVTN_advsimd(context *ctx, Instruction *instr);
int BFCVT_float(context *ctx, Instruction *instr);
int BFC_BFM(context *ctx, Instruction *instr);
@@ -50,7 +61,6 @@ int BFXIL_BFM(context *ctx, Instruction *instr);
int BICS(context *ctx, Instruction *instr);
int BIC_advsimd_imm(context *ctx, Instruction *instr);
int BIC_advsimd_reg(context *ctx, Instruction *instr);
-int BIC_and_z_zi(context *ctx, Instruction *instr);
int BIC_log_shift(context *ctx, Instruction *instr);
int BIF_advsimd(context *ctx, Instruction *instr);
int BIT_advsimd(context *ctx, Instruction *instr);
@@ -59,6 +69,7 @@ int BLR(context *ctx, Instruction *instr);
int BLRA(context *ctx, Instruction *instr);
int BR(context *ctx, Instruction *instr);
int BRA(context *ctx, Instruction *instr);
+int BRB_SYS(context *ctx, Instruction *instr);
int BRK(context *ctx, Instruction *instr);
int BSL_advsimd(context *ctx, Instruction *instr);
int BTI(context *ctx, Instruction *instr);
@@ -68,16 +79,40 @@ int CAS(context *ctx, Instruction *instr);
int CASB(context *ctx, Instruction *instr);
int CASH(context *ctx, Instruction *instr);
int CASP(context *ctx, Instruction *instr);
+int CASPT(context *ctx, Instruction *instr);
+int CAST(context *ctx, Instruction *instr);
+int CBBLE_regs(context *ctx, Instruction *instr);
+int CBBLO_regs(context *ctx, Instruction *instr);
+int CBBLS_regs(context *ctx, Instruction *instr);
+int CBBLT_regs(context *ctx, Instruction *instr);
+int CBBcc_regs(context *ctx, Instruction *instr);
+int CBGE_imm(context *ctx, Instruction *instr);
+int CBHLE_regs(context *ctx, Instruction *instr);
+int CBHLO_regs(context *ctx, Instruction *instr);
+int CBHLS_regs(context *ctx, Instruction *instr);
+int CBHLT_regs(context *ctx, Instruction *instr);
+int CBHS_imm(context *ctx, Instruction *instr);
+int CBHcc_regs(context *ctx, Instruction *instr);
+int CBLE_imm(context *ctx, Instruction *instr);
+int CBLE_regs(context *ctx, Instruction *instr);
+int CBLO_regs(context *ctx, Instruction *instr);
+int CBLS_imm(context *ctx, Instruction *instr);
+int CBLS_regs(context *ctx, Instruction *instr);
+int CBLT_regs(context *ctx, Instruction *instr);
int CBNZ(context *ctx, Instruction *instr);
int CBZ(context *ctx, Instruction *instr);
+int CBcc_imm(context *ctx, Instruction *instr);
+int CBcc_regs(context *ctx, Instruction *instr);
int CCMN_imm(context *ctx, Instruction *instr);
int CCMN_reg(context *ctx, Instruction *instr);
int CCMP_imm(context *ctx, Instruction *instr);
int CCMP_reg(context *ctx, Instruction *instr);
int CFINV(context *ctx, Instruction *instr);
int CFP_SYS(context *ctx, Instruction *instr);
+int CHKFEAT(context *ctx, Instruction *instr);
int CINC_CSINC(context *ctx, Instruction *instr);
int CINV_CSINV(context *ctx, Instruction *instr);
+int CLRBHB(context *ctx, Instruction *instr);
int CLREX(context *ctx, Instruction *instr);
int CLS_advsimd(context *ctx, Instruction *instr);
int CLS_int(context *ctx, Instruction *instr);
@@ -96,18 +131,48 @@ int CMLT_advsimd(context *ctx, Instruction *instr);
int CMN_ADDS_addsub_ext(context *ctx, Instruction *instr);
int CMN_ADDS_addsub_imm(context *ctx, Instruction *instr);
int CMN_ADDS_addsub_shift(context *ctx, Instruction *instr);
-int CMPLE_cmpeq_p_p_zz(context *ctx, Instruction *instr);
-int CMPLO_cmpeq_p_p_zz(context *ctx, Instruction *instr);
-int CMPLS_cmpeq_p_p_zz(context *ctx, Instruction *instr);
-int CMPLT_cmpeq_p_p_zz(context *ctx, Instruction *instr);
int CMPP_SUBPS(context *ctx, Instruction *instr);
int CMP_SUBS_addsub_ext(context *ctx, Instruction *instr);
int CMP_SUBS_addsub_imm(context *ctx, Instruction *instr);
int CMP_SUBS_addsub_shift(context *ctx, Instruction *instr);
int CMTST_advsimd(context *ctx, Instruction *instr);
int CNEG_CSNEG(context *ctx, Instruction *instr);
+int CNT(context *ctx, Instruction *instr);
int CNT_advsimd(context *ctx, Instruction *instr);
+int COSP_SYS(context *ctx, Instruction *instr);
int CPP_SYS(context *ctx, Instruction *instr);
+int CPYFP(context *ctx, Instruction *instr);
+int CPYFPN(context *ctx, Instruction *instr);
+int CPYFPRN(context *ctx, Instruction *instr);
+int CPYFPRT(context *ctx, Instruction *instr);
+int CPYFPRTN(context *ctx, Instruction *instr);
+int CPYFPRTRN(context *ctx, Instruction *instr);
+int CPYFPRTWN(context *ctx, Instruction *instr);
+int CPYFPT(context *ctx, Instruction *instr);
+int CPYFPTN(context *ctx, Instruction *instr);
+int CPYFPTRN(context *ctx, Instruction *instr);
+int CPYFPTWN(context *ctx, Instruction *instr);
+int CPYFPWN(context *ctx, Instruction *instr);
+int CPYFPWT(context *ctx, Instruction *instr);
+int CPYFPWTN(context *ctx, Instruction *instr);
+int CPYFPWTRN(context *ctx, Instruction *instr);
+int CPYFPWTWN(context *ctx, Instruction *instr);
+int CPYP(context *ctx, Instruction *instr);
+int CPYPN(context *ctx, Instruction *instr);
+int CPYPRN(context *ctx, Instruction *instr);
+int CPYPRT(context *ctx, Instruction *instr);
+int CPYPRTN(context *ctx, Instruction *instr);
+int CPYPRTRN(context *ctx, Instruction *instr);
+int CPYPRTWN(context *ctx, Instruction *instr);
+int CPYPT(context *ctx, Instruction *instr);
+int CPYPTN(context *ctx, Instruction *instr);
+int CPYPTRN(context *ctx, Instruction *instr);
+int CPYPTWN(context *ctx, Instruction *instr);
+int CPYPWN(context *ctx, Instruction *instr);
+int CPYPWT(context *ctx, Instruction *instr);
+int CPYPWTN(context *ctx, Instruction *instr);
+int CPYPWTRN(context *ctx, Instruction *instr);
+int CPYPWTWN(context *ctx, Instruction *instr);
int CRC32(context *ctx, Instruction *instr);
int CRC32C(context *ctx, Instruction *instr);
int CSDB(context *ctx, Instruction *instr);
@@ -117,6 +182,7 @@ int CSET_CSINC(context *ctx, Instruction *instr);
int CSINC(context *ctx, Instruction *instr);
int CSINV(context *ctx, Instruction *instr);
int CSNEG(context *ctx, Instruction *instr);
+int CTZ(context *ctx, Instruction *instr);
int DCPS1(context *ctx, Instruction *instr);
int DCPS2(context *ctx, Instruction *instr);
int DCPS3(context *ctx, Instruction *instr);
@@ -129,7 +195,6 @@ int DUP_advsimd_elt(context *ctx, Instruction *instr);
int DUP_advsimd_gen(context *ctx, Instruction *instr);
int DVP_SYS(context *ctx, Instruction *instr);
int EON(context *ctx, Instruction *instr);
-int EON_eor_z_zi(context *ctx, Instruction *instr);
int EOR3_advsimd(context *ctx, Instruction *instr);
int EOR_advsimd(context *ctx, Instruction *instr);
int EOR_log_imm(context *ctx, Instruction *instr);
@@ -139,17 +204,18 @@ int ERETA(context *ctx, Instruction *instr);
int ESB(context *ctx, Instruction *instr);
int EXTR(context *ctx, Instruction *instr);
int EXT_advsimd(context *ctx, Instruction *instr);
+int F12CVTL_advsimd(context *ctx, Instruction *instr);
int FABD_advsimd(context *ctx, Instruction *instr);
int FABS_advsimd(context *ctx, Instruction *instr);
int FABS_float(context *ctx, Instruction *instr);
int FACGE_advsimd(context *ctx, Instruction *instr);
int FACGT_advsimd(context *ctx, Instruction *instr);
-int FACLE_facge_p_p_zz(context *ctx, Instruction *instr);
-int FACLT_facge_p_p_zz(context *ctx, Instruction *instr);
int FADDP_advsimd_pair(context *ctx, Instruction *instr);
int FADDP_advsimd_vec(context *ctx, Instruction *instr);
int FADD_advsimd(context *ctx, Instruction *instr);
int FADD_float(context *ctx, Instruction *instr);
+int FAMAX_advsimd(context *ctx, Instruction *instr);
+int FAMIN_advsimd(context *ctx, Instruction *instr);
int FCADD_advsimd_vec(context *ctx, Instruction *instr);
int FCCMPE_float(context *ctx, Instruction *instr);
int FCCMP_float(context *ctx, Instruction *instr);
@@ -162,42 +228,56 @@ int FCMGT_advsimd_zero(context *ctx, Instruction *instr);
int FCMLA_advsimd_elt(context *ctx, Instruction *instr);
int FCMLA_advsimd_vec(context *ctx, Instruction *instr);
int FCMLE_advsimd(context *ctx, Instruction *instr);
-int FCMLE_fcmeq_p_p_zz(context *ctx, Instruction *instr);
int FCMLT_advsimd(context *ctx, Instruction *instr);
-int FCMLT_fcmeq_p_p_zz(context *ctx, Instruction *instr);
int FCMPE_float(context *ctx, Instruction *instr);
int FCMP_float(context *ctx, Instruction *instr);
int FCSEL_float(context *ctx, Instruction *instr);
int FCVTAS_advsimd(context *ctx, Instruction *instr);
int FCVTAS_float(context *ctx, Instruction *instr);
+int FCVTAS_sisd(context *ctx, Instruction *instr);
int FCVTAU_advsimd(context *ctx, Instruction *instr);
int FCVTAU_float(context *ctx, Instruction *instr);
+int FCVTAU_sisd(context *ctx, Instruction *instr);
int FCVTL_advsimd(context *ctx, Instruction *instr);
int FCVTMS_advsimd(context *ctx, Instruction *instr);
int FCVTMS_float(context *ctx, Instruction *instr);
+int FCVTMS_sisd(context *ctx, Instruction *instr);
int FCVTMU_advsimd(context *ctx, Instruction *instr);
int FCVTMU_float(context *ctx, Instruction *instr);
+int FCVTMU_sisd(context *ctx, Instruction *instr);
int FCVTNS_advsimd(context *ctx, Instruction *instr);
int FCVTNS_float(context *ctx, Instruction *instr);
+int FCVTNS_sisd(context *ctx, Instruction *instr);
int FCVTNU_advsimd(context *ctx, Instruction *instr);
int FCVTNU_float(context *ctx, Instruction *instr);
+int FCVTNU_sisd(context *ctx, Instruction *instr);
int FCVTN_advsimd(context *ctx, Instruction *instr);
+int FCVTN_advsimd_168(context *ctx, Instruction *instr);
+int FCVTN_advsimd_328(context *ctx, Instruction *instr);
int FCVTPS_advsimd(context *ctx, Instruction *instr);
int FCVTPS_float(context *ctx, Instruction *instr);
+int FCVTPS_sisd(context *ctx, Instruction *instr);
int FCVTPU_advsimd(context *ctx, Instruction *instr);
int FCVTPU_float(context *ctx, Instruction *instr);
+int FCVTPU_sisd(context *ctx, Instruction *instr);
int FCVTXN_advsimd(context *ctx, Instruction *instr);
int FCVTZS_advsimd_fix(context *ctx, Instruction *instr);
int FCVTZS_advsimd_int(context *ctx, Instruction *instr);
int FCVTZS_float_fix(context *ctx, Instruction *instr);
int FCVTZS_float_int(context *ctx, Instruction *instr);
+int FCVTZS_sisd(context *ctx, Instruction *instr);
int FCVTZU_advsimd_fix(context *ctx, Instruction *instr);
int FCVTZU_advsimd_int(context *ctx, Instruction *instr);
int FCVTZU_float_fix(context *ctx, Instruction *instr);
int FCVTZU_float_int(context *ctx, Instruction *instr);
+int FCVTZU_sisd(context *ctx, Instruction *instr);
int FCVT_float(context *ctx, Instruction *instr);
int FDIV_advsimd(context *ctx, Instruction *instr);
int FDIV_float(context *ctx, Instruction *instr);
+int FDOT_advsimd_2wayelem(context *ctx, Instruction *instr);
+int FDOT_advsimd_2wayvec(context *ctx, Instruction *instr);
+int FDOT_advsimd_4wayelem(context *ctx, Instruction *instr);
+int FDOT_advsimd_4wayvec(context *ctx, Instruction *instr);
int FJCVTZS(context *ctx, Instruction *instr);
int FMADD_float(context *ctx, Instruction *instr);
int FMAXNMP_advsimd_pair(context *ctx, Instruction *instr);
@@ -220,6 +300,10 @@ int FMINP_advsimd_vec(context *ctx, Instruction *instr);
int FMINV_advsimd(context *ctx, Instruction *instr);
int FMIN_advsimd(context *ctx, Instruction *instr);
int FMIN_float(context *ctx, Instruction *instr);
+int FMLALB_advsimd_elem(context *ctx, Instruction *instr);
+int FMLALB_advsimd_vec(context *ctx, Instruction *instr);
+int FMLALLBB_advsimd_elem(context *ctx, Instruction *instr);
+int FMLALLBB_advsimd_vec(context *ctx, Instruction *instr);
int FMLAL_advsimd_elt(context *ctx, Instruction *instr);
int FMLAL_advsimd_vec(context *ctx, Instruction *instr);
int FMLA_advsimd_elt(context *ctx, Instruction *instr);
@@ -228,11 +312,9 @@ int FMLSL_advsimd_elt(context *ctx, Instruction *instr);
int FMLSL_advsimd_vec(context *ctx, Instruction *instr);
int FMLS_advsimd_elt(context *ctx, Instruction *instr);
int FMLS_advsimd_vec(context *ctx, Instruction *instr);
+int FMMLA_FP8FP16(context *ctx, Instruction *instr);
+int FMMLA_FP8FP32(context *ctx, Instruction *instr);
int FMOV_advsimd(context *ctx, Instruction *instr);
-int FMOV_cpy_z_p_i(context *ctx, Instruction *instr);
-int FMOV_dup_z_i(context *ctx, Instruction *instr);
-int FMOV_fcpy_z_p_i(context *ctx, Instruction *instr);
-int FMOV_fdup_z_i(context *ctx, Instruction *instr);
int FMOV_float(context *ctx, Instruction *instr);
int FMOV_float_gen(context *ctx, Instruction *instr);
int FMOV_float_imm(context *ctx, Instruction *instr);
@@ -274,10 +356,21 @@ int FRINTZ_advsimd(context *ctx, Instruction *instr);
int FRINTZ_float(context *ctx, Instruction *instr);
int FRSQRTE_advsimd(context *ctx, Instruction *instr);
int FRSQRTS_advsimd(context *ctx, Instruction *instr);
+int FSCALE_advsimd(context *ctx, Instruction *instr);
int FSQRT_advsimd(context *ctx, Instruction *instr);
int FSQRT_float(context *ctx, Instruction *instr);
int FSUB_advsimd(context *ctx, Instruction *instr);
int FSUB_float(context *ctx, Instruction *instr);
+int GCSB(context *ctx, Instruction *instr);
+int GCSPOPCX_SYS(context *ctx, Instruction *instr);
+int GCSPOPM_SYSL(context *ctx, Instruction *instr);
+int GCSPOPX_SYS(context *ctx, Instruction *instr);
+int GCSPUSHM_SYS(context *ctx, Instruction *instr);
+int GCSPUSHX_SYS(context *ctx, Instruction *instr);
+int GCSSS1_SYS(context *ctx, Instruction *instr);
+int GCSSS2_SYSL(context *ctx, Instruction *instr);
+int GCSSTR(context *ctx, Instruction *instr);
+int GCSSTTR(context *ctx, Instruction *instr);
int GMI(context *ctx, Instruction *instr);
int HINT(context *ctx, Instruction *instr);
int HLT(context *ctx, Instruction *instr);
@@ -303,6 +396,7 @@ int LD64B(context *ctx, Instruction *instr);
int LDADD(context *ctx, Instruction *instr);
int LDADDB(context *ctx, Instruction *instr);
int LDADDH(context *ctx, Instruction *instr);
+int LDAP1_advsimd_sngl(context *ctx, Instruction *instr);
int LDAPR(context *ctx, Instruction *instr);
int LDAPRB(context *ctx, Instruction *instr);
int LDAPRH(context *ctx, Instruction *instr);
@@ -311,22 +405,36 @@ int LDAPURH(context *ctx, Instruction *instr);
int LDAPURSB(context *ctx, Instruction *instr);
int LDAPURSH(context *ctx, Instruction *instr);
int LDAPURSW(context *ctx, Instruction *instr);
+int LDAPUR_fpsimd(context *ctx, Instruction *instr);
int LDAPUR_gen(context *ctx, Instruction *instr);
int LDAR(context *ctx, Instruction *instr);
int LDARB(context *ctx, Instruction *instr);
int LDARH(context *ctx, Instruction *instr);
+int LDATXR(context *ctx, Instruction *instr);
int LDAXP(context *ctx, Instruction *instr);
int LDAXR(context *ctx, Instruction *instr);
int LDAXRB(context *ctx, Instruction *instr);
int LDAXRH(context *ctx, Instruction *instr);
+int LDBFADD(context *ctx, Instruction *instr);
+int LDBFMAX(context *ctx, Instruction *instr);
+int LDBFMAXNM(context *ctx, Instruction *instr);
+int LDBFMIN(context *ctx, Instruction *instr);
+int LDBFMINNM(context *ctx, Instruction *instr);
int LDCLR(context *ctx, Instruction *instr);
int LDCLRB(context *ctx, Instruction *instr);
int LDCLRH(context *ctx, Instruction *instr);
+int LDCLRP(context *ctx, Instruction *instr);
int LDEOR(context *ctx, Instruction *instr);
int LDEORB(context *ctx, Instruction *instr);
int LDEORH(context *ctx, Instruction *instr);
+int LDFADD(context *ctx, Instruction *instr);
+int LDFMAX(context *ctx, Instruction *instr);
+int LDFMAXNM(context *ctx, Instruction *instr);
+int LDFMIN(context *ctx, Instruction *instr);
+int LDFMINNM(context *ctx, Instruction *instr);
int LDG(context *ctx, Instruction *instr);
int LDGM(context *ctx, Instruction *instr);
+int LDIAPP(context *ctx, Instruction *instr);
int LDLAR(context *ctx, Instruction *instr);
int LDLARB(context *ctx, Instruction *instr);
int LDLARH(context *ctx, Instruction *instr);
@@ -356,18 +464,27 @@ int LDR_reg_gen(context *ctx, Instruction *instr);
int LDSET(context *ctx, Instruction *instr);
int LDSETB(context *ctx, Instruction *instr);
int LDSETH(context *ctx, Instruction *instr);
+int LDSETP(context *ctx, Instruction *instr);
int LDSMAX(context *ctx, Instruction *instr);
int LDSMAXB(context *ctx, Instruction *instr);
int LDSMAXH(context *ctx, Instruction *instr);
int LDSMIN(context *ctx, Instruction *instr);
int LDSMINB(context *ctx, Instruction *instr);
int LDSMINH(context *ctx, Instruction *instr);
+int LDTADD(context *ctx, Instruction *instr);
+int LDTCLR(context *ctx, Instruction *instr);
+int LDTNP_fpsimd(context *ctx, Instruction *instr);
+int LDTNP_gen(context *ctx, Instruction *instr);
+int LDTP_fpsimd(context *ctx, Instruction *instr);
+int LDTP_gen(context *ctx, Instruction *instr);
int LDTR(context *ctx, Instruction *instr);
int LDTRB(context *ctx, Instruction *instr);
int LDTRH(context *ctx, Instruction *instr);
int LDTRSB(context *ctx, Instruction *instr);
int LDTRSH(context *ctx, Instruction *instr);
int LDTRSW(context *ctx, Instruction *instr);
+int LDTSET(context *ctx, Instruction *instr);
+int LDTXR(context *ctx, Instruction *instr);
int LDUMAX(context *ctx, Instruction *instr);
int LDUMAXB(context *ctx, Instruction *instr);
int LDUMAXH(context *ctx, Instruction *instr);
@@ -391,7 +508,10 @@ int LSL_UBFM(context *ctx, Instruction *instr);
int LSRV(context *ctx, Instruction *instr);
int LSR_LSRV(context *ctx, Instruction *instr);
int LSR_UBFM(context *ctx, Instruction *instr);
+int LUTI2_advsimd(context *ctx, Instruction *instr);
+int LUTI4_advsimd(context *ctx, Instruction *instr);
int MADD(context *ctx, Instruction *instr);
+int MADDPT(context *ctx, Instruction *instr);
int MLA_advsimd_elt(context *ctx, Instruction *instr);
int MLA_advsimd_vec(context *ctx, Instruction *instr);
int MLS_advsimd_elt(context *ctx, Instruction *instr);
@@ -400,8 +520,6 @@ int MNEG_MSUB(context *ctx, Instruction *instr);
int MOVI_advsimd(context *ctx, Instruction *instr);
int MOVK(context *ctx, Instruction *instr);
int MOVN(context *ctx, Instruction *instr);
-int MOVS_ands_p_p_pp(context *ctx, Instruction *instr);
-int MOVS_orrs_p_p_pp(context *ctx, Instruction *instr);
int MOVZ(context *ctx, Instruction *instr);
int MOV_ADD_addsub_imm(context *ctx, Instruction *instr);
int MOV_DUP_advsimd_elt(context *ctx, Instruction *instr);
@@ -413,25 +531,13 @@ int MOV_ORR_advsimd_reg(context *ctx, Instruction *instr);
int MOV_ORR_log_imm(context *ctx, Instruction *instr);
int MOV_ORR_log_shift(context *ctx, Instruction *instr);
int MOV_UMOV_advsimd(context *ctx, Instruction *instr);
-int MOV_and_p_p_pp(context *ctx, Instruction *instr);
-int MOV_cpy_z_o_i(context *ctx, Instruction *instr);
-int MOV_cpy_z_p_i(context *ctx, Instruction *instr);
-int MOV_cpy_z_p_r(context *ctx, Instruction *instr);
-int MOV_cpy_z_p_v(context *ctx, Instruction *instr);
-int MOV_dup_z_i(context *ctx, Instruction *instr);
-int MOV_dup_z_r(context *ctx, Instruction *instr);
-int MOV_dup_z_zi(context *ctx, Instruction *instr);
-int MOV_dupm_z_i(context *ctx, Instruction *instr);
-int MOV_mova_z_p_rza(context *ctx, Instruction *instr);
-int MOV_mova_za_p_rz(context *ctx, Instruction *instr);
-int MOV_orr_p_p_pp(context *ctx, Instruction *instr);
-int MOV_orr_z_zz(context *ctx, Instruction *instr);
-int MOV_sel_p_p_pp(context *ctx, Instruction *instr);
-int MOV_sel_z_p_zz(context *ctx, Instruction *instr);
+int MRRS(context *ctx, Instruction *instr);
int MRS(context *ctx, Instruction *instr);
+int MSRR(context *ctx, Instruction *instr);
int MSR_imm(context *ctx, Instruction *instr);
int MSR_reg(context *ctx, Instruction *instr);
int MSUB(context *ctx, Instruction *instr);
+int MSUBPT(context *ctx, Instruction *instr);
int MUL_MADD(context *ctx, Instruction *instr);
int MUL_advsimd_elt(context *ctx, Instruction *instr);
int MUL_advsimd_vec(context *ctx, Instruction *instr);
@@ -444,12 +550,9 @@ int NEG_advsimd(context *ctx, Instruction *instr);
int NGCS_SBCS(context *ctx, Instruction *instr);
int NGC_SBC(context *ctx, Instruction *instr);
int NOP(context *ctx, Instruction *instr);
-int NOTS_eors_p_p_pp(context *ctx, Instruction *instr);
int NOT_advsimd(context *ctx, Instruction *instr);
-int NOT_eor_p_p_pp(context *ctx, Instruction *instr);
int ORN_advsimd(context *ctx, Instruction *instr);
int ORN_log_shift(context *ctx, Instruction *instr);
-int ORN_orr_z_zi(context *ctx, Instruction *instr);
int ORR_advsimd_imm(context *ctx, Instruction *instr);
int ORR_advsimd_reg(context *ctx, Instruction *instr);
int ORR_log_imm(context *ctx, Instruction *instr);
@@ -458,7 +561,14 @@ int PACDA(context *ctx, Instruction *instr);
int PACDB(context *ctx, Instruction *instr);
int PACGA(context *ctx, Instruction *instr);
int PACIA(context *ctx, Instruction *instr);
+int PACIA171615(context *ctx, Instruction *instr);
+int PACIASPPC(context *ctx, Instruction *instr);
int PACIB(context *ctx, Instruction *instr);
+int PACIB171615(context *ctx, Instruction *instr);
+int PACIBSPPC(context *ctx, Instruction *instr);
+int PACM(context *ctx, Instruction *instr);
+int PACNBIASPPC(context *ctx, Instruction *instr);
+int PACNBIBSPPC(context *ctx, Instruction *instr);
int PMULL_advsimd(context *ctx, Instruction *instr);
int PMUL_advsimd(context *ctx, Instruction *instr);
int PRFM_imm(context *ctx, Instruction *instr);
@@ -471,8 +581,26 @@ int RADDHN_advsimd(context *ctx, Instruction *instr);
int RAX1_advsimd(context *ctx, Instruction *instr);
int RBIT_advsimd(context *ctx, Instruction *instr);
int RBIT_int(context *ctx, Instruction *instr);
+int RCWCAS(context *ctx, Instruction *instr);
+int RCWCASP(context *ctx, Instruction *instr);
+int RCWCLR(context *ctx, Instruction *instr);
+int RCWCLRP(context *ctx, Instruction *instr);
+int RCWSCAS(context *ctx, Instruction *instr);
+int RCWSCASP(context *ctx, Instruction *instr);
+int RCWSCLR(context *ctx, Instruction *instr);
+int RCWSCLRP(context *ctx, Instruction *instr);
+int RCWSET(context *ctx, Instruction *instr);
+int RCWSETP(context *ctx, Instruction *instr);
+int RCWSSET(context *ctx, Instruction *instr);
+int RCWSSETP(context *ctx, Instruction *instr);
+int RCWSSWP(context *ctx, Instruction *instr);
+int RCWSSWPP(context *ctx, Instruction *instr);
+int RCWSWP(context *ctx, Instruction *instr);
+int RCWSWPP(context *ctx, Instruction *instr);
int RET(context *ctx, Instruction *instr);
int RETA(context *ctx, Instruction *instr);
+int RETASPPCR_reg(context *ctx, Instruction *instr);
+int RETASPPC_imm(context *ctx, Instruction *instr);
int REV(context *ctx, Instruction *instr);
int REV16_advsimd(context *ctx, Instruction *instr);
int REV16_int(context *ctx, Instruction *instr);
@@ -484,6 +612,7 @@ int RMIF(context *ctx, Instruction *instr);
int RORV(context *ctx, Instruction *instr);
int ROR_EXTR(context *ctx, Instruction *instr);
int ROR_RORV(context *ctx, Instruction *instr);
+int RPRFM_reg(context *ctx, Instruction *instr);
int RSHRN_advsimd(context *ctx, Instruction *instr);
int RSUBHN_advsimd(context *ctx, Instruction *instr);
int SABAL_advsimd(context *ctx, Instruction *instr);
@@ -505,10 +634,19 @@ int SCVTF_advsimd_fix(context *ctx, Instruction *instr);
int SCVTF_advsimd_int(context *ctx, Instruction *instr);
int SCVTF_float_fix(context *ctx, Instruction *instr);
int SCVTF_float_int(context *ctx, Instruction *instr);
+int SCVTF_sisd(context *ctx, Instruction *instr);
int SDIV(context *ctx, Instruction *instr);
int SDOT_advsimd_elt(context *ctx, Instruction *instr);
int SDOT_advsimd_vec(context *ctx, Instruction *instr);
int SETF(context *ctx, Instruction *instr);
+int SETGP(context *ctx, Instruction *instr);
+int SETGPN(context *ctx, Instruction *instr);
+int SETGPT(context *ctx, Instruction *instr);
+int SETGPTN(context *ctx, Instruction *instr);
+int SETP(context *ctx, Instruction *instr);
+int SETPN(context *ctx, Instruction *instr);
+int SETPT(context *ctx, Instruction *instr);
+int SETPTN(context *ctx, Instruction *instr);
int SEV(context *ctx, Instruction *instr);
int SEVL(context *ctx, Instruction *instr);
int SHA1C_advsimd(context *ctx, Instruction *instr);
@@ -544,10 +682,14 @@ int SMADDL(context *ctx, Instruction *instr);
int SMAXP_advsimd(context *ctx, Instruction *instr);
int SMAXV_advsimd(context *ctx, Instruction *instr);
int SMAX_advsimd(context *ctx, Instruction *instr);
+int SMAX_imm(context *ctx, Instruction *instr);
+int SMAX_reg(context *ctx, Instruction *instr);
int SMC(context *ctx, Instruction *instr);
int SMINP_advsimd(context *ctx, Instruction *instr);
int SMINV_advsimd(context *ctx, Instruction *instr);
int SMIN_advsimd(context *ctx, Instruction *instr);
+int SMIN_imm(context *ctx, Instruction *instr);
+int SMIN_reg(context *ctx, Instruction *instr);
int SMLAL_advsimd_elt(context *ctx, Instruction *instr);
int SMLAL_advsimd_vec(context *ctx, Instruction *instr);
int SMLSL_advsimd_elt(context *ctx, Instruction *instr);
@@ -617,23 +759,37 @@ int ST64BV0(context *ctx, Instruction *instr);
int STADDB_LDADDB(context *ctx, Instruction *instr);
int STADDH_LDADDH(context *ctx, Instruction *instr);
int STADD_LDADD(context *ctx, Instruction *instr);
+int STBFADD(context *ctx, Instruction *instr);
+int STBFMAX(context *ctx, Instruction *instr);
+int STBFMAXNM(context *ctx, Instruction *instr);
+int STBFMIN(context *ctx, Instruction *instr);
+int STBFMINNM(context *ctx, Instruction *instr);
int STCLRB_LDCLRB(context *ctx, Instruction *instr);
int STCLRH_LDCLRH(context *ctx, Instruction *instr);
int STCLR_LDCLR(context *ctx, Instruction *instr);
int STEORB_LDEORB(context *ctx, Instruction *instr);
int STEORH_LDEORH(context *ctx, Instruction *instr);
int STEOR_LDEOR(context *ctx, Instruction *instr);
+int STFADD(context *ctx, Instruction *instr);
+int STFMAX(context *ctx, Instruction *instr);
+int STFMAXNM(context *ctx, Instruction *instr);
+int STFMIN(context *ctx, Instruction *instr);
+int STFMINNM(context *ctx, Instruction *instr);
int STG(context *ctx, Instruction *instr);
int STGM(context *ctx, Instruction *instr);
int STGP(context *ctx, Instruction *instr);
+int STILP(context *ctx, Instruction *instr);
+int STL1_advsimd_sngl(context *ctx, Instruction *instr);
int STLLR(context *ctx, Instruction *instr);
int STLLRB(context *ctx, Instruction *instr);
int STLLRH(context *ctx, Instruction *instr);
int STLR(context *ctx, Instruction *instr);
int STLRB(context *ctx, Instruction *instr);
int STLRH(context *ctx, Instruction *instr);
+int STLTXR(context *ctx, Instruction *instr);
int STLURB(context *ctx, Instruction *instr);
int STLURH(context *ctx, Instruction *instr);
+int STLUR_fpsimd(context *ctx, Instruction *instr);
int STLUR_gen(context *ctx, Instruction *instr);
int STLXP(context *ctx, Instruction *instr);
int STLXR(context *ctx, Instruction *instr);
@@ -654,15 +810,24 @@ int STR_reg_gen(context *ctx, Instruction *instr);
int STSETB_LDSETB(context *ctx, Instruction *instr);
int STSETH_LDSETH(context *ctx, Instruction *instr);
int STSET_LDSET(context *ctx, Instruction *instr);
+int STSHH(context *ctx, Instruction *instr);
int STSMAXB_LDSMAXB(context *ctx, Instruction *instr);
int STSMAXH_LDSMAXH(context *ctx, Instruction *instr);
int STSMAX_LDSMAX(context *ctx, Instruction *instr);
int STSMINB_LDSMINB(context *ctx, Instruction *instr);
int STSMINH_LDSMINH(context *ctx, Instruction *instr);
int STSMIN_LDSMIN(context *ctx, Instruction *instr);
+int STTADD_LDTADD(context *ctx, Instruction *instr);
+int STTCLR_LDTCLR(context *ctx, Instruction *instr);
+int STTNP_fpsimd(context *ctx, Instruction *instr);
+int STTNP_gen(context *ctx, Instruction *instr);
+int STTP_fpsimd(context *ctx, Instruction *instr);
+int STTP_gen(context *ctx, Instruction *instr);
int STTR(context *ctx, Instruction *instr);
int STTRB(context *ctx, Instruction *instr);
int STTRH(context *ctx, Instruction *instr);
+int STTSET_LDTSET(context *ctx, Instruction *instr);
+int STTXR(context *ctx, Instruction *instr);
int STUMAXB_LDUMAXB(context *ctx, Instruction *instr);
int STUMAXH_LDUMAXH(context *ctx, Instruction *instr);
int STUMAX_LDUMAX(context *ctx, Instruction *instr);
@@ -684,6 +849,7 @@ int SUBG(context *ctx, Instruction *instr);
int SUBHN_advsimd(context *ctx, Instruction *instr);
int SUBP(context *ctx, Instruction *instr);
int SUBPS(context *ctx, Instruction *instr);
+int SUBPT(context *ctx, Instruction *instr);
int SUBS_addsub_ext(context *ctx, Instruction *instr);
int SUBS_addsub_imm(context *ctx, Instruction *instr);
int SUBS_addsub_shift(context *ctx, Instruction *instr);
@@ -697,19 +863,24 @@ int SVC(context *ctx, Instruction *instr);
int SWP(context *ctx, Instruction *instr);
int SWPB(context *ctx, Instruction *instr);
int SWPH(context *ctx, Instruction *instr);
+int SWPP(context *ctx, Instruction *instr);
+int SWPT(context *ctx, Instruction *instr);
int SXTB_SBFM(context *ctx, Instruction *instr);
int SXTH_SBFM(context *ctx, Instruction *instr);
int SXTL_SSHLL_advsimd(context *ctx, Instruction *instr);
int SXTW_SBFM(context *ctx, Instruction *instr);
int SYS(context *ctx, Instruction *instr);
int SYSL(context *ctx, Instruction *instr);
+int SYSP(context *ctx, Instruction *instr);
int TBL_advsimd(context *ctx, Instruction *instr);
int TBNZ(context *ctx, Instruction *instr);
int TBX_advsimd(context *ctx, Instruction *instr);
int TBZ(context *ctx, Instruction *instr);
int TCANCEL(context *ctx, Instruction *instr);
int TCOMMIT(context *ctx, Instruction *instr);
+int TLBIP_SYSP(context *ctx, Instruction *instr);
int TLBI_SYS(context *ctx, Instruction *instr);
+int TRCIT_SYS(context *ctx, Instruction *instr);
int TRN1_advsimd(context *ctx, Instruction *instr);
int TRN2_advsimd(context *ctx, Instruction *instr);
int TSB(context *ctx, Instruction *instr);
@@ -733,6 +904,7 @@ int UCVTF_advsimd_fix(context *ctx, Instruction *instr);
int UCVTF_advsimd_int(context *ctx, Instruction *instr);
int UCVTF_float_fix(context *ctx, Instruction *instr);
int UCVTF_float_int(context *ctx, Instruction *instr);
+int UCVTF_sisd(context *ctx, Instruction *instr);
int UDF_perm_undef(context *ctx, Instruction *instr);
int UDIV(context *ctx, Instruction *instr);
int UDOT_advsimd_elt(context *ctx, Instruction *instr);
@@ -743,9 +915,13 @@ int UMADDL(context *ctx, Instruction *instr);
int UMAXP_advsimd(context *ctx, Instruction *instr);
int UMAXV_advsimd(context *ctx, Instruction *instr);
int UMAX_advsimd(context *ctx, Instruction *instr);
+int UMAX_imm(context *ctx, Instruction *instr);
+int UMAX_reg(context *ctx, Instruction *instr);
int UMINP_advsimd(context *ctx, Instruction *instr);
int UMINV_advsimd(context *ctx, Instruction *instr);
int UMIN_advsimd(context *ctx, Instruction *instr);
+int UMIN_imm(context *ctx, Instruction *instr);
+int UMIN_reg(context *ctx, Instruction *instr);
int UMLAL_advsimd_elt(context *ctx, Instruction *instr);
int UMLAL_advsimd_vec(context *ctx, Instruction *instr);
int UMLSL_advsimd_elt(context *ctx, Instruction *instr);
@@ -801,25 +977,39 @@ int ZIP2_advsimd(context *ctx, Instruction *instr);
int abs_z_p_z(context *ctx, Instruction *instr);
int adclb_z_zzz(context *ctx, Instruction *instr);
int adclt_z_zzz(context *ctx, Instruction *instr);
+int add_mz_zzv(context *ctx, Instruction *instr);
int add_z_p_zz(context *ctx, Instruction *instr);
int add_z_zi(context *ctx, Instruction *instr);
int add_z_zz(context *ctx, Instruction *instr);
+int add_za_zw(context *ctx, Instruction *instr);
+int add_za_zzv(context *ctx, Instruction *instr);
+int add_za_zzw(context *ctx, Instruction *instr);
int addha_za_pp_z(context *ctx, Instruction *instr);
int addhnb_z_zz(context *ctx, Instruction *instr);
int addhnt_z_zz(context *ctx, Instruction *instr);
int addp_z_p_zz(context *ctx, Instruction *instr);
int addpl_r_ri(context *ctx, Instruction *instr);
+int addpt_z_p_zz(context *ctx, Instruction *instr);
+int addpt_z_zz(context *ctx, Instruction *instr);
+int addqv_z_p_z(context *ctx, Instruction *instr);
+int addspl_r_ri(context *ctx, Instruction *instr);
+int addsvl_r_ri(context *ctx, Instruction *instr);
int addva_za_pp_z(context *ctx, Instruction *instr);
int addvl_r_ri(context *ctx, Instruction *instr);
int adr_z_az(context *ctx, Instruction *instr);
+int aesd_mz_zzi(context *ctx, Instruction *instr);
int aesd_z_zz(context *ctx, Instruction *instr);
+int aesdimc_mz_zzi(context *ctx, Instruction *instr);
+int aese_mz_zzi(context *ctx, Instruction *instr);
int aese_z_zz(context *ctx, Instruction *instr);
+int aesemc_mz_zzi(context *ctx, Instruction *instr);
int aesimc_z_z(context *ctx, Instruction *instr);
int aesmc_z_z(context *ctx, Instruction *instr);
int and_p_p_pp(context *ctx, Instruction *instr);
int and_z_p_zz(context *ctx, Instruction *instr);
int and_z_zi(context *ctx, Instruction *instr);
int and_z_zz(context *ctx, Instruction *instr);
+int andqv_z_p_z(context *ctx, Instruction *instr);
int ands_p_p_pp(context *ctx, Instruction *instr);
int andv_r_p_z(context *ctx, Instruction *instr);
int asr_z_p_zi(context *ctx, Instruction *instr);
@@ -832,22 +1022,93 @@ int asrr_z_p_zz(context *ctx, Instruction *instr);
int bcax_z_zzz(context *ctx, Instruction *instr);
int bdep_z_zz(context *ctx, Instruction *instr);
int bext_z_zz(context *ctx, Instruction *instr);
+int bf1cvt_mz2_z8(context *ctx, Instruction *instr);
+int bf1cvt_z_z8(context *ctx, Instruction *instr);
+int bf1cvtl_mz2_z8(context *ctx, Instruction *instr);
+int bf1cvtlt_z_z8(context *ctx, Instruction *instr);
+int bfadd_z_p_zz(context *ctx, Instruction *instr);
+int bfadd_z_zz(context *ctx, Instruction *instr);
+int bfadd_za_zw(context *ctx, Instruction *instr);
+int bfclamp_mz_zz(context *ctx, Instruction *instr);
+int bfclamp_z_zz(context *ctx, Instruction *instr);
+int bfcvt_z8_mz2(context *ctx, Instruction *instr);
+int bfcvt_z_mz2(context *ctx, Instruction *instr);
int bfcvt_z_p_z(context *ctx, Instruction *instr);
+int bfcvtn_z8_mz2(context *ctx, Instruction *instr);
+int bfcvtn_z_mz2(context *ctx, Instruction *instr);
int bfcvtnt_z_p_z(context *ctx, Instruction *instr);
int bfdot_z_zzz(context *ctx, Instruction *instr);
int bfdot_z_zzzi(context *ctx, Instruction *instr);
+int bfdot_za_zzi(context *ctx, Instruction *instr);
+int bfdot_za_zzv(context *ctx, Instruction *instr);
+int bfdot_za_zzw(context *ctx, Instruction *instr);
+int bfmax_mz_zzv(context *ctx, Instruction *instr);
+int bfmax_mz_zzw(context *ctx, Instruction *instr);
+int bfmax_z_p_zz(context *ctx, Instruction *instr);
+int bfmaxnm_mz_zzv(context *ctx, Instruction *instr);
+int bfmaxnm_mz_zzw(context *ctx, Instruction *instr);
+int bfmaxnm_z_p_zz(context *ctx, Instruction *instr);
+int bfmin_mz_zzv(context *ctx, Instruction *instr);
+int bfmin_mz_zzw(context *ctx, Instruction *instr);
+int bfmin_z_p_zz(context *ctx, Instruction *instr);
+int bfminnm_mz_zzv(context *ctx, Instruction *instr);
+int bfminnm_mz_zzw(context *ctx, Instruction *instr);
+int bfminnm_z_p_zz(context *ctx, Instruction *instr);
+int bfmla_z_p_zzz(context *ctx, Instruction *instr);
+int bfmla_z_zzzi(context *ctx, Instruction *instr);
+int bfmla_za_zzi(context *ctx, Instruction *instr);
+int bfmla_za_zzv(context *ctx, Instruction *instr);
+int bfmla_za_zzw(context *ctx, Instruction *instr);
+int bfmlal_za_zzi(context *ctx, Instruction *instr);
+int bfmlal_za_zzv(context *ctx, Instruction *instr);
+int bfmlal_za_zzw(context *ctx, Instruction *instr);
int bfmlalb_z_zzz(context *ctx, Instruction *instr);
int bfmlalb_z_zzzi(context *ctx, Instruction *instr);
int bfmlalt_z_zzz(context *ctx, Instruction *instr);
int bfmlalt_z_zzzi(context *ctx, Instruction *instr);
+int bfmls_z_p_zzz(context *ctx, Instruction *instr);
+int bfmls_z_zzzi(context *ctx, Instruction *instr);
+int bfmls_za_zzi(context *ctx, Instruction *instr);
+int bfmls_za_zzv(context *ctx, Instruction *instr);
+int bfmls_za_zzw(context *ctx, Instruction *instr);
+int bfmlsl_za_zzi(context *ctx, Instruction *instr);
+int bfmlsl_za_zzv(context *ctx, Instruction *instr);
+int bfmlsl_za_zzw(context *ctx, Instruction *instr);
+int bfmlslb_z_zzz(context *ctx, Instruction *instr);
+int bfmlslb_z_zzzi(context *ctx, Instruction *instr);
+int bfmlslt_z_zzz(context *ctx, Instruction *instr);
+int bfmlslt_z_zzzi(context *ctx, Instruction *instr);
int bfmmla_z_zzz(context *ctx, Instruction *instr);
+int bfmop4a_za32_zz(context *ctx, Instruction *instr);
+int bfmop4a_za_zz(context *ctx, Instruction *instr);
+int bfmop4s_za32_zz(context *ctx, Instruction *instr);
+int bfmop4s_za_zz(context *ctx, Instruction *instr);
int bfmopa_za32_pp_zz(context *ctx, Instruction *instr);
+int bfmopa_za_pp_zz(context *ctx, Instruction *instr);
int bfmops_za32_pp_zz(context *ctx, Instruction *instr);
+int bfmops_za_pp_zz(context *ctx, Instruction *instr);
+int bfmul_mz_zzv(context *ctx, Instruction *instr);
+int bfmul_mz_zzw(context *ctx, Instruction *instr);
+int bfmul_z_p_zz(context *ctx, Instruction *instr);
+int bfmul_z_zz(context *ctx, Instruction *instr);
+int bfmul_z_zzi(context *ctx, Instruction *instr);
+int bfscale_mz_zzv(context *ctx, Instruction *instr);
+int bfscale_mz_zzw(context *ctx, Instruction *instr);
+int bfscale_z_p_zz(context *ctx, Instruction *instr);
+int bfsub_z_p_zz(context *ctx, Instruction *instr);
+int bfsub_z_zz(context *ctx, Instruction *instr);
+int bfsub_za_zw(context *ctx, Instruction *instr);
+int bftmopa_za32_zzzi(context *ctx, Instruction *instr);
+int bftmopa_za_zzzi(context *ctx, Instruction *instr);
+int bfvdot_za_zzi(context *ctx, Instruction *instr);
int bgrp_z_zz(context *ctx, Instruction *instr);
+int bic_and_z_zi(context *ctx, Instruction *instr);
int bic_p_p_pp(context *ctx, Instruction *instr);
int bic_z_p_zz(context *ctx, Instruction *instr);
int bic_z_zz(context *ctx, Instruction *instr);
int bics_p_p_pp(context *ctx, Instruction *instr);
+int bmopa_za_pp_zz(context *ctx, Instruction *instr);
+int bmops_za_pp_zz(context *ctx, Instruction *instr);
int brka_p_p_p(context *ctx, Instruction *instr);
int brkas_p_p_p(context *ctx, Instruction *instr);
int brkb_p_p_p(context *ctx, Instruction *instr);
@@ -877,10 +1138,15 @@ int cmla_z_zzzi(context *ctx, Instruction *instr);
int cmpeq_p_p_zi(context *ctx, Instruction *instr);
int cmpeq_p_p_zw(context *ctx, Instruction *instr);
int cmpeq_p_p_zz(context *ctx, Instruction *instr);
+int cmple_cmpeq_p_p_zz(context *ctx, Instruction *instr);
+int cmplo_cmpeq_p_p_zz(context *ctx, Instruction *instr);
+int cmpls_cmpeq_p_p_zz(context *ctx, Instruction *instr);
+int cmplt_cmpeq_p_p_zz(context *ctx, Instruction *instr);
int cnot_z_p_z(context *ctx, Instruction *instr);
int cnt_z_p_z(context *ctx, Instruction *instr);
int cntb_r_s(context *ctx, Instruction *instr);
int cntp_r_p_p(context *ctx, Instruction *instr);
+int cntp_r_pn(context *ctx, Instruction *instr);
int compact_z_p_z(context *ctx, Instruction *instr);
int cpy_z_o_i(context *ctx, Instruction *instr);
int cpy_z_p_i(context *ctx, Instruction *instr);
@@ -891,83 +1157,190 @@ int decb_r_rs(context *ctx, Instruction *instr);
int decd_z_zs(context *ctx, Instruction *instr);
int decp_r_p_r(context *ctx, Instruction *instr);
int decp_z_p_z(context *ctx, Instruction *instr);
-int dup_p_p_pi(context *ctx, Instruction *instr);
int dup_z_i(context *ctx, Instruction *instr);
int dup_z_r(context *ctx, Instruction *instr);
int dup_z_zi(context *ctx, Instruction *instr);
int dupm_z_i(context *ctx, Instruction *instr);
+int dupq_z_zi(context *ctx, Instruction *instr);
+int eon_eor_z_zi(context *ctx, Instruction *instr);
int eor3_z_zzz(context *ctx, Instruction *instr);
int eor_p_p_pp(context *ctx, Instruction *instr);
int eor_z_p_zz(context *ctx, Instruction *instr);
int eor_z_zi(context *ctx, Instruction *instr);
int eor_z_zz(context *ctx, Instruction *instr);
int eorbt_z_zz(context *ctx, Instruction *instr);
+int eorqv_z_p_z(context *ctx, Instruction *instr);
int eors_p_p_pp(context *ctx, Instruction *instr);
int eortb_z_zz(context *ctx, Instruction *instr);
int eorv_r_p_z(context *ctx, Instruction *instr);
+int expand_z_p_z(context *ctx, Instruction *instr);
int ext_z_zi(context *ctx, Instruction *instr);
+int extq_z_zi(context *ctx, Instruction *instr);
+int f1cvt_mz2_z8(context *ctx, Instruction *instr);
+int f1cvt_z_z8(context *ctx, Instruction *instr);
+int f1cvtl_mz2_z8(context *ctx, Instruction *instr);
+int f1cvtlt_z_z8(context *ctx, Instruction *instr);
int fabd_z_p_zz(context *ctx, Instruction *instr);
int fabs_z_p_z(context *ctx, Instruction *instr);
int facge_p_p_zz(context *ctx, Instruction *instr);
+int facle_facge_p_p_zz(context *ctx, Instruction *instr);
+int faclt_facge_p_p_zz(context *ctx, Instruction *instr);
int fadd_z_p_zs(context *ctx, Instruction *instr);
int fadd_z_p_zz(context *ctx, Instruction *instr);
int fadd_z_zz(context *ctx, Instruction *instr);
+int fadd_za_zw(context *ctx, Instruction *instr);
int fadda_v_p_z(context *ctx, Instruction *instr);
int faddp_z_p_zz(context *ctx, Instruction *instr);
+int faddqv_z_p_z(context *ctx, Instruction *instr);
int faddv_v_p_z(context *ctx, Instruction *instr);
+int famax_mz_zzw(context *ctx, Instruction *instr);
+int famax_z_p_zz(context *ctx, Instruction *instr);
+int famin_mz_zzw(context *ctx, Instruction *instr);
+int famin_z_p_zz(context *ctx, Instruction *instr);
int fcadd_z_p_zz(context *ctx, Instruction *instr);
+int fclamp_mz_zz(context *ctx, Instruction *instr);
+int fclamp_z_zz(context *ctx, Instruction *instr);
int fcmeq_p_p_z0(context *ctx, Instruction *instr);
int fcmeq_p_p_zz(context *ctx, Instruction *instr);
int fcmla_z_p_zzz(context *ctx, Instruction *instr);
int fcmla_z_zzzi(context *ctx, Instruction *instr);
+int fcmle_fcmeq_p_p_zz(context *ctx, Instruction *instr);
+int fcmlt_fcmeq_p_p_zz(context *ctx, Instruction *instr);
int fcpy_z_p_i(context *ctx, Instruction *instr);
+int fcvt_mz2_z(context *ctx, Instruction *instr);
+int fcvt_z8_mz2(context *ctx, Instruction *instr);
+int fcvt_z8_mz4(context *ctx, Instruction *instr);
+int fcvt_z_mz2(context *ctx, Instruction *instr);
int fcvt_z_p_z(context *ctx, Instruction *instr);
+int fcvtl_mz2_z(context *ctx, Instruction *instr);
int fcvtlt_z_p_z(context *ctx, Instruction *instr);
+int fcvtn_z8_mz2(context *ctx, Instruction *instr);
+int fcvtn_z8_mz4(context *ctx, Instruction *instr);
+int fcvtn_z_mz2(context *ctx, Instruction *instr);
+int fcvtnb_z8_mz2(context *ctx, Instruction *instr);
+int fcvtnt_z8_mz2(context *ctx, Instruction *instr);
int fcvtnt_z_p_z(context *ctx, Instruction *instr);
int fcvtx_z_p_z(context *ctx, Instruction *instr);
int fcvtxnt_z_p_z(context *ctx, Instruction *instr);
+int fcvtzs_mz_z(context *ctx, Instruction *instr);
int fcvtzs_z_p_z(context *ctx, Instruction *instr);
+int fcvtzu_mz_z(context *ctx, Instruction *instr);
int fcvtzu_z_p_z(context *ctx, Instruction *instr);
int fdiv_z_p_zz(context *ctx, Instruction *instr);
int fdivr_z_p_zz(context *ctx, Instruction *instr);
+int fdot_z32_zz8z8(context *ctx, Instruction *instr);
+int fdot_z32_zz8z8i(context *ctx, Instruction *instr);
+int fdot_z_zz8z8(context *ctx, Instruction *instr);
+int fdot_z_zz8z8i(context *ctx, Instruction *instr);
+int fdot_z_zzz(context *ctx, Instruction *instr);
+int fdot_z_zzzi(context *ctx, Instruction *instr);
+int fdot_za32_z8z8i(context *ctx, Instruction *instr);
+int fdot_za32_z8z8v(context *ctx, Instruction *instr);
+int fdot_za32_z8z8w(context *ctx, Instruction *instr);
+int fdot_za_z8z8i(context *ctx, Instruction *instr);
+int fdot_za_z8z8v(context *ctx, Instruction *instr);
+int fdot_za_z8z8w(context *ctx, Instruction *instr);
+int fdot_za_zzi(context *ctx, Instruction *instr);
+int fdot_za_zzv(context *ctx, Instruction *instr);
+int fdot_za_zzw(context *ctx, Instruction *instr);
int fdup_z_i(context *ctx, Instruction *instr);
int fexpa_z_z(context *ctx, Instruction *instr);
+int firstp_r_p_p(context *ctx, Instruction *instr);
int flogb_z_p_z(context *ctx, Instruction *instr);
int fmad_z_p_zzz(context *ctx, Instruction *instr);
+int fmax_mz_zzv(context *ctx, Instruction *instr);
+int fmax_mz_zzw(context *ctx, Instruction *instr);
int fmax_z_p_zs(context *ctx, Instruction *instr);
int fmax_z_p_zz(context *ctx, Instruction *instr);
+int fmaxnm_mz_zzv(context *ctx, Instruction *instr);
+int fmaxnm_mz_zzw(context *ctx, Instruction *instr);
int fmaxnm_z_p_zs(context *ctx, Instruction *instr);
int fmaxnm_z_p_zz(context *ctx, Instruction *instr);
int fmaxnmp_z_p_zz(context *ctx, Instruction *instr);
+int fmaxnmqv_z_p_z(context *ctx, Instruction *instr);
int fmaxnmv_v_p_z(context *ctx, Instruction *instr);
int fmaxp_z_p_zz(context *ctx, Instruction *instr);
+int fmaxqv_z_p_z(context *ctx, Instruction *instr);
int fmaxv_v_p_z(context *ctx, Instruction *instr);
+int fmin_mz_zzv(context *ctx, Instruction *instr);
+int fmin_mz_zzw(context *ctx, Instruction *instr);
int fmin_z_p_zs(context *ctx, Instruction *instr);
int fmin_z_p_zz(context *ctx, Instruction *instr);
+int fminnm_mz_zzv(context *ctx, Instruction *instr);
+int fminnm_mz_zzw(context *ctx, Instruction *instr);
int fminnm_z_p_zs(context *ctx, Instruction *instr);
int fminnm_z_p_zz(context *ctx, Instruction *instr);
int fminnmp_z_p_zz(context *ctx, Instruction *instr);
+int fminnmqv_z_p_z(context *ctx, Instruction *instr);
int fminnmv_v_p_z(context *ctx, Instruction *instr);
int fminp_z_p_zz(context *ctx, Instruction *instr);
+int fminqv_z_p_z(context *ctx, Instruction *instr);
int fminv_v_p_z(context *ctx, Instruction *instr);
int fmla_z_p_zzz(context *ctx, Instruction *instr);
int fmla_z_zzzi(context *ctx, Instruction *instr);
+int fmla_za_zzi(context *ctx, Instruction *instr);
+int fmla_za_zzv(context *ctx, Instruction *instr);
+int fmla_za_zzw(context *ctx, Instruction *instr);
+int fmlal_za_z8z8i(context *ctx, Instruction *instr);
+int fmlal_za_z8z8v(context *ctx, Instruction *instr);
+int fmlal_za_z8z8w(context *ctx, Instruction *instr);
+int fmlal_za_zzi(context *ctx, Instruction *instr);
+int fmlal_za_zzv(context *ctx, Instruction *instr);
+int fmlal_za_zzw(context *ctx, Instruction *instr);
+int fmlalb_z_z8z8z8(context *ctx, Instruction *instr);
+int fmlalb_z_z8z8z8i(context *ctx, Instruction *instr);
int fmlalb_z_zzz(context *ctx, Instruction *instr);
int fmlalb_z_zzzi(context *ctx, Instruction *instr);
+int fmlall_za32_z8z8i(context *ctx, Instruction *instr);
+int fmlall_za32_z8z8v(context *ctx, Instruction *instr);
+int fmlall_za32_z8z8w(context *ctx, Instruction *instr);
+int fmlallbb_z32_z8z8z8(context *ctx, Instruction *instr);
+int fmlallbb_z32_z8z8z8i(context *ctx, Instruction *instr);
+int fmlallbt_z32_z8z8z8(context *ctx, Instruction *instr);
+int fmlallbt_z32_z8z8z8i(context *ctx, Instruction *instr);
+int fmlalltb_z32_z8z8z8(context *ctx, Instruction *instr);
+int fmlalltb_z32_z8z8z8i(context *ctx, Instruction *instr);
+int fmlalltt_z32_z8z8z8(context *ctx, Instruction *instr);
+int fmlalltt_z32_z8z8z8i(context *ctx, Instruction *instr);
+int fmlalt_z_z8z8z8(context *ctx, Instruction *instr);
+int fmlalt_z_z8z8z8i(context *ctx, Instruction *instr);
int fmlalt_z_zzz(context *ctx, Instruction *instr);
int fmlalt_z_zzzi(context *ctx, Instruction *instr);
int fmls_z_p_zzz(context *ctx, Instruction *instr);
int fmls_z_zzzi(context *ctx, Instruction *instr);
+int fmls_za_zzi(context *ctx, Instruction *instr);
+int fmls_za_zzv(context *ctx, Instruction *instr);
+int fmls_za_zzw(context *ctx, Instruction *instr);
+int fmlsl_za_zzi(context *ctx, Instruction *instr);
+int fmlsl_za_zzv(context *ctx, Instruction *instr);
+int fmlsl_za_zzw(context *ctx, Instruction *instr);
int fmlslb_z_zzz(context *ctx, Instruction *instr);
int fmlslb_z_zzzi(context *ctx, Instruction *instr);
int fmlslt_z_zzz(context *ctx, Instruction *instr);
int fmlslt_z_zzzi(context *ctx, Instruction *instr);
+int fmmla_z16_zz8z8(context *ctx, Instruction *instr);
+int fmmla_z32_zz8z8(context *ctx, Instruction *instr);
+int fmmla_z32_zzz(context *ctx, Instruction *instr);
int fmmla_z_zzz(context *ctx, Instruction *instr);
+int fmop4a_za16_z8z8(context *ctx, Instruction *instr);
+int fmop4a_za32_z8z8(context *ctx, Instruction *instr);
+int fmop4a_za32_zz(context *ctx, Instruction *instr);
+int fmop4a_za_zz(context *ctx, Instruction *instr);
+int fmop4s_za32_zz(context *ctx, Instruction *instr);
+int fmop4s_za_zz(context *ctx, Instruction *instr);
+int fmopa_za16_pp_z8z8(context *ctx, Instruction *instr);
+int fmopa_za32_pp_z8z8(context *ctx, Instruction *instr);
int fmopa_za32_pp_zz(context *ctx, Instruction *instr);
int fmopa_za_pp_zz(context *ctx, Instruction *instr);
int fmops_za32_pp_zz(context *ctx, Instruction *instr);
int fmops_za_pp_zz(context *ctx, Instruction *instr);
+int fmov_cpy_z_p_i(context *ctx, Instruction *instr);
+int fmov_dup_z_i(context *ctx, Instruction *instr);
+int fmov_fcpy_z_p_i(context *ctx, Instruction *instr);
+int fmov_fdup_z_i(context *ctx, Instruction *instr);
int fmsb_z_p_zzz(context *ctx, Instruction *instr);
+int fmul_mz_zzv(context *ctx, Instruction *instr);
+int fmul_mz_zzw(context *ctx, Instruction *instr);
int fmul_z_p_zs(context *ctx, Instruction *instr);
int fmul_z_p_zz(context *ctx, Instruction *instr);
int fmul_z_zz(context *ctx, Instruction *instr);
@@ -981,19 +1354,38 @@ int fnmsb_z_p_zzz(context *ctx, Instruction *instr);
int frecpe_z_z(context *ctx, Instruction *instr);
int frecps_z_zz(context *ctx, Instruction *instr);
int frecpx_z_p_z(context *ctx, Instruction *instr);
+int frint32x_z_p_z(context *ctx, Instruction *instr);
+int frint32z_z_p_z(context *ctx, Instruction *instr);
+int frint64x_z_p_z(context *ctx, Instruction *instr);
+int frint64z_z_p_z(context *ctx, Instruction *instr);
+int frinta_mz_z(context *ctx, Instruction *instr);
int frinta_z_p_z(context *ctx, Instruction *instr);
+int frintm_mz_z(context *ctx, Instruction *instr);
+int frintn_mz_z(context *ctx, Instruction *instr);
+int frintp_mz_z(context *ctx, Instruction *instr);
int frsqrte_z_z(context *ctx, Instruction *instr);
int frsqrts_z_zz(context *ctx, Instruction *instr);
+int fscale_mz_zzv(context *ctx, Instruction *instr);
+int fscale_mz_zzw(context *ctx, Instruction *instr);
int fscale_z_p_zz(context *ctx, Instruction *instr);
int fsqrt_z_p_z(context *ctx, Instruction *instr);
int fsub_z_p_zs(context *ctx, Instruction *instr);
int fsub_z_p_zz(context *ctx, Instruction *instr);
int fsub_z_zz(context *ctx, Instruction *instr);
+int fsub_za_zw(context *ctx, Instruction *instr);
int fsubr_z_p_zs(context *ctx, Instruction *instr);
int fsubr_z_p_zz(context *ctx, Instruction *instr);
int ftmad_z_zzi(context *ctx, Instruction *instr);
+int ftmopa_za16_z8z8zi(context *ctx, Instruction *instr);
+int ftmopa_za32_z8z8zi(context *ctx, Instruction *instr);
+int ftmopa_za32_zzzi(context *ctx, Instruction *instr);
+int ftmopa_za_zzzi(context *ctx, Instruction *instr);
int ftsmul_z_zz(context *ctx, Instruction *instr);
int ftssel_z_zz(context *ctx, Instruction *instr);
+int fvdot_za_z8z8i(context *ctx, Instruction *instr);
+int fvdot_za_zzi(context *ctx, Instruction *instr);
+int fvdotb_za32_z8z8i(context *ctx, Instruction *instr);
+int fvdott_za32_z8z8i(context *ctx, Instruction *instr);
int histcnt_z_p_zz(context *ctx, Instruction *instr);
int histseg_z_zz(context *ctx, Instruction *instr);
int incb_r_rs(context *ctx, Instruction *instr);
@@ -1010,21 +1402,35 @@ int lasta_r_p_z(context *ctx, Instruction *instr);
int lasta_v_p_z(context *ctx, Instruction *instr);
int lastb_r_p_z(context *ctx, Instruction *instr);
int lastb_v_p_z(context *ctx, Instruction *instr);
+int lastp_r_p_p(context *ctx, Instruction *instr);
+int ld1b_mz_p_bi(context *ctx, Instruction *instr);
+int ld1b_mz_p_br(context *ctx, Instruction *instr);
+int ld1b_mzx_p_bi(context *ctx, Instruction *instr);
+int ld1b_mzx_p_br(context *ctx, Instruction *instr);
int ld1b_z_p_ai(context *ctx, Instruction *instr);
int ld1b_z_p_bi(context *ctx, Instruction *instr);
int ld1b_z_p_br(context *ctx, Instruction *instr);
int ld1b_z_p_bz(context *ctx, Instruction *instr);
int ld1b_za_p_rrr(context *ctx, Instruction *instr);
+int ld1d_mz_p_bi(context *ctx, Instruction *instr);
+int ld1d_mz_p_br(context *ctx, Instruction *instr);
+int ld1d_mzx_p_bi(context *ctx, Instruction *instr);
+int ld1d_mzx_p_br(context *ctx, Instruction *instr);
int ld1d_z_p_ai(context *ctx, Instruction *instr);
int ld1d_z_p_bi(context *ctx, Instruction *instr);
int ld1d_z_p_br(context *ctx, Instruction *instr);
int ld1d_z_p_bz(context *ctx, Instruction *instr);
int ld1d_za_p_rrr(context *ctx, Instruction *instr);
+int ld1h_mz_p_bi(context *ctx, Instruction *instr);
+int ld1h_mz_p_br(context *ctx, Instruction *instr);
+int ld1h_mzx_p_bi(context *ctx, Instruction *instr);
+int ld1h_mzx_p_br(context *ctx, Instruction *instr);
int ld1h_z_p_ai(context *ctx, Instruction *instr);
int ld1h_z_p_bi(context *ctx, Instruction *instr);
int ld1h_z_p_br(context *ctx, Instruction *instr);
int ld1h_z_p_bz(context *ctx, Instruction *instr);
int ld1h_za_p_rrr(context *ctx, Instruction *instr);
+int ld1q_z_p_ar(context *ctx, Instruction *instr);
int ld1q_za_p_rrr(context *ctx, Instruction *instr);
int ld1rb_z_p_bi(context *ctx, Instruction *instr);
int ld1rd_z_p_bi(context *ctx, Instruction *instr);
@@ -1061,6 +1467,10 @@ int ld1sw_z_p_ai(context *ctx, Instruction *instr);
int ld1sw_z_p_bi(context *ctx, Instruction *instr);
int ld1sw_z_p_br(context *ctx, Instruction *instr);
int ld1sw_z_p_bz(context *ctx, Instruction *instr);
+int ld1w_mz_p_bi(context *ctx, Instruction *instr);
+int ld1w_mz_p_br(context *ctx, Instruction *instr);
+int ld1w_mzx_p_bi(context *ctx, Instruction *instr);
+int ld1w_mzx_p_br(context *ctx, Instruction *instr);
int ld1w_z_p_ai(context *ctx, Instruction *instr);
int ld1w_z_p_bi(context *ctx, Instruction *instr);
int ld1w_z_p_br(context *ctx, Instruction *instr);
@@ -1072,6 +1482,8 @@ int ld2d_z_p_bi(context *ctx, Instruction *instr);
int ld2d_z_p_br(context *ctx, Instruction *instr);
int ld2h_z_p_bi(context *ctx, Instruction *instr);
int ld2h_z_p_br(context *ctx, Instruction *instr);
+int ld2q_z_p_bi(context *ctx, Instruction *instr);
+int ld2q_z_p_br(context *ctx, Instruction *instr);
int ld2w_z_p_bi(context *ctx, Instruction *instr);
int ld2w_z_p_br(context *ctx, Instruction *instr);
int ld3b_z_p_bi(context *ctx, Instruction *instr);
@@ -1080,6 +1492,8 @@ int ld3d_z_p_bi(context *ctx, Instruction *instr);
int ld3d_z_p_br(context *ctx, Instruction *instr);
int ld3h_z_p_bi(context *ctx, Instruction *instr);
int ld3h_z_p_br(context *ctx, Instruction *instr);
+int ld3q_z_p_bi(context *ctx, Instruction *instr);
+int ld3q_z_p_br(context *ctx, Instruction *instr);
int ld3w_z_p_bi(context *ctx, Instruction *instr);
int ld3w_z_p_br(context *ctx, Instruction *instr);
int ld4b_z_p_bi(context *ctx, Instruction *instr);
@@ -1088,6 +1502,8 @@ int ld4d_z_p_bi(context *ctx, Instruction *instr);
int ld4d_z_p_br(context *ctx, Instruction *instr);
int ld4h_z_p_bi(context *ctx, Instruction *instr);
int ld4h_z_p_br(context *ctx, Instruction *instr);
+int ld4q_z_p_bi(context *ctx, Instruction *instr);
+int ld4q_z_p_br(context *ctx, Instruction *instr);
int ld4w_z_p_bi(context *ctx, Instruction *instr);
int ld4w_z_p_br(context *ctx, Instruction *instr);
int ldff1b_z_p_ai(context *ctx, Instruction *instr);
@@ -1118,24 +1534,41 @@ int ldnf1sb_z_p_bi(context *ctx, Instruction *instr);
int ldnf1sh_z_p_bi(context *ctx, Instruction *instr);
int ldnf1sw_z_p_bi(context *ctx, Instruction *instr);
int ldnf1w_z_p_bi(context *ctx, Instruction *instr);
+int ldnt1b_mz_p_bi(context *ctx, Instruction *instr);
+int ldnt1b_mz_p_br(context *ctx, Instruction *instr);
+int ldnt1b_mzx_p_bi(context *ctx, Instruction *instr);
+int ldnt1b_mzx_p_br(context *ctx, Instruction *instr);
int ldnt1b_z_p_ar(context *ctx, Instruction *instr);
int ldnt1b_z_p_bi(context *ctx, Instruction *instr);
int ldnt1b_z_p_br(context *ctx, Instruction *instr);
+int ldnt1d_mz_p_bi(context *ctx, Instruction *instr);
+int ldnt1d_mz_p_br(context *ctx, Instruction *instr);
+int ldnt1d_mzx_p_bi(context *ctx, Instruction *instr);
+int ldnt1d_mzx_p_br(context *ctx, Instruction *instr);
int ldnt1d_z_p_ar(context *ctx, Instruction *instr);
int ldnt1d_z_p_bi(context *ctx, Instruction *instr);
int ldnt1d_z_p_br(context *ctx, Instruction *instr);
+int ldnt1h_mz_p_bi(context *ctx, Instruction *instr);
+int ldnt1h_mz_p_br(context *ctx, Instruction *instr);
+int ldnt1h_mzx_p_bi(context *ctx, Instruction *instr);
+int ldnt1h_mzx_p_br(context *ctx, Instruction *instr);
int ldnt1h_z_p_ar(context *ctx, Instruction *instr);
int ldnt1h_z_p_bi(context *ctx, Instruction *instr);
int ldnt1h_z_p_br(context *ctx, Instruction *instr);
int ldnt1sb_z_p_ar(context *ctx, Instruction *instr);
int ldnt1sh_z_p_ar(context *ctx, Instruction *instr);
int ldnt1sw_z_p_ar(context *ctx, Instruction *instr);
+int ldnt1w_mz_p_bi(context *ctx, Instruction *instr);
+int ldnt1w_mz_p_br(context *ctx, Instruction *instr);
+int ldnt1w_mzx_p_bi(context *ctx, Instruction *instr);
+int ldnt1w_mzx_p_br(context *ctx, Instruction *instr);
int ldnt1w_z_p_ar(context *ctx, Instruction *instr);
int ldnt1w_z_p_bi(context *ctx, Instruction *instr);
int ldnt1w_z_p_br(context *ctx, Instruction *instr);
int ldr_p_bi(context *ctx, Instruction *instr);
int ldr_z_bi(context *ctx, Instruction *instr);
int ldr_za_ri(context *ctx, Instruction *instr);
+int ldr_zt_br(context *ctx, Instruction *instr);
int lsl_z_p_zi(context *ctx, Instruction *instr);
int lsl_z_p_zw(context *ctx, Instruction *instr);
int lsl_z_p_zz(context *ctx, Instruction *instr);
@@ -1148,16 +1581,68 @@ int lsr_z_p_zz(context *ctx, Instruction *instr);
int lsr_z_zi(context *ctx, Instruction *instr);
int lsr_z_zw(context *ctx, Instruction *instr);
int lsrr_z_p_zz(context *ctx, Instruction *instr);
+int luti2_mz2_ztz(context *ctx, Instruction *instr);
+int luti2_mz4_ztz(context *ctx, Instruction *instr);
+int luti2_z_ztz(context *ctx, Instruction *instr);
+int luti2_z_zz(context *ctx, Instruction *instr);
+int luti4_mz2_ztz(context *ctx, Instruction *instr);
+int luti4_mz4_ztmz2(context *ctx, Instruction *instr);
+int luti4_mz4_ztz(context *ctx, Instruction *instr);
+int luti4_z_ztz(context *ctx, Instruction *instr);
+int luti4_z_zz(context *ctx, Instruction *instr);
int mad_z_p_zzz(context *ctx, Instruction *instr);
+int madpt_z_zzz(context *ctx, Instruction *instr);
int match_p_p_zz(context *ctx, Instruction *instr);
int mla_z_p_zzz(context *ctx, Instruction *instr);
int mla_z_zzzi(context *ctx, Instruction *instr);
+int mlapt_z_zzz(context *ctx, Instruction *instr);
int mls_z_p_zzz(context *ctx, Instruction *instr);
int mls_z_zzzi(context *ctx, Instruction *instr);
+int mov_and_p_p_pp(context *ctx, Instruction *instr);
+int mov_cpy_z_o_i(context *ctx, Instruction *instr);
+int mov_cpy_z_p_i(context *ctx, Instruction *instr);
+int mov_cpy_z_p_r(context *ctx, Instruction *instr);
+int mov_cpy_z_p_v(context *ctx, Instruction *instr);
+int mov_dup_z_i(context *ctx, Instruction *instr);
+int mov_dup_z_r(context *ctx, Instruction *instr);
+int mov_dup_z_zi(context *ctx, Instruction *instr);
+int mov_dupm_z_i(context *ctx, Instruction *instr);
+int mov_mova_mz2_za(context *ctx, Instruction *instr);
+int mov_mova_mz4_za(context *ctx, Instruction *instr);
+int mov_mova_mz_za2(context *ctx, Instruction *instr);
+int mov_mova_mz_za4(context *ctx, Instruction *instr);
+int mov_mova_z_p_rza(context *ctx, Instruction *instr);
+int mov_mova_za2_z(context *ctx, Instruction *instr);
+int mov_mova_za4_z(context *ctx, Instruction *instr);
+int mov_mova_za_mz2(context *ctx, Instruction *instr);
+int mov_mova_za_mz4(context *ctx, Instruction *instr);
+int mov_mova_za_p_rz(context *ctx, Instruction *instr);
+int mov_orr_p_p_pp(context *ctx, Instruction *instr);
+int mov_orr_z_zz(context *ctx, Instruction *instr);
+int mov_sel_p_p_pp(context *ctx, Instruction *instr);
+int mov_sel_z_p_zz(context *ctx, Instruction *instr);
+int mova_mz2_za(context *ctx, Instruction *instr);
+int mova_mz4_za(context *ctx, Instruction *instr);
+int mova_mz_za2(context *ctx, Instruction *instr);
+int mova_mz_za4(context *ctx, Instruction *instr);
int mova_z_p_rza(context *ctx, Instruction *instr);
+int mova_za2_z(context *ctx, Instruction *instr);
+int mova_za4_z(context *ctx, Instruction *instr);
+int mova_za_mz2(context *ctx, Instruction *instr);
+int mova_za_mz4(context *ctx, Instruction *instr);
int mova_za_p_rz(context *ctx, Instruction *instr);
+int movaz_mz2_za(context *ctx, Instruction *instr);
+int movaz_mz4_za(context *ctx, Instruction *instr);
+int movaz_mz_za2(context *ctx, Instruction *instr);
+int movaz_mz_za4(context *ctx, Instruction *instr);
+int movaz_z_rza(context *ctx, Instruction *instr);
int movprfx_z_p_z(context *ctx, Instruction *instr);
int movprfx_z_z(context *ctx, Instruction *instr);
+int movs_ands_p_p_pp(context *ctx, Instruction *instr);
+int movs_orrs_p_p_pp(context *ctx, Instruction *instr);
+int movt_r_zt(context *ctx, Instruction *instr);
+int movt_zt_r(context *ctx, Instruction *instr);
+int movt_zt_z(context *ctx, Instruction *instr);
int msb_z_p_zzz(context *ctx, Instruction *instr);
int mul_z_p_zz(context *ctx, Instruction *instr);
int mul_z_zi(context *ctx, Instruction *instr);
@@ -1170,18 +1655,28 @@ int neg_z_p_z(context *ctx, Instruction *instr);
int nmatch_p_p_zz(context *ctx, Instruction *instr);
int nor_p_p_pp(context *ctx, Instruction *instr);
int nors_p_p_pp(context *ctx, Instruction *instr);
+int not_eor_p_p_pp(context *ctx, Instruction *instr);
int not_z_p_z(context *ctx, Instruction *instr);
+int nots_eors_p_p_pp(context *ctx, Instruction *instr);
+int orn_orr_z_zi(context *ctx, Instruction *instr);
int orn_p_p_pp(context *ctx, Instruction *instr);
int orns_p_p_pp(context *ctx, Instruction *instr);
+int orqv_z_p_z(context *ctx, Instruction *instr);
int orr_p_p_pp(context *ctx, Instruction *instr);
int orr_z_p_zz(context *ctx, Instruction *instr);
int orr_z_zi(context *ctx, Instruction *instr);
int orr_z_zz(context *ctx, Instruction *instr);
int orrs_p_p_pp(context *ctx, Instruction *instr);
int orv_r_p_z(context *ctx, Instruction *instr);
+int pext_pn_rr(context *ctx, Instruction *instr);
+int pext_pp_rr(context *ctx, Instruction *instr);
int pfalse_p(context *ctx, Instruction *instr);
int pfirst_p_p_p(context *ctx, Instruction *instr);
+int pmlal_mz_zzzw(context *ctx, Instruction *instr);
+int pmov_p_zi(context *ctx, Instruction *instr);
+int pmov_z_pi(context *ctx, Instruction *instr);
int pmul_z_zz(context *ctx, Instruction *instr);
+int pmull_mz_zzw(context *ctx, Instruction *instr);
int pmullb_z_zz(context *ctx, Instruction *instr);
int pmullt_z_zz(context *ctx, Instruction *instr);
int pnext_p_p_p(context *ctx, Instruction *instr);
@@ -1201,8 +1696,10 @@ int prfw_i_p_ai(context *ctx, Instruction *instr);
int prfw_i_p_bi(context *ctx, Instruction *instr);
int prfw_i_p_br(context *ctx, Instruction *instr);
int prfw_i_p_bz(context *ctx, Instruction *instr);
+int psel_p_ppi(context *ctx, Instruction *instr);
int ptest_p_p(context *ctx, Instruction *instr);
int ptrue_p_s(context *ctx, Instruction *instr);
+int ptrue_pn_i(context *ctx, Instruction *instr);
int ptrues_p_s(context *ctx, Instruction *instr);
int punpkhi_p_p(context *ctx, Instruction *instr);
int raddhnb_z_zz(context *ctx, Instruction *instr);
@@ -1212,6 +1709,7 @@ int rbit_z_p_z(context *ctx, Instruction *instr);
int rdffr_p_f(context *ctx, Instruction *instr);
int rdffr_p_p_f(context *ctx, Instruction *instr);
int rdffrs_p_p_f(context *ctx, Instruction *instr);
+int rdsvl_r_i(context *ctx, Instruction *instr);
int rdvl_r_i(context *ctx, Instruction *instr);
int rev_p_p(context *ctx, Instruction *instr);
int rev_z_z(context *ctx, Instruction *instr);
@@ -1236,12 +1734,23 @@ int saddwb_z_zz(context *ctx, Instruction *instr);
int saddwt_z_zz(context *ctx, Instruction *instr);
int sbclb_z_zzz(context *ctx, Instruction *instr);
int sbclt_z_zzz(context *ctx, Instruction *instr);
+int sclamp_mz_zz(context *ctx, Instruction *instr);
int sclamp_z_zz(context *ctx, Instruction *instr);
+int scvtf_mz_z(context *ctx, Instruction *instr);
int scvtf_z_p_z(context *ctx, Instruction *instr);
int sdiv_z_p_zz(context *ctx, Instruction *instr);
int sdivr_z_p_zz(context *ctx, Instruction *instr);
+int sdot_z32_zzz(context *ctx, Instruction *instr);
+int sdot_z32_zzzi(context *ctx, Instruction *instr);
int sdot_z_zzz(context *ctx, Instruction *instr);
int sdot_z_zzzi(context *ctx, Instruction *instr);
+int sdot_za32_zzi(context *ctx, Instruction *instr);
+int sdot_za32_zzv(context *ctx, Instruction *instr);
+int sdot_za32_zzw(context *ctx, Instruction *instr);
+int sdot_za_zzi(context *ctx, Instruction *instr);
+int sdot_za_zzv(context *ctx, Instruction *instr);
+int sdot_za_zzw(context *ctx, Instruction *instr);
+int sel_mz_p_zz(context *ctx, Instruction *instr);
int sel_p_p_pp(context *ctx, Instruction *instr);
int sel_z_p_zz(context *ctx, Instruction *instr);
int setffr_f(context *ctx, Instruction *instr);
@@ -1254,24 +1763,48 @@ int shsubr_z_p_zz(context *ctx, Instruction *instr);
int sli_z_zzi(context *ctx, Instruction *instr);
int sm4e_z_zz(context *ctx, Instruction *instr);
int sm4ekey_z_zz(context *ctx, Instruction *instr);
+int smax_mz_zzv(context *ctx, Instruction *instr);
+int smax_mz_zzw(context *ctx, Instruction *instr);
int smax_z_p_zz(context *ctx, Instruction *instr);
int smax_z_zi(context *ctx, Instruction *instr);
int smaxp_z_p_zz(context *ctx, Instruction *instr);
+int smaxqv_z_p_z(context *ctx, Instruction *instr);
int smaxv_r_p_z(context *ctx, Instruction *instr);
+int smin_mz_zzv(context *ctx, Instruction *instr);
+int smin_mz_zzw(context *ctx, Instruction *instr);
int smin_z_p_zz(context *ctx, Instruction *instr);
int smin_z_zi(context *ctx, Instruction *instr);
int sminp_z_p_zz(context *ctx, Instruction *instr);
+int sminqv_z_p_z(context *ctx, Instruction *instr);
int sminv_r_p_z(context *ctx, Instruction *instr);
+int smlal_za_zzi(context *ctx, Instruction *instr);
+int smlal_za_zzv(context *ctx, Instruction *instr);
+int smlal_za_zzw(context *ctx, Instruction *instr);
int smlalb_z_zzz(context *ctx, Instruction *instr);
int smlalb_z_zzzi(context *ctx, Instruction *instr);
+int smlall_za_zzi(context *ctx, Instruction *instr);
+int smlall_za_zzv(context *ctx, Instruction *instr);
+int smlall_za_zzw(context *ctx, Instruction *instr);
int smlalt_z_zzz(context *ctx, Instruction *instr);
int smlalt_z_zzzi(context *ctx, Instruction *instr);
+int smlsl_za_zzi(context *ctx, Instruction *instr);
+int smlsl_za_zzv(context *ctx, Instruction *instr);
+int smlsl_za_zzw(context *ctx, Instruction *instr);
int smlslb_z_zzz(context *ctx, Instruction *instr);
int smlslb_z_zzzi(context *ctx, Instruction *instr);
+int smlsll_za_zzi(context *ctx, Instruction *instr);
+int smlsll_za_zzv(context *ctx, Instruction *instr);
+int smlsll_za_zzw(context *ctx, Instruction *instr);
int smlslt_z_zzz(context *ctx, Instruction *instr);
int smlslt_z_zzzi(context *ctx, Instruction *instr);
int smmla_z_zzz(context *ctx, Instruction *instr);
+int smop4a_za32_zz(context *ctx, Instruction *instr);
+int smop4a_za_zz(context *ctx, Instruction *instr);
+int smop4s_za32_zz(context *ctx, Instruction *instr);
+int smop4s_za_zz(context *ctx, Instruction *instr);
+int smopa_za32_pp_zz(context *ctx, Instruction *instr);
int smopa_za_pp_zz(context *ctx, Instruction *instr);
+int smops_za32_pp_zz(context *ctx, Instruction *instr);
int smops_za_pp_zz(context *ctx, Instruction *instr);
int smulh_z_p_zz(context *ctx, Instruction *instr);
int smulh_z_zz(context *ctx, Instruction *instr);
@@ -1285,6 +1818,14 @@ int sqadd_z_p_zz(context *ctx, Instruction *instr);
int sqadd_z_zi(context *ctx, Instruction *instr);
int sqadd_z_zz(context *ctx, Instruction *instr);
int sqcadd_z_zz(context *ctx, Instruction *instr);
+int sqcvt_z_mz2(context *ctx, Instruction *instr);
+int sqcvt_z_mz4(context *ctx, Instruction *instr);
+int sqcvtn_z_mz2(context *ctx, Instruction *instr);
+int sqcvtn_z_mz4(context *ctx, Instruction *instr);
+int sqcvtu_z_mz2(context *ctx, Instruction *instr);
+int sqcvtu_z_mz4(context *ctx, Instruction *instr);
+int sqcvtun_z_mz2(context *ctx, Instruction *instr);
+int sqcvtun_z_mz4(context *ctx, Instruction *instr);
int sqdecb_r_rs(context *ctx, Instruction *instr);
int sqdecd_r_rs(context *ctx, Instruction *instr);
int sqdecd_z_zs(context *ctx, Instruction *instr);
@@ -1304,6 +1845,8 @@ int sqdmlslb_z_zzzi(context *ctx, Instruction *instr);
int sqdmlslbt_z_zzz(context *ctx, Instruction *instr);
int sqdmlslt_z_zzz(context *ctx, Instruction *instr);
int sqdmlslt_z_zzzi(context *ctx, Instruction *instr);
+int sqdmulh_mz_zzv(context *ctx, Instruction *instr);
+int sqdmulh_mz_zzw(context *ctx, Instruction *instr);
int sqdmulh_z_zz(context *ctx, Instruction *instr);
int sqdmulh_z_zzi(context *ctx, Instruction *instr);
int sqdmullb_z_zz(context *ctx, Instruction *instr);
@@ -1330,8 +1873,16 @@ int sqrdmulh_z_zz(context *ctx, Instruction *instr);
int sqrdmulh_z_zzi(context *ctx, Instruction *instr);
int sqrshl_z_p_zz(context *ctx, Instruction *instr);
int sqrshlr_z_p_zz(context *ctx, Instruction *instr);
+int sqrshr_z_mz2(context *ctx, Instruction *instr);
+int sqrshr_z_mz4(context *ctx, Instruction *instr);
+int sqrshrn_z_mz2(context *ctx, Instruction *instr);
+int sqrshrn_z_mz4(context *ctx, Instruction *instr);
int sqrshrnb_z_zi(context *ctx, Instruction *instr);
int sqrshrnt_z_zi(context *ctx, Instruction *instr);
+int sqrshru_z_mz2(context *ctx, Instruction *instr);
+int sqrshru_z_mz4(context *ctx, Instruction *instr);
+int sqrshrun_z_mz2(context *ctx, Instruction *instr);
+int sqrshrun_z_mz4(context *ctx, Instruction *instr);
int sqrshrunb_z_zi(context *ctx, Instruction *instr);
int sqrshrunt_z_zi(context *ctx, Instruction *instr);
int sqshl_z_p_zi(context *ctx, Instruction *instr);
@@ -1352,6 +1903,8 @@ int sqxtunb_z_zz(context *ctx, Instruction *instr);
int sqxtunt_z_zz(context *ctx, Instruction *instr);
int srhadd_z_p_zz(context *ctx, Instruction *instr);
int sri_z_zzi(context *ctx, Instruction *instr);
+int srshl_mz_zzv(context *ctx, Instruction *instr);
+int srshl_mz_zzw(context *ctx, Instruction *instr);
int srshl_z_p_zz(context *ctx, Instruction *instr);
int srshlr_z_p_zz(context *ctx, Instruction *instr);
int srshr_z_p_zi(context *ctx, Instruction *instr);
@@ -1365,22 +1918,39 @@ int ssublt_z_zz(context *ctx, Instruction *instr);
int ssubltb_z_zz(context *ctx, Instruction *instr);
int ssubwb_z_zz(context *ctx, Instruction *instr);
int ssubwt_z_zz(context *ctx, Instruction *instr);
+int st1b_mz_p_bi(context *ctx, Instruction *instr);
+int st1b_mz_p_br(context *ctx, Instruction *instr);
+int st1b_mzx_p_bi(context *ctx, Instruction *instr);
+int st1b_mzx_p_br(context *ctx, Instruction *instr);
int st1b_z_p_ai(context *ctx, Instruction *instr);
int st1b_z_p_bi(context *ctx, Instruction *instr);
int st1b_z_p_br(context *ctx, Instruction *instr);
int st1b_z_p_bz(context *ctx, Instruction *instr);
int st1b_za_p_rrr(context *ctx, Instruction *instr);
+int st1d_mz_p_bi(context *ctx, Instruction *instr);
+int st1d_mz_p_br(context *ctx, Instruction *instr);
+int st1d_mzx_p_bi(context *ctx, Instruction *instr);
+int st1d_mzx_p_br(context *ctx, Instruction *instr);
int st1d_z_p_ai(context *ctx, Instruction *instr);
int st1d_z_p_bi(context *ctx, Instruction *instr);
int st1d_z_p_br(context *ctx, Instruction *instr);
int st1d_z_p_bz(context *ctx, Instruction *instr);
int st1d_za_p_rrr(context *ctx, Instruction *instr);
+int st1h_mz_p_bi(context *ctx, Instruction *instr);
+int st1h_mz_p_br(context *ctx, Instruction *instr);
+int st1h_mzx_p_bi(context *ctx, Instruction *instr);
+int st1h_mzx_p_br(context *ctx, Instruction *instr);
int st1h_z_p_ai(context *ctx, Instruction *instr);
int st1h_z_p_bi(context *ctx, Instruction *instr);
int st1h_z_p_br(context *ctx, Instruction *instr);
int st1h_z_p_bz(context *ctx, Instruction *instr);
int st1h_za_p_rrr(context *ctx, Instruction *instr);
+int st1q_z_p_ar(context *ctx, Instruction *instr);
int st1q_za_p_rrr(context *ctx, Instruction *instr);
+int st1w_mz_p_bi(context *ctx, Instruction *instr);
+int st1w_mz_p_br(context *ctx, Instruction *instr);
+int st1w_mzx_p_bi(context *ctx, Instruction *instr);
+int st1w_mzx_p_br(context *ctx, Instruction *instr);
int st1w_z_p_ai(context *ctx, Instruction *instr);
int st1w_z_p_bi(context *ctx, Instruction *instr);
int st1w_z_p_br(context *ctx, Instruction *instr);
@@ -1392,6 +1962,8 @@ int st2d_z_p_bi(context *ctx, Instruction *instr);
int st2d_z_p_br(context *ctx, Instruction *instr);
int st2h_z_p_bi(context *ctx, Instruction *instr);
int st2h_z_p_br(context *ctx, Instruction *instr);
+int st2q_z_p_bi(context *ctx, Instruction *instr);
+int st2q_z_p_br(context *ctx, Instruction *instr);
int st2w_z_p_bi(context *ctx, Instruction *instr);
int st2w_z_p_br(context *ctx, Instruction *instr);
int st3b_z_p_bi(context *ctx, Instruction *instr);
@@ -1400,6 +1972,8 @@ int st3d_z_p_bi(context *ctx, Instruction *instr);
int st3d_z_p_br(context *ctx, Instruction *instr);
int st3h_z_p_bi(context *ctx, Instruction *instr);
int st3h_z_p_br(context *ctx, Instruction *instr);
+int st3q_z_p_bi(context *ctx, Instruction *instr);
+int st3q_z_p_br(context *ctx, Instruction *instr);
int st3w_z_p_bi(context *ctx, Instruction *instr);
int st3w_z_p_br(context *ctx, Instruction *instr);
int st4b_z_p_bi(context *ctx, Instruction *instr);
@@ -1408,38 +1982,77 @@ int st4d_z_p_bi(context *ctx, Instruction *instr);
int st4d_z_p_br(context *ctx, Instruction *instr);
int st4h_z_p_bi(context *ctx, Instruction *instr);
int st4h_z_p_br(context *ctx, Instruction *instr);
+int st4q_z_p_bi(context *ctx, Instruction *instr);
+int st4q_z_p_br(context *ctx, Instruction *instr);
int st4w_z_p_bi(context *ctx, Instruction *instr);
int st4w_z_p_br(context *ctx, Instruction *instr);
+int stmopa_za32_zzzi(context *ctx, Instruction *instr);
+int stmopa_za_zzzi(context *ctx, Instruction *instr);
+int stnt1b_mz_p_bi(context *ctx, Instruction *instr);
+int stnt1b_mz_p_br(context *ctx, Instruction *instr);
+int stnt1b_mzx_p_bi(context *ctx, Instruction *instr);
+int stnt1b_mzx_p_br(context *ctx, Instruction *instr);
int stnt1b_z_p_ar(context *ctx, Instruction *instr);
int stnt1b_z_p_bi(context *ctx, Instruction *instr);
int stnt1b_z_p_br(context *ctx, Instruction *instr);
+int stnt1d_mz_p_bi(context *ctx, Instruction *instr);
+int stnt1d_mz_p_br(context *ctx, Instruction *instr);
+int stnt1d_mzx_p_bi(context *ctx, Instruction *instr);
+int stnt1d_mzx_p_br(context *ctx, Instruction *instr);
int stnt1d_z_p_ar(context *ctx, Instruction *instr);
int stnt1d_z_p_bi(context *ctx, Instruction *instr);
int stnt1d_z_p_br(context *ctx, Instruction *instr);
+int stnt1h_mz_p_bi(context *ctx, Instruction *instr);
+int stnt1h_mz_p_br(context *ctx, Instruction *instr);
+int stnt1h_mzx_p_bi(context *ctx, Instruction *instr);
+int stnt1h_mzx_p_br(context *ctx, Instruction *instr);
int stnt1h_z_p_ar(context *ctx, Instruction *instr);
int stnt1h_z_p_bi(context *ctx, Instruction *instr);
int stnt1h_z_p_br(context *ctx, Instruction *instr);
+int stnt1w_mz_p_bi(context *ctx, Instruction *instr);
+int stnt1w_mz_p_br(context *ctx, Instruction *instr);
+int stnt1w_mzx_p_bi(context *ctx, Instruction *instr);
+int stnt1w_mzx_p_br(context *ctx, Instruction *instr);
int stnt1w_z_p_ar(context *ctx, Instruction *instr);
int stnt1w_z_p_bi(context *ctx, Instruction *instr);
int stnt1w_z_p_br(context *ctx, Instruction *instr);
int str_p_bi(context *ctx, Instruction *instr);
int str_z_bi(context *ctx, Instruction *instr);
int str_za_ri(context *ctx, Instruction *instr);
+int str_zt_br(context *ctx, Instruction *instr);
int sub_z_p_zz(context *ctx, Instruction *instr);
int sub_z_zi(context *ctx, Instruction *instr);
int sub_z_zz(context *ctx, Instruction *instr);
+int sub_za_zw(context *ctx, Instruction *instr);
+int sub_za_zzv(context *ctx, Instruction *instr);
+int sub_za_zzw(context *ctx, Instruction *instr);
int subhnb_z_zz(context *ctx, Instruction *instr);
int subhnt_z_zz(context *ctx, Instruction *instr);
+int subpt_z_p_zz(context *ctx, Instruction *instr);
+int subpt_z_zz(context *ctx, Instruction *instr);
int subr_z_p_zz(context *ctx, Instruction *instr);
int subr_z_zi(context *ctx, Instruction *instr);
int sudot_z_zzzi(context *ctx, Instruction *instr);
+int sudot_za_zzi(context *ctx, Instruction *instr);
+int sudot_za_zzv(context *ctx, Instruction *instr);
+int sumlall_za_zzi(context *ctx, Instruction *instr);
+int sumlall_za_zzv(context *ctx, Instruction *instr);
+int sumop4a_za_zz(context *ctx, Instruction *instr);
+int sumop4s_za_zz(context *ctx, Instruction *instr);
int sumopa_za_pp_zz(context *ctx, Instruction *instr);
int sumops_za_pp_zz(context *ctx, Instruction *instr);
+int sunpk_mz_z(context *ctx, Instruction *instr);
int sunpkhi_z_z(context *ctx, Instruction *instr);
int suqadd_z_p_zz(context *ctx, Instruction *instr);
+int sutmopa_za_zzzi(context *ctx, Instruction *instr);
+int suvdot_za_zzi(context *ctx, Instruction *instr);
+int svdot_za32_zzi(context *ctx, Instruction *instr);
+int svdot_za_zzi(context *ctx, Instruction *instr);
int sxtb_z_p_z(context *ctx, Instruction *instr);
int tbl_z_zz(context *ctx, Instruction *instr);
+int tblq_z_zz(context *ctx, Instruction *instr);
int tbx_z_zz(context *ctx, Instruction *instr);
+int tbxq_z_zz(context *ctx, Instruction *instr);
int trn1_p_pp(context *ctx, Instruction *instr);
int trn1_z_zz(context *ctx, Instruction *instr);
int uaba_z_zzz(context *ctx, Instruction *instr);
@@ -1454,33 +2067,67 @@ int uaddlt_z_zz(context *ctx, Instruction *instr);
int uaddv_r_p_z(context *ctx, Instruction *instr);
int uaddwb_z_zz(context *ctx, Instruction *instr);
int uaddwt_z_zz(context *ctx, Instruction *instr);
+int uclamp_mz_zz(context *ctx, Instruction *instr);
int uclamp_z_zz(context *ctx, Instruction *instr);
+int ucvtf_mz_z(context *ctx, Instruction *instr);
int ucvtf_z_p_z(context *ctx, Instruction *instr);
int udiv_z_p_zz(context *ctx, Instruction *instr);
int udivr_z_p_zz(context *ctx, Instruction *instr);
+int udot_z32_zzz(context *ctx, Instruction *instr);
+int udot_z32_zzzi(context *ctx, Instruction *instr);
int udot_z_zzz(context *ctx, Instruction *instr);
int udot_z_zzzi(context *ctx, Instruction *instr);
+int udot_za32_zzi(context *ctx, Instruction *instr);
+int udot_za32_zzv(context *ctx, Instruction *instr);
+int udot_za32_zzw(context *ctx, Instruction *instr);
+int udot_za_zzi(context *ctx, Instruction *instr);
+int udot_za_zzv(context *ctx, Instruction *instr);
+int udot_za_zzw(context *ctx, Instruction *instr);
int uhadd_z_p_zz(context *ctx, Instruction *instr);
int uhsub_z_p_zz(context *ctx, Instruction *instr);
int uhsubr_z_p_zz(context *ctx, Instruction *instr);
+int umax_mz_zzv(context *ctx, Instruction *instr);
+int umax_mz_zzw(context *ctx, Instruction *instr);
int umax_z_p_zz(context *ctx, Instruction *instr);
int umax_z_zi(context *ctx, Instruction *instr);
int umaxp_z_p_zz(context *ctx, Instruction *instr);
+int umaxqv_z_p_z(context *ctx, Instruction *instr);
int umaxv_r_p_z(context *ctx, Instruction *instr);
+int umin_mz_zzv(context *ctx, Instruction *instr);
+int umin_mz_zzw(context *ctx, Instruction *instr);
int umin_z_p_zz(context *ctx, Instruction *instr);
int umin_z_zi(context *ctx, Instruction *instr);
int uminp_z_p_zz(context *ctx, Instruction *instr);
+int uminqv_z_p_z(context *ctx, Instruction *instr);
int uminv_r_p_z(context *ctx, Instruction *instr);
+int umlal_za_zzi(context *ctx, Instruction *instr);
+int umlal_za_zzv(context *ctx, Instruction *instr);
+int umlal_za_zzw(context *ctx, Instruction *instr);
int umlalb_z_zzz(context *ctx, Instruction *instr);
int umlalb_z_zzzi(context *ctx, Instruction *instr);
+int umlall_za_zzi(context *ctx, Instruction *instr);
+int umlall_za_zzv(context *ctx, Instruction *instr);
+int umlall_za_zzw(context *ctx, Instruction *instr);
int umlalt_z_zzz(context *ctx, Instruction *instr);
int umlalt_z_zzzi(context *ctx, Instruction *instr);
+int umlsl_za_zzi(context *ctx, Instruction *instr);
+int umlsl_za_zzv(context *ctx, Instruction *instr);
+int umlsl_za_zzw(context *ctx, Instruction *instr);
int umlslb_z_zzz(context *ctx, Instruction *instr);
int umlslb_z_zzzi(context *ctx, Instruction *instr);
+int umlsll_za_zzi(context *ctx, Instruction *instr);
+int umlsll_za_zzv(context *ctx, Instruction *instr);
+int umlsll_za_zzw(context *ctx, Instruction *instr);
int umlslt_z_zzz(context *ctx, Instruction *instr);
int umlslt_z_zzzi(context *ctx, Instruction *instr);
int ummla_z_zzz(context *ctx, Instruction *instr);
+int umop4a_za32_zz(context *ctx, Instruction *instr);
+int umop4a_za_zz(context *ctx, Instruction *instr);
+int umop4s_za32_zz(context *ctx, Instruction *instr);
+int umop4s_za_zz(context *ctx, Instruction *instr);
+int umopa_za32_pp_zz(context *ctx, Instruction *instr);
int umopa_za_pp_zz(context *ctx, Instruction *instr);
+int umops_za32_pp_zz(context *ctx, Instruction *instr);
int umops_za_pp_zz(context *ctx, Instruction *instr);
int umulh_z_p_zz(context *ctx, Instruction *instr);
int umulh_z_zz(context *ctx, Instruction *instr);
@@ -1491,6 +2138,10 @@ int umullt_z_zzi(context *ctx, Instruction *instr);
int uqadd_z_p_zz(context *ctx, Instruction *instr);
int uqadd_z_zi(context *ctx, Instruction *instr);
int uqadd_z_zz(context *ctx, Instruction *instr);
+int uqcvt_z_mz2(context *ctx, Instruction *instr);
+int uqcvt_z_mz4(context *ctx, Instruction *instr);
+int uqcvtn_z_mz2(context *ctx, Instruction *instr);
+int uqcvtn_z_mz4(context *ctx, Instruction *instr);
int uqdecb_r_rs(context *ctx, Instruction *instr);
int uqdecd_r_rs(context *ctx, Instruction *instr);
int uqdecd_z_zs(context *ctx, Instruction *instr);
@@ -1511,6 +2162,10 @@ int uqincw_r_rs(context *ctx, Instruction *instr);
int uqincw_z_zs(context *ctx, Instruction *instr);
int uqrshl_z_p_zz(context *ctx, Instruction *instr);
int uqrshlr_z_p_zz(context *ctx, Instruction *instr);
+int uqrshr_z_mz2(context *ctx, Instruction *instr);
+int uqrshr_z_mz4(context *ctx, Instruction *instr);
+int uqrshrn_z_mz2(context *ctx, Instruction *instr);
+int uqrshrn_z_mz4(context *ctx, Instruction *instr);
int uqrshrnb_z_zi(context *ctx, Instruction *instr);
int uqrshrnt_z_zi(context *ctx, Instruction *instr);
int uqshl_z_p_zi(context *ctx, Instruction *instr);
@@ -1526,6 +2181,8 @@ int uqxtnb_z_zz(context *ctx, Instruction *instr);
int uqxtnt_z_zz(context *ctx, Instruction *instr);
int urecpe_z_p_z(context *ctx, Instruction *instr);
int urhadd_z_p_zz(context *ctx, Instruction *instr);
+int urshl_mz_zzv(context *ctx, Instruction *instr);
+int urshl_mz_zzw(context *ctx, Instruction *instr);
int urshl_z_p_zz(context *ctx, Instruction *instr);
int urshlr_z_p_zz(context *ctx, Instruction *instr);
int urshr_z_p_zi(context *ctx, Instruction *instr);
@@ -1533,33 +2190,76 @@ int ursqrte_z_p_z(context *ctx, Instruction *instr);
int ursra_z_zi(context *ctx, Instruction *instr);
int usdot_z_zzz(context *ctx, Instruction *instr);
int usdot_z_zzzi(context *ctx, Instruction *instr);
+int usdot_za_zzi(context *ctx, Instruction *instr);
+int usdot_za_zzv(context *ctx, Instruction *instr);
+int usdot_za_zzw(context *ctx, Instruction *instr);
int ushllb_z_zi(context *ctx, Instruction *instr);
int ushllt_z_zi(context *ctx, Instruction *instr);
+int usmlall_za_zzi(context *ctx, Instruction *instr);
+int usmlall_za_zzv(context *ctx, Instruction *instr);
+int usmlall_za_zzw(context *ctx, Instruction *instr);
int usmmla_z_zzz(context *ctx, Instruction *instr);
+int usmop4a_za_zz(context *ctx, Instruction *instr);
+int usmop4s_za_zz(context *ctx, Instruction *instr);
int usmopa_za_pp_zz(context *ctx, Instruction *instr);
int usmops_za_pp_zz(context *ctx, Instruction *instr);
int usqadd_z_p_zz(context *ctx, Instruction *instr);
int usra_z_zi(context *ctx, Instruction *instr);
+int ustmopa_za_zzzi(context *ctx, Instruction *instr);
int usublb_z_zz(context *ctx, Instruction *instr);
int usublt_z_zz(context *ctx, Instruction *instr);
int usubwb_z_zz(context *ctx, Instruction *instr);
int usubwt_z_zz(context *ctx, Instruction *instr);
+int usvdot_za_zzi(context *ctx, Instruction *instr);
+int utmopa_za32_zzzi(context *ctx, Instruction *instr);
+int utmopa_za_zzzi(context *ctx, Instruction *instr);
+int uunpk_mz_z(context *ctx, Instruction *instr);
int uunpkhi_z_z(context *ctx, Instruction *instr);
+int uvdot_za32_zzi(context *ctx, Instruction *instr);
+int uvdot_za_zzi(context *ctx, Instruction *instr);
int uxtb_z_p_z(context *ctx, Instruction *instr);
int uzp1_p_pp(context *ctx, Instruction *instr);
int uzp1_z_zz(context *ctx, Instruction *instr);
+int uzp_mz_z(context *ctx, Instruction *instr);
+int uzp_mz_zz(context *ctx, Instruction *instr);
+int uzpq1_z_zz(context *ctx, Instruction *instr);
+int uzpq2_z_zz(context *ctx, Instruction *instr);
int whilege_p_p_rr(context *ctx, Instruction *instr);
+int whilege_pn_rr(context *ctx, Instruction *instr);
+int whilege_pp_rr(context *ctx, Instruction *instr);
int whilegt_p_p_rr(context *ctx, Instruction *instr);
+int whilegt_pn_rr(context *ctx, Instruction *instr);
+int whilegt_pp_rr(context *ctx, Instruction *instr);
int whilehi_p_p_rr(context *ctx, Instruction *instr);
+int whilehi_pn_rr(context *ctx, Instruction *instr);
+int whilehi_pp_rr(context *ctx, Instruction *instr);
int whilehs_p_p_rr(context *ctx, Instruction *instr);
+int whilehs_pn_rr(context *ctx, Instruction *instr);
+int whilehs_pp_rr(context *ctx, Instruction *instr);
int whilele_p_p_rr(context *ctx, Instruction *instr);
+int whilele_pn_rr(context *ctx, Instruction *instr);
+int whilele_pp_rr(context *ctx, Instruction *instr);
int whilelo_p_p_rr(context *ctx, Instruction *instr);
+int whilelo_pn_rr(context *ctx, Instruction *instr);
+int whilelo_pp_rr(context *ctx, Instruction *instr);
int whilels_p_p_rr(context *ctx, Instruction *instr);
+int whilels_pn_rr(context *ctx, Instruction *instr);
+int whilels_pp_rr(context *ctx, Instruction *instr);
int whilelt_p_p_rr(context *ctx, Instruction *instr);
+int whilelt_pn_rr(context *ctx, Instruction *instr);
+int whilelt_pp_rr(context *ctx, Instruction *instr);
int whilerw_p_rr(context *ctx, Instruction *instr);
int whilewr_p_rr(context *ctx, Instruction *instr);
int wrffr_f_p(context *ctx, Instruction *instr);
int xar_z_zzi(context *ctx, Instruction *instr);
+int zero_za1_ri(context *ctx, Instruction *instr);
+int zero_za2_ri(context *ctx, Instruction *instr);
+int zero_za4_ri(context *ctx, Instruction *instr);
int zero_za_i(context *ctx, Instruction *instr);
+int zero_zt_i(context *ctx, Instruction *instr);
int zip1_p_pp(context *ctx, Instruction *instr);
int zip1_z_zz(context *ctx, Instruction *instr);
+int zip_mz_z(context *ctx, Instruction *instr);
+int zip_mz_zz(context *ctx, Instruction *instr);
+int zipq1_z_zz(context *ctx, Instruction *instr);
+int zipq2_z_zz(context *ctx, Instruction *instr);