From 3a4f1702eda753c4a0a0eba25156fc612b4001d9 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Wed, 1 May 2024 16:20:59 -0700 Subject: Remove Zbpbo, Zpn, and Zpsfoperand from disassembler --- disasm/disasm.cc | 319 ------------------------------------------------------- 1 file changed, 319 deletions(-) diff --git a/disasm/disasm.cc b/disasm/disasm.cc index 187a1d5..6716e5b 100644 --- a/disasm/disasm.cc +++ b/disasm/disasm.cc @@ -1852,31 +1852,6 @@ void disassembler_t::add_instructions(const isa_parser_t* isa) DEFINE_VECTOR_VV(vfwmaccbf16_vv); DEFINE_VECTOR_VF(vfwmaccbf16_vf); } - -#define DEFINE_PI3TYPE(code) add_pitype3_insn(this, #code, match_##code, mask_##code); -#define DEFINE_PI4TYPE(code) add_pitype4_insn(this, #code, match_##code, mask_##code); -#define DEFINE_PI5TYPE(code) add_pitype5_insn(this, #code, match_##code, mask_##code); -#define DEFINE_PI6TYPE(code) add_pitype6_insn(this, #code, match_##code, mask_##code); - -#define DISASM_8_AND_16_RINSN(code) \ - DEFINE_RTYPE(code##8); \ - DEFINE_RTYPE(code##16); - -#define DISASM_8_AND_16_RINSN_ROUND(code) \ - DEFINE_RTYPE(code##8_u); \ - DEFINE_RTYPE(code##16_u); - -#define DISASM_8_AND_16_PIINSN(code) \ - DEFINE_PI3TYPE(code##8); \ - DEFINE_PI4TYPE(code##16); - -#define DISASM_8_AND_16_PIINSN_ROUND(code) \ - DEFINE_PI3TYPE(code##8_u); \ - DEFINE_PI4TYPE(code##16_u); - -#define DISASM_RINSN_AND_ROUND(code) \ - DEFINE_RTYPE(code); \ - DEFINE_RTYPE(code##_u); \ if (isa->extension_enabled(EXT_ZMMUL)) { DEFINE_RTYPE(mul); @@ -1886,300 +1861,6 @@ void disassembler_t::add_instructions(const isa_parser_t* isa) DEFINE_RTYPE(mulw); } - if (isa->extension_enabled(EXT_ZBPBO)) { - DEFINE_RTYPE(min); - DEFINE_RTYPE(max); - DEFINE_R3TYPE(cmix); - DEFINE_RTYPE(pack); - DEFINE_RTYPE(packu); - add_insn(new disasm_insn_t("rev", match_grevi | ((isa->get_max_xlen() - 1) << imm_shift), mask_grevi | mask_imm, {&xrd, &xrs1})); - add_insn(new disasm_insn_t("rev8.h", match_grevi | (0x8 << imm_shift), mask_grevi | mask_imm, {&xrd, &xrs1})); // swap16 - if (isa->get_max_xlen() == 32) { - DEFINE_R1TYPE(clz); - DEFINE_R3TYPE(fsr); - DEFINE_R3TYPE(fsri); - } else { - DEFINE_R3TYPE(fsrw); - } - } - - if (isa->extension_enabled(EXT_ZPSFOPERAND)) { - DEFINE_RTYPE(smal) - DEFINE_RTYPE(radd64); - DEFINE_RTYPE(uradd64); - DEFINE_RTYPE(kadd64); - DEFINE_RTYPE(ukadd64); - DEFINE_RTYPE(rsub64); - DEFINE_RTYPE(ursub64); - DEFINE_RTYPE(ksub64); - DEFINE_RTYPE(uksub64); - DEFINE_RTYPE(smar64); - DEFINE_RTYPE(smsr64); - DEFINE_RTYPE(umar64); - DEFINE_RTYPE(umsr64); - DEFINE_RTYPE(kmar64); - DEFINE_RTYPE(kmsr64); - DEFINE_RTYPE(ukmar64); - DEFINE_RTYPE(ukmsr64); - DEFINE_RTYPE(smalbb); - DEFINE_RTYPE(smalbt); - DEFINE_RTYPE(smaltt); - DEFINE_RTYPE(smalda); - DEFINE_RTYPE(smalxda); - DEFINE_RTYPE(smalds); - DEFINE_RTYPE(smaldrs); - DEFINE_RTYPE(smalxds); - DEFINE_RTYPE(smslda); - DEFINE_RTYPE(smslxda); - DEFINE_RTYPE(mulr64); - DEFINE_RTYPE(mulsr64); - if (isa->get_max_xlen() == 32) { - DEFINE_RTYPE(add64); - DEFINE_RTYPE(sub64); - } - } - - if (isa->extension_enabled(EXT_ZPN)) { - DISASM_8_AND_16_RINSN(add); - DISASM_8_AND_16_RINSN(radd); - DISASM_8_AND_16_RINSN(uradd); - DISASM_8_AND_16_RINSN(kadd); - DISASM_8_AND_16_RINSN(ukadd); - DISASM_8_AND_16_RINSN(sub); - DISASM_8_AND_16_RINSN(rsub); - DISASM_8_AND_16_RINSN(ursub); - DISASM_8_AND_16_RINSN(ksub); - DISASM_8_AND_16_RINSN(uksub); - DEFINE_RTYPE(cras16); - DEFINE_RTYPE(rcras16); - DEFINE_RTYPE(urcras16); - DEFINE_RTYPE(kcras16); - DEFINE_RTYPE(ukcras16); - DEFINE_RTYPE(crsa16); - DEFINE_RTYPE(rcrsa16); - DEFINE_RTYPE(urcrsa16); - DEFINE_RTYPE(kcrsa16); - DEFINE_RTYPE(ukcrsa16); - DEFINE_RTYPE(stas16); - DEFINE_RTYPE(rstas16); - DEFINE_RTYPE(urstas16); - DEFINE_RTYPE(kstas16); - DEFINE_RTYPE(ukstas16); - DEFINE_RTYPE(stsa16); - DEFINE_RTYPE(rstsa16); - DEFINE_RTYPE(urstsa16); - DEFINE_RTYPE(kstsa16); - DEFINE_RTYPE(ukstsa16); - DISASM_8_AND_16_RINSN(sra); - DISASM_8_AND_16_RINSN(srl); - DISASM_8_AND_16_RINSN(sll); - DISASM_8_AND_16_RINSN(ksll); - DISASM_8_AND_16_RINSN(kslra); - DISASM_8_AND_16_PIINSN(srai); - DISASM_8_AND_16_PIINSN(srli); - DISASM_8_AND_16_PIINSN(slli); - DISASM_8_AND_16_PIINSN(kslli); - DISASM_8_AND_16_RINSN_ROUND(sra); - DISASM_8_AND_16_RINSN_ROUND(srl); - DISASM_8_AND_16_RINSN_ROUND(kslra); - DISASM_8_AND_16_PIINSN_ROUND(srai); - DISASM_8_AND_16_PIINSN_ROUND(srli); - - DISASM_8_AND_16_RINSN(cmpeq); - DISASM_8_AND_16_RINSN(scmplt); - DISASM_8_AND_16_RINSN(scmple); - DISASM_8_AND_16_RINSN(ucmplt); - DISASM_8_AND_16_RINSN(ucmple); - - DISASM_8_AND_16_RINSN(smul); - DISASM_8_AND_16_RINSN(smulx); - DISASM_8_AND_16_RINSN(umul); - DISASM_8_AND_16_RINSN(umulx); - DISASM_8_AND_16_RINSN(khm); - DISASM_8_AND_16_RINSN(khmx); - - DISASM_8_AND_16_RINSN(smin); - DISASM_8_AND_16_RINSN(umin); - DISASM_8_AND_16_RINSN(smax); - DISASM_8_AND_16_RINSN(umax); - DISASM_8_AND_16_PIINSN(sclip); - DISASM_8_AND_16_PIINSN(uclip); - DEFINE_R1TYPE(kabs16); - DEFINE_R1TYPE(clrs16); - DEFINE_R1TYPE(clz16); - DEFINE_R1TYPE(kabs8); - DEFINE_R1TYPE(clrs8); - DEFINE_R1TYPE(clz8); - - DEFINE_R1TYPE(sunpkd810); - DEFINE_R1TYPE(sunpkd820); - DEFINE_R1TYPE(sunpkd830); - DEFINE_R1TYPE(sunpkd831); - DEFINE_R1TYPE(sunpkd832); - DEFINE_R1TYPE(zunpkd810); - DEFINE_R1TYPE(zunpkd820); - DEFINE_R1TYPE(zunpkd830); - DEFINE_R1TYPE(zunpkd831); - DEFINE_R1TYPE(zunpkd832); - - DEFINE_RTYPE(pkbb16); - DEFINE_RTYPE(pkbt16); - DEFINE_RTYPE(pktb16); - DEFINE_RTYPE(pktt16); - DISASM_RINSN_AND_ROUND(smmul); - DISASM_RINSN_AND_ROUND(kmmac); - DISASM_RINSN_AND_ROUND(kmmsb); - DISASM_RINSN_AND_ROUND(kwmmul); - DISASM_RINSN_AND_ROUND(smmwb); - DISASM_RINSN_AND_ROUND(smmwt); - DISASM_RINSN_AND_ROUND(kmmawb); - DISASM_RINSN_AND_ROUND(kmmawt); - DISASM_RINSN_AND_ROUND(kmmwb2); - DISASM_RINSN_AND_ROUND(kmmwt2); - DISASM_RINSN_AND_ROUND(kmmawb2); - DISASM_RINSN_AND_ROUND(kmmawt2); - DEFINE_RTYPE(smbb16) - DEFINE_RTYPE(smbt16) - DEFINE_RTYPE(smtt16) - DEFINE_RTYPE(kmda) - DEFINE_RTYPE(kmxda) - DEFINE_RTYPE(smds) - DEFINE_RTYPE(smdrs) - DEFINE_RTYPE(smxds) - DEFINE_RTYPE(kmabb) - DEFINE_RTYPE(kmabt) - DEFINE_RTYPE(kmatt) - DEFINE_RTYPE(kmada) - DEFINE_RTYPE(kmaxda) - DEFINE_RTYPE(kmads) - DEFINE_RTYPE(kmadrs) - DEFINE_RTYPE(kmaxds) - DEFINE_RTYPE(kmsda) - DEFINE_RTYPE(kmsxda) - DEFINE_RTYPE(sclip32) - DEFINE_RTYPE(uclip32) - DEFINE_R1TYPE(clrs32); - DEFINE_R1TYPE(clz32); - DEFINE_RTYPE(pbsad); - DEFINE_RTYPE(pbsada); - DEFINE_RTYPE(smaqa); - DEFINE_RTYPE(umaqa); - DEFINE_RTYPE(smaqa_su); - - DEFINE_RTYPE(kaddh); - DEFINE_RTYPE(ksubh); - DEFINE_RTYPE(khmbb); - DEFINE_RTYPE(khmbt); - DEFINE_RTYPE(khmtt); - DEFINE_RTYPE(ukaddh); - DEFINE_RTYPE(uksubh); - DEFINE_RTYPE(kaddw); - DEFINE_RTYPE(ukaddw); - DEFINE_RTYPE(ksubw); - DEFINE_RTYPE(uksubw); - DEFINE_RTYPE(kdmbb); - DEFINE_RTYPE(kdmbt); - DEFINE_RTYPE(kdmtt); - DEFINE_RTYPE(kslraw); - DEFINE_RTYPE(kslraw_u); - DEFINE_RTYPE(ksllw); - DEFINE_PI5TYPE(kslliw); - DEFINE_RTYPE(kdmabb); - DEFINE_RTYPE(kdmabt); - DEFINE_RTYPE(kdmatt); - DEFINE_RTYPE(kabsw); - DEFINE_RTYPE(raddw); - DEFINE_RTYPE(uraddw); - DEFINE_RTYPE(rsubw); - DEFINE_RTYPE(ursubw); - DEFINE_RTYPE(msubr32); - DEFINE_RTYPE(ave); - DEFINE_RTYPE(sra_u); - DEFINE_PI6TYPE(srai_u); - DEFINE_PI3TYPE(insb); - DEFINE_RTYPE(maddr32) - - if (isa->get_max_xlen() == 64) { - DEFINE_RTYPE(add32); - DEFINE_RTYPE(radd32); - DEFINE_RTYPE(uradd32); - DEFINE_RTYPE(kadd32); - DEFINE_RTYPE(ukadd32); - DEFINE_RTYPE(sub32); - DEFINE_RTYPE(rsub32); - DEFINE_RTYPE(ursub32); - DEFINE_RTYPE(ksub32); - DEFINE_RTYPE(uksub32); - DEFINE_RTYPE(cras32); - DEFINE_RTYPE(rcras32); - DEFINE_RTYPE(urcras32); - DEFINE_RTYPE(kcras32); - DEFINE_RTYPE(ukcras32); - DEFINE_RTYPE(crsa32); - DEFINE_RTYPE(rcrsa32); - DEFINE_RTYPE(urcrsa32); - DEFINE_RTYPE(kcrsa32); - DEFINE_RTYPE(ukcrsa32); - DEFINE_RTYPE(stas32); - DEFINE_RTYPE(rstas32); - DEFINE_RTYPE(urstas32); - DEFINE_RTYPE(kstas32); - DEFINE_RTYPE(ukstas32); - DEFINE_RTYPE(stsa32); - DEFINE_RTYPE(rstsa32); - DEFINE_RTYPE(urstsa32); - DEFINE_RTYPE(kstsa32); - DEFINE_RTYPE(ukstsa32); - DEFINE_RTYPE(sra32); - DEFINE_PI5TYPE(srai32); - DEFINE_RTYPE(sra32_u); - DEFINE_PI5TYPE(srai32_u); - DEFINE_RTYPE(srl32); - DEFINE_PI5TYPE(srli32); - DEFINE_RTYPE(srl32_u); - DEFINE_PI5TYPE(srli32_u); - DEFINE_RTYPE(sll32); - DEFINE_PI5TYPE(slli32); - DEFINE_RTYPE(ksll32); - DEFINE_PI5TYPE(kslli32); - DEFINE_RTYPE(kslra32); - DEFINE_RTYPE(kslra32_u); - DEFINE_RTYPE(smin32); - DEFINE_RTYPE(umin32); - DEFINE_RTYPE(smax32); - DEFINE_RTYPE(umax32); - DEFINE_R1TYPE(kabs32); - DEFINE_RTYPE(khmbb16); - DEFINE_RTYPE(khmbt16); - DEFINE_RTYPE(khmtt16); - DEFINE_RTYPE(kdmbb16); - DEFINE_RTYPE(kdmbt16); - DEFINE_RTYPE(kdmtt16); - DEFINE_RTYPE(kdmabb16); - DEFINE_RTYPE(kdmabt16); - DEFINE_RTYPE(kdmatt16); - DEFINE_RTYPE(smbt32); - DEFINE_RTYPE(smtt32); - DEFINE_RTYPE(kmabb32); - DEFINE_RTYPE(kmabt32); - DEFINE_RTYPE(kmatt32); - DEFINE_RTYPE(kmda32); - DEFINE_RTYPE(kmxda32); - DEFINE_RTYPE(kmaxda32); - DEFINE_RTYPE(kmads32); - DEFINE_RTYPE(kmadrs32); - DEFINE_RTYPE(kmaxds32); - DEFINE_RTYPE(kmsda32); - DEFINE_RTYPE(kmsxda32); - DEFINE_RTYPE(smds32); - DEFINE_RTYPE(smdrs32); - DEFINE_RTYPE(smxds32); - DEFINE_PI5TYPE(sraiw_u); - DEFINE_RTYPE(pkbt32); - DEFINE_RTYPE(pktb32); - } - } - if (isa->extension_enabled(EXT_ZICBOM)) { DISASM_INSN("cbo.clean", cbo_clean, 0, {&base_only_address}); DISASM_INSN("cbo.flush", cbo_flush, 0, {&base_only_address}); -- cgit v1.1