summaryrefslogtreecommitdiff
path: root/arch/arm64/disassembler/decode2.h
diff options
context:
space:
mode:
authorMark Rowe <mark@vector35.com>2025-10-09 09:31:15 -0700
committerMark Rowe <mark@vector35.com>2025-10-15 14:10:49 -0700
commit3f39c3fc3d5603bba111502eee26b5fbbb0077fe (patch)
tree1bc2fc14f8a87569a4eab1f32dac269d0670dfb0 /arch/arm64/disassembler/decode2.h
parent25212cfd39f6dc45ce9030c194b6131645b76ba3 (diff)
[AArch64] Update disassembler based on 2025-09 ARM ISA data
Diffstat (limited to 'arch/arm64/disassembler/decode2.h')
-rw-r--r--arch/arm64/disassembler/decode2.h37
1 files changed, 33 insertions, 4 deletions
diff --git a/arch/arm64/disassembler/decode2.h b/arch/arm64/disassembler/decode2.h
index 0b9ea822..2fbd00cf 100644
--- a/arch/arm64/disassembler/decode2.h
+++ b/arch/arm64/disassembler/decode2.h
@@ -278,6 +278,8 @@ 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 FDOT_advsimd_elt_fp16fp32(context *ctx, Instruction *instr);
+int FDOT_advsimd_fp16fp32(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);
@@ -314,6 +316,8 @@ 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 FMMLA_advsimd_fp16fp16(context *ctx, Instruction *instr);
+int FMMLA_advsimd_fp16fp32(context *ctx, Instruction *instr);
int FMOV_advsimd(context *ctx, Instruction *instr);
int FMOV_float(context *ctx, Instruction *instr);
int FMOV_float_gen(context *ctx, Instruction *instr);
@@ -371,7 +375,10 @@ 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 GICR_SYSL(context *ctx, Instruction *instr);
+int GIC_SYS(context *ctx, Instruction *instr);
int GMI(context *ctx, Instruction *instr);
+int GSB_SYS(context *ctx, Instruction *instr);
int HINT(context *ctx, Instruction *instr);
int HLT(context *ctx, Instruction *instr);
int HVC(context *ctx, Instruction *instr);
@@ -397,6 +404,7 @@ 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 LDAPP_gen(context *ctx, Instruction *instr);
int LDAPR(context *ctx, Instruction *instr);
int LDAPRB(context *ctx, Instruction *instr);
int LDAPRH(context *ctx, Instruction *instr);
@@ -407,6 +415,7 @@ 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 LDAP_gen(context *ctx, Instruction *instr);
int LDAR(context *ctx, Instruction *instr);
int LDARB(context *ctx, Instruction *instr);
int LDARH(context *ctx, Instruction *instr);
@@ -514,6 +523,7 @@ 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 MLBI_SYS(context *ctx, Instruction *instr);
int MLS_advsimd_elt(context *ctx, Instruction *instr);
int MLS_advsimd_vec(context *ctx, Instruction *instr);
int MNEG_MSUB(context *ctx, Instruction *instr);
@@ -668,6 +678,7 @@ int SHLL_advsimd(context *ctx, Instruction *instr);
int SHL_advsimd(context *ctx, Instruction *instr);
int SHRN_advsimd(context *ctx, Instruction *instr);
int SHSUB_advsimd(context *ctx, Instruction *instr);
+int SHUH(context *ctx, Instruction *instr);
int SLI_advsimd(context *ctx, Instruction *instr);
int SM3PARTW1_advsimd(context *ctx, Instruction *instr);
int SM3PARTW2_advsimd(context *ctx, Instruction *instr);
@@ -767,6 +778,7 @@ 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 STCPH(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);
@@ -783,6 +795,7 @@ 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 STLP_gen(context *ctx, Instruction *instr);
int STLR(context *ctx, Instruction *instr);
int STLRB(context *ctx, Instruction *instr);
int STLRH(context *ctx, Instruction *instr);
@@ -876,18 +889,14 @@ 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);
-int TSTART(context *ctx, Instruction *instr);
int TST_ANDS_log_imm(context *ctx, Instruction *instr);
int TST_ANDS_log_shift(context *ctx, Instruction *instr);
-int TTEST(context *ctx, Instruction *instr);
int UABAL_advsimd(context *ctx, Instruction *instr);
int UABA_advsimd(context *ctx, Instruction *instr);
int UABDL_advsimd(context *ctx, Instruction *instr);
@@ -991,8 +1000,10 @@ 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 addqp_z_zz(context *ctx, Instruction *instr);
int addqv_z_p_z(context *ctx, Instruction *instr);
int addspl_r_ri(context *ctx, Instruction *instr);
+int addsubp_z_zz(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);
@@ -1078,6 +1089,7 @@ 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_z16_zzz(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);
@@ -1224,8 +1236,10 @@ 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 fcvtzsn_z_mz2(context *ctx, Instruction *instr);
int fcvtzu_mz_z(context *ctx, Instruction *instr);
int fcvtzu_z_p_z(context *ctx, Instruction *instr);
+int fcvtzun_z_mz2(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);
@@ -1590,6 +1604,11 @@ 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 luti6_mz4_zmz2(context *ctx, Instruction *instr);
+int luti6_mz4_ztz(context *ctx, Instruction *instr);
+int luti6_z_z2zz(context *ctx, Instruction *instr);
+int luti6_z_ztz(context *ctx, Instruction *instr);
+int luti6_z_zzz(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);
@@ -1720,6 +1739,7 @@ int rshrnt_z_zi(context *ctx, Instruction *instr);
int rsubhnb_z_zz(context *ctx, Instruction *instr);
int rsubhnt_z_zz(context *ctx, Instruction *instr);
int saba_z_zzz(context *ctx, Instruction *instr);
+int sabal_z_zzz(context *ctx, Instruction *instr);
int sabalb_z_zzz(context *ctx, Instruction *instr);
int sabalt_z_zzz(context *ctx, Instruction *instr);
int sabd_z_p_zz(context *ctx, Instruction *instr);
@@ -1738,6 +1758,8 @@ 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 scvtf_z_z(context *ctx, Instruction *instr);
+int scvtflt_z_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);
@@ -1889,8 +1911,10 @@ int sqshl_z_p_zi(context *ctx, Instruction *instr);
int sqshl_z_p_zz(context *ctx, Instruction *instr);
int sqshlr_z_p_zz(context *ctx, Instruction *instr);
int sqshlu_z_p_zi(context *ctx, Instruction *instr);
+int sqshrn_z_mz2(context *ctx, Instruction *instr);
int sqshrnb_z_zi(context *ctx, Instruction *instr);
int sqshrnt_z_zi(context *ctx, Instruction *instr);
+int sqshrun_z_mz2(context *ctx, Instruction *instr);
int sqshrunb_z_zi(context *ctx, Instruction *instr);
int sqshrunt_z_zi(context *ctx, Instruction *instr);
int sqsub_z_p_zz(context *ctx, Instruction *instr);
@@ -2028,6 +2052,7 @@ 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 subp_z_p_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);
@@ -2056,6 +2081,7 @@ 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);
+int uabal_z_zzz(context *ctx, Instruction *instr);
int uabalb_z_zzz(context *ctx, Instruction *instr);
int uabalt_z_zzz(context *ctx, Instruction *instr);
int uabd_z_p_zz(context *ctx, Instruction *instr);
@@ -2071,6 +2097,8 @@ 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 ucvtf_z_z(context *ctx, Instruction *instr);
+int ucvtflt_z_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);
@@ -2171,6 +2199,7 @@ int uqrshrnt_z_zi(context *ctx, Instruction *instr);
int uqshl_z_p_zi(context *ctx, Instruction *instr);
int uqshl_z_p_zz(context *ctx, Instruction *instr);
int uqshlr_z_p_zz(context *ctx, Instruction *instr);
+int uqshrn_z_mz2(context *ctx, Instruction *instr);
int uqshrnb_z_zi(context *ctx, Instruction *instr);
int uqshrnt_z_zi(context *ctx, Instruction *instr);
int uqsub_z_p_zz(context *ctx, Instruction *instr);