Skip to content

Commit 3f39c3f

Browse files
committed
[AArch64] Update disassembler based on 2025-09 ARM ISA data
1 parent 25212cf commit 3f39c3f

File tree

17 files changed

+8022
-6890
lines changed

17 files changed

+8022
-6890
lines changed

arch/arm64/disassembler/decode.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@ typedef struct context_
380380
uint64_t pac;
381381
bool pacia1716;
382382
bool pacib1716;
383+
uint64_t pacinst;
383384
uint64_t page;
384385
uint64_t pair;
385386
uint64_t pairs;
@@ -397,6 +398,7 @@ typedef struct context_
397398
uint64_t postindex;
398399
uint64_t pref_hint;
399400
uint64_t prfop;
401+
bool priority;
400402
uint64_t ptype;
401403
uint64_t r;
402404
uint64_t rd;
@@ -422,6 +424,7 @@ typedef struct context_
422424
uint64_t sel_a;
423425
uint64_t sel_b;
424426
uint64_t selem;
427+
uint64_t select;
425428
uint64_t setflags;
426429
uint64_t sf;
427430
uint64_t sh;

arch/arm64/disassembler/decode0.c

Lines changed: 494 additions & 451 deletions
Large diffs are not rendered by default.

arch/arm64/disassembler/decode1.c

Lines changed: 860 additions & 767 deletions
Large diffs are not rendered by default.

arch/arm64/disassembler/decode1.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ int decode_iclass_systeminstrswithreg(context *ctx, Instruction *dec);
1515
int decode_iclass_syspairinstrs(context *ctx, Instruction *dec);
1616
int decode_iclass_systemmove(context *ctx, Instruction *dec);
1717
int decode_iclass_systemmovepr(context *ctx, Instruction *dec);
18-
int decode_iclass_systemresult(context *ctx, Instruction *dec);
1918
int decode_iclass_testbranch(context *ctx, Instruction *dec);
2019
int decode_iclass_branch_imm(context *ctx, Instruction *dec);
2120
int decode_iclass_branch_reg(context *ctx, Instruction *dec);
@@ -154,9 +153,11 @@ int decode_iclass_mortlach_expand_2dst_ctg(context *ctx, Instruction *dec);
154153
int decode_iclass_mortlach_expand_4dst_ctg(context *ctx, Instruction *dec);
155154
int decode_iclass_mortlach_expand_1dst(context *ctx, Instruction *dec);
156155
int decode_iclass_mortlach_expand_4dst2src_ctg(context *ctx, Instruction *dec);
156+
int decode_iclass_mortlach_expand_4dst3src_ctg(context *ctx, Instruction *dec);
157157
int decode_iclass_mortlach_expand_2dst_nctg(context *ctx, Instruction *dec);
158158
int decode_iclass_mortlach_expand_4dst_nctg(context *ctx, Instruction *dec);
159159
int decode_iclass_mortlach_expand_4dst2src_nctg(context *ctx, Instruction *dec);
160+
int decode_iclass_mortlach_expand_4dst3src_nctg(context *ctx, Instruction *dec);
160161
int decode_iclass_mortlach_extract_zt(context *ctx, Instruction *dec);
161162
int decode_iclass_mortlach_insert_zt(context *ctx, Instruction *dec);
162163
int decode_iclass_mortlach_move_to_zt(context *ctx, Instruction *dec);
@@ -189,6 +190,8 @@ int decode_iclass_mortlach_multi2_fp8_fvdot_idx_s(context *ctx, Instruction *dec
189190
int decode_iclass_mortlach_multi2_zza_idx_d(context *ctx, Instruction *dec);
190191
int decode_iclass_mortlach_multi2_mla_long_idx(context *ctx, Instruction *dec);
191192
int decode_iclass_mortlach_multi2_fp8_fdot_idx(context *ctx, Instruction *dec);
193+
int decode_iclass_mortlach_multi4_lut6_16_ctg(context *ctx, Instruction *dec);
194+
int decode_iclass_mortlach_multi4_lut6_16_nctg(context *ctx, Instruction *dec);
192195
int decode_iclass_mortlach_multi2_cld_cldnt_ss_ctg(context *ctx, Instruction *dec);
193196
int decode_iclass_mortlach_multi4_cld_cldnt_ss_ctg(context *ctx, Instruction *dec);
194197
int decode_iclass_mortlach_multi2_cst_cstnt_ss_ctg(context *ctx, Instruction *dec);
@@ -566,6 +569,8 @@ int decode_iclass_sve_fp_2op_p_zd_c(context *ctx, Instruction *dec);
566569
int decode_iclass_sve_fp_2op_p_zd_d(context *ctx, Instruction *dec);
567570
int decode_iclass_sve_fp8_fcvt_wide(context *ctx, Instruction *dec);
568571
int decode_iclass_sve_fp8_fcvt_narrow(context *ctx, Instruction *dec);
572+
int decode_iclass_sve_fp_ucvtf_wide(context *ctx, Instruction *dec);
573+
int decode_iclass_sve_fp_fcvtzu_narrow(context *ctx, Instruction *dec);
569574
int decode_iclass_sve_fp_2op_u_zd(context *ctx, Instruction *dec);
570575
int decode_iclass_sve_fp_fdot(context *ctx, Instruction *dec);
571576
int decode_iclass_sve_fp_fma_long(context *ctx, Instruction *dec);
@@ -597,6 +602,8 @@ int decode_iclass_sve_intx_lut2_8(context *ctx, Instruction *dec);
597602
int decode_iclass_sve_intx_lut2_16(context *ctx, Instruction *dec);
598603
int decode_iclass_sve_intx_lut4_8(context *ctx, Instruction *dec);
599604
int decode_iclass_sve_intx_lut4_16(context *ctx, Instruction *dec);
605+
int decode_iclass_sve_intx_lut6_8(context *ctx, Instruction *dec);
606+
int decode_iclass_sve_intx_lut6_16(context *ctx, Instruction *dec);
600607
int decode_iclass_sve_intx_bin_pred_shift_sat_round(context *ctx, Instruction *dec);
601608
int decode_iclass_sve_intx_pred_arith_unary(context *ctx, Instruction *dec);
602609
int decode_iclass_sve_intx_accumulate_long_pairs(context *ctx, Instruction *dec);
@@ -605,6 +612,8 @@ int decode_iclass_sve_intx_arith_binary_pairs(context *ctx, Instruction *dec);
605612
int decode_iclass_sve_intx_pred_arith_binary_sat(context *ctx, Instruction *dec);
606613
int decode_iclass_sve_int_mul_b(context *ctx, Instruction *dec);
607614
int decode_iclass_sve_int_sqdmulh(context *ctx, Instruction *dec);
615+
int decode_iclass_sve_int_addqp(context *ctx, Instruction *dec);
616+
int decode_iclass_sve_int_addsubp(context *ctx, Instruction *dec);
608617
int decode_iclass_sve_intx_shift_narrow(context *ctx, Instruction *dec);
609618
int decode_iclass_sve_intx_multi_shift_narrow(context *ctx, Instruction *dec);
610619
int decode_iclass_sve_intx_extract_narrow(context *ctx, Instruction *dec);
@@ -614,6 +623,8 @@ int decode_iclass_sve_intx_match(context *ctx, Instruction *dec);
614623
int decode_iclass_sve_intx_cons_arith_long(context *ctx, Instruction *dec);
615624
int decode_iclass_sve_intx_cons_arith_wide(context *ctx, Instruction *dec);
616625
int decode_iclass_sve_intx_cons_mul_long(context *ctx, Instruction *dec);
626+
int decode_iclass_sve_abal(context *ctx, Instruction *dec);
627+
int decode_iclass_sve_fp_fmmla_nw(context *ctx, Instruction *dec);
617628
int decode_iclass_sve_fp_pairwise(context *ctx, Instruction *dec);
618629
int decode_iclass_sve_fp_z2op_p_zd_a(context *ctx, Instruction *dec);
619630
int decode_iclass_sve_fp_z2op_p_zd_b_0(context *ctx, Instruction *dec);

0 commit comments

Comments
 (0)