diff options
author | Martyn Capewell <martyn.capewell@arm.com> | 2022-04-19 18:08:39 +0100 |
---|---|---|
committer | mmc28a <78873583+mmc28a@users.noreply.github.com> | 2022-05-04 15:51:36 +0100 |
commit | 8afff39f262cab6ed3cfdf0af5624c33752517ab (patch) | |
tree | 9a4ee968d6c9cce74739a112308ff2190d59255b | |
parent | 3b2c3fd578c8fcb68cb46e955e1b5216642c723f (diff) | |
download | vixl-8afff39f262cab6ed3cfdf0af5624c33752517ab.tar.gz |
Index form-to-visitor maps by hash
Introduce a user-defined literal that converts a string into its hash, and use
it to initialises the keys in form-to-visitor maps.
-rw-r--r-- | src/aarch64/cpu-features-auditor-aarch64.cc | 673 | ||||
-rw-r--r-- | src/aarch64/cpu-features-auditor-aarch64.h | 2 | ||||
-rw-r--r-- | src/aarch64/decoder-visitor-map-aarch64.h | 4680 | ||||
-rw-r--r-- | src/aarch64/disasm-aarch64.cc | 1176 | ||||
-rw-r--r-- | src/aarch64/disasm-aarch64.h | 2 | ||||
-rw-r--r-- | src/aarch64/simulator-aarch64.cc | 663 | ||||
-rw-r--r-- | src/aarch64/simulator-aarch64.h | 2 | ||||
-rw-r--r-- | src/utils-vixl.h | 2 |
8 files changed, 3665 insertions, 3535 deletions
diff --git a/src/aarch64/cpu-features-auditor-aarch64.cc b/src/aarch64/cpu-features-auditor-aarch64.cc index 72725c62..63249b04 100644 --- a/src/aarch64/cpu-features-auditor-aarch64.cc +++ b/src/aarch64/cpu-features-auditor-aarch64.cc @@ -40,31 +40,33 @@ CPUFeaturesAuditor::GetFormToVisitorFnMap() { static const FormToVisitorFnMap form_to_visitor = { DEFAULT_FORM_TO_VISITOR_MAP(CPUFeaturesAuditor), SIM_AUD_VISITOR_MAP(CPUFeaturesAuditor), - {"fcmla_asimdelem_c_h", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fcmla_asimdelem_c_s", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmlal2_asimdelem_lh", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmlal_asimdelem_lh", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmla_asimdelem_rh_h", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmla_asimdelem_r_sd", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmlsl2_asimdelem_lh", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmlsl_asimdelem_lh", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmls_asimdelem_rh_h", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmls_asimdelem_r_sd", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmulx_asimdelem_rh_h", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmulx_asimdelem_r_sd", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmul_asimdelem_rh_h", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"fmul_asimdelem_r_sd", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"sdot_asimdelem_d", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"smlal_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"smlsl_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"smull_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"sqdmlal_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"sqdmlsl_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"sqdmull_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"udot_asimdelem_d", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"umlal_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"umlsl_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, - {"umull_asimdelem_l", &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fcmla_asimdelem_c_h"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fcmla_asimdelem_c_s"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmlal2_asimdelem_lh"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmlal_asimdelem_lh"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmla_asimdelem_rh_h"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmla_asimdelem_r_sd"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmlsl2_asimdelem_lh"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmlsl_asimdelem_lh"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmls_asimdelem_rh_h"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmls_asimdelem_r_sd"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmulx_asimdelem_rh_h"_h, + &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmulx_asimdelem_r_sd"_h, + &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmul_asimdelem_rh_h"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"fmul_asimdelem_r_sd"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"sdot_asimdelem_d"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"smlal_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"smlsl_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"smull_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"sqdmlal_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"sqdmlsl_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"sqdmull_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"udot_asimdelem_d"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"umlal_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"umlsl_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, + {"umull_asimdelem_l"_h, &CPUFeaturesAuditor::VisitNEONByIndexedElement}, }; return &form_to_visitor; } @@ -1390,341 +1392,346 @@ void CPUFeaturesAuditor::VisitUnimplemented(const Instruction* instr) { void CPUFeaturesAuditor::Visit(Metadata* metadata, const Instruction* instr) { VIXL_ASSERT(metadata->count("form") > 0); const std::string& form = (*metadata)["form"]; + uint32_t form_hash = Hash(form.c_str()); const FormToVisitorFnMap* fv = CPUFeaturesAuditor::GetFormToVisitorFnMap(); - if ((fv->count(form) > 0) && fv->at(form)) { - fv->at(form)(this, instr); - } else { + FormToVisitorFnMap::const_iterator it = fv->find(form_hash); + if (it == fv->end()) { RecordInstructionFeaturesScope scope(this); - std::map<const std::string, const CPUFeatures> features = { - {"adclb_z_zzz", CPUFeatures::kSVE2}, - {"adclt_z_zzz", CPUFeatures::kSVE2}, - {"addhnb_z_zz", CPUFeatures::kSVE2}, - {"addhnt_z_zz", CPUFeatures::kSVE2}, - {"addp_z_p_zz", CPUFeatures::kSVE2}, - {"bcax_z_zzz", CPUFeatures::kSVE2}, - {"bdep_z_zz", + std::map<uint32_t, const CPUFeatures> features = { + {"adclb_z_zzz"_h, CPUFeatures::kSVE2}, + {"adclt_z_zzz"_h, CPUFeatures::kSVE2}, + {"addhnb_z_zz"_h, CPUFeatures::kSVE2}, + {"addhnt_z_zz"_h, CPUFeatures::kSVE2}, + {"addp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"bcax_z_zzz"_h, CPUFeatures::kSVE2}, + {"bdep_z_zz"_h, CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)}, - {"bext_z_zz", + {"bext_z_zz"_h, CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)}, - {"bgrp_z_zz", + {"bgrp_z_zz"_h, CPUFeatures(CPUFeatures::kSVE2, CPUFeatures::kSVEBitPerm)}, - {"bsl1n_z_zzz", CPUFeatures::kSVE2}, - {"bsl2n_z_zzz", CPUFeatures::kSVE2}, - {"bsl_z_zzz", CPUFeatures::kSVE2}, - {"cadd_z_zz", CPUFeatures::kSVE2}, - {"cdot_z_zzz", CPUFeatures::kSVE2}, - {"cdot_z_zzzi_d", CPUFeatures::kSVE2}, - {"cdot_z_zzzi_s", CPUFeatures::kSVE2}, - {"cmla_z_zzz", CPUFeatures::kSVE2}, - {"cmla_z_zzzi_h", CPUFeatures::kSVE2}, - {"cmla_z_zzzi_s", CPUFeatures::kSVE2}, - {"eor3_z_zzz", CPUFeatures::kSVE2}, - {"eorbt_z_zz", CPUFeatures::kSVE2}, - {"eortb_z_zz", CPUFeatures::kSVE2}, - {"ext_z_zi_con", CPUFeatures::kSVE2}, - {"faddp_z_p_zz", CPUFeatures::kSVE2}, - {"fcvtlt_z_p_z_h2s", CPUFeatures::kSVE2}, - {"fcvtlt_z_p_z_s2d", CPUFeatures::kSVE2}, - {"fcvtnt_z_p_z_d2s", CPUFeatures::kSVE2}, - {"fcvtnt_z_p_z_s2h", CPUFeatures::kSVE2}, - {"fcvtx_z_p_z_d2s", CPUFeatures::kSVE2}, - {"fcvtxnt_z_p_z_d2s", CPUFeatures::kSVE2}, - {"flogb_z_p_z", CPUFeatures::kSVE2}, - {"fmaxnmp_z_p_zz", CPUFeatures::kSVE2}, - {"fmaxp_z_p_zz", CPUFeatures::kSVE2}, - {"fminnmp_z_p_zz", CPUFeatures::kSVE2}, - {"fminp_z_p_zz", CPUFeatures::kSVE2}, - {"fmlalb_z_zzz", CPUFeatures::kSVE2}, - {"fmlalb_z_zzzi_s", CPUFeatures::kSVE2}, - {"fmlalt_z_zzz", CPUFeatures::kSVE2}, - {"fmlalt_z_zzzi_s", CPUFeatures::kSVE2}, - {"fmlslb_z_zzz", CPUFeatures::kSVE2}, - {"fmlslb_z_zzzi_s", CPUFeatures::kSVE2}, - {"fmlslt_z_zzz", CPUFeatures::kSVE2}, - {"fmlslt_z_zzzi_s", CPUFeatures::kSVE2}, - {"histcnt_z_p_zz", CPUFeatures::kSVE2}, - {"histseg_z_zz", CPUFeatures::kSVE2}, - {"ldnt1b_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1b_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"ldnt1d_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1h_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1h_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"ldnt1sb_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1sb_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"ldnt1sh_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1sh_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"ldnt1sw_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1w_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"ldnt1w_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"match_p_p_zz", CPUFeatures::kSVE2}, - {"mla_z_zzzi_d", CPUFeatures::kSVE2}, - {"mla_z_zzzi_h", CPUFeatures::kSVE2}, - {"mla_z_zzzi_s", CPUFeatures::kSVE2}, - {"mls_z_zzzi_d", CPUFeatures::kSVE2}, - {"mls_z_zzzi_h", CPUFeatures::kSVE2}, - {"mls_z_zzzi_s", CPUFeatures::kSVE2}, - {"mul_z_zz", CPUFeatures::kSVE2}, - {"mul_z_zzi_d", CPUFeatures::kSVE2}, - {"mul_z_zzi_h", CPUFeatures::kSVE2}, - {"mul_z_zzi_s", CPUFeatures::kSVE2}, - {"nbsl_z_zzz", CPUFeatures::kSVE2}, - {"nmatch_p_p_zz", CPUFeatures::kSVE2}, - {"pmul_z_zz", CPUFeatures::kSVE2}, - {"pmullb_z_zz", CPUFeatures::kSVE2}, - {"pmullt_z_zz", CPUFeatures::kSVE2}, - {"raddhnb_z_zz", CPUFeatures::kSVE2}, - {"raddhnt_z_zz", CPUFeatures::kSVE2}, - {"rshrnb_z_zi", CPUFeatures::kSVE2}, - {"rshrnt_z_zi", CPUFeatures::kSVE2}, - {"rsubhnb_z_zz", CPUFeatures::kSVE2}, - {"rsubhnt_z_zz", CPUFeatures::kSVE2}, - {"saba_z_zzz", CPUFeatures::kSVE2}, - {"sabalb_z_zzz", CPUFeatures::kSVE2}, - {"sabalt_z_zzz", CPUFeatures::kSVE2}, - {"sabdlb_z_zz", CPUFeatures::kSVE2}, - {"sabdlt_z_zz", CPUFeatures::kSVE2}, - {"sadalp_z_p_z", CPUFeatures::kSVE2}, - {"saddlb_z_zz", CPUFeatures::kSVE2}, - {"saddlbt_z_zz", CPUFeatures::kSVE2}, - {"saddlt_z_zz", CPUFeatures::kSVE2}, - {"saddwb_z_zz", CPUFeatures::kSVE2}, - {"saddwt_z_zz", CPUFeatures::kSVE2}, - {"sbclb_z_zzz", CPUFeatures::kSVE2}, - {"sbclt_z_zzz", CPUFeatures::kSVE2}, - {"shadd_z_p_zz", CPUFeatures::kSVE2}, - {"shrnb_z_zi", CPUFeatures::kSVE2}, - {"shrnt_z_zi", CPUFeatures::kSVE2}, - {"shsub_z_p_zz", CPUFeatures::kSVE2}, - {"shsubr_z_p_zz", CPUFeatures::kSVE2}, - {"sli_z_zzi", CPUFeatures::kSVE2}, - {"smaxp_z_p_zz", CPUFeatures::kSVE2}, - {"sminp_z_p_zz", CPUFeatures::kSVE2}, - {"smlalb_z_zzz", CPUFeatures::kSVE2}, - {"smlalb_z_zzzi_d", CPUFeatures::kSVE2}, - {"smlalb_z_zzzi_s", CPUFeatures::kSVE2}, - {"smlalt_z_zzz", CPUFeatures::kSVE2}, - {"smlalt_z_zzzi_d", CPUFeatures::kSVE2}, - {"smlalt_z_zzzi_s", CPUFeatures::kSVE2}, - {"smlslb_z_zzz", CPUFeatures::kSVE2}, - {"smlslb_z_zzzi_d", CPUFeatures::kSVE2}, - {"smlslb_z_zzzi_s", CPUFeatures::kSVE2}, - {"smlslt_z_zzz", CPUFeatures::kSVE2}, - {"smlslt_z_zzzi_d", CPUFeatures::kSVE2}, - {"smlslt_z_zzzi_s", CPUFeatures::kSVE2}, - {"smulh_z_zz", CPUFeatures::kSVE2}, - {"smullb_z_zz", CPUFeatures::kSVE2}, - {"smullb_z_zzi_d", CPUFeatures::kSVE2}, - {"smullb_z_zzi_s", CPUFeatures::kSVE2}, - {"smullt_z_zz", CPUFeatures::kSVE2}, - {"smullt_z_zzi_d", CPUFeatures::kSVE2}, - {"smullt_z_zzi_s", CPUFeatures::kSVE2}, - {"splice_z_p_zz_con", CPUFeatures::kSVE2}, - {"sqabs_z_p_z", CPUFeatures::kSVE2}, - {"sqadd_z_p_zz", CPUFeatures::kSVE2}, - {"sqcadd_z_zz", CPUFeatures::kSVE2}, - {"sqdmlalb_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlalb_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqdmlalb_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqdmlalbt_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlalt_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlalt_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqdmlalt_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqdmlslb_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlslb_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqdmlslb_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqdmlslbt_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlslt_z_zzz", CPUFeatures::kSVE2}, - {"sqdmlslt_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqdmlslt_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqdmulh_z_zz", CPUFeatures::kSVE2}, - {"sqdmulh_z_zzi_d", CPUFeatures::kSVE2}, - {"sqdmulh_z_zzi_h", CPUFeatures::kSVE2}, - {"sqdmulh_z_zzi_s", CPUFeatures::kSVE2}, - {"sqdmullb_z_zz", CPUFeatures::kSVE2}, - {"sqdmullb_z_zzi_d", CPUFeatures::kSVE2}, - {"sqdmullb_z_zzi_s", CPUFeatures::kSVE2}, - {"sqdmullt_z_zz", CPUFeatures::kSVE2}, - {"sqdmullt_z_zzi_d", CPUFeatures::kSVE2}, - {"sqdmullt_z_zzi_s", CPUFeatures::kSVE2}, - {"sqneg_z_p_z", CPUFeatures::kSVE2}, - {"sqrdcmlah_z_zzz", CPUFeatures::kSVE2}, - {"sqrdcmlah_z_zzzi_h", CPUFeatures::kSVE2}, - {"sqrdcmlah_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqrdmlah_z_zzz", CPUFeatures::kSVE2}, - {"sqrdmlah_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqrdmlah_z_zzzi_h", CPUFeatures::kSVE2}, - {"sqrdmlah_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqrdmlsh_z_zzz", CPUFeatures::kSVE2}, - {"sqrdmlsh_z_zzzi_d", CPUFeatures::kSVE2}, - {"sqrdmlsh_z_zzzi_h", CPUFeatures::kSVE2}, - {"sqrdmlsh_z_zzzi_s", CPUFeatures::kSVE2}, - {"sqrdmulh_z_zz", CPUFeatures::kSVE2}, - {"sqrdmulh_z_zzi_d", CPUFeatures::kSVE2}, - {"sqrdmulh_z_zzi_h", CPUFeatures::kSVE2}, - {"sqrdmulh_z_zzi_s", CPUFeatures::kSVE2}, - {"sqrshl_z_p_zz", CPUFeatures::kSVE2}, - {"sqrshlr_z_p_zz", CPUFeatures::kSVE2}, - {"sqrshrnb_z_zi", CPUFeatures::kSVE2}, - {"sqrshrnt_z_zi", CPUFeatures::kSVE2}, - {"sqrshrunb_z_zi", CPUFeatures::kSVE2}, - {"sqrshrunt_z_zi", CPUFeatures::kSVE2}, - {"sqshl_z_p_zi", CPUFeatures::kSVE2}, - {"sqshl_z_p_zz", CPUFeatures::kSVE2}, - {"sqshlr_z_p_zz", CPUFeatures::kSVE2}, - {"sqshlu_z_p_zi", CPUFeatures::kSVE2}, - {"sqshrnb_z_zi", CPUFeatures::kSVE2}, - {"sqshrnt_z_zi", CPUFeatures::kSVE2}, - {"sqshrunb_z_zi", CPUFeatures::kSVE2}, - {"sqshrunt_z_zi", CPUFeatures::kSVE2}, - {"sqsub_z_p_zz", CPUFeatures::kSVE2}, - {"sqsubr_z_p_zz", CPUFeatures::kSVE2}, - {"sqxtnb_z_zz", CPUFeatures::kSVE2}, - {"sqxtnt_z_zz", CPUFeatures::kSVE2}, - {"sqxtunb_z_zz", CPUFeatures::kSVE2}, - {"sqxtunt_z_zz", CPUFeatures::kSVE2}, - {"srhadd_z_p_zz", CPUFeatures::kSVE2}, - {"sri_z_zzi", CPUFeatures::kSVE2}, - {"srshl_z_p_zz", CPUFeatures::kSVE2}, - {"srshlr_z_p_zz", CPUFeatures::kSVE2}, - {"srshr_z_p_zi", CPUFeatures::kSVE2}, - {"srsra_z_zi", CPUFeatures::kSVE2}, - {"sshllb_z_zi", CPUFeatures::kSVE2}, - {"sshllt_z_zi", CPUFeatures::kSVE2}, - {"ssra_z_zi", CPUFeatures::kSVE2}, - {"ssublb_z_zz", CPUFeatures::kSVE2}, - {"ssublbt_z_zz", CPUFeatures::kSVE2}, - {"ssublt_z_zz", CPUFeatures::kSVE2}, - {"ssubltb_z_zz", CPUFeatures::kSVE2}, - {"ssubwb_z_zz", CPUFeatures::kSVE2}, - {"ssubwt_z_zz", CPUFeatures::kSVE2}, - {"stnt1b_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"stnt1b_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"stnt1d_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"stnt1h_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"stnt1h_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"stnt1w_z_p_ar_d_64_unscaled", CPUFeatures::kSVE2}, - {"stnt1w_z_p_ar_s_x32_unscaled", CPUFeatures::kSVE2}, - {"subhnb_z_zz", CPUFeatures::kSVE2}, - {"subhnt_z_zz", CPUFeatures::kSVE2}, - {"suqadd_z_p_zz", CPUFeatures::kSVE2}, - {"tbl_z_zz_2", CPUFeatures::kSVE2}, - {"tbx_z_zz", CPUFeatures::kSVE2}, - {"uaba_z_zzz", CPUFeatures::kSVE2}, - {"uabalb_z_zzz", CPUFeatures::kSVE2}, - {"uabalt_z_zzz", CPUFeatures::kSVE2}, - {"uabdlb_z_zz", CPUFeatures::kSVE2}, - {"uabdlt_z_zz", CPUFeatures::kSVE2}, - {"uadalp_z_p_z", CPUFeatures::kSVE2}, - {"uaddlb_z_zz", CPUFeatures::kSVE2}, - {"uaddlt_z_zz", CPUFeatures::kSVE2}, - {"uaddwb_z_zz", CPUFeatures::kSVE2}, - {"uaddwt_z_zz", CPUFeatures::kSVE2}, - {"uhadd_z_p_zz", CPUFeatures::kSVE2}, - {"uhsub_z_p_zz", CPUFeatures::kSVE2}, - {"uhsubr_z_p_zz", CPUFeatures::kSVE2}, - {"umaxp_z_p_zz", CPUFeatures::kSVE2}, - {"uminp_z_p_zz", CPUFeatures::kSVE2}, - {"umlalb_z_zzz", CPUFeatures::kSVE2}, - {"umlalb_z_zzzi_d", CPUFeatures::kSVE2}, - {"umlalb_z_zzzi_s", CPUFeatures::kSVE2}, - {"umlalt_z_zzz", CPUFeatures::kSVE2}, - {"umlalt_z_zzzi_d", CPUFeatures::kSVE2}, - {"umlalt_z_zzzi_s", CPUFeatures::kSVE2}, - {"umlslb_z_zzz", CPUFeatures::kSVE2}, - {"umlslb_z_zzzi_d", CPUFeatures::kSVE2}, - {"umlslb_z_zzzi_s", CPUFeatures::kSVE2}, - {"umlslt_z_zzz", CPUFeatures::kSVE2}, - {"umlslt_z_zzzi_d", CPUFeatures::kSVE2}, - {"umlslt_z_zzzi_s", CPUFeatures::kSVE2}, - {"umulh_z_zz", CPUFeatures::kSVE2}, - {"umullb_z_zz", CPUFeatures::kSVE2}, - {"umullb_z_zzi_d", CPUFeatures::kSVE2}, - {"umullb_z_zzi_s", CPUFeatures::kSVE2}, - {"umullt_z_zz", CPUFeatures::kSVE2}, - {"umullt_z_zzi_d", CPUFeatures::kSVE2}, - {"umullt_z_zzi_s", CPUFeatures::kSVE2}, - {"uqadd_z_p_zz", CPUFeatures::kSVE2}, - {"uqrshl_z_p_zz", CPUFeatures::kSVE2}, - {"uqrshlr_z_p_zz", CPUFeatures::kSVE2}, - {"uqrshrnb_z_zi", CPUFeatures::kSVE2}, - {"uqrshrnt_z_zi", CPUFeatures::kSVE2}, - {"uqshl_z_p_zi", CPUFeatures::kSVE2}, - {"uqshl_z_p_zz", CPUFeatures::kSVE2}, - {"uqshlr_z_p_zz", CPUFeatures::kSVE2}, - {"uqshrnb_z_zi", CPUFeatures::kSVE2}, - {"uqshrnt_z_zi", CPUFeatures::kSVE2}, - {"uqsub_z_p_zz", CPUFeatures::kSVE2}, - {"uqsubr_z_p_zz", CPUFeatures::kSVE2}, - {"uqxtnb_z_zz", CPUFeatures::kSVE2}, - {"uqxtnt_z_zz", CPUFeatures::kSVE2}, - {"urecpe_z_p_z", CPUFeatures::kSVE2}, - {"urhadd_z_p_zz", CPUFeatures::kSVE2}, - {"urshl_z_p_zz", CPUFeatures::kSVE2}, - {"urshlr_z_p_zz", CPUFeatures::kSVE2}, - {"urshr_z_p_zi", CPUFeatures::kSVE2}, - {"ursqrte_z_p_z", CPUFeatures::kSVE2}, - {"ursra_z_zi", CPUFeatures::kSVE2}, - {"ushllb_z_zi", CPUFeatures::kSVE2}, - {"ushllt_z_zi", CPUFeatures::kSVE2}, - {"usqadd_z_p_zz", CPUFeatures::kSVE2}, - {"usra_z_zi", CPUFeatures::kSVE2}, - {"usublb_z_zz", CPUFeatures::kSVE2}, - {"usublt_z_zz", CPUFeatures::kSVE2}, - {"usubwb_z_zz", CPUFeatures::kSVE2}, - {"usubwt_z_zz", CPUFeatures::kSVE2}, - {"whilege_p_p_rr", CPUFeatures::kSVE2}, - {"whilegt_p_p_rr", CPUFeatures::kSVE2}, - {"whilehi_p_p_rr", CPUFeatures::kSVE2}, - {"whilehs_p_p_rr", CPUFeatures::kSVE2}, - {"whilerw_p_rr", CPUFeatures::kSVE2}, - {"whilewr_p_rr", CPUFeatures::kSVE2}, - {"xar_z_zzi", CPUFeatures::kSVE2}, - {"smmla_z_zzz", CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, - {"ummla_z_zzz", CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, - {"usmmla_z_zzz", CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, - {"fmmla_z_zzz_s", + {"bsl1n_z_zzz"_h, CPUFeatures::kSVE2}, + {"bsl2n_z_zzz"_h, CPUFeatures::kSVE2}, + {"bsl_z_zzz"_h, CPUFeatures::kSVE2}, + {"cadd_z_zz"_h, CPUFeatures::kSVE2}, + {"cdot_z_zzz"_h, CPUFeatures::kSVE2}, + {"cdot_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"cdot_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"cmla_z_zzz"_h, CPUFeatures::kSVE2}, + {"cmla_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"cmla_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"eor3_z_zzz"_h, CPUFeatures::kSVE2}, + {"eorbt_z_zz"_h, CPUFeatures::kSVE2}, + {"eortb_z_zz"_h, CPUFeatures::kSVE2}, + {"ext_z_zi_con"_h, CPUFeatures::kSVE2}, + {"faddp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"fcvtlt_z_p_z_h2s"_h, CPUFeatures::kSVE2}, + {"fcvtlt_z_p_z_s2d"_h, CPUFeatures::kSVE2}, + {"fcvtnt_z_p_z_d2s"_h, CPUFeatures::kSVE2}, + {"fcvtnt_z_p_z_s2h"_h, CPUFeatures::kSVE2}, + {"fcvtx_z_p_z_d2s"_h, CPUFeatures::kSVE2}, + {"fcvtxnt_z_p_z_d2s"_h, CPUFeatures::kSVE2}, + {"flogb_z_p_z"_h, CPUFeatures::kSVE2}, + {"fmaxnmp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"fmaxp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"fminnmp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"fminp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"fmlalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"fmlalb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"fmlalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"fmlalt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"fmlslb_z_zzz"_h, CPUFeatures::kSVE2}, + {"fmlslb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"fmlslt_z_zzz"_h, CPUFeatures::kSVE2}, + {"fmlslt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"histcnt_z_p_zz"_h, CPUFeatures::kSVE2}, + {"histseg_z_zz"_h, CPUFeatures::kSVE2}, + {"ldnt1b_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1b_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1d_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1h_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1h_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1sb_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1sb_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1sh_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1sh_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1sw_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1w_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"ldnt1w_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"match_p_p_zz"_h, CPUFeatures::kSVE2}, + {"mla_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"mla_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"mla_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"mls_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"mls_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"mls_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"mul_z_zz"_h, CPUFeatures::kSVE2}, + {"mul_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"mul_z_zzi_h"_h, CPUFeatures::kSVE2}, + {"mul_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"nbsl_z_zzz"_h, CPUFeatures::kSVE2}, + {"nmatch_p_p_zz"_h, CPUFeatures::kSVE2}, + {"pmul_z_zz"_h, CPUFeatures::kSVE2}, + {"pmullb_z_zz"_h, CPUFeatures::kSVE2}, + {"pmullt_z_zz"_h, CPUFeatures::kSVE2}, + {"raddhnb_z_zz"_h, CPUFeatures::kSVE2}, + {"raddhnt_z_zz"_h, CPUFeatures::kSVE2}, + {"rshrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"rshrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"rsubhnb_z_zz"_h, CPUFeatures::kSVE2}, + {"rsubhnt_z_zz"_h, CPUFeatures::kSVE2}, + {"saba_z_zzz"_h, CPUFeatures::kSVE2}, + {"sabalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"sabalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"sabdlb_z_zz"_h, CPUFeatures::kSVE2}, + {"sabdlt_z_zz"_h, CPUFeatures::kSVE2}, + {"sadalp_z_p_z"_h, CPUFeatures::kSVE2}, + {"saddlb_z_zz"_h, CPUFeatures::kSVE2}, + {"saddlbt_z_zz"_h, CPUFeatures::kSVE2}, + {"saddlt_z_zz"_h, CPUFeatures::kSVE2}, + {"saddwb_z_zz"_h, CPUFeatures::kSVE2}, + {"saddwt_z_zz"_h, CPUFeatures::kSVE2}, + {"sbclb_z_zzz"_h, CPUFeatures::kSVE2}, + {"sbclt_z_zzz"_h, CPUFeatures::kSVE2}, + {"shadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"shrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"shrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"shsub_z_p_zz"_h, CPUFeatures::kSVE2}, + {"shsubr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sli_z_zzi"_h, CPUFeatures::kSVE2}, + {"smaxp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sminp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"smlalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"smlalb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"smlalb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"smlalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"smlalt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"smlalt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"smlslb_z_zzz"_h, CPUFeatures::kSVE2}, + {"smlslb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"smlslb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"smlslt_z_zzz"_h, CPUFeatures::kSVE2}, + {"smlslt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"smlslt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"smulh_z_zz"_h, CPUFeatures::kSVE2}, + {"smullb_z_zz"_h, CPUFeatures::kSVE2}, + {"smullb_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"smullb_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"smullt_z_zz"_h, CPUFeatures::kSVE2}, + {"smullt_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"smullt_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"splice_z_p_zz_con"_h, CPUFeatures::kSVE2}, + {"sqabs_z_p_z"_h, CPUFeatures::kSVE2}, + {"sqadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqcadd_z_zz"_h, CPUFeatures::kSVE2}, + {"sqdmlalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlalb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmlalb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmlalbt_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlalt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmlalt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmlslb_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlslb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmlslb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmlslbt_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlslt_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqdmlslt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmlslt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmulh_z_zz"_h, CPUFeatures::kSVE2}, + {"sqdmulh_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmulh_z_zzi_h"_h, CPUFeatures::kSVE2}, + {"sqdmulh_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmullb_z_zz"_h, CPUFeatures::kSVE2}, + {"sqdmullb_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmullb_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"sqdmullt_z_zz"_h, CPUFeatures::kSVE2}, + {"sqdmullt_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"sqdmullt_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"sqneg_z_p_z"_h, CPUFeatures::kSVE2}, + {"sqrdcmlah_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqrdcmlah_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"sqrdcmlah_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqrdmlah_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqrdmlah_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqrdmlah_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"sqrdmlah_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqrdmlsh_z_zzz"_h, CPUFeatures::kSVE2}, + {"sqrdmlsh_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"sqrdmlsh_z_zzzi_h"_h, CPUFeatures::kSVE2}, + {"sqrdmlsh_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"sqrdmulh_z_zz"_h, CPUFeatures::kSVE2}, + {"sqrdmulh_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"sqrdmulh_z_zzi_h"_h, CPUFeatures::kSVE2}, + {"sqrdmulh_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"sqrshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqrshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqrshrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"sqrshrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"sqrshrunb_z_zi"_h, CPUFeatures::kSVE2}, + {"sqrshrunt_z_zi"_h, CPUFeatures::kSVE2}, + {"sqshl_z_p_zi"_h, CPUFeatures::kSVE2}, + {"sqshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqshlu_z_p_zi"_h, CPUFeatures::kSVE2}, + {"sqshrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"sqshrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"sqshrunb_z_zi"_h, CPUFeatures::kSVE2}, + {"sqshrunt_z_zi"_h, CPUFeatures::kSVE2}, + {"sqsub_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqsubr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sqxtnb_z_zz"_h, CPUFeatures::kSVE2}, + {"sqxtnt_z_zz"_h, CPUFeatures::kSVE2}, + {"sqxtunb_z_zz"_h, CPUFeatures::kSVE2}, + {"sqxtunt_z_zz"_h, CPUFeatures::kSVE2}, + {"srhadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"sri_z_zzi"_h, CPUFeatures::kSVE2}, + {"srshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"srshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"srshr_z_p_zi"_h, CPUFeatures::kSVE2}, + {"srsra_z_zi"_h, CPUFeatures::kSVE2}, + {"sshllb_z_zi"_h, CPUFeatures::kSVE2}, + {"sshllt_z_zi"_h, CPUFeatures::kSVE2}, + {"ssra_z_zi"_h, CPUFeatures::kSVE2}, + {"ssublb_z_zz"_h, CPUFeatures::kSVE2}, + {"ssublbt_z_zz"_h, CPUFeatures::kSVE2}, + {"ssublt_z_zz"_h, CPUFeatures::kSVE2}, + {"ssubltb_z_zz"_h, CPUFeatures::kSVE2}, + {"ssubwb_z_zz"_h, CPUFeatures::kSVE2}, + {"ssubwt_z_zz"_h, CPUFeatures::kSVE2}, + {"stnt1b_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1b_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1d_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1h_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1h_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1w_z_p_ar_d_64_unscaled"_h, CPUFeatures::kSVE2}, + {"stnt1w_z_p_ar_s_x32_unscaled"_h, CPUFeatures::kSVE2}, + {"subhnb_z_zz"_h, CPUFeatures::kSVE2}, + {"subhnt_z_zz"_h, CPUFeatures::kSVE2}, + {"suqadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"tbl_z_zz_2"_h, CPUFeatures::kSVE2}, + {"tbx_z_zz"_h, CPUFeatures::kSVE2}, + {"uaba_z_zzz"_h, CPUFeatures::kSVE2}, + {"uabalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"uabalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"uabdlb_z_zz"_h, CPUFeatures::kSVE2}, + {"uabdlt_z_zz"_h, CPUFeatures::kSVE2}, + {"uadalp_z_p_z"_h, CPUFeatures::kSVE2}, + {"uaddlb_z_zz"_h, CPUFeatures::kSVE2}, + {"uaddlt_z_zz"_h, CPUFeatures::kSVE2}, + {"uaddwb_z_zz"_h, CPUFeatures::kSVE2}, + {"uaddwt_z_zz"_h, CPUFeatures::kSVE2}, + {"uhadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uhsub_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uhsubr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"umaxp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uminp_z_p_zz"_h, CPUFeatures::kSVE2}, + {"umlalb_z_zzz"_h, CPUFeatures::kSVE2}, + {"umlalb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"umlalb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"umlalt_z_zzz"_h, CPUFeatures::kSVE2}, + {"umlalt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"umlalt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"umlslb_z_zzz"_h, CPUFeatures::kSVE2}, + {"umlslb_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"umlslb_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"umlslt_z_zzz"_h, CPUFeatures::kSVE2}, + {"umlslt_z_zzzi_d"_h, CPUFeatures::kSVE2}, + {"umlslt_z_zzzi_s"_h, CPUFeatures::kSVE2}, + {"umulh_z_zz"_h, CPUFeatures::kSVE2}, + {"umullb_z_zz"_h, CPUFeatures::kSVE2}, + {"umullb_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"umullb_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"umullt_z_zz"_h, CPUFeatures::kSVE2}, + {"umullt_z_zzi_d"_h, CPUFeatures::kSVE2}, + {"umullt_z_zzi_s"_h, CPUFeatures::kSVE2}, + {"uqadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqrshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqrshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqrshrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"uqrshrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"uqshl_z_p_zi"_h, CPUFeatures::kSVE2}, + {"uqshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqshrnb_z_zi"_h, CPUFeatures::kSVE2}, + {"uqshrnt_z_zi"_h, CPUFeatures::kSVE2}, + {"uqsub_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqsubr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"uqxtnb_z_zz"_h, CPUFeatures::kSVE2}, + {"uqxtnt_z_zz"_h, CPUFeatures::kSVE2}, + {"urecpe_z_p_z"_h, CPUFeatures::kSVE2}, + {"urhadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"urshl_z_p_zz"_h, CPUFeatures::kSVE2}, + {"urshlr_z_p_zz"_h, CPUFeatures::kSVE2}, + {"urshr_z_p_zi"_h, CPUFeatures::kSVE2}, + {"ursqrte_z_p_z"_h, CPUFeatures::kSVE2}, + {"ursra_z_zi"_h, CPUFeatures::kSVE2}, + {"ushllb_z_zi"_h, CPUFeatures::kSVE2}, + {"ushllt_z_zi"_h, CPUFeatures::kSVE2}, + {"usqadd_z_p_zz"_h, CPUFeatures::kSVE2}, + {"usra_z_zi"_h, CPUFeatures::kSVE2}, + {"usublb_z_zz"_h, CPUFeatures::kSVE2}, + {"usublt_z_zz"_h, CPUFeatures::kSVE2}, + {"usubwb_z_zz"_h, CPUFeatures::kSVE2}, + {"usubwt_z_zz"_h, CPUFeatures::kSVE2}, + {"whilege_p_p_rr"_h, CPUFeatures::kSVE2}, + {"whilegt_p_p_rr"_h, CPUFeatures::kSVE2}, + {"whilehi_p_p_rr"_h, CPUFeatures::kSVE2}, + {"whilehs_p_p_rr"_h, CPUFeatures::kSVE2}, + {"whilerw_p_rr"_h, CPUFeatures::kSVE2}, + {"whilewr_p_rr"_h, CPUFeatures::kSVE2}, + {"xar_z_zzi"_h, CPUFeatures::kSVE2}, + {"smmla_z_zzz"_h, + CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, + {"ummla_z_zzz"_h, + CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, + {"usmmla_z_zzz"_h, + CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, + {"fmmla_z_zzz_s"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF32MM)}, - {"fmmla_z_zzz_d", + {"fmmla_z_zzz_d"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"smmla_asimdsame2_g", + {"smmla_asimdsame2_g"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"ummla_asimdsame2_g", + {"ummla_asimdsame2_g"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"usmmla_asimdsame2_g", + {"usmmla_asimdsame2_g"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"ld1row_z_p_bi_u32", + {"ld1row_z_p_bi_u32"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1row_z_p_br_contiguous", + {"ld1row_z_p_br_contiguous"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1rod_z_p_bi_u64", + {"ld1rod_z_p_bi_u64"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1rod_z_p_br_contiguous", + {"ld1rod_z_p_br_contiguous"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1rob_z_p_bi_u8", + {"ld1rob_z_p_bi_u8"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1rob_z_p_br_contiguous", + {"ld1rob_z_p_br_contiguous"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1roh_z_p_bi_u16", + {"ld1roh_z_p_bi_u16"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"ld1roh_z_p_br_contiguous", + {"ld1roh_z_p_br_contiguous"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEF64MM)}, - {"usdot_asimdsame2_d", + {"usdot_asimdsame2_d"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"sudot_asimdelem_d", + {"sudot_asimdelem_d"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"usdot_asimdelem_d", + {"usdot_asimdelem_d"_h, CPUFeatures(CPUFeatures::kNEON, CPUFeatures::kI8MM)}, - {"usdot_z_zzz_s", + {"usdot_z_zzz_s"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, - {"usdot_z_zzzi_s", + {"usdot_z_zzzi_s"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, - {"sudot_z_zzzi_s", + {"sudot_z_zzzi_s"_h, CPUFeatures(CPUFeatures::kSVE, CPUFeatures::kSVEI8MM)}, }; - if (features.count(form) > 0) { - scope.Record(features[form]); + if (features.count(form_hash) > 0) { + scope.Record(features[form_hash]); } + } else { + (it->second)(this, instr); } } diff --git a/src/aarch64/cpu-features-auditor-aarch64.h b/src/aarch64/cpu-features-auditor-aarch64.h index 7329def5..041bc88e 100644 --- a/src/aarch64/cpu-features-auditor-aarch64.h +++ b/src/aarch64/cpu-features-auditor-aarch64.h @@ -123,7 +123,7 @@ class CPUFeaturesAuditor : public DecoderVisitor { Decoder* decoder_; using FormToVisitorFnMap = std::unordered_map< - std::string, + uint32_t, std::function<void(CPUFeaturesAuditor*, const Instruction*)>>; static const FormToVisitorFnMap* GetFormToVisitorFnMap(); }; diff --git a/src/aarch64/decoder-visitor-map-aarch64.h b/src/aarch64/decoder-visitor-map-aarch64.h index cc456a6b..49c27b2b 100644 --- a/src/aarch64/decoder-visitor-map-aarch64.h +++ b/src/aarch64/decoder-visitor-map-aarch64.h @@ -34,2850 +34,2940 @@ // shared. #define DEFAULT_FORM_TO_VISITOR_MAP(VISITORCLASS) \ - {"abs_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"addpl_r_ri", &VISITORCLASS::VisitSVEStackFrameAdjustment}, \ - {"addvl_r_ri", &VISITORCLASS::VisitSVEStackFrameAdjustment}, \ - {"add_z_p_zz", &VISITORCLASS::VisitSVEIntAddSubtractVectors_Predicated}, \ - {"add_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"add_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"adr_z_az_d_s32_scaled", &VISITORCLASS::VisitSVEAddressGeneration}, \ - {"adr_z_az_d_u32_scaled", &VISITORCLASS::VisitSVEAddressGeneration}, \ - {"adr_z_az_sd_same_scaled", &VISITORCLASS::VisitSVEAddressGeneration}, \ - {"ands_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"andv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"and_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"and_z_p_zz", &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ - {"and_z_zi", &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ - {"and_z_zz", &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ - {"asrd_z_p_zi", &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ - {"asrr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"asr_z_p_zi", &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ - {"asr_z_p_zw", \ + {"abs_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"addpl_r_ri"_h, &VISITORCLASS::VisitSVEStackFrameAdjustment}, \ + {"addvl_r_ri"_h, &VISITORCLASS::VisitSVEStackFrameAdjustment}, \ + {"add_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntAddSubtractVectors_Predicated}, \ + {"add_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"add_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"adr_z_az_d_s32_scaled"_h, &VISITORCLASS::VisitSVEAddressGeneration}, \ + {"adr_z_az_d_u32_scaled"_h, &VISITORCLASS::VisitSVEAddressGeneration}, \ + {"adr_z_az_sd_same_scaled"_h, &VISITORCLASS::VisitSVEAddressGeneration}, \ + {"ands_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"andv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"and_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"and_z_p_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ + {"and_z_zi"_h, \ + &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ + {"and_z_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ + {"asrd_z_p_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ + {"asrr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"asr_z_p_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ + {"asr_z_p_zw"_h, \ &VISITORCLASS::VisitSVEBitwiseShiftByWideElements_Predicated}, \ - {"asr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"asr_z_zi", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"asr_z_zw", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"bics_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"bic_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"bic_z_p_zz", &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ - {"bic_z_zz", &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ - {"brkas_p_p_p_z", &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ - {"brka_p_p_p", &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ - {"brkbs_p_p_p_z", &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ - {"brkb_p_p_p", &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ - {"brkns_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreakToNextPartition}, \ - {"brkn_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreakToNextPartition}, \ - {"brkpas_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreak}, \ - {"brkpa_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreak}, \ - {"brkpbs_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreak}, \ - {"brkpb_p_p_pp", &VISITORCLASS::VisitSVEPropagateBreak}, \ - {"clasta_r_p_z", \ + {"asr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"asr_z_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"asr_z_zw"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"bics_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"bic_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"bic_z_p_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ + {"bic_z_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ + {"brkas_p_p_p_z"_h, &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ + {"brka_p_p_p"_h, &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ + {"brkbs_p_p_p_z"_h, &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ + {"brkb_p_p_p"_h, &VISITORCLASS::VisitSVEPartitionBreakCondition}, \ + {"brkns_p_p_pp"_h, \ + &VISITORCLASS::VisitSVEPropagateBreakToNextPartition}, \ + {"brkn_p_p_pp"_h, &VISITORCLASS::VisitSVEPropagateBreakToNextPartition}, \ + {"brkpas_p_p_pp"_h, &VISITORCLASS::VisitSVEPropagateBreak}, \ + {"brkpa_p_p_pp"_h, &VISITORCLASS::VisitSVEPropagateBreak}, \ + {"brkpbs_p_p_pp"_h, &VISITORCLASS::VisitSVEPropagateBreak}, \ + {"brkpb_p_p_pp"_h, &VISITORCLASS::VisitSVEPropagateBreak}, \ + {"clasta_r_p_z"_h, \ &VISITORCLASS::VisitSVEConditionallyExtractElementToGeneralRegister}, \ - {"clasta_v_p_z", \ + {"clasta_v_p_z"_h, \ &VISITORCLASS::VisitSVEConditionallyExtractElementToSIMDFPScalar}, \ - {"clasta_z_p_zz", \ + {"clasta_z_p_zz"_h, \ &VISITORCLASS::VisitSVEConditionallyBroadcastElementToVector}, \ - {"clastb_r_p_z", \ + {"clastb_r_p_z"_h, \ &VISITORCLASS::VisitSVEConditionallyExtractElementToGeneralRegister}, \ - {"clastb_v_p_z", \ + {"clastb_v_p_z"_h, \ &VISITORCLASS::VisitSVEConditionallyExtractElementToSIMDFPScalar}, \ - {"clastb_z_p_zz", \ + {"clastb_z_p_zz"_h, \ &VISITORCLASS::VisitSVEConditionallyBroadcastElementToVector}, \ - {"cls_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"clz_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"cmpeq_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmpeq_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpeq_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpge_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmpge_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpge_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpgt_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmpgt_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpgt_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmphi_p_p_zi", &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ - {"cmphi_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmphi_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmphs_p_p_zi", &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ - {"cmphs_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmphs_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmple_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmple_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmplo_p_p_zi", &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ - {"cmplo_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpls_p_p_zi", &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ - {"cmpls_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmplt_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmplt_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpne_p_p_zi", &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ - {"cmpne_p_p_zw", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cmpne_p_p_zz", &VISITORCLASS::VisitSVEIntCompareVectors}, \ - {"cnot_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"cntb_r_s", &VISITORCLASS::VisitSVEElementCount}, \ - {"cntd_r_s", &VISITORCLASS::VisitSVEElementCount}, \ - {"cnth_r_s", &VISITORCLASS::VisitSVEElementCount}, \ - {"cntp_r_p_p", &VISITORCLASS::VisitSVEPredicateCount}, \ - {"cntw_r_s", &VISITORCLASS::VisitSVEElementCount}, \ - {"cnt_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"compact_z_p_z", &VISITORCLASS::VisitSVECompressActiveElements}, \ - {"cpy_z_o_i", &VISITORCLASS::VisitSVECopyIntImm_Predicated}, \ - {"cpy_z_p_i", &VISITORCLASS::VisitSVECopyIntImm_Predicated}, \ - {"cpy_z_p_r", \ + {"cls_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"clz_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"cmpeq_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmpeq_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpeq_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpge_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmpge_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpge_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpgt_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmpgt_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpgt_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmphi_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ + {"cmphi_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmphi_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmphs_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ + {"cmphs_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmphs_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmple_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmple_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmplo_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ + {"cmplo_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpls_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareUnsignedImm}, \ + {"cmpls_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmplt_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmplt_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpne_p_p_zi"_h, &VISITORCLASS::VisitSVEIntCompareSignedImm}, \ + {"cmpne_p_p_zw"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cmpne_p_p_zz"_h, &VISITORCLASS::VisitSVEIntCompareVectors}, \ + {"cnot_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"cntb_r_s"_h, &VISITORCLASS::VisitSVEElementCount}, \ + {"cntd_r_s"_h, &VISITORCLASS::VisitSVEElementCount}, \ + {"cnth_r_s"_h, &VISITORCLASS::VisitSVEElementCount}, \ + {"cntp_r_p_p"_h, &VISITORCLASS::VisitSVEPredicateCount}, \ + {"cntw_r_s"_h, &VISITORCLASS::VisitSVEElementCount}, \ + {"cnt_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"compact_z_p_z"_h, &VISITORCLASS::VisitSVECompressActiveElements}, \ + {"cpy_z_o_i"_h, &VISITORCLASS::VisitSVECopyIntImm_Predicated}, \ + {"cpy_z_p_i"_h, &VISITORCLASS::VisitSVECopyIntImm_Predicated}, \ + {"cpy_z_p_r"_h, \ &VISITORCLASS::VisitSVECopyGeneralRegisterToVector_Predicated}, \ - {"cpy_z_p_v", \ + {"cpy_z_p_v"_h, \ &VISITORCLASS::VisitSVECopySIMDFPScalarRegisterToVector_Predicated}, \ - {"ctermeq_rr", &VISITORCLASS::VisitSVEConditionallyTerminateScalars}, \ - {"ctermne_rr", &VISITORCLASS::VisitSVEConditionallyTerminateScalars}, \ - {"decb_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"decd_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"decd_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"dech_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"dech_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"decp_r_p_r", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"decp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"decw_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"decw_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"dupm_z_i", &VISITORCLASS::VisitSVEBroadcastBitmaskImm}, \ - {"dup_z_i", &VISITORCLASS::VisitSVEBroadcastIntImm_Unpredicated}, \ - {"dup_z_r", &VISITORCLASS::VisitSVEBroadcastGeneralRegister}, \ - {"dup_z_zi", &VISITORCLASS::VisitSVEBroadcastIndexElement}, \ - {"eors_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"eorv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"eor_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"eor_z_p_zz", &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ - {"eor_z_zi", &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ - {"eor_z_zz", &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ - {"ext_z_zi_des", &VISITORCLASS::VisitSVEPermuteVectorExtract}, \ - {"fabd_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fabs_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"facge_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"facgt_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fadda_v_p_z", &VISITORCLASS::VisitSVEFPAccumulatingReduction}, \ - {"faddv_v_p_z", &VISITORCLASS::VisitSVEFPFastReduction}, \ - {"fadd_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fadd_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fadd_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"fcadd_z_p_zz", &VISITORCLASS::VisitSVEFPComplexAddition}, \ - {"fcmeq_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmeq_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fcmge_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmge_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fcmgt_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmgt_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fcmla_z_p_zzz", &VISITORCLASS::VisitSVEFPComplexMulAdd}, \ - {"fcmla_z_zzzi_h", &VISITORCLASS::VisitSVEFPComplexMulAddIndex}, \ - {"fcmla_z_zzzi_s", &VISITORCLASS::VisitSVEFPComplexMulAddIndex}, \ - {"fcmle_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmlt_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmne_p_p_z0", &VISITORCLASS::VisitSVEFPCompareWithZero}, \ - {"fcmne_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fcmuo_p_p_zz", &VISITORCLASS::VisitSVEFPCompareVectors}, \ - {"fcpy_z_p_i", &VISITORCLASS::VisitSVECopyFPImm_Predicated}, \ - {"fcvtzs_z_p_z_d2w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_d2x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_fp162h", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_fp162w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_fp162x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_s2w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzs_z_p_z_s2x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_d2w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_d2x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_fp162h", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_fp162w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_fp162x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_s2w", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvtzu_z_p_z_s2x", &VISITORCLASS::VisitSVEFPConvertToInt}, \ - {"fcvt_z_p_z_d2h", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fcvt_z_p_z_d2s", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fcvt_z_p_z_h2d", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fcvt_z_p_z_h2s", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fcvt_z_p_z_s2d", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fcvt_z_p_z_s2h", &VISITORCLASS::VisitSVEFPConvertPrecision}, \ - {"fdivr_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fdiv_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fdup_z_i", &VISITORCLASS::VisitSVEBroadcastFPImm_Unpredicated}, \ - {"fexpa_z_z", &VISITORCLASS::VisitSVEFPExponentialAccelerator}, \ - {"fmad_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fmaxnmv_v_p_z", &VISITORCLASS::VisitSVEFPFastReduction}, \ - {"fmaxnm_z_p_zs", \ + {"ctermeq_rr"_h, &VISITORCLASS::VisitSVEConditionallyTerminateScalars}, \ + {"ctermne_rr"_h, &VISITORCLASS::VisitSVEConditionallyTerminateScalars}, \ + {"decb_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"decd_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"decd_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"dech_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"dech_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"decp_r_p_r"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"decp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"decw_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"decw_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"dupm_z_i"_h, &VISITORCLASS::VisitSVEBroadcastBitmaskImm}, \ + {"dup_z_i"_h, &VISITORCLASS::VisitSVEBroadcastIntImm_Unpredicated}, \ + {"dup_z_r"_h, &VISITORCLASS::VisitSVEBroadcastGeneralRegister}, \ + {"dup_z_zi"_h, &VISITORCLASS::VisitSVEBroadcastIndexElement}, \ + {"eors_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"eorv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"eor_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"eor_z_p_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ + {"eor_z_zi"_h, \ + &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ + {"eor_z_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ + {"ext_z_zi_des"_h, &VISITORCLASS::VisitSVEPermuteVectorExtract}, \ + {"fabd_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fabs_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"facge_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"facgt_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fadda_v_p_z"_h, &VISITORCLASS::VisitSVEFPAccumulatingReduction}, \ + {"faddv_v_p_z"_h, &VISITORCLASS::VisitSVEFPFastReduction}, \ + {"fadd_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fadd_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fadd_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"fcadd_z_p_zz"_h, &VISITORCLASS::VisitSVEFPComplexAddition}, \ + {"fcmeq_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmeq_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fcmge_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmge_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fcmgt_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmgt_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fcmla_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPComplexMulAdd}, \ + {"fcmla_z_zzzi_h"_h, &VISITORCLASS::VisitSVEFPComplexMulAddIndex}, \ + {"fcmla_z_zzzi_s"_h, &VISITORCLASS::VisitSVEFPComplexMulAddIndex}, \ + {"fcmle_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmlt_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmne_p_p_z0"_h, &VISITORCLASS::VisitSVEFPCompareWithZero}, \ + {"fcmne_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fcmuo_p_p_zz"_h, &VISITORCLASS::VisitSVEFPCompareVectors}, \ + {"fcpy_z_p_i"_h, &VISITORCLASS::VisitSVECopyFPImm_Predicated}, \ + {"fcvtzs_z_p_z_d2w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_d2x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_fp162h"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_fp162w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_fp162x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_s2w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzs_z_p_z_s2x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_d2w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_d2x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_fp162h"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_fp162w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_fp162x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_s2w"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvtzu_z_p_z_s2x"_h, &VISITORCLASS::VisitSVEFPConvertToInt}, \ + {"fcvt_z_p_z_d2h"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fcvt_z_p_z_d2s"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fcvt_z_p_z_h2d"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fcvt_z_p_z_h2s"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fcvt_z_p_z_s2d"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fcvt_z_p_z_s2h"_h, &VISITORCLASS::VisitSVEFPConvertPrecision}, \ + {"fdivr_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fdiv_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fdup_z_i"_h, &VISITORCLASS::VisitSVEBroadcastFPImm_Unpredicated}, \ + {"fexpa_z_z"_h, &VISITORCLASS::VisitSVEFPExponentialAccelerator}, \ + {"fmad_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fmaxnmv_v_p_z"_h, &VISITORCLASS::VisitSVEFPFastReduction}, \ + {"fmaxnm_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fmaxnm_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fmaxv_v_p_z"_h, &VISITORCLASS::VisitSVEFPFastReduction}, \ + {"fmax_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fmax_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fminnmv_v_p_z"_h, &VISITORCLASS::VisitSVEFPFastReduction}, \ + {"fminnm_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fminnm_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fminv_v_p_z"_h, &VISITORCLASS::VisitSVEFPFastReduction}, \ + {"fmin_z_p_zs"_h, \ &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fmaxnm_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fmaxv_v_p_z", &VISITORCLASS::VisitSVEFPFastReduction}, \ - {"fmax_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fmax_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fminnmv_v_p_z", &VISITORCLASS::VisitSVEFPFastReduction}, \ - {"fminnm_z_p_zs", \ + {"fmin_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fmla_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fmla_z_zzzi_d"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmla_z_zzzi_h"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmla_z_zzzi_s"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmls_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fmls_z_zzzi_d"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmls_z_zzzi_h"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmls_z_zzzi_s"_h, &VISITORCLASS::VisitSVEFPMulAddIndex}, \ + {"fmsb_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fmulx_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fmul_z_p_zs"_h, \ &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fminnm_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fminv_v_p_z", &VISITORCLASS::VisitSVEFPFastReduction}, \ - {"fmin_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fmin_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fmla_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fmla_z_zzzi_d", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmla_z_zzzi_h", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmla_z_zzzi_s", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmls_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fmls_z_zzzi_d", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmls_z_zzzi_h", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmls_z_zzzi_s", &VISITORCLASS::VisitSVEFPMulAddIndex}, \ - {"fmsb_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fmulx_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fmul_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fmul_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fmul_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"fmul_z_zzi_d", &VISITORCLASS::VisitSVEFPMulIndex}, \ - {"fmul_z_zzi_h", &VISITORCLASS::VisitSVEFPMulIndex}, \ - {"fmul_z_zzi_s", &VISITORCLASS::VisitSVEFPMulIndex}, \ - {"fneg_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"fnmad_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fnmla_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fnmls_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"fnmsb_z_p_zzz", &VISITORCLASS::VisitSVEFPMulAdd}, \ - {"frecpe_z_z", &VISITORCLASS::VisitSVEFPUnaryOpUnpredicated}, \ - {"frecps_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"frecpx_z_p_z", &VISITORCLASS::VisitSVEFPUnaryOp}, \ - {"frinta_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frinti_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frintm_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frintn_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frintp_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frintx_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frintz_z_p_z", &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ - {"frsqrte_z_z", &VISITORCLASS::VisitSVEFPUnaryOpUnpredicated}, \ - {"frsqrts_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"fscale_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fsqrt_z_p_z", &VISITORCLASS::VisitSVEFPUnaryOp}, \ - {"fsubr_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fsubr_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fsub_z_p_zs", &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ - {"fsub_z_p_zz", &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ - {"fsub_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"ftmad_z_zzi", &VISITORCLASS::VisitSVEFPTrigMulAddCoefficient}, \ - {"ftsmul_z_zz", &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ - {"ftssel_z_zz", &VISITORCLASS::VisitSVEFPTrigSelectCoefficient}, \ - {"incb_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"incd_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"incd_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"inch_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"inch_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"incp_r_p_r", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"incp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"incw_r_rs", &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ - {"incw_z_zs", &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ - {"index_z_ii", &VISITORCLASS::VisitSVEIndexGeneration}, \ - {"index_z_ir", &VISITORCLASS::VisitSVEIndexGeneration}, \ - {"index_z_ri", &VISITORCLASS::VisitSVEIndexGeneration}, \ - {"index_z_rr", &VISITORCLASS::VisitSVEIndexGeneration}, \ - {"insr_z_r", &VISITORCLASS::VisitSVEInsertGeneralRegister}, \ - {"insr_z_v", &VISITORCLASS::VisitSVEInsertSIMDFPScalarRegister}, \ - {"lasta_r_p_z", &VISITORCLASS::VisitSVEExtractElementToGeneralRegister}, \ - {"lasta_v_p_z", \ + {"fmul_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fmul_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"fmul_z_zzi_d"_h, &VISITORCLASS::VisitSVEFPMulIndex}, \ + {"fmul_z_zzi_h"_h, &VISITORCLASS::VisitSVEFPMulIndex}, \ + {"fmul_z_zzi_s"_h, &VISITORCLASS::VisitSVEFPMulIndex}, \ + {"fneg_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"fnmad_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fnmla_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fnmls_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"fnmsb_z_p_zzz"_h, &VISITORCLASS::VisitSVEFPMulAdd}, \ + {"frecpe_z_z"_h, &VISITORCLASS::VisitSVEFPUnaryOpUnpredicated}, \ + {"frecps_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"frecpx_z_p_z"_h, &VISITORCLASS::VisitSVEFPUnaryOp}, \ + {"frinta_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frinti_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frintm_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frintn_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frintp_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frintx_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frintz_z_p_z"_h, &VISITORCLASS::VisitSVEFPRoundToIntegralValue}, \ + {"frsqrte_z_z"_h, &VISITORCLASS::VisitSVEFPUnaryOpUnpredicated}, \ + {"frsqrts_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"fscale_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fsqrt_z_p_z"_h, &VISITORCLASS::VisitSVEFPUnaryOp}, \ + {"fsubr_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fsubr_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fsub_z_p_zs"_h, \ + &VISITORCLASS::VisitSVEFPArithmeticWithImm_Predicated}, \ + {"fsub_z_p_zz"_h, &VISITORCLASS::VisitSVEFPArithmetic_Predicated}, \ + {"fsub_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"ftmad_z_zzi"_h, &VISITORCLASS::VisitSVEFPTrigMulAddCoefficient}, \ + {"ftsmul_z_zz"_h, &VISITORCLASS::VisitSVEFPArithmeticUnpredicated}, \ + {"ftssel_z_zz"_h, &VISITORCLASS::VisitSVEFPTrigSelectCoefficient}, \ + {"incb_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"incd_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"incd_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"inch_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"inch_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"incp_r_p_r"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"incp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"incw_r_rs"_h, &VISITORCLASS::VisitSVEIncDecRegisterByElementCount}, \ + {"incw_z_zs"_h, &VISITORCLASS::VisitSVEIncDecVectorByElementCount}, \ + {"index_z_ii"_h, &VISITORCLASS::VisitSVEIndexGeneration}, \ + {"index_z_ir"_h, &VISITORCLASS::VisitSVEIndexGeneration}, \ + {"index_z_ri"_h, &VISITORCLASS::VisitSVEIndexGeneration}, \ + {"index_z_rr"_h, &VISITORCLASS::VisitSVEIndexGeneration}, \ + {"insr_z_r"_h, &VISITORCLASS::VisitSVEInsertGeneralRegister}, \ + {"insr_z_v"_h, &VISITORCLASS::VisitSVEInsertSIMDFPScalarRegister}, \ + {"lasta_r_p_z"_h, \ + &VISITORCLASS::VisitSVEExtractElementToGeneralRegister}, \ + {"lasta_v_p_z"_h, \ &VISITORCLASS::VisitSVEExtractElementToSIMDFPScalarRegister}, \ - {"lastb_r_p_z", &VISITORCLASS::VisitSVEExtractElementToGeneralRegister}, \ - {"lastb_v_p_z", \ + {"lastb_r_p_z"_h, \ + &VISITORCLASS::VisitSVEExtractElementToGeneralRegister}, \ + {"lastb_v_p_z"_h, \ &VISITORCLASS::VisitSVEExtractElementToSIMDFPScalarRegister}, \ - {"ld1b_z_p_ai_d", &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1b_z_p_ai_s", &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ld1b_z_p_bi_u16", \ + {"ld1b_z_p_ai_d"_h, \ + &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ + {"ld1b_z_p_ai_s"_h, \ + &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ + {"ld1b_z_p_bi_u16"_h, \ + &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ + {"ld1b_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1b_z_p_bi_u32", \ + {"ld1b_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1b_z_p_bi_u64", \ + {"ld1b_z_p_bi_u8"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1b_z_p_bi_u8", &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1b_z_p_br_u16", \ + {"ld1b_z_p_br_u16"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1b_z_p_br_u32", \ + {"ld1b_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1b_z_p_br_u64", \ + {"ld1b_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1b_z_p_br_u8", \ + {"ld1b_z_p_br_u8"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1b_z_p_bz_d_64_unscaled", \ + {"ld1b_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1b_z_p_bz_d_x32_unscaled", \ + {"ld1b_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1b_z_p_bz_s_x32_unscaled", \ + {"ld1b_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ld1d_z_p_ai_d", &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1d_z_p_bi_u64", \ + {"ld1d_z_p_ai_d"_h, \ + &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ + {"ld1d_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1d_z_p_br_u64", \ + {"ld1d_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1d_z_p_bz_d_64_scaled", \ + {"ld1d_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ld1d_z_p_bz_d_64_unscaled", \ + {"ld1d_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1d_z_p_bz_d_x32_scaled", \ + {"ld1d_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ld1d_z_p_bz_d_x32_unscaled", \ + {"ld1d_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1h_z_p_ai_d", &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1h_z_p_ai_s", &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ld1h_z_p_bi_u16", \ + {"ld1h_z_p_ai_d"_h, \ + &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ + {"ld1h_z_p_ai_s"_h, \ + &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ + {"ld1h_z_p_bi_u16"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1h_z_p_bi_u32", \ + {"ld1h_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1h_z_p_bi_u64", \ + {"ld1h_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1h_z_p_br_u16", \ + {"ld1h_z_p_br_u16"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1h_z_p_br_u32", \ + {"ld1h_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1h_z_p_br_u64", \ + {"ld1h_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1h_z_p_bz_d_64_scaled", \ + {"ld1h_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ld1h_z_p_bz_d_64_unscaled", \ + {"ld1h_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1h_z_p_bz_d_x32_scaled", \ + {"ld1h_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ld1h_z_p_bz_d_x32_unscaled", \ + {"ld1h_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1h_z_p_bz_s_x32_scaled", \ + {"ld1h_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets}, \ - {"ld1h_z_p_bz_s_x32_unscaled", \ + {"ld1h_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ld1rb_z_p_bi_u16", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rb_z_p_bi_u32", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rb_z_p_bi_u64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rb_z_p_bi_u8", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rd_z_p_bi_u64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rh_z_p_bi_u16", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rh_z_p_bi_u32", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rh_z_p_bi_u64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rqb_z_p_bi_u8", \ + {"ld1rb_z_p_bi_u16"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rb_z_p_bi_u32"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rb_z_p_bi_u64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rb_z_p_bi_u8"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rd_z_p_bi_u64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rh_z_p_bi_u16"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rh_z_p_bi_u32"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rh_z_p_bi_u64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rqb_z_p_bi_u8"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, \ - {"ld1rqb_z_p_br_contiguous", \ + {"ld1rqb_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, \ - {"ld1rqd_z_p_bi_u64", \ + {"ld1rqd_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, \ - {"ld1rqd_z_p_br_contiguous", \ + {"ld1rqd_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, \ - {"ld1rqh_z_p_bi_u16", \ + {"ld1rqh_z_p_bi_u16"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, \ - {"ld1rqh_z_p_br_contiguous", \ + {"ld1rqh_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, \ - {"ld1rqw_z_p_bi_u32", \ + {"ld1rqw_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, \ - {"ld1rqw_z_p_br_contiguous", \ + {"ld1rqw_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, \ - {"ld1rsb_z_p_bi_s16", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rsb_z_p_bi_s32", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rsb_z_p_bi_s64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rsh_z_p_bi_s32", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rsh_z_p_bi_s64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rsw_z_p_bi_s64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rw_z_p_bi_u32", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1rw_z_p_bi_u64", &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ - {"ld1sb_z_p_ai_d", \ + {"ld1rsb_z_p_bi_s16"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rsb_z_p_bi_s32"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rsb_z_p_bi_s64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rsh_z_p_bi_s32"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rsh_z_p_bi_s64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rsw_z_p_bi_s64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rw_z_p_bi_u32"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1rw_z_p_bi_u64"_h, &VISITORCLASS::VisitSVELoadAndBroadcastElement}, \ + {"ld1sb_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1sb_z_p_ai_s", \ + {"ld1sb_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ld1sb_z_p_bi_s16", \ + {"ld1sb_z_p_bi_s16"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sb_z_p_bi_s32", \ + {"ld1sb_z_p_bi_s32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sb_z_p_bi_s64", \ + {"ld1sb_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sb_z_p_br_s16", \ + {"ld1sb_z_p_br_s16"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sb_z_p_br_s32", \ + {"ld1sb_z_p_br_s32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sb_z_p_br_s64", \ + {"ld1sb_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sb_z_p_bz_d_64_unscaled", \ + {"ld1sb_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1sb_z_p_bz_d_x32_unscaled", \ + {"ld1sb_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1sb_z_p_bz_s_x32_unscaled", \ + {"ld1sb_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ld1sh_z_p_ai_d", \ + {"ld1sh_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1sh_z_p_ai_s", \ + {"ld1sh_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ld1sh_z_p_bi_s32", \ + {"ld1sh_z_p_bi_s32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sh_z_p_bi_s64", \ + {"ld1sh_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sh_z_p_br_s32", \ + {"ld1sh_z_p_br_s32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sh_z_p_br_s64", \ + {"ld1sh_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sh_z_p_bz_d_64_scaled", \ + {"ld1sh_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ld1sh_z_p_bz_d_64_unscaled", \ + {"ld1sh_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1sh_z_p_bz_d_x32_scaled", \ + {"ld1sh_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ld1sh_z_p_bz_d_x32_unscaled", \ + {"ld1sh_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1sh_z_p_bz_s_x32_scaled", \ + {"ld1sh_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets}, \ - {"ld1sh_z_p_bz_s_x32_unscaled", \ + {"ld1sh_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ld1sw_z_p_ai_d", \ + {"ld1sw_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1sw_z_p_bi_s64", \ + {"ld1sw_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1sw_z_p_br_s64", \ + {"ld1sw_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1sw_z_p_bz_d_64_scaled", \ + {"ld1sw_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ld1sw_z_p_bz_d_64_unscaled", \ + {"ld1sw_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1sw_z_p_bz_d_x32_scaled", \ + {"ld1sw_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ld1sw_z_p_bz_d_x32_unscaled", \ + {"ld1sw_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1w_z_p_ai_d", &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ld1w_z_p_ai_s", &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ld1w_z_p_bi_u32", \ + {"ld1w_z_p_ai_d"_h, \ + &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ + {"ld1w_z_p_ai_s"_h, \ + &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ + {"ld1w_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1w_z_p_bi_u64", \ + {"ld1w_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusImm}, \ - {"ld1w_z_p_br_u32", \ + {"ld1w_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1w_z_p_br_u64", \ + {"ld1w_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousLoad_ScalarPlusScalar}, \ - {"ld1w_z_p_bz_d_64_scaled", \ + {"ld1w_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ld1w_z_p_bz_d_64_unscaled", \ + {"ld1w_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ld1w_z_p_bz_d_x32_scaled", \ + {"ld1w_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ld1w_z_p_bz_d_x32_unscaled", \ + {"ld1w_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ld1w_z_p_bz_s_x32_scaled", \ + {"ld1w_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets}, \ - {"ld1w_z_p_bz_s_x32_unscaled", \ + {"ld1w_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ld2b_z_p_bi_contiguous", \ + {"ld2b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld2b_z_p_br_contiguous", \ + {"ld2b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld2d_z_p_bi_contiguous", \ + {"ld2d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld2d_z_p_br_contiguous", \ + {"ld2d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld2h_z_p_bi_contiguous", \ + {"ld2h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld2h_z_p_br_contiguous", \ + {"ld2h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld2w_z_p_bi_contiguous", \ + {"ld2w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld2w_z_p_br_contiguous", \ + {"ld2w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld3b_z_p_bi_contiguous", \ + {"ld3b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld3b_z_p_br_contiguous", \ + {"ld3b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld3d_z_p_bi_contiguous", \ + {"ld3d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld3d_z_p_br_contiguous", \ + {"ld3d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld3h_z_p_bi_contiguous", \ + {"ld3h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld3h_z_p_br_contiguous", \ + {"ld3h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld3w_z_p_bi_contiguous", \ + {"ld3w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld3w_z_p_br_contiguous", \ + {"ld3w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld4b_z_p_bi_contiguous", \ + {"ld4b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld4b_z_p_br_contiguous", \ + {"ld4b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld4d_z_p_bi_contiguous", \ + {"ld4d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld4d_z_p_br_contiguous", \ + {"ld4d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld4h_z_p_bi_contiguous", \ + {"ld4h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld4h_z_p_br_contiguous", \ + {"ld4h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ld4w_z_p_bi_contiguous", \ + {"ld4w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusImm}, \ - {"ld4w_z_p_br_contiguous", \ + {"ld4w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVELoadMultipleStructures_ScalarPlusScalar}, \ - {"ldff1b_z_p_ai_d", \ + {"ldff1b_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1b_z_p_ai_s", \ + {"ldff1b_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ldff1b_z_p_br_u16", \ + {"ldff1b_z_p_br_u16"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1b_z_p_br_u32", \ + {"ldff1b_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1b_z_p_br_u64", \ + {"ldff1b_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1b_z_p_br_u8", \ + {"ldff1b_z_p_br_u8"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1b_z_p_bz_d_64_unscaled", \ + {"ldff1b_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1b_z_p_bz_d_x32_unscaled", \ + {"ldff1b_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1b_z_p_bz_s_x32_unscaled", \ + {"ldff1b_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ldff1d_z_p_ai_d", \ + {"ldff1d_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1d_z_p_br_u64", \ + {"ldff1d_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1d_z_p_bz_d_64_scaled", \ + {"ldff1d_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ldff1d_z_p_bz_d_64_unscaled", \ + {"ldff1d_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1d_z_p_bz_d_x32_scaled", \ + {"ldff1d_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ldff1d_z_p_bz_d_x32_unscaled", \ + {"ldff1d_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1h_z_p_ai_d", \ + {"ldff1h_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1h_z_p_ai_s", \ + {"ldff1h_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ldff1h_z_p_br_u16", \ + {"ldff1h_z_p_br_u16"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1h_z_p_br_u32", \ + {"ldff1h_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1h_z_p_br_u64", \ + {"ldff1h_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1h_z_p_bz_d_64_scaled", \ + {"ldff1h_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ldff1h_z_p_bz_d_64_unscaled", \ + {"ldff1h_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1h_z_p_bz_d_x32_scaled", \ + {"ldff1h_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ldff1h_z_p_bz_d_x32_unscaled", \ + {"ldff1h_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1h_z_p_bz_s_x32_scaled", \ + {"ldff1h_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets}, \ - {"ldff1h_z_p_bz_s_x32_unscaled", \ + {"ldff1h_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ldff1sb_z_p_ai_d", \ + {"ldff1sb_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1sb_z_p_ai_s", \ + {"ldff1sb_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ldff1sb_z_p_br_s16", \ + {"ldff1sb_z_p_br_s16"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sb_z_p_br_s32", \ + {"ldff1sb_z_p_br_s32"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sb_z_p_br_s64", \ + {"ldff1sb_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sb_z_p_bz_d_64_unscaled", \ + {"ldff1sb_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1sb_z_p_bz_d_x32_unscaled", \ + {"ldff1sb_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1sb_z_p_bz_s_x32_unscaled", \ + {"ldff1sb_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ldff1sh_z_p_ai_d", \ + {"ldff1sh_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1sh_z_p_ai_s", \ + {"ldff1sh_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ldff1sh_z_p_br_s32", \ + {"ldff1sh_z_p_br_s32"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sh_z_p_br_s64", \ + {"ldff1sh_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sh_z_p_bz_d_64_scaled", \ + {"ldff1sh_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ldff1sh_z_p_bz_d_64_unscaled", \ + {"ldff1sh_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1sh_z_p_bz_d_x32_scaled", \ + {"ldff1sh_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ldff1sh_z_p_bz_d_x32_unscaled", \ + {"ldff1sh_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1sh_z_p_bz_s_x32_scaled", \ + {"ldff1sh_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadHalfwords_ScalarPlus32BitScaledOffsets}, \ - {"ldff1sh_z_p_bz_s_x32_unscaled", \ + {"ldff1sh_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ldff1sw_z_p_ai_d", \ + {"ldff1sw_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1sw_z_p_br_s64", \ + {"ldff1sw_z_p_br_s64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1sw_z_p_bz_d_64_scaled", \ + {"ldff1sw_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ldff1sw_z_p_bz_d_64_unscaled", \ + {"ldff1sw_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1sw_z_p_bz_d_x32_scaled", \ + {"ldff1sw_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ldff1sw_z_p_bz_d_x32_unscaled", \ + {"ldff1sw_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1w_z_p_ai_d", \ + {"ldff1w_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_VectorPlusImm}, \ - {"ldff1w_z_p_ai_s", \ + {"ldff1w_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_VectorPlusImm}, \ - {"ldff1w_z_p_br_u32", \ + {"ldff1w_z_p_br_u32"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1w_z_p_br_u64", \ + {"ldff1w_z_p_br_u64"_h, \ &VISITORCLASS::VisitSVEContiguousFirstFaultLoad_ScalarPlusScalar}, \ - {"ldff1w_z_p_bz_d_64_scaled", \ + {"ldff1w_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitScaledOffsets}, \ - {"ldff1w_z_p_bz_d_64_unscaled", \ + {"ldff1w_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS::VisitSVE64BitGatherLoad_ScalarPlus64BitUnscaledOffsets}, \ - {"ldff1w_z_p_bz_d_x32_scaled", \ + {"ldff1w_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlus32BitUnpackedScaledOffsets}, \ - {"ldff1w_z_p_bz_d_x32_unscaled", \ + {"ldff1w_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherLoad_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"ldff1w_z_p_bz_s_x32_scaled", \ + {"ldff1w_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherLoadWords_ScalarPlus32BitScaledOffsets}, \ - {"ldff1w_z_p_bz_s_x32_unscaled", \ + {"ldff1w_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS::VisitSVE32BitGatherLoad_ScalarPlus32BitUnscaledOffsets}, \ - {"ldnf1b_z_p_bi_u16", \ + {"ldnf1b_z_p_bi_u16"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1b_z_p_bi_u32", \ + {"ldnf1b_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1b_z_p_bi_u64", \ + {"ldnf1b_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1b_z_p_bi_u8", \ + {"ldnf1b_z_p_bi_u8"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1d_z_p_bi_u64", \ + {"ldnf1d_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1h_z_p_bi_u16", \ + {"ldnf1h_z_p_bi_u16"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1h_z_p_bi_u32", \ + {"ldnf1h_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1h_z_p_bi_u64", \ + {"ldnf1h_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sb_z_p_bi_s16", \ + {"ldnf1sb_z_p_bi_s16"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sb_z_p_bi_s32", \ + {"ldnf1sb_z_p_bi_s32"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sb_z_p_bi_s64", \ + {"ldnf1sb_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sh_z_p_bi_s32", \ + {"ldnf1sh_z_p_bi_s32"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sh_z_p_bi_s64", \ + {"ldnf1sh_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1sw_z_p_bi_s64", \ + {"ldnf1sw_z_p_bi_s64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1w_z_p_bi_u32", \ + {"ldnf1w_z_p_bi_u32"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnf1w_z_p_bi_u64", \ + {"ldnf1w_z_p_bi_u64"_h, \ &VISITORCLASS::VisitSVEContiguousNonFaultLoad_ScalarPlusImm}, \ - {"ldnt1b_z_p_bi_contiguous", \ + {"ldnt1b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm}, \ - {"ldnt1b_z_p_br_contiguous", \ + {"ldnt1b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar}, \ - {"ldnt1d_z_p_bi_contiguous", \ + {"ldnt1d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm}, \ - {"ldnt1d_z_p_br_contiguous", \ + {"ldnt1d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar}, \ - {"ldnt1h_z_p_bi_contiguous", \ + {"ldnt1h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm}, \ - {"ldnt1h_z_p_br_contiguous", \ + {"ldnt1h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar}, \ - {"ldnt1w_z_p_bi_contiguous", \ + {"ldnt1w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusImm}, \ - {"ldnt1w_z_p_br_contiguous", \ + {"ldnt1w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalLoad_ScalarPlusScalar}, \ - {"ldr_p_bi", &VISITORCLASS::VisitSVELoadPredicateRegister}, \ - {"ldr_z_bi", &VISITORCLASS::VisitSVELoadVectorRegister}, \ - {"lslr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"lsl_z_p_zi", &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ - {"lsl_z_p_zw", \ + {"ldr_p_bi"_h, &VISITORCLASS::VisitSVELoadPredicateRegister}, \ + {"ldr_z_bi"_h, &VISITORCLASS::VisitSVELoadVectorRegister}, \ + {"lslr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"lsl_z_p_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ + {"lsl_z_p_zw"_h, \ &VISITORCLASS::VisitSVEBitwiseShiftByWideElements_Predicated}, \ - {"lsl_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"lsl_z_zi", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"lsl_z_zw", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"lsrr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"lsr_z_p_zi", &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ - {"lsr_z_p_zw", \ + {"lsl_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"lsl_z_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"lsl_z_zw"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"lsrr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"lsr_z_p_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftByImm_Predicated}, \ + {"lsr_z_p_zw"_h, \ &VISITORCLASS::VisitSVEBitwiseShiftByWideElements_Predicated}, \ - {"lsr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ - {"lsr_z_zi", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"lsr_z_zw", &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ - {"mad_z_p_zzz", &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ - {"mla_z_p_zzz", &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ - {"mls_z_p_zzz", &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ - {"movprfx_z_p_z", &VISITORCLASS::VisitSVEMovprfx}, \ - {"movprfx_z_z", &VISITORCLASS::VisitSVEConstructivePrefix_Unpredicated}, \ - {"msb_z_p_zzz", &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ - {"mul_z_p_zz", &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ - {"mul_z_zi", &VISITORCLASS::VisitSVEIntMulImm_Unpredicated}, \ - {"nands_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"nand_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"neg_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"nors_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"nor_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"not_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"orns_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"orn_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"orrs_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"orr_p_p_pp_z", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"orr_z_p_zz", &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ - {"orr_z_zi", &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ - {"orr_z_zz", &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ - {"orv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"pfalse_p", &VISITORCLASS::VisitSVEPredicateZero}, \ - {"pfirst_p_p_p", &VISITORCLASS::VisitSVEPredicateFirstActive}, \ - {"pnext_p_p_p", &VISITORCLASS::VisitSVEPredicateNextActive}, \ - {"prfb_i_p_ai_d", \ + {"lsr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEBitwiseShiftByVector_Predicated}, \ + {"lsr_z_zi"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"lsr_z_zw"_h, &VISITORCLASS::VisitSVEBitwiseShiftUnpredicated}, \ + {"mad_z_p_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ + {"mla_z_p_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ + {"mls_z_p_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ + {"movprfx_z_p_z"_h, &VISITORCLASS::VisitSVEMovprfx}, \ + {"movprfx_z_z"_h, \ + &VISITORCLASS::VisitSVEConstructivePrefix_Unpredicated}, \ + {"msb_z_p_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddPredicated}, \ + {"mul_z_p_zz"_h, &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ + {"mul_z_zi"_h, &VISITORCLASS::VisitSVEIntMulImm_Unpredicated}, \ + {"nands_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"nand_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"neg_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"nors_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"nor_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"not_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"orns_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"orn_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"orrs_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"orr_p_p_pp_z"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"orr_z_p_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogical_Predicated}, \ + {"orr_z_zi"_h, \ + &VISITORCLASS::VisitSVEBitwiseLogicalWithImm_Unpredicated}, \ + {"orr_z_zz"_h, &VISITORCLASS::VisitSVEBitwiseLogicalUnpredicated}, \ + {"orv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"pfalse_p"_h, &VISITORCLASS::VisitSVEPredicateZero}, \ + {"pfirst_p_p_p"_h, &VISITORCLASS::VisitSVEPredicateFirstActive}, \ + {"pnext_p_p_p"_h, &VISITORCLASS::VisitSVEPredicateNextActive}, \ + {"prfb_i_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherPrefetch_VectorPlusImm}, \ - {"prfb_i_p_ai_s", \ + {"prfb_i_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherPrefetch_VectorPlusImm}, \ - {"prfb_i_p_bi_s", \ + {"prfb_i_p_bi_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusImm}, \ - {"prfb_i_p_br_s", \ + {"prfb_i_p_br_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusScalar}, \ - {"prfb_i_p_bz_d_64_scaled", \ + {"prfb_i_p_bz_d_64_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets}, \ - {"prfb_i_p_bz_d_x32_scaled", \ + {"prfb_i_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"prfb_i_p_bz_s_x32_scaled", \ + {"prfb_i_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets}, \ - {"prfd_i_p_ai_d", \ + {"prfd_i_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherPrefetch_VectorPlusImm}, \ - {"prfd_i_p_ai_s", \ + {"prfd_i_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherPrefetch_VectorPlusImm}, \ - {"prfd_i_p_bi_s", \ + {"prfd_i_p_bi_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusImm}, \ - {"prfd_i_p_br_s", \ + {"prfd_i_p_br_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusScalar}, \ - {"prfd_i_p_bz_d_64_scaled", \ + {"prfd_i_p_bz_d_64_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets}, \ - {"prfd_i_p_bz_d_x32_scaled", \ + {"prfd_i_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"prfd_i_p_bz_s_x32_scaled", \ + {"prfd_i_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets}, \ - {"prfh_i_p_ai_d", \ + {"prfh_i_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherPrefetch_VectorPlusImm}, \ - {"prfh_i_p_ai_s", \ + {"prfh_i_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherPrefetch_VectorPlusImm}, \ - {"prfh_i_p_bi_s", \ + {"prfh_i_p_bi_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusImm}, \ - {"prfh_i_p_br_s", \ + {"prfh_i_p_br_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusScalar}, \ - {"prfh_i_p_bz_d_64_scaled", \ + {"prfh_i_p_bz_d_64_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets}, \ - {"prfh_i_p_bz_d_x32_scaled", \ + {"prfh_i_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"prfh_i_p_bz_s_x32_scaled", \ + {"prfh_i_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets}, \ - {"prfw_i_p_ai_d", \ + {"prfw_i_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitGatherPrefetch_VectorPlusImm}, \ - {"prfw_i_p_ai_s", \ + {"prfw_i_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitGatherPrefetch_VectorPlusImm}, \ - {"prfw_i_p_bi_s", \ + {"prfw_i_p_bi_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusImm}, \ - {"prfw_i_p_br_s", \ + {"prfw_i_p_br_s"_h, \ &VISITORCLASS::VisitSVEContiguousPrefetch_ScalarPlusScalar}, \ - {"prfw_i_p_bz_d_64_scaled", \ + {"prfw_i_p_bz_d_64_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlus64BitScaledOffsets}, \ - {"prfw_i_p_bz_d_x32_scaled", \ + {"prfw_i_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitGatherPrefetch_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"prfw_i_p_bz_s_x32_scaled", \ + {"prfw_i_p_bz_s_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitGatherPrefetch_ScalarPlus32BitScaledOffsets}, \ - {"ptest_p_p", &VISITORCLASS::VisitSVEPredicateTest}, \ - {"ptrues_p_s", &VISITORCLASS::VisitSVEPredicateInitialize}, \ - {"ptrue_p_s", &VISITORCLASS::VisitSVEPredicateInitialize}, \ - {"punpkhi_p_p", &VISITORCLASS::VisitSVEUnpackPredicateElements}, \ - {"punpklo_p_p", &VISITORCLASS::VisitSVEUnpackPredicateElements}, \ - {"rbit_z_p_z", &VISITORCLASS::VisitSVEReverseWithinElements}, \ - {"rdffrs_p_p_f", \ + {"ptest_p_p"_h, &VISITORCLASS::VisitSVEPredicateTest}, \ + {"ptrues_p_s"_h, &VISITORCLASS::VisitSVEPredicateInitialize}, \ + {"ptrue_p_s"_h, &VISITORCLASS::VisitSVEPredicateInitialize}, \ + {"punpkhi_p_p"_h, &VISITORCLASS::VisitSVEUnpackPredicateElements}, \ + {"punpklo_p_p"_h, &VISITORCLASS::VisitSVEUnpackPredicateElements}, \ + {"rbit_z_p_z"_h, &VISITORCLASS::VisitSVEReverseWithinElements}, \ + {"rdffrs_p_p_f"_h, \ &VISITORCLASS::VisitSVEPredicateReadFromFFR_Predicated}, \ - {"rdffr_p_f", &VISITORCLASS::VisitSVEPredicateReadFromFFR_Unpredicated}, \ - {"rdffr_p_p_f", &VISITORCLASS::VisitSVEPredicateReadFromFFR_Predicated}, \ - {"rdvl_r_i", &VISITORCLASS::VisitSVEStackFrameSize}, \ - {"revb_z_z", &VISITORCLASS::VisitSVEReverseWithinElements}, \ - {"revh_z_z", &VISITORCLASS::VisitSVEReverseWithinElements}, \ - {"revw_z_z", &VISITORCLASS::VisitSVEReverseWithinElements}, \ - {"rev_p_p", &VISITORCLASS::VisitSVEReversePredicateElements}, \ - {"rev_z_z", &VISITORCLASS::VisitSVEReverseVectorElements}, \ - {"sabd_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"saddv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"scvtf_z_p_z_h2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_w2d", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_w2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_w2s", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_x2d", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_x2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"scvtf_z_p_z_x2s", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"sdivr_z_p_zz", &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ - {"sdiv_z_p_zz", &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ - {"sdot_z_zzz", &VISITORCLASS::VisitSVEIntMulAddUnpredicated}, \ - {"sdot_z_zzzi_d", &VISITORCLASS::VisitSVEMulIndex}, \ - {"sdot_z_zzzi_s", &VISITORCLASS::VisitSVEMulIndex}, \ - {"sel_p_p_pp", &VISITORCLASS::VisitSVEPredicateLogical}, \ - {"sel_z_p_zz", &VISITORCLASS::VisitSVEVectorSelect}, \ - {"setffr_f", &VISITORCLASS::VisitSVEFFRInitialise}, \ - {"smaxv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"smax_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"smax_z_zi", &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ - {"sminv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"smin_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"smin_z_zi", &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ - {"smulh_z_p_zz", &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ - {"splice_z_p_zz_des", &VISITORCLASS::VisitSVEVectorSplice}, \ - {"sqadd_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"sqadd_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"sqdecb_r_rs_sx", \ + {"rdffr_p_f"_h, \ + &VISITORCLASS::VisitSVEPredicateReadFromFFR_Unpredicated}, \ + {"rdffr_p_p_f"_h, \ + &VISITORCLASS::VisitSVEPredicateReadFromFFR_Predicated}, \ + {"rdvl_r_i"_h, &VISITORCLASS::VisitSVEStackFrameSize}, \ + {"revb_z_z"_h, &VISITORCLASS::VisitSVEReverseWithinElements}, \ + {"revh_z_z"_h, &VISITORCLASS::VisitSVEReverseWithinElements}, \ + {"revw_z_z"_h, &VISITORCLASS::VisitSVEReverseWithinElements}, \ + {"rev_p_p"_h, &VISITORCLASS::VisitSVEReversePredicateElements}, \ + {"rev_z_z"_h, &VISITORCLASS::VisitSVEReverseVectorElements}, \ + {"sabd_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"saddv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"scvtf_z_p_z_h2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_w2d"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_w2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_w2s"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_x2d"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_x2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"scvtf_z_p_z_x2s"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"sdivr_z_p_zz"_h, &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ + {"sdiv_z_p_zz"_h, &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ + {"sdot_z_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddUnpredicated}, \ + {"sdot_z_zzzi_d"_h, &VISITORCLASS::VisitSVEMulIndex}, \ + {"sdot_z_zzzi_s"_h, &VISITORCLASS::VisitSVEMulIndex}, \ + {"sel_p_p_pp"_h, &VISITORCLASS::VisitSVEPredicateLogical}, \ + {"sel_z_p_zz"_h, &VISITORCLASS::VisitSVEVectorSelect}, \ + {"setffr_f"_h, &VISITORCLASS::VisitSVEFFRInitialise}, \ + {"smaxv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"smax_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"smax_z_zi"_h, &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ + {"sminv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"smin_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"smin_z_zi"_h, &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ + {"smulh_z_p_zz"_h, &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ + {"splice_z_p_zz_des"_h, &VISITORCLASS::VisitSVEVectorSplice}, \ + {"sqadd_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"sqadd_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"sqdecb_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecb_r_rs_x", \ + {"sqdecb_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecd_r_rs_sx", \ + {"sqdecd_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecd_r_rs_x", \ + {"sqdecd_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecd_z_zs", \ + {"sqdecd_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqdech_r_rs_sx", \ + {"sqdech_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdech_r_rs_x", \ + {"sqdech_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdech_z_zs", \ + {"sqdech_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqdecp_r_p_r_sx", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqdecp_r_p_r_x", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqdecp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqdecw_r_rs_sx", \ + {"sqdecp_r_p_r_sx"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqdecp_r_p_r_x"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqdecp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqdecw_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecw_r_rs_x", \ + {"sqdecw_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqdecw_z_zs", \ + {"sqdecw_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqincb_r_rs_sx", \ + {"sqincb_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincb_r_rs_x", \ + {"sqincb_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincd_r_rs_sx", \ + {"sqincd_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincd_r_rs_x", \ + {"sqincd_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincd_z_zs", \ + {"sqincd_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqinch_r_rs_sx", \ + {"sqinch_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqinch_r_rs_x", \ + {"sqinch_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqinch_z_zs", \ + {"sqinch_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqincp_r_p_r_sx", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqincp_r_p_r_x", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqincp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"sqincw_r_rs_sx", \ + {"sqincp_r_p_r_sx"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqincp_r_p_r_x"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqincp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"sqincw_r_rs_sx"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincw_r_rs_x", \ + {"sqincw_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"sqincw_z_zs", \ + {"sqincw_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"sqsub_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"sqsub_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"st1b_z_p_ai_d", \ + {"sqsub_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"sqsub_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"st1b_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_VectorPlusImm}, \ - {"st1b_z_p_ai_s", \ + {"st1b_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitScatterStore_VectorPlusImm}, \ - {"st1b_z_p_bi", &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ - {"st1b_z_p_br", \ + {"st1b_z_p_bi"_h, &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ + {"st1b_z_p_br"_h, \ &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusScalar}, \ - {"st1b_z_p_bz_d_64_unscaled", \ + {"st1b_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets}, \ - {"st1b_z_p_bz_d_x32_unscaled", \ + {"st1b_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"st1b_z_p_bz_s_x32_unscaled", \ + {"st1b_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets}, \ - {"st1d_z_p_ai_d", \ + {"st1d_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_VectorPlusImm}, \ - {"st1d_z_p_bi", &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ - {"st1d_z_p_br", \ + {"st1d_z_p_bi"_h, &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ + {"st1d_z_p_br"_h, \ &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusScalar}, \ - {"st1d_z_p_bz_d_64_scaled", \ + {"st1d_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets}, \ - {"st1d_z_p_bz_d_64_unscaled", \ + {"st1d_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets}, \ - {"st1d_z_p_bz_d_x32_scaled", \ + {"st1d_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"st1d_z_p_bz_d_x32_unscaled", \ + {"st1d_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"st1h_z_p_ai_d", \ + {"st1h_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_VectorPlusImm}, \ - {"st1h_z_p_ai_s", \ + {"st1h_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitScatterStore_VectorPlusImm}, \ - {"st1h_z_p_bi", &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ - {"st1h_z_p_br", \ + {"st1h_z_p_bi"_h, &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ + {"st1h_z_p_br"_h, \ &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusScalar}, \ - {"st1h_z_p_bz_d_64_scaled", \ + {"st1h_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets}, \ - {"st1h_z_p_bz_d_64_unscaled", \ + {"st1h_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets}, \ - {"st1h_z_p_bz_d_x32_scaled", \ + {"st1h_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"st1h_z_p_bz_d_x32_unscaled", \ + {"st1h_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"st1h_z_p_bz_s_x32_scaled", \ + {"st1h_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS::VisitSVE32BitScatterStore_ScalarPlus32BitScaledOffsets}, \ - {"st1h_z_p_bz_s_x32_unscaled", \ + {"st1h_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets}, \ - {"st1w_z_p_ai_d", \ + {"st1w_z_p_ai_d"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_VectorPlusImm}, \ - {"st1w_z_p_ai_s", \ + {"st1w_z_p_ai_s"_h, \ &VISITORCLASS::VisitSVE32BitScatterStore_VectorPlusImm}, \ - {"st1w_z_p_bi", &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ - {"st1w_z_p_br", \ + {"st1w_z_p_bi"_h, &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusImm}, \ + {"st1w_z_p_br"_h, \ &VISITORCLASS::VisitSVEContiguousStore_ScalarPlusScalar}, \ - {"st1w_z_p_bz_d_64_scaled", \ + {"st1w_z_p_bz_d_64_scaled"_h, \ &VISITORCLASS::VisitSVE64BitScatterStore_ScalarPlus64BitScaledOffsets}, \ - {"st1w_z_p_bz_d_64_unscaled", \ + {"st1w_z_p_bz_d_64_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlus64BitUnscaledOffsets}, \ - {"st1w_z_p_bz_d_x32_scaled", \ + {"st1w_z_p_bz_d_x32_scaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitScaledOffsets}, \ - {"st1w_z_p_bz_d_x32_unscaled", \ + {"st1w_z_p_bz_d_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE64BitScatterStore_ScalarPlusUnpacked32BitUnscaledOffsets}, \ - {"st1w_z_p_bz_s_x32_scaled", \ + {"st1w_z_p_bz_s_x32_scaled"_h, \ &VISITORCLASS::VisitSVE32BitScatterStore_ScalarPlus32BitScaledOffsets}, \ - {"st1w_z_p_bz_s_x32_unscaled", \ + {"st1w_z_p_bz_s_x32_unscaled"_h, \ &VISITORCLASS:: \ VisitSVE32BitScatterStore_ScalarPlus32BitUnscaledOffsets}, \ - {"st2b_z_p_bi_contiguous", \ + {"st2b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st2b_z_p_br_contiguous", \ + {"st2b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st2d_z_p_bi_contiguous", \ + {"st2d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st2d_z_p_br_contiguous", \ + {"st2d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st2h_z_p_bi_contiguous", \ + {"st2h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st2h_z_p_br_contiguous", \ + {"st2h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st2w_z_p_bi_contiguous", \ + {"st2w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st2w_z_p_br_contiguous", \ + {"st2w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st3b_z_p_bi_contiguous", \ + {"st3b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st3b_z_p_br_contiguous", \ + {"st3b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st3d_z_p_bi_contiguous", \ + {"st3d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st3d_z_p_br_contiguous", \ + {"st3d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st3h_z_p_bi_contiguous", \ + {"st3h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st3h_z_p_br_contiguous", \ + {"st3h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st3w_z_p_bi_contiguous", \ + {"st3w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st3w_z_p_br_contiguous", \ + {"st3w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st4b_z_p_bi_contiguous", \ + {"st4b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st4b_z_p_br_contiguous", \ + {"st4b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st4d_z_p_bi_contiguous", \ + {"st4d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st4d_z_p_br_contiguous", \ + {"st4d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st4h_z_p_bi_contiguous", \ + {"st4h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st4h_z_p_br_contiguous", \ + {"st4h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"st4w_z_p_bi_contiguous", \ + {"st4w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusImm}, \ - {"st4w_z_p_br_contiguous", \ + {"st4w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEStoreMultipleStructures_ScalarPlusScalar}, \ - {"stnt1b_z_p_bi_contiguous", \ + {"stnt1b_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusImm}, \ - {"stnt1b_z_p_br_contiguous", \ + {"stnt1b_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar}, \ - {"stnt1d_z_p_bi_contiguous", \ + {"stnt1d_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusImm}, \ - {"stnt1d_z_p_br_contiguous", \ + {"stnt1d_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar}, \ - {"stnt1h_z_p_bi_contiguous", \ + {"stnt1h_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusImm}, \ - {"stnt1h_z_p_br_contiguous", \ + {"stnt1h_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar}, \ - {"stnt1w_z_p_bi_contiguous", \ + {"stnt1w_z_p_bi_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusImm}, \ - {"stnt1w_z_p_br_contiguous", \ + {"stnt1w_z_p_br_contiguous"_h, \ &VISITORCLASS::VisitSVEContiguousNonTemporalStore_ScalarPlusScalar}, \ - {"str_p_bi", &VISITORCLASS::VisitSVEStorePredicateRegister}, \ - {"str_z_bi", &VISITORCLASS::VisitSVEStoreVectorRegister}, \ - {"subr_z_p_zz", \ + {"str_p_bi"_h, &VISITORCLASS::VisitSVEStorePredicateRegister}, \ + {"str_z_bi"_h, &VISITORCLASS::VisitSVEStoreVectorRegister}, \ + {"subr_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntAddSubtractVectors_Predicated}, \ + {"subr_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"sub_z_p_zz"_h, \ &VISITORCLASS::VisitSVEIntAddSubtractVectors_Predicated}, \ - {"subr_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"sub_z_p_zz", &VISITORCLASS::VisitSVEIntAddSubtractVectors_Predicated}, \ - {"sub_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"sub_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"sunpkhi_z_z", &VISITORCLASS::VisitSVEUnpackVectorElements}, \ - {"sunpklo_z_z", &VISITORCLASS::VisitSVEUnpackVectorElements}, \ - {"sxtb_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"sxth_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"sxtw_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"tbl_z_zz_1", &VISITORCLASS::VisitSVETableLookup}, \ - {"trn1_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"trn1_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"trn2_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"trn2_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"uabd_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"uaddv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"ucvtf_z_p_z_h2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_w2d", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_w2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_w2s", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_x2d", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_x2fp16", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"ucvtf_z_p_z_x2s", &VISITORCLASS::VisitSVEIntConvertToFP}, \ - {"udf_only_perm_undef", &VISITORCLASS::VisitReserved}, \ - {"udivr_z_p_zz", &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ - {"udiv_z_p_zz", &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ - {"udot_z_zzz", &VISITORCLASS::VisitSVEIntMulAddUnpredicated}, \ - {"udot_z_zzzi_d", &VISITORCLASS::VisitSVEMulIndex}, \ - {"udot_z_zzzi_s", &VISITORCLASS::VisitSVEMulIndex}, \ - {"umaxv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"umax_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"umax_z_zi", &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ - {"uminv_r_p_z", &VISITORCLASS::VisitSVEIntReduction}, \ - {"umin_z_p_zz", &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ - {"umin_z_zi", &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ - {"umulh_z_p_zz", &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ - {"uqadd_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"uqadd_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"uqdecb_r_rs_uw", \ + {"sub_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"sub_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"sunpkhi_z_z"_h, &VISITORCLASS::VisitSVEUnpackVectorElements}, \ + {"sunpklo_z_z"_h, &VISITORCLASS::VisitSVEUnpackVectorElements}, \ + {"sxtb_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"sxth_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"sxtw_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"tbl_z_zz_1"_h, &VISITORCLASS::VisitSVETableLookup}, \ + {"trn1_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"trn1_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"trn2_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"trn2_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"uabd_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"uaddv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"ucvtf_z_p_z_h2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_w2d"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_w2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_w2s"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_x2d"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_x2fp16"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"ucvtf_z_p_z_x2s"_h, &VISITORCLASS::VisitSVEIntConvertToFP}, \ + {"udf_only_perm_undef"_h, &VISITORCLASS::VisitReserved}, \ + {"udivr_z_p_zz"_h, &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ + {"udiv_z_p_zz"_h, &VISITORCLASS::VisitSVEIntDivideVectors_Predicated}, \ + {"udot_z_zzz"_h, &VISITORCLASS::VisitSVEIntMulAddUnpredicated}, \ + {"udot_z_zzzi_d"_h, &VISITORCLASS::VisitSVEMulIndex}, \ + {"udot_z_zzzi_s"_h, &VISITORCLASS::VisitSVEMulIndex}, \ + {"umaxv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"umax_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"umax_z_zi"_h, &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ + {"uminv_r_p_z"_h, &VISITORCLASS::VisitSVEIntReduction}, \ + {"umin_z_p_zz"_h, \ + &VISITORCLASS::VisitSVEIntMinMaxDifference_Predicated}, \ + {"umin_z_zi"_h, &VISITORCLASS::VisitSVEIntMinMaxImm_Unpredicated}, \ + {"umulh_z_p_zz"_h, &VISITORCLASS::VisitSVEIntMulVectors_Predicated}, \ + {"uqadd_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"uqadd_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"uqdecb_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecb_r_rs_x", \ + {"uqdecb_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecd_r_rs_uw", \ + {"uqdecd_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecd_r_rs_x", \ + {"uqdecd_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecd_z_zs", \ + {"uqdecd_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqdech_r_rs_uw", \ + {"uqdech_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdech_r_rs_x", \ + {"uqdech_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdech_z_zs", \ + {"uqdech_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqdecp_r_p_r_uw", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqdecp_r_p_r_x", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqdecp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqdecw_r_rs_uw", \ + {"uqdecp_r_p_r_uw"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqdecp_r_p_r_x"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqdecp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqdecw_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecw_r_rs_x", \ + {"uqdecw_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqdecw_z_zs", \ + {"uqdecw_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqincb_r_rs_uw", \ + {"uqincb_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincb_r_rs_x", \ + {"uqincb_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincd_r_rs_uw", \ + {"uqincd_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincd_r_rs_x", \ + {"uqincd_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincd_z_zs", \ + {"uqincd_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqinch_r_rs_uw", \ + {"uqinch_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqinch_r_rs_x", \ + {"uqinch_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqinch_z_zs", \ + {"uqinch_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqincp_r_p_r_uw", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqincp_r_p_r_x", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqincp_z_p_z", &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ - {"uqincw_r_rs_uw", \ + {"uqincp_r_p_r_uw"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqincp_r_p_r_x"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqincp_z_p_z"_h, &VISITORCLASS::VisitSVEIncDecByPredicateCount}, \ + {"uqincw_r_rs_uw"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincw_r_rs_x", \ + {"uqincw_r_rs_x"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecRegisterByElementCount}, \ - {"uqincw_z_zs", \ + {"uqincw_z_zs"_h, \ &VISITORCLASS::VisitSVESaturatingIncDecVectorByElementCount}, \ - {"uqsub_z_zi", &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ - {"uqsub_z_zz", &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ - {"uunpkhi_z_z", &VISITORCLASS::VisitSVEUnpackVectorElements}, \ - {"uunpklo_z_z", &VISITORCLASS::VisitSVEUnpackVectorElements}, \ - {"uxtb_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"uxth_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"uxtw_z_p_z", &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ - {"uzp1_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"uzp1_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"uzp2_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"uzp2_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"whilele_p_p_rr", \ + {"uqsub_z_zi"_h, &VISITORCLASS::VisitSVEIntAddSubtractImm_Unpredicated}, \ + {"uqsub_z_zz"_h, &VISITORCLASS::VisitSVEIntArithmeticUnpredicated}, \ + {"uunpkhi_z_z"_h, &VISITORCLASS::VisitSVEUnpackVectorElements}, \ + {"uunpklo_z_z"_h, &VISITORCLASS::VisitSVEUnpackVectorElements}, \ + {"uxtb_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"uxth_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"uxtw_z_p_z"_h, &VISITORCLASS::VisitSVEIntUnaryArithmeticPredicated}, \ + {"uzp1_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"uzp1_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"uzp2_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"uzp2_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"whilele_p_p_rr"_h, \ &VISITORCLASS::VisitSVEIntCompareScalarCountAndLimit}, \ - {"whilelo_p_p_rr", \ + {"whilelo_p_p_rr"_h, \ &VISITORCLASS::VisitSVEIntCompareScalarCountAndLimit}, \ - {"whilels_p_p_rr", \ + {"whilels_p_p_rr"_h, \ &VISITORCLASS::VisitSVEIntCompareScalarCountAndLimit}, \ - {"whilelt_p_p_rr", \ + {"whilelt_p_p_rr"_h, \ &VISITORCLASS::VisitSVEIntCompareScalarCountAndLimit}, \ - {"wrffr_f_p", &VISITORCLASS::VisitSVEFFRWriteFromPredicate}, \ - {"zip1_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"zip1_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"zip2_p_pp", &VISITORCLASS::VisitSVEPermutePredicateElements}, \ - {"zip2_z_zz", &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ - {"adds_32s_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"adds_64s_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"add_32_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"add_64_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"subs_32s_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"subs_64s_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"sub_32_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"sub_64_addsub_ext", &VISITORCLASS::VisitAddSubExtended}, \ - {"adds_32s_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"adds_64s_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"add_32_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"add_64_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"subs_32s_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"subs_64s_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"sub_32_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"sub_64_addsub_imm", &VISITORCLASS::VisitAddSubImmediate}, \ - {"adds_32_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"adds_64_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"add_32_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"add_64_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"subs_32_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"subs_64_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"sub_32_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"sub_64_addsub_shift", &VISITORCLASS::VisitAddSubShifted}, \ - {"adcs_32_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"adcs_64_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"adc_32_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"adc_64_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"sbcs_32_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"sbcs_64_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"sbc_32_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"sbc_64_addsub_carry", &VISITORCLASS::VisitAddSubWithCarry}, \ - {"ldaddab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldadda_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldadda_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaddl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldadd_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldadd_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaprb_32l_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldaprh_32l_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldapr_32l_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldapr_64l_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclralb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclralh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclral_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclral_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclra_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclra_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclrl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclr_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldclr_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeoralb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeoralh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeoral_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeoral_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeora_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeora_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeorl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeor_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldeor_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldseta_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldseta_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldseth_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsetl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldset_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldset_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxa_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxa_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmaxl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmax_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmax_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmina_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmina_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsminl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmin_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldsmin_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxa_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxa_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumaxl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumax_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumax_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumina_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumina_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminlb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminlh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"lduminl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumin_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"ldumin_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpab_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpah_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpalb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpalh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpal_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpal_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpa_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpa_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swph_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swplb_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swplh_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpl_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swpl_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swp_32_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"swp_64_memop", &VISITORCLASS::VisitAtomicMemory}, \ - {"bfm_32m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"bfm_64m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"sbfm_32m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"sbfm_64m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"ubfm_32m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"ubfm_64m_bitfield", &VISITORCLASS::VisitBitfield}, \ - {"cbnz_32_compbranch", &VISITORCLASS::VisitCompareBranch}, \ - {"cbnz_64_compbranch", &VISITORCLASS::VisitCompareBranch}, \ - {"cbz_32_compbranch", &VISITORCLASS::VisitCompareBranch}, \ - {"cbz_64_compbranch", &VISITORCLASS::VisitCompareBranch}, \ - {"b_only_condbranch", &VISITORCLASS::VisitConditionalBranch}, \ - {"ccmn_32_condcmp_imm", \ + {"wrffr_f_p"_h, &VISITORCLASS::VisitSVEFFRWriteFromPredicate}, \ + {"zip1_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"zip1_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"zip2_p_pp"_h, &VISITORCLASS::VisitSVEPermutePredicateElements}, \ + {"zip2_z_zz"_h, &VISITORCLASS::VisitSVEPermuteVectorInterleaving}, \ + {"adds_32s_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"adds_64s_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"add_32_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"add_64_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"subs_32s_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"subs_64s_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"sub_32_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"sub_64_addsub_ext"_h, &VISITORCLASS::VisitAddSubExtended}, \ + {"adds_32s_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"adds_64s_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"add_32_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"add_64_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"subs_32s_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"subs_64s_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"sub_32_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"sub_64_addsub_imm"_h, &VISITORCLASS::VisitAddSubImmediate}, \ + {"adds_32_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"adds_64_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"add_32_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"add_64_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"subs_32_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"subs_64_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"sub_32_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"sub_64_addsub_shift"_h, &VISITORCLASS::VisitAddSubShifted}, \ + {"adcs_32_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"adcs_64_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"adc_32_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"adc_64_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"sbcs_32_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"sbcs_64_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"sbc_32_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"sbc_64_addsub_carry"_h, &VISITORCLASS::VisitAddSubWithCarry}, \ + {"ldaddab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldadda_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldadda_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaddl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldadd_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldadd_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaprb_32l_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldaprh_32l_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldapr_32l_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldapr_64l_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclralb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclralh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclral_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclral_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclra_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclra_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclrl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclr_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldclr_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeoralb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeoralh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeoral_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeoral_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeora_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeora_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeorl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeor_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldeor_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldseta_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldseta_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldseth_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsetl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldset_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldset_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxa_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxa_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmaxl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmax_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmax_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmina_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmina_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsminl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmin_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldsmin_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxa_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxa_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumaxl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumax_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumax_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumina_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumina_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminlb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminlh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"lduminl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumin_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"ldumin_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpab_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpah_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpalb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpalh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpal_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpal_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpa_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpa_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swph_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swplb_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swplh_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpl_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swpl_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swp_32_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"swp_64_memop"_h, &VISITORCLASS::VisitAtomicMemory}, \ + {"bfm_32m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"bfm_64m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"sbfm_32m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"sbfm_64m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"ubfm_32m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"ubfm_64m_bitfield"_h, &VISITORCLASS::VisitBitfield}, \ + {"cbnz_32_compbranch"_h, &VISITORCLASS::VisitCompareBranch}, \ + {"cbnz_64_compbranch"_h, &VISITORCLASS::VisitCompareBranch}, \ + {"cbz_32_compbranch"_h, &VISITORCLASS::VisitCompareBranch}, \ + {"cbz_64_compbranch"_h, &VISITORCLASS::VisitCompareBranch}, \ + {"b_only_condbranch"_h, &VISITORCLASS::VisitConditionalBranch}, \ + {"ccmn_32_condcmp_imm"_h, \ &VISITORCLASS::VisitConditionalCompareImmediate}, \ - {"ccmn_64_condcmp_imm", \ + {"ccmn_64_condcmp_imm"_h, \ &VISITORCLASS::VisitConditionalCompareImmediate}, \ - {"ccmp_32_condcmp_imm", \ + {"ccmp_32_condcmp_imm"_h, \ &VISITORCLASS::VisitConditionalCompareImmediate}, \ - {"ccmp_64_condcmp_imm", \ + {"ccmp_64_condcmp_imm"_h, \ &VISITORCLASS::VisitConditionalCompareImmediate}, \ - {"ccmn_32_condcmp_reg", &VISITORCLASS::VisitConditionalCompareRegister}, \ - {"ccmn_64_condcmp_reg", &VISITORCLASS::VisitConditionalCompareRegister}, \ - {"ccmp_32_condcmp_reg", &VISITORCLASS::VisitConditionalCompareRegister}, \ - {"ccmp_64_condcmp_reg", &VISITORCLASS::VisitConditionalCompareRegister}, \ - {"csel_32_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csel_64_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csinc_32_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csinc_64_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csinv_32_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csinv_64_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csneg_32_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"csneg_64_condsel", &VISITORCLASS::VisitConditionalSelect}, \ - {"sha1h_ss_cryptosha2", &VISITORCLASS::VisitCrypto2RegSHA}, \ - {"sha1su1_vv_cryptosha2", &VISITORCLASS::VisitCrypto2RegSHA}, \ - {"sha256su0_vv_cryptosha2", &VISITORCLASS::VisitCrypto2RegSHA}, \ - {"sha1c_qsv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha1m_qsv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha1p_qsv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha1su0_vvv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha256h2_qqv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha256h_qqv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"sha256su1_vvv_cryptosha3", &VISITORCLASS::VisitCrypto3RegSHA}, \ - {"aesd_b_cryptoaes", &VISITORCLASS::VisitCryptoAES}, \ - {"aese_b_cryptoaes", &VISITORCLASS::VisitCryptoAES}, \ - {"aesimc_b_cryptoaes", &VISITORCLASS::VisitCryptoAES}, \ - {"aesmc_b_cryptoaes", &VISITORCLASS::VisitCryptoAES}, \ - {"autda_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autdb_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autdza_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autdzb_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autia_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autib_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autiza_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"autizb_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"cls_32_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"cls_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"clz_32_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"clz_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacda_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacdb_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacdza_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacdzb_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacia_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacib_64p_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"paciza_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"pacizb_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rbit_32_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rbit_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rev16_32_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rev16_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rev32_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rev_32_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"rev_64_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"xpacd_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"xpaci_64z_dp_1src", &VISITORCLASS::VisitDataProcessing1Source}, \ - {"asrv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"asrv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32b_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32cb_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32ch_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32cw_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32cx_64c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32h_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32w_32c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"crc32x_64c_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"gmi_64g_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"irg_64i_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"lslv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"lslv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"lsrv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"lsrv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"pacga_64p_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"rorv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"rorv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"sdiv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"sdiv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"udiv_32_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"udiv_64_dp_2src", &VISITORCLASS::VisitDataProcessing2Source}, \ - {"madd_32a_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"madd_64a_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"msub_32a_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"msub_64a_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"smaddl_64wa_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"smsubl_64wa_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"smulh_64_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"umaddl_64wa_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"umsubl_64wa_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"umulh_64_dp_3src", &VISITORCLASS::VisitDataProcessing3Source}, \ - {"setf16_only_setf", &VISITORCLASS::VisitEvaluateIntoFlags}, \ - {"setf8_only_setf", &VISITORCLASS::VisitEvaluateIntoFlags}, \ - {"brk_ex_exception", &VISITORCLASS::VisitException}, \ - {"dcps1_dc_exception", &VISITORCLASS::VisitException}, \ - {"dcps2_dc_exception", &VISITORCLASS::VisitException}, \ - {"dcps3_dc_exception", &VISITORCLASS::VisitException}, \ - {"hlt_ex_exception", &VISITORCLASS::VisitException}, \ - {"hvc_ex_exception", &VISITORCLASS::VisitException}, \ - {"smc_ex_exception", &VISITORCLASS::VisitException}, \ - {"svc_ex_exception", &VISITORCLASS::VisitException}, \ - {"extr_32_extract", &VISITORCLASS::VisitExtract}, \ - {"extr_64_extract", &VISITORCLASS::VisitExtract}, \ - {"fcmpe_dz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmpe_d_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmpe_hz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmpe_h_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmpe_sz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmpe_s_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_dz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_d_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_hz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_h_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_sz_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fcmp_s_floatcmp", &VISITORCLASS::VisitFPCompare}, \ - {"fccmpe_d_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fccmpe_h_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fccmpe_s_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fccmp_d_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fccmp_h_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fccmp_s_floatccmp", &VISITORCLASS::VisitFPConditionalCompare}, \ - {"fcsel_d_floatsel", &VISITORCLASS::VisitFPConditionalSelect}, \ - {"fcsel_h_floatsel", &VISITORCLASS::VisitFPConditionalSelect}, \ - {"fcsel_s_floatsel", &VISITORCLASS::VisitFPConditionalSelect}, \ - {"bfcvt_bs_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fabs_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fabs_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fabs_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_dh_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_ds_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_hd_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_hs_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_sd_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fcvt_sh_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fmov_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fmov_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fmov_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fneg_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fneg_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fneg_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint32x_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint32x_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint32z_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint32z_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint64x_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint64x_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint64z_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frint64z_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinta_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinta_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinta_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinti_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinti_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frinti_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintm_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintm_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintm_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintn_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintn_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintn_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintp_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintp_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintp_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintx_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintx_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintx_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintz_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintz_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"frintz_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fsqrt_d_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fsqrt_h_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fsqrt_s_floatdp1", &VISITORCLASS::VisitFPDataProcessing1Source}, \ - {"fadd_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fadd_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fadd_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fdiv_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fdiv_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fdiv_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmaxnm_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmaxnm_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmaxnm_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmax_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmax_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmax_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fminnm_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fminnm_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fminnm_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmin_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmin_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmin_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmul_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmul_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmul_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fnmul_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fnmul_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fnmul_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fsub_d_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fsub_h_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fsub_s_floatdp2", &VISITORCLASS::VisitFPDataProcessing2Source}, \ - {"fmadd_d_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fmadd_h_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fmadd_s_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fmsub_d_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fmsub_h_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fmsub_s_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmadd_d_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmadd_h_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmadd_s_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmsub_d_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmsub_h_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fnmsub_s_floatdp3", &VISITORCLASS::VisitFPDataProcessing3Source}, \ - {"fcvtzs_32d_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzs_32h_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzs_32s_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzs_64d_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzs_64h_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzs_64s_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_32d_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_32h_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_32s_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_64d_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_64h_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fcvtzu_64s_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_d32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_d64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_h32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_h64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_s32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"scvtf_s64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_d32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_d64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_h32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_h64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_s32_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"ucvtf_s64_float2fix", &VISITORCLASS::VisitFPFixedPointConvert}, \ - {"fmov_d_floatimm", &VISITORCLASS::VisitFPImmediate}, \ - {"fmov_h_floatimm", &VISITORCLASS::VisitFPImmediate}, \ - {"fmov_s_floatimm", &VISITORCLASS::VisitFPImmediate}, \ - {"fcvtas_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtas_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtas_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtas_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtas_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtas_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtau_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtms_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtmu_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtns_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtnu_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtps_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtpu_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzs_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fcvtzu_64s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fjcvtzs_32d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_32h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_32s_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_64d_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_64h_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_64vx_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_d64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_h32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_h64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_s32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"fmov_v64i_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_d32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_d64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_h32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_h64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_s32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"scvtf_s64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_d32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_d64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_h32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_h64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_s32_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ucvtf_s64_float2int", &VISITORCLASS::VisitFPIntegerConvert}, \ - {"ldrsw_64_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"ldr_32_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"ldr_64_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"ldr_d_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"ldr_q_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"ldr_s_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"prfm_p_loadlit", &VISITORCLASS::VisitLoadLiteral}, \ - {"casab_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casah_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casalb_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casalh_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casal_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casal_c64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casa_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casa_c64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casb_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"cash_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caslb_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caslh_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casl_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casl_c64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspal_cp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspal_cp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspa_cp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspa_cp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspl_cp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"caspl_cp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casp_cp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"casp_cp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"cas_c32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"cas_c64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldarb_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldarh_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldar_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldar_lr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxp_lp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxp_lp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxrb_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxrh_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxr_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldaxr_lr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldlarb_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldlarh_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldlar_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldlar_lr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxp_lp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxp_lp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxrb_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxrh_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxr_lr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldxr_lr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stllrb_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stllrh_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stllr_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stllr_sl64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlrb_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlrh_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlr_sl32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlr_sl64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxp_sp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxp_sp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxrb_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxrh_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxr_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stlxr_sr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxp_sp32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxp_sp64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxrb_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxrh_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxr_sr32_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"stxr_sr64_ldstexcl", &VISITORCLASS::VisitLoadStoreExclusive}, \ - {"ldraa_64w_ldst_pac", &VISITORCLASS::VisitLoadStorePAC}, \ - {"ldraa_64_ldst_pac", &VISITORCLASS::VisitLoadStorePAC}, \ - {"ldrab_64w_ldst_pac", &VISITORCLASS::VisitLoadStorePAC}, \ - {"ldrab_64_ldst_pac", &VISITORCLASS::VisitLoadStorePAC}, \ - {"ldnp_32_ldstnapair_offs", \ + {"ccmn_32_condcmp_reg"_h, \ + &VISITORCLASS::VisitConditionalCompareRegister}, \ + {"ccmn_64_condcmp_reg"_h, \ + &VISITORCLASS::VisitConditionalCompareRegister}, \ + {"ccmp_32_condcmp_reg"_h, \ + &VISITORCLASS::VisitConditionalCompareRegister}, \ + {"ccmp_64_condcmp_reg"_h, \ + &VISITORCLASS::VisitConditionalCompareRegister}, \ + {"csel_32_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csel_64_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csinc_32_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csinc_64_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csinv_32_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csinv_64_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csneg_32_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"csneg_64_condsel"_h, &VISITORCLASS::VisitConditionalSelect}, \ + {"sha1h_ss_cryptosha2"_h, &VISITORCLASS::VisitCrypto2RegSHA}, \ + {"sha1su1_vv_cryptosha2"_h, &VISITORCLASS::VisitCrypto2RegSHA}, \ + {"sha256su0_vv_cryptosha2"_h, &VISITORCLASS::VisitCrypto2RegSHA}, \ + {"sha1c_qsv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha1m_qsv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha1p_qsv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha1su0_vvv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha256h2_qqv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha256h_qqv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"sha256su1_vvv_cryptosha3"_h, &VISITORCLASS::VisitCrypto3RegSHA}, \ + {"aesd_b_cryptoaes"_h, &VISITORCLASS::VisitCryptoAES}, \ + {"aese_b_cryptoaes"_h, &VISITORCLASS::VisitCryptoAES}, \ + {"aesimc_b_cryptoaes"_h, &VISITORCLASS::VisitCryptoAES}, \ + {"aesmc_b_cryptoaes"_h, &VISITORCLASS::VisitCryptoAES}, \ + {"autda_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autdb_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autdza_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autdzb_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autia_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autib_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autiza_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"autizb_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"cls_32_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"cls_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"clz_32_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"clz_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacda_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacdb_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacdza_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacdzb_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacia_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacib_64p_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"paciza_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"pacizb_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rbit_32_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rbit_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rev16_32_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rev16_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rev32_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rev_32_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"rev_64_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"xpacd_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"xpaci_64z_dp_1src"_h, &VISITORCLASS::VisitDataProcessing1Source}, \ + {"asrv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"asrv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32b_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32cb_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32ch_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32cw_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32cx_64c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32h_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32w_32c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"crc32x_64c_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"gmi_64g_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"irg_64i_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"lslv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"lslv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"lsrv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"lsrv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"pacga_64p_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"rorv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"rorv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"sdiv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"sdiv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"udiv_32_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"udiv_64_dp_2src"_h, &VISITORCLASS::VisitDataProcessing2Source}, \ + {"madd_32a_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"madd_64a_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"msub_32a_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"msub_64a_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"smaddl_64wa_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"smsubl_64wa_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"smulh_64_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"umaddl_64wa_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"umsubl_64wa_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"umulh_64_dp_3src"_h, &VISITORCLASS::VisitDataProcessing3Source}, \ + {"setf16_only_setf"_h, &VISITORCLASS::VisitEvaluateIntoFlags}, \ + {"setf8_only_setf"_h, &VISITORCLASS::VisitEvaluateIntoFlags}, \ + {"brk_ex_exception"_h, &VISITORCLASS::VisitException}, \ + {"dcps1_dc_exception"_h, &VISITORCLASS::VisitException}, \ + {"dcps2_dc_exception"_h, &VISITORCLASS::VisitException}, \ + {"dcps3_dc_exception"_h, &VISITORCLASS::VisitException}, \ + {"hlt_ex_exception"_h, &VISITORCLASS::VisitException}, \ + {"hvc_ex_exception"_h, &VISITORCLASS::VisitException}, \ + {"smc_ex_exception"_h, &VISITORCLASS::VisitException}, \ + {"svc_ex_exception"_h, &VISITORCLASS::VisitException}, \ + {"extr_32_extract"_h, &VISITORCLASS::VisitExtract}, \ + {"extr_64_extract"_h, &VISITORCLASS::VisitExtract}, \ + {"fcmpe_dz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmpe_d_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmpe_hz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmpe_h_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmpe_sz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmpe_s_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_dz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_d_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_hz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_h_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_sz_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fcmp_s_floatcmp"_h, &VISITORCLASS::VisitFPCompare}, \ + {"fccmpe_d_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fccmpe_h_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fccmpe_s_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fccmp_d_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fccmp_h_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fccmp_s_floatccmp"_h, &VISITORCLASS::VisitFPConditionalCompare}, \ + {"fcsel_d_floatsel"_h, &VISITORCLASS::VisitFPConditionalSelect}, \ + {"fcsel_h_floatsel"_h, &VISITORCLASS::VisitFPConditionalSelect}, \ + {"fcsel_s_floatsel"_h, &VISITORCLASS::VisitFPConditionalSelect}, \ + {"bfcvt_bs_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fabs_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fabs_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fabs_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_dh_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_ds_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_hd_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_hs_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_sd_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fcvt_sh_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fmov_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fmov_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fmov_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fneg_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fneg_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fneg_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint32x_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint32x_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint32z_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint32z_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint64x_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint64x_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint64z_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frint64z_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinta_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinta_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinta_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinti_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinti_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frinti_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintm_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintm_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintm_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintn_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintn_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintn_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintp_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintp_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintp_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintx_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintx_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintx_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintz_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintz_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"frintz_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fsqrt_d_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fsqrt_h_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fsqrt_s_floatdp1"_h, &VISITORCLASS::VisitFPDataProcessing1Source}, \ + {"fadd_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fadd_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fadd_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fdiv_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fdiv_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fdiv_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmaxnm_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmaxnm_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmaxnm_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmax_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmax_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmax_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fminnm_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fminnm_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fminnm_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmin_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmin_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmin_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmul_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmul_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmul_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fnmul_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fnmul_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fnmul_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fsub_d_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fsub_h_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fsub_s_floatdp2"_h, &VISITORCLASS::VisitFPDataProcessing2Source}, \ + {"fmadd_d_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fmadd_h_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fmadd_s_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fmsub_d_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fmsub_h_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fmsub_s_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmadd_d_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmadd_h_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmadd_s_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmsub_d_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmsub_h_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fnmsub_s_floatdp3"_h, &VISITORCLASS::VisitFPDataProcessing3Source}, \ + {"fcvtzs_32d_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzs_32h_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzs_32s_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzs_64d_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzs_64h_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzs_64s_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_32d_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_32h_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_32s_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_64d_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_64h_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fcvtzu_64s_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_d32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_d64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_h32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_h64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_s32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"scvtf_s64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_d32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_d64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_h32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_h64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_s32_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"ucvtf_s64_float2fix"_h, &VISITORCLASS::VisitFPFixedPointConvert}, \ + {"fmov_d_floatimm"_h, &VISITORCLASS::VisitFPImmediate}, \ + {"fmov_h_floatimm"_h, &VISITORCLASS::VisitFPImmediate}, \ + {"fmov_s_floatimm"_h, &VISITORCLASS::VisitFPImmediate}, \ + {"fcvtas_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtas_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtas_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtas_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtas_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtas_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtau_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtms_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtmu_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtns_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtnu_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtps_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtpu_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzs_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fcvtzu_64s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fjcvtzs_32d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_32h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_32s_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_64d_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_64h_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_64vx_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_d64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_h32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_h64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_s32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"fmov_v64i_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_d32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_d64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_h32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_h64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_s32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"scvtf_s64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_d32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_d64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_h32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_h64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_s32_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ucvtf_s64_float2int"_h, &VISITORCLASS::VisitFPIntegerConvert}, \ + {"ldrsw_64_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"ldr_32_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"ldr_64_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"ldr_d_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"ldr_q_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"ldr_s_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"prfm_p_loadlit"_h, &VISITORCLASS::VisitLoadLiteral}, \ + {"casab_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casah_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casalb_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casalh_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casal_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casal_c64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casa_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casa_c64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casb_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"cash_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caslb_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caslh_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casl_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casl_c64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspal_cp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspal_cp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspa_cp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspa_cp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspl_cp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"caspl_cp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casp_cp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"casp_cp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"cas_c32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"cas_c64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldarb_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldarh_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldar_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldar_lr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxp_lp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxp_lp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxrb_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxrh_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxr_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldaxr_lr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldlarb_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldlarh_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldlar_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldlar_lr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxp_lp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxp_lp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxrb_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxrh_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxr_lr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldxr_lr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stllrb_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stllrh_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stllr_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stllr_sl64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlrb_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlrh_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlr_sl32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlr_sl64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxp_sp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxp_sp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxrb_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxrh_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxr_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stlxr_sr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxp_sp32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxp_sp64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxrb_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxrh_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxr_sr32_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"stxr_sr64_ldstexcl"_h, &VISITORCLASS::VisitLoadStoreExclusive}, \ + {"ldraa_64w_ldst_pac"_h, &VISITORCLASS::VisitLoadStorePAC}, \ + {"ldraa_64_ldst_pac"_h, &VISITORCLASS::VisitLoadStorePAC}, \ + {"ldrab_64w_ldst_pac"_h, &VISITORCLASS::VisitLoadStorePAC}, \ + {"ldrab_64_ldst_pac"_h, &VISITORCLASS::VisitLoadStorePAC}, \ + {"ldnp_32_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"ldnp_64_ldstnapair_offs", \ + {"ldnp_64_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"ldnp_d_ldstnapair_offs", \ + {"ldnp_d_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"ldnp_q_ldstnapair_offs", \ + {"ldnp_q_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"ldnp_s_ldstnapair_offs", \ + {"ldnp_s_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"stnp_32_ldstnapair_offs", \ + {"stnp_32_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"stnp_64_ldstnapair_offs", \ + {"stnp_64_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"stnp_d_ldstnapair_offs", \ + {"stnp_d_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"stnp_q_ldstnapair_offs", \ + {"stnp_q_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"stnp_s_ldstnapair_offs", \ + {"stnp_s_ldstnapair_offs"_h, \ &VISITORCLASS::VisitLoadStorePairNonTemporal}, \ - {"ldpsw_64_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldp_32_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldp_64_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldp_d_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldp_q_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldp_s_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"stp_32_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"stp_64_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"stp_d_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"stp_q_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"stp_s_ldstpair_off", &VISITORCLASS::VisitLoadStorePairOffset}, \ - {"ldpsw_64_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldp_32_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldp_64_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldp_d_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldp_q_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldp_s_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"stp_32_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"stp_64_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"stp_d_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"stp_q_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"stp_s_ldstpair_post", &VISITORCLASS::VisitLoadStorePairPostIndex}, \ - {"ldpsw_64_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldp_32_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldp_64_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldp_d_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldp_q_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldp_s_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"stp_32_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"stp_64_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"stp_d_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"stp_q_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"stp_s_ldstpair_pre", &VISITORCLASS::VisitLoadStorePairPreIndex}, \ - {"ldrb_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrh_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrsb_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrsb_64_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrsh_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrsh_64_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrsw_64_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_64_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_b_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_d_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_h_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_q_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldr_s_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"strb_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"strh_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_32_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_64_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_b_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_d_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_h_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_q_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"str_s_ldst_immpost", &VISITORCLASS::VisitLoadStorePostIndex}, \ - {"ldrb_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrh_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrsb_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrsb_64_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrsh_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrsh_64_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldrsw_64_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_64_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_b_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_d_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_h_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_q_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldr_s_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"strb_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"strh_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_32_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_64_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_b_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_d_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_h_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_q_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"str_s_ldst_immpre", &VISITORCLASS::VisitLoadStorePreIndex}, \ - {"ldapurb_32_ldapstl_unscaled", \ + {"ldpsw_64_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldp_32_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldp_64_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldp_d_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldp_q_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldp_s_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"stp_32_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"stp_64_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"stp_d_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"stp_q_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"stp_s_ldstpair_off"_h, &VISITORCLASS::VisitLoadStorePairOffset}, \ + {"ldpsw_64_ldstpair_post"_h, \ + &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldp_32_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldp_64_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldp_d_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldp_q_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldp_s_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"stp_32_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"stp_64_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"stp_d_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"stp_q_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"stp_s_ldstpair_post"_h, &VISITORCLASS::VisitLoadStorePairPostIndex}, \ + {"ldpsw_64_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldp_32_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldp_64_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldp_d_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldp_q_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldp_s_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"stp_32_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"stp_64_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"stp_d_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"stp_q_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"stp_s_ldstpair_pre"_h, &VISITORCLASS::VisitLoadStorePairPreIndex}, \ + {"ldrb_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrh_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrsb_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrsb_64_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrsh_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrsh_64_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrsw_64_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_64_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_b_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_d_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_h_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_q_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldr_s_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"strb_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"strh_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_32_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_64_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_b_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_d_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_h_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_q_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"str_s_ldst_immpost"_h, &VISITORCLASS::VisitLoadStorePostIndex}, \ + {"ldrb_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrh_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrsb_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrsb_64_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrsh_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrsh_64_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldrsw_64_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_64_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_b_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_d_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_h_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_q_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldr_s_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"strb_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"strh_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_32_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_64_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_b_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_d_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_h_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_q_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"str_s_ldst_immpre"_h, &VISITORCLASS::VisitLoadStorePreIndex}, \ + {"ldapurb_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapurh_32_ldapstl_unscaled", \ + {"ldapurh_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapursb_32_ldapstl_unscaled", \ + {"ldapursb_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapursb_64_ldapstl_unscaled", \ + {"ldapursb_64_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapursh_32_ldapstl_unscaled", \ + {"ldapursh_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapursh_64_ldapstl_unscaled", \ + {"ldapursh_64_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapursw_64_ldapstl_unscaled", \ + {"ldapursw_64_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapur_32_ldapstl_unscaled", \ + {"ldapur_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldapur_64_ldapstl_unscaled", \ + {"ldapur_64_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"stlurb_32_ldapstl_unscaled", \ + {"stlurb_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"stlurh_32_ldapstl_unscaled", \ + {"stlurh_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"stlur_32_ldapstl_unscaled", \ + {"stlur_32_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"stlur_64_ldapstl_unscaled", \ + {"stlur_64_ldapstl_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreRCpcUnscaledOffset}, \ - {"ldrb_32bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrb_32b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrh_32_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsb_32bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsb_32b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsb_64bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsb_64b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsh_32_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsh_64_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldrsw_64_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_32_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_64_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_d_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_h_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_q_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldr_s_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"prfm_p_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"strb_32bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"strb_32b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"strh_32_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_32_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_64_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_bl_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_b_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_d_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_h_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_q_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"str_s_ldst_regoff", &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ - {"ldurb_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldurh_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldursb_32_ldst_unscaled", \ + {"ldrb_32bl_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrb_32b_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrh_32_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsb_32bl_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsb_32b_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsb_64bl_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsb_64b_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsh_32_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsh_64_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldrsw_64_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_32_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_64_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_bl_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_b_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_d_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_h_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_q_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldr_s_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"prfm_p_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"strb_32bl_ldst_regoff"_h, \ + &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"strb_32b_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"strh_32_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_32_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_64_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_bl_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_b_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_d_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_h_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_q_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"str_s_ldst_regoff"_h, &VISITORCLASS::VisitLoadStoreRegisterOffset}, \ + {"ldurb_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldurh_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldursb_32_ldst_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldursb_64_ldst_unscaled", \ + {"ldursb_64_ldst_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldursh_32_ldst_unscaled", \ + {"ldursh_32_ldst_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldursh_64_ldst_unscaled", \ + {"ldursh_64_ldst_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldursw_64_ldst_unscaled", \ + {"ldursw_64_ldst_unscaled"_h, \ &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_64_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_b_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_d_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_h_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_q_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldur_s_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"prfum_p_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"sturb_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"sturh_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_32_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_64_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_b_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_d_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_h_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_q_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"stur_s_ldst_unscaled", &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ - {"ldrb_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrh_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrsb_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrsb_64_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrsh_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrsh_64_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldrsw_64_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_64_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_b_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_d_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_h_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_q_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ldr_s_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"prfm_p_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"strb_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"strh_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_32_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_64_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_b_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_d_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_h_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_q_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"str_s_ldst_pos", &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ - {"ands_32s_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"ands_64s_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"and_32_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"and_64_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"eor_32_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"eor_64_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"orr_32_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"orr_64_log_imm", &VISITORCLASS::VisitLogicalImmediate}, \ - {"ands_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"ands_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"and_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"and_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"bics_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"bics_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"bic_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"bic_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"eon_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"eon_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"eor_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"eor_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"orn_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"orn_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"orr_32_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"orr_64_log_shift", &VISITORCLASS::VisitLogicalShifted}, \ - {"movk_32_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"movk_64_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"movn_32_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"movn_64_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"movz_32_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"movz_64_movewide", &VISITORCLASS::VisitMoveWideImmediate}, \ - {"fabs_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcmeq_asimdmiscfp16_fz", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcmge_asimdmiscfp16_fz", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcmgt_asimdmiscfp16_fz", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcmle_asimdmiscfp16_fz", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcmlt_asimdmiscfp16_fz", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtas_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtau_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtms_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtmu_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtns_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtnu_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtps_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtpu_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtzs_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fcvtzu_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fneg_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frecpe_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frinta_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frinti_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frintm_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frintn_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frintp_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frintx_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frintz_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"frsqrte_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"fsqrt_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"scvtf_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"ucvtf_asimdmiscfp16_r", &VISITORCLASS::VisitNEON2RegMiscFP16}, \ - {"addhn_asimddiff_n", &VISITORCLASS::VisitNEON3Different}, \ - {"pmull_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"raddhn_asimddiff_n", &VISITORCLASS::VisitNEON3Different}, \ - {"rsubhn_asimddiff_n", &VISITORCLASS::VisitNEON3Different}, \ - {"sabal_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"sabdl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"saddl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"saddw_asimddiff_w", &VISITORCLASS::VisitNEON3Different}, \ - {"smlal_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"smlsl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"smull_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"sqdmlal_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"sqdmlsl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"sqdmull_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"ssubl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"ssubw_asimddiff_w", &VISITORCLASS::VisitNEON3Different}, \ - {"subhn_asimddiff_n", &VISITORCLASS::VisitNEON3Different}, \ - {"uabal_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"uabdl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"uaddl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"uaddw_asimddiff_w", &VISITORCLASS::VisitNEON3Different}, \ - {"umlal_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"umlsl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"umull_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"usubl_asimddiff_l", &VISITORCLASS::VisitNEON3Different}, \ - {"usubw_asimddiff_w", &VISITORCLASS::VisitNEON3Different}, \ - {"addp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"add_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmeq_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmge_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmgt_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmhi_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmhs_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"cmtst_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fabd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"facge_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"facgt_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"faddp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fcmeq_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fcmge_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fcmgt_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fdiv_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmaxnmp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmaxnm_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmaxp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmax_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fminnmp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fminnm_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fminp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmin_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmla_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmls_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmulx_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmul_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"frecps_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"frsqrts_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fsub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqdmulh_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqrdmulh_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqrshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sqsub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"srshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uqadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uqrshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uqshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uqsub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"urshl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"ushl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fcadd_asimdsame2_c", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"fcmla_asimdsame2_c", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"sdot_asimdsame2_d", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"sqrdmlah_asimdsame2_only", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"sqrdmlsh_asimdsame2_only", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"udot_asimdsame2_d", &VISITORCLASS::VisitNEON3SameExtra}, \ - {"fabd_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"facge_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"facgt_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"faddp_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fadd_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fcmeq_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fcmge_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fcmgt_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fdiv_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmaxnmp_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmaxnm_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmaxp_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmax_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fminnmp_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fminnm_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fminp_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmin_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmla_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmls_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmulx_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fmul_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"frecps_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"frsqrts_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"fsub_asimdsamefp16_only", &VISITORCLASS::VisitNEON3SameFP16}, \ - {"addv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"saddlv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"smaxv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"sminv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"uaddlv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"umaxv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"uminv_asimdall_only", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"mla_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"mls_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"mul_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"sqdmulh_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"sqrdmlah_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"sqrdmlsh_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"sqrdmulh_asimdelem_r", &VISITORCLASS::VisitNEONByIndexedElement}, \ - {"dup_asimdins_dr_r", &VISITORCLASS::VisitNEONCopy}, \ - {"dup_asimdins_dv_v", &VISITORCLASS::VisitNEONCopy}, \ - {"ins_asimdins_ir_r", &VISITORCLASS::VisitNEONCopy}, \ - {"ins_asimdins_iv_v", &VISITORCLASS::VisitNEONCopy}, \ - {"smov_asimdins_w_w", &VISITORCLASS::VisitNEONCopy}, \ - {"smov_asimdins_x_x", &VISITORCLASS::VisitNEONCopy}, \ - {"umov_asimdins_w_w", &VISITORCLASS::VisitNEONCopy}, \ - {"umov_asimdins_x_x", &VISITORCLASS::VisitNEONCopy}, \ - {"ext_asimdext_only", &VISITORCLASS::VisitNEONExtract}, \ - {"ld1_asisdlse_r1_1v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld1_asisdlse_r2_2v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld1_asisdlse_r3_3v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld1_asisdlse_r4_4v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld2_asisdlse_r2", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld3_asisdlse_r3", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld4_asisdlse_r4", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st1_asisdlse_r1_1v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st1_asisdlse_r2_2v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st1_asisdlse_r3_3v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st1_asisdlse_r4_4v", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st2_asisdlse_r2", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st3_asisdlse_r3", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"st4_asisdlse_r4", &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ - {"ld1_asisdlsep_i1_i1", \ + {"ldur_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_64_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_b_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_d_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_h_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_q_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldur_s_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"prfum_p_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"sturb_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"sturh_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_32_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_64_ldst_unscaled"_h, \ + &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_b_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_d_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_h_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_q_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"stur_s_ldst_unscaled"_h, &VISITORCLASS::VisitLoadStoreUnscaledOffset}, \ + {"ldrb_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrh_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrsb_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrsb_64_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrsh_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrsh_64_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldrsw_64_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_64_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_b_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_d_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_h_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_q_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ldr_s_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"prfm_p_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"strb_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"strh_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_32_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_64_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_b_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_d_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_h_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_q_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"str_s_ldst_pos"_h, &VISITORCLASS::VisitLoadStoreUnsignedOffset}, \ + {"ands_32s_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"ands_64s_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"and_32_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"and_64_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"eor_32_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"eor_64_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"orr_32_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"orr_64_log_imm"_h, &VISITORCLASS::VisitLogicalImmediate}, \ + {"ands_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"ands_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"and_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"and_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"bics_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"bics_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"bic_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"bic_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"eon_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"eon_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"eor_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"eor_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"orn_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"orn_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"orr_32_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"orr_64_log_shift"_h, &VISITORCLASS::VisitLogicalShifted}, \ + {"movk_32_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"movk_64_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"movn_32_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"movn_64_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"movz_32_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"movz_64_movewide"_h, &VISITORCLASS::VisitMoveWideImmediate}, \ + {"fabs_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcmeq_asimdmiscfp16_fz"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcmge_asimdmiscfp16_fz"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcmgt_asimdmiscfp16_fz"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcmle_asimdmiscfp16_fz"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcmlt_asimdmiscfp16_fz"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtas_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtau_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtms_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtmu_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtns_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtnu_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtps_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtpu_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtzs_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fcvtzu_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fneg_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frecpe_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frinta_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frinti_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frintm_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frintn_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frintp_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frintx_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frintz_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"frsqrte_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"fsqrt_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"scvtf_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"ucvtf_asimdmiscfp16_r"_h, &VISITORCLASS::VisitNEON2RegMiscFP16}, \ + {"addhn_asimddiff_n"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"pmull_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"raddhn_asimddiff_n"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"rsubhn_asimddiff_n"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"sabal_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"sabdl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"saddl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"saddw_asimddiff_w"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"smlal_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"smlsl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"smull_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"sqdmlal_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"sqdmlsl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"sqdmull_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"ssubl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"ssubw_asimddiff_w"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"subhn_asimddiff_n"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"uabal_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"uabdl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"uaddl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"uaddw_asimddiff_w"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"umlal_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"umlsl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"umull_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"usubl_asimddiff_l"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"usubw_asimddiff_w"_h, &VISITORCLASS::VisitNEON3Different}, \ + {"addp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"add_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmeq_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmge_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmgt_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmhi_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmhs_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"cmtst_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fabd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"facge_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"facgt_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"faddp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fcmeq_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fcmge_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fcmgt_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fdiv_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmaxnmp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmaxnm_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmaxp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmax_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fminnmp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fminnm_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fminp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmin_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmla_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmls_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmulx_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmul_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"frecps_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"frsqrts_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fsub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqdmulh_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqrdmulh_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqrshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sqsub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"srshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uqadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uqrshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uqshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uqsub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"urshl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"ushl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fcadd_asimdsame2_c"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"fcmla_asimdsame2_c"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"sdot_asimdsame2_d"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"sqrdmlah_asimdsame2_only"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"sqrdmlsh_asimdsame2_only"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"udot_asimdsame2_d"_h, &VISITORCLASS::VisitNEON3SameExtra}, \ + {"fabd_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"facge_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"facgt_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"faddp_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fadd_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fcmeq_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fcmge_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fcmgt_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fdiv_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmaxnmp_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmaxnm_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmaxp_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmax_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fminnmp_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fminnm_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fminp_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmin_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmla_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmls_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmulx_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fmul_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"frecps_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"frsqrts_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"fsub_asimdsamefp16_only"_h, &VISITORCLASS::VisitNEON3SameFP16}, \ + {"addv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"saddlv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"smaxv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"sminv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"uaddlv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"umaxv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"uminv_asimdall_only"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"mla_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"mls_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"mul_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"sqdmulh_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"sqrdmlah_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"sqrdmlsh_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"sqrdmulh_asimdelem_r"_h, &VISITORCLASS::VisitNEONByIndexedElement}, \ + {"dup_asimdins_dr_r"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"dup_asimdins_dv_v"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"ins_asimdins_ir_r"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"ins_asimdins_iv_v"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"smov_asimdins_w_w"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"smov_asimdins_x_x"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"umov_asimdins_w_w"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"umov_asimdins_x_x"_h, &VISITORCLASS::VisitNEONCopy}, \ + {"ext_asimdext_only"_h, &VISITORCLASS::VisitNEONExtract}, \ + {"ld1_asisdlse_r1_1v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld1_asisdlse_r2_2v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld1_asisdlse_r3_3v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld1_asisdlse_r4_4v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld2_asisdlse_r2"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld3_asisdlse_r3"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld4_asisdlse_r4"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st1_asisdlse_r1_1v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st1_asisdlse_r2_2v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st1_asisdlse_r3_3v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st1_asisdlse_r4_4v"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st2_asisdlse_r2"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st3_asisdlse_r3"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"st4_asisdlse_r4"_h, &VISITORCLASS::VisitNEONLoadStoreMultiStruct}, \ + {"ld1_asisdlsep_i1_i1"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_i2_i2", \ + {"ld1_asisdlsep_i2_i2"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_i3_i3", \ + {"ld1_asisdlsep_i3_i3"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_i4_i4", \ + {"ld1_asisdlsep_i4_i4"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_r1_r1", \ + {"ld1_asisdlsep_r1_r1"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_r2_r2", \ + {"ld1_asisdlsep_r2_r2"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_r3_r3", \ + {"ld1_asisdlsep_r3_r3"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1_asisdlsep_r4_r4", \ + {"ld1_asisdlsep_r4_r4"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld2_asisdlsep_i2_i", \ + {"ld2_asisdlsep_i2_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld2_asisdlsep_r2_r", \ + {"ld2_asisdlsep_r2_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld3_asisdlsep_i3_i", \ + {"ld3_asisdlsep_i3_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld3_asisdlsep_r3_r", \ + {"ld3_asisdlsep_r3_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld4_asisdlsep_i4_i", \ + {"ld4_asisdlsep_i4_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld4_asisdlsep_r4_r", \ + {"ld4_asisdlsep_r4_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_i1_i1", \ + {"st1_asisdlsep_i1_i1"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_i2_i2", \ + {"st1_asisdlsep_i2_i2"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_i3_i3", \ + {"st1_asisdlsep_i3_i3"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_i4_i4", \ + {"st1_asisdlsep_i4_i4"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_r1_r1", \ + {"st1_asisdlsep_r1_r1"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_r2_r2", \ + {"st1_asisdlsep_r2_r2"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_r3_r3", \ + {"st1_asisdlsep_r3_r3"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st1_asisdlsep_r4_r4", \ + {"st1_asisdlsep_r4_r4"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st2_asisdlsep_i2_i", \ + {"st2_asisdlsep_i2_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st2_asisdlsep_r2_r", \ + {"st2_asisdlsep_r2_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st3_asisdlsep_i3_i", \ + {"st3_asisdlsep_i3_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st3_asisdlsep_r3_r", \ + {"st3_asisdlsep_r3_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st4_asisdlsep_i4_i", \ + {"st4_asisdlsep_i4_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"st4_asisdlsep_r4_r", \ + {"st4_asisdlsep_r4_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreMultiStructPostIndex}, \ - {"ld1r_asisdlso_r1", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld1_asisdlso_b1_1b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld1_asisdlso_d1_1d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld1_asisdlso_h1_1h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld1_asisdlso_s1_1s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld2r_asisdlso_r2", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld2_asisdlso_b2_2b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld2_asisdlso_d2_2d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld2_asisdlso_h2_2h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld2_asisdlso_s2_2s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld3r_asisdlso_r3", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld3_asisdlso_b3_3b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld3_asisdlso_d3_3d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld3_asisdlso_h3_3h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld3_asisdlso_s3_3s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld4r_asisdlso_r4", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld4_asisdlso_b4_4b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld4_asisdlso_d4_4d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld4_asisdlso_h4_4h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld4_asisdlso_s4_4s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st1_asisdlso_b1_1b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st1_asisdlso_d1_1d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st1_asisdlso_h1_1h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st1_asisdlso_s1_1s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st2_asisdlso_b2_2b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st2_asisdlso_d2_2d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st2_asisdlso_h2_2h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st2_asisdlso_s2_2s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st3_asisdlso_b3_3b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st3_asisdlso_d3_3d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st3_asisdlso_h3_3h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st3_asisdlso_s3_3s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st4_asisdlso_b4_4b", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st4_asisdlso_d4_4d", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st4_asisdlso_h4_4h", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"st4_asisdlso_s4_4s", &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ - {"ld1r_asisdlsop_r1_i", \ + {"ld1r_asisdlso_r1"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld1_asisdlso_b1_1b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld1_asisdlso_d1_1d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld1_asisdlso_h1_1h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld1_asisdlso_s1_1s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld2r_asisdlso_r2"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld2_asisdlso_b2_2b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld2_asisdlso_d2_2d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld2_asisdlso_h2_2h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld2_asisdlso_s2_2s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld3r_asisdlso_r3"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld3_asisdlso_b3_3b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld3_asisdlso_d3_3d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld3_asisdlso_h3_3h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld3_asisdlso_s3_3s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld4r_asisdlso_r4"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld4_asisdlso_b4_4b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld4_asisdlso_d4_4d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld4_asisdlso_h4_4h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld4_asisdlso_s4_4s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st1_asisdlso_b1_1b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st1_asisdlso_d1_1d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st1_asisdlso_h1_1h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st1_asisdlso_s1_1s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st2_asisdlso_b2_2b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st2_asisdlso_d2_2d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st2_asisdlso_h2_2h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st2_asisdlso_s2_2s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st3_asisdlso_b3_3b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st3_asisdlso_d3_3d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st3_asisdlso_h3_3h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st3_asisdlso_s3_3s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st4_asisdlso_b4_4b"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st4_asisdlso_d4_4d"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st4_asisdlso_h4_4h"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"st4_asisdlso_s4_4s"_h, &VISITORCLASS::VisitNEONLoadStoreSingleStruct}, \ + {"ld1r_asisdlsop_r1_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1r_asisdlsop_rx1_r", \ + {"ld1r_asisdlsop_rx1_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_b1_i1b", \ + {"ld1_asisdlsop_b1_i1b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_bx1_r1b", \ + {"ld1_asisdlsop_bx1_r1b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_d1_i1d", \ + {"ld1_asisdlsop_d1_i1d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_dx1_r1d", \ + {"ld1_asisdlsop_dx1_r1d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_h1_i1h", \ + {"ld1_asisdlsop_h1_i1h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_hx1_r1h", \ + {"ld1_asisdlsop_hx1_r1h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_s1_i1s", \ + {"ld1_asisdlsop_s1_i1s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld1_asisdlsop_sx1_r1s", \ + {"ld1_asisdlsop_sx1_r1s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2r_asisdlsop_r2_i", \ + {"ld2r_asisdlsop_r2_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2r_asisdlsop_rx2_r", \ + {"ld2r_asisdlsop_rx2_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_b2_i2b", \ + {"ld2_asisdlsop_b2_i2b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_bx2_r2b", \ + {"ld2_asisdlsop_bx2_r2b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_d2_i2d", \ + {"ld2_asisdlsop_d2_i2d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_dx2_r2d", \ + {"ld2_asisdlsop_dx2_r2d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_h2_i2h", \ + {"ld2_asisdlsop_h2_i2h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_hx2_r2h", \ + {"ld2_asisdlsop_hx2_r2h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_s2_i2s", \ + {"ld2_asisdlsop_s2_i2s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld2_asisdlsop_sx2_r2s", \ + {"ld2_asisdlsop_sx2_r2s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3r_asisdlsop_r3_i", \ + {"ld3r_asisdlsop_r3_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3r_asisdlsop_rx3_r", \ + {"ld3r_asisdlsop_rx3_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_b3_i3b", \ + {"ld3_asisdlsop_b3_i3b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_bx3_r3b", \ + {"ld3_asisdlsop_bx3_r3b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_d3_i3d", \ + {"ld3_asisdlsop_d3_i3d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_dx3_r3d", \ + {"ld3_asisdlsop_dx3_r3d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_h3_i3h", \ + {"ld3_asisdlsop_h3_i3h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_hx3_r3h", \ + {"ld3_asisdlsop_hx3_r3h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_s3_i3s", \ + {"ld3_asisdlsop_s3_i3s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld3_asisdlsop_sx3_r3s", \ + {"ld3_asisdlsop_sx3_r3s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4r_asisdlsop_r4_i", \ + {"ld4r_asisdlsop_r4_i"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4r_asisdlsop_rx4_r", \ + {"ld4r_asisdlsop_rx4_r"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_b4_i4b", \ + {"ld4_asisdlsop_b4_i4b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_bx4_r4b", \ + {"ld4_asisdlsop_bx4_r4b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_d4_i4d", \ + {"ld4_asisdlsop_d4_i4d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_dx4_r4d", \ + {"ld4_asisdlsop_dx4_r4d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_h4_i4h", \ + {"ld4_asisdlsop_h4_i4h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_hx4_r4h", \ + {"ld4_asisdlsop_hx4_r4h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_s4_i4s", \ + {"ld4_asisdlsop_s4_i4s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"ld4_asisdlsop_sx4_r4s", \ + {"ld4_asisdlsop_sx4_r4s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_b1_i1b", \ + {"st1_asisdlsop_b1_i1b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_bx1_r1b", \ + {"st1_asisdlsop_bx1_r1b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_d1_i1d", \ + {"st1_asisdlsop_d1_i1d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_dx1_r1d", \ + {"st1_asisdlsop_dx1_r1d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_h1_i1h", \ + {"st1_asisdlsop_h1_i1h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_hx1_r1h", \ + {"st1_asisdlsop_hx1_r1h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_s1_i1s", \ + {"st1_asisdlsop_s1_i1s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st1_asisdlsop_sx1_r1s", \ + {"st1_asisdlsop_sx1_r1s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_b2_i2b", \ + {"st2_asisdlsop_b2_i2b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_bx2_r2b", \ + {"st2_asisdlsop_bx2_r2b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_d2_i2d", \ + {"st2_asisdlsop_d2_i2d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_dx2_r2d", \ + {"st2_asisdlsop_dx2_r2d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_h2_i2h", \ + {"st2_asisdlsop_h2_i2h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_hx2_r2h", \ + {"st2_asisdlsop_hx2_r2h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_s2_i2s", \ + {"st2_asisdlsop_s2_i2s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st2_asisdlsop_sx2_r2s", \ + {"st2_asisdlsop_sx2_r2s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_b3_i3b", \ + {"st3_asisdlsop_b3_i3b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_bx3_r3b", \ + {"st3_asisdlsop_bx3_r3b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_d3_i3d", \ + {"st3_asisdlsop_d3_i3d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_dx3_r3d", \ + {"st3_asisdlsop_dx3_r3d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_h3_i3h", \ + {"st3_asisdlsop_h3_i3h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_hx3_r3h", \ + {"st3_asisdlsop_hx3_r3h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_s3_i3s", \ + {"st3_asisdlsop_s3_i3s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st3_asisdlsop_sx3_r3s", \ + {"st3_asisdlsop_sx3_r3s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_b4_i4b", \ + {"st4_asisdlsop_b4_i4b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_bx4_r4b", \ + {"st4_asisdlsop_bx4_r4b"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_d4_i4d", \ + {"st4_asisdlsop_d4_i4d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_dx4_r4d", \ + {"st4_asisdlsop_dx4_r4d"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_h4_i4h", \ + {"st4_asisdlsop_h4_i4h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_hx4_r4h", \ + {"st4_asisdlsop_hx4_r4h"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_s4_i4s", \ + {"st4_asisdlsop_s4_i4s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"st4_asisdlsop_sx4_r4s", \ + {"st4_asisdlsop_sx4_r4s"_h, \ &VISITORCLASS::VisitNEONLoadStoreSingleStructPostIndex}, \ - {"bic_asimdimm_l_hl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"bic_asimdimm_l_sl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"fmov_asimdimm_d2_d", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"fmov_asimdimm_h_h", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"fmov_asimdimm_s_s", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_d2_d", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_d_ds", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_l_hl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_l_sl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_m_sm", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"movi_asimdimm_n_b", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"mvni_asimdimm_l_hl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"mvni_asimdimm_l_sl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"mvni_asimdimm_m_sm", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"orr_asimdimm_l_hl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"orr_asimdimm_l_sl", &VISITORCLASS::VisitNEONModifiedImmediate}, \ - {"trn1_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"trn2_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"uzp1_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"uzp2_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"zip1_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"zip2_asimdperm_only", &VISITORCLASS::VisitNEONPerm}, \ - {"sqabs_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"sqneg_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"sqxtn_asisdmisc_n", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"sqxtun_asisdmisc_n", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"suqadd_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"uqxtn_asisdmisc_n", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"usqadd_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmeq_asisdmiscfp16_fz", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcmge_asisdmiscfp16_fz", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcmgt_asisdmiscfp16_fz", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcmle_asisdmiscfp16_fz", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcmlt_asisdmiscfp16_fz", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtas_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtau_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtms_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtmu_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtns_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtnu_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtps_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtpu_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtzs_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"fcvtzu_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"frecpe_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"frecpx_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"frsqrte_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"scvtf_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"ucvtf_asisdmiscfp16_r", &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ - {"sqdmlal_asisddiff_only", &VISITORCLASS::VisitNEONScalar3Diff}, \ - {"sqdmlsl_asisddiff_only", &VISITORCLASS::VisitNEONScalar3Diff}, \ - {"sqdmull_asisddiff_only", &VISITORCLASS::VisitNEONScalar3Diff}, \ - {"sqadd_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqdmulh_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqrdmulh_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqrshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqsub_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"srshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"uqadd_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"uqrshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"uqshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"uqsub_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"urshl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"ushl_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"fabd_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"facge_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"facgt_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"fcmeq_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"fcmge_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"fcmgt_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"fmulx_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"frecps_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"frsqrts_asisdsamefp16_only", &VISITORCLASS::VisitNEONScalar3SameFP16}, \ - {"sqdmulh_asisdelem_r", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"sqrdmlah_asisdelem_r", \ + {"bic_asimdimm_l_hl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"bic_asimdimm_l_sl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"fmov_asimdimm_d2_d"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"fmov_asimdimm_h_h"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"fmov_asimdimm_s_s"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_d2_d"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_d_ds"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_l_hl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_l_sl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_m_sm"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"movi_asimdimm_n_b"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"mvni_asimdimm_l_hl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"mvni_asimdimm_l_sl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"mvni_asimdimm_m_sm"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"orr_asimdimm_l_hl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"orr_asimdimm_l_sl"_h, &VISITORCLASS::VisitNEONModifiedImmediate}, \ + {"trn1_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"trn2_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"uzp1_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"uzp2_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"zip1_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"zip2_asimdperm_only"_h, &VISITORCLASS::VisitNEONPerm}, \ + {"sqabs_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"sqneg_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"sqxtn_asisdmisc_n"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"sqxtun_asisdmisc_n"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"suqadd_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"uqxtn_asisdmisc_n"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"usqadd_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmeq_asisdmiscfp16_fz"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcmge_asisdmiscfp16_fz"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcmgt_asisdmiscfp16_fz"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcmle_asisdmiscfp16_fz"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcmlt_asisdmiscfp16_fz"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtas_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtau_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtms_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtmu_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtns_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtnu_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtps_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtpu_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtzs_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"fcvtzu_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"frecpe_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"frecpx_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"frsqrte_asisdmiscfp16_r"_h, \ + &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"scvtf_asisdmiscfp16_r"_h, &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"ucvtf_asisdmiscfp16_r"_h, &VISITORCLASS::VisitNEONScalar2RegMiscFP16}, \ + {"sqdmlal_asisddiff_only"_h, &VISITORCLASS::VisitNEONScalar3Diff}, \ + {"sqdmlsl_asisddiff_only"_h, &VISITORCLASS::VisitNEONScalar3Diff}, \ + {"sqdmull_asisddiff_only"_h, &VISITORCLASS::VisitNEONScalar3Diff}, \ + {"sqadd_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqdmulh_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqrdmulh_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqrshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqsub_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"srshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"uqadd_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"uqrshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"uqshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"uqsub_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"urshl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"ushl_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"fabd_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"facge_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"facgt_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"fcmeq_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"fcmge_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"fcmgt_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"fmulx_asisdsamefp16_only"_h, &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"frecps_asisdsamefp16_only"_h, \ + &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"frsqrts_asisdsamefp16_only"_h, \ + &VISITORCLASS::VisitNEONScalar3SameFP16}, \ + {"sqdmulh_asisdelem_r"_h, \ &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"sqrdmlsh_asisdelem_r", \ + {"sqrdmlah_asisdelem_r"_h, \ &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"sqrdmulh_asisdelem_r", \ + {"sqrdmlsh_asisdelem_r"_h, \ &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"dup_asisdone_only", &VISITORCLASS::VisitNEONScalarCopy}, \ - {"addp_asisdpair_only", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"faddp_asisdpair_only_h", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"faddp_asisdpair_only_sd", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fmaxnmp_asisdpair_only_h", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fmaxnmp_asisdpair_only_sd", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fmaxp_asisdpair_only_h", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fmaxp_asisdpair_only_sd", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fminnmp_asisdpair_only_h", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fminnmp_asisdpair_only_sd", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fminp_asisdpair_only_h", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fminp_asisdpair_only_sd", &VISITORCLASS::VisitNEONScalarPairwise}, \ - {"fcvtzs_asisdshf_c", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"fcvtzu_asisdshf_c", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"scvtf_asisdshf_c", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqshlu_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqshl_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"ucvtf_asisdshf_c", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"uqshl_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqshlu_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqshl_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"uqshl_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"shl_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sli_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"tbl_asimdtbl_l1_1", &VISITORCLASS::VisitNEONTable}, \ - {"tbl_asimdtbl_l2_2", &VISITORCLASS::VisitNEONTable}, \ - {"tbl_asimdtbl_l3_3", &VISITORCLASS::VisitNEONTable}, \ - {"tbl_asimdtbl_l4_4", &VISITORCLASS::VisitNEONTable}, \ - {"tbx_asimdtbl_l1_1", &VISITORCLASS::VisitNEONTable}, \ - {"tbx_asimdtbl_l2_2", &VISITORCLASS::VisitNEONTable}, \ - {"tbx_asimdtbl_l3_3", &VISITORCLASS::VisitNEONTable}, \ - {"tbx_asimdtbl_l4_4", &VISITORCLASS::VisitNEONTable}, \ - {"adrp_only_pcreladdr", &VISITORCLASS::VisitPCRelAddressing}, \ - {"adr_only_pcreladdr", &VISITORCLASS::VisitPCRelAddressing}, \ - {"rmif_only_rmif", &VISITORCLASS::VisitRotateRightIntoFlags}, \ - {"bti_hb_hints", &VISITORCLASS::VisitSystem}, \ - {"clrex_bn_barriers", &VISITORCLASS::VisitSystem}, \ - {"dmb_bo_barriers", &VISITORCLASS::VisitSystem}, \ - {"dsb_bo_barriers", &VISITORCLASS::VisitSystem}, \ - {"hint_hm_hints", &VISITORCLASS::VisitSystem}, \ - {"mrs_rs_systemmove", &VISITORCLASS::VisitSystem}, \ - {"msr_si_pstate", &VISITORCLASS::VisitSystem}, \ - {"msr_sr_systemmove", &VISITORCLASS::VisitSystem}, \ - {"psb_hc_hints", &VISITORCLASS::VisitSystem}, \ - {"sb_only_barriers", &VISITORCLASS::VisitSystem}, \ - {"sysl_rc_systeminstrs", &VISITORCLASS::VisitSystem}, \ - {"sys_cr_systeminstrs", &VISITORCLASS::VisitSystem}, \ - {"tcommit_only_barriers", &VISITORCLASS::VisitSystem}, \ - {"tsb_hc_hints", &VISITORCLASS::VisitSystem}, \ - {"tbnz_only_testbranch", &VISITORCLASS::VisitTestBranch}, \ - {"tbz_only_testbranch", &VISITORCLASS::VisitTestBranch}, \ - {"bl_only_branch_imm", &VISITORCLASS::VisitUnconditionalBranch}, \ - {"b_only_branch_imm", &VISITORCLASS::VisitUnconditionalBranch}, \ - {"blraaz_64_branch_reg", \ + {"sqrdmulh_asisdelem_r"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"dup_asisdone_only"_h, &VISITORCLASS::VisitNEONScalarCopy}, \ + {"addp_asisdpair_only"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"faddp_asisdpair_only_h"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"faddp_asisdpair_only_sd"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fmaxnmp_asisdpair_only_h"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fmaxnmp_asisdpair_only_sd"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fmaxp_asisdpair_only_h"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fmaxp_asisdpair_only_sd"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fminnmp_asisdpair_only_h"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fminnmp_asisdpair_only_sd"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fminp_asisdpair_only_h"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fminp_asisdpair_only_sd"_h, &VISITORCLASS::VisitNEONScalarPairwise}, \ + {"fcvtzs_asisdshf_c"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"fcvtzu_asisdshf_c"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"scvtf_asisdshf_c"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqshlu_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqshl_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"ucvtf_asisdshf_c"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"uqshl_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqshlu_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqshl_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"uqshl_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"shl_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sli_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"tbl_asimdtbl_l1_1"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbl_asimdtbl_l2_2"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbl_asimdtbl_l3_3"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbl_asimdtbl_l4_4"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbx_asimdtbl_l1_1"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbx_asimdtbl_l2_2"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbx_asimdtbl_l3_3"_h, &VISITORCLASS::VisitNEONTable}, \ + {"tbx_asimdtbl_l4_4"_h, &VISITORCLASS::VisitNEONTable}, \ + {"adrp_only_pcreladdr"_h, &VISITORCLASS::VisitPCRelAddressing}, \ + {"adr_only_pcreladdr"_h, &VISITORCLASS::VisitPCRelAddressing}, \ + {"rmif_only_rmif"_h, &VISITORCLASS::VisitRotateRightIntoFlags}, \ + {"bti_hb_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"clrex_bn_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"dmb_bo_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"dsb_bo_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"hint_hm_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"mrs_rs_systemmove"_h, &VISITORCLASS::VisitSystem}, \ + {"msr_si_pstate"_h, &VISITORCLASS::VisitSystem}, \ + {"msr_sr_systemmove"_h, &VISITORCLASS::VisitSystem}, \ + {"psb_hc_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"sb_only_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"sysl_rc_systeminstrs"_h, &VISITORCLASS::VisitSystem}, \ + {"sys_cr_systeminstrs"_h, &VISITORCLASS::VisitSystem}, \ + {"tcommit_only_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"tsb_hc_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"tbnz_only_testbranch"_h, &VISITORCLASS::VisitTestBranch}, \ + {"tbz_only_testbranch"_h, &VISITORCLASS::VisitTestBranch}, \ + {"bl_only_branch_imm"_h, &VISITORCLASS::VisitUnconditionalBranch}, \ + {"b_only_branch_imm"_h, &VISITORCLASS::VisitUnconditionalBranch}, \ + {"blraaz_64_branch_reg"_h, \ + &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ + {"blraa_64p_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"blraa_64p_branch_reg", \ + {"blrabz_64_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"blrabz_64_branch_reg", \ + {"blrab_64p_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"blrab_64p_branch_reg", \ + {"blr_64_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"blr_64_branch_reg", \ + {"braaz_64_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"braaz_64_branch_reg", \ + {"braa_64p_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"braa_64p_branch_reg", \ + {"brabz_64_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"brabz_64_branch_reg", \ + {"brab_64p_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"brab_64p_branch_reg", \ + {"br_64_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"br_64_branch_reg", &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"drps_64e_branch_reg", \ + {"drps_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"eretaa_64e_branch_reg", \ + {"eretaa_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"eretab_64e_branch_reg", \ + {"eretab_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"eret_64e_branch_reg", \ + {"eret_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"retaa_64e_branch_reg", \ + {"retaa_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"retab_64e_branch_reg", \ + {"retab_64e_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"ret_64r_branch_reg", \ + {"ret_64r_branch_reg"_h, \ &VISITORCLASS::VisitUnconditionalBranchToRegister}, \ - {"addg_64_addsub_immtags", &VISITORCLASS::VisitUnimplemented}, \ - {"bcax_vvv16_crypto4", &VISITORCLASS::VisitUnimplemented}, \ - {"bfcvtn_asimdmisc_4s", &VISITORCLASS::VisitUnimplemented}, \ - {"bfdot_asimdelem_e", &VISITORCLASS::VisitUnimplemented}, \ - {"bfdot_asimdsame2_d", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlal_asimdelem_f", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlal_asimdsame2_f_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmmla_asimdsame2_e", &VISITORCLASS::VisitUnimplemented}, \ - {"dsb_bon_barriers", &VISITORCLASS::VisitUnimplemented}, \ - {"eor3_vvv16_crypto4", &VISITORCLASS::VisitUnimplemented}, \ - {"ld64b_64l_memop", &VISITORCLASS::VisitUnimplemented}, \ - {"ldgm_64bulk_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"ldg_64loffset_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrb_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrh_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrsb_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrsb_64_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrsh_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrsh_64_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtrsw_64_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtr_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"ldtr_64_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"rax1_vvv2_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sha512h2_qqv_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sha512h_qqv_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sha512su0_vv2_cryptosha512_2", &VISITORCLASS::VisitUnimplemented}, \ - {"sha512su1_vvv2_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3partw1_vvv4_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3partw2_vvv4_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3ss1_vvv4_crypto4", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3tt1a_vvv4_crypto3_imm2", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3tt1b_vvv4_crypto3_imm2", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3tt2a_vvv4_crypto3_imm2", &VISITORCLASS::VisitUnimplemented}, \ - {"sm3tt2b_vvv_crypto3_imm2", &VISITORCLASS::VisitUnimplemented}, \ - {"sm4ekey_vvv4_cryptosha512_3", &VISITORCLASS::VisitUnimplemented}, \ - {"sm4e_vv4_cryptosha512_2", &VISITORCLASS::VisitUnimplemented}, \ - {"st2g_64soffset_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"st2g_64spost_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"st2g_64spre_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"st64b_64l_memop", &VISITORCLASS::VisitUnimplemented}, \ - {"st64bv_64_memop", &VISITORCLASS::VisitUnimplemented}, \ - {"st64bv0_64_memop", &VISITORCLASS::VisitUnimplemented}, \ - {"stgm_64bulk_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stgp_64_ldstpair_off", &VISITORCLASS::VisitUnimplemented}, \ - {"stgp_64_ldstpair_post", &VISITORCLASS::VisitUnimplemented}, \ - {"stgp_64_ldstpair_pre", &VISITORCLASS::VisitUnimplemented}, \ - {"stg_64soffset_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stg_64spost_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stg_64spre_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"sttrb_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"sttrh_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"sttr_32_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"sttr_64_ldst_unpriv", &VISITORCLASS::VisitUnimplemented}, \ - {"stz2g_64soffset_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stz2g_64spost_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stz2g_64spre_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stzgm_64bulk_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stzg_64soffset_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stzg_64spost_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"stzg_64spre_ldsttags", &VISITORCLASS::VisitUnimplemented}, \ - {"subg_64_addsub_immtags", &VISITORCLASS::VisitUnimplemented}, \ - {"subps_64s_dp_2src", &VISITORCLASS::VisitUnimplemented}, \ - {"subp_64s_dp_2src", &VISITORCLASS::VisitUnimplemented}, \ - {"tcancel_ex_exception", &VISITORCLASS::VisitUnimplemented}, \ - {"tstart_br_systemresult", &VISITORCLASS::VisitUnimplemented}, \ - {"ttest_br_systemresult", &VISITORCLASS::VisitUnimplemented}, \ - {"wfet_only_systeminstrswithreg", &VISITORCLASS::VisitUnimplemented}, \ - {"wfit_only_systeminstrswithreg", &VISITORCLASS::VisitUnimplemented}, \ - {"xar_vvv2_crypto3_imm6", &VISITORCLASS::VisitUnimplemented}, \ - {"bfcvt_z_p_z_s2bf", &VISITORCLASS::VisitUnimplemented}, \ - {"bfcvtnt_z_p_z_s2bf", &VISITORCLASS::VisitUnimplemented}, \ - {"bfdot_z_zzz_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfdot_z_zzzi_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlalb_z_zzz_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlalb_z_zzzi_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlalt_z_zzz_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmlalt_z_zzzi_", &VISITORCLASS::VisitUnimplemented}, \ - {"bfmmla_z_zzz_", &VISITORCLASS::VisitUnimplemented}, { \ - "unallocated", &VISITORCLASS::VisitUnallocated \ + {"addg_64_addsub_immtags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bcax_vvv16_crypto4"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfcvtn_asimdmisc_4s"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfdot_asimdelem_e"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfdot_asimdsame2_d"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlal_asimdelem_f"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlal_asimdsame2_f_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmmla_asimdsame2_e"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"dsb_bon_barriers"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"eor3_vvv16_crypto4"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ld64b_64l_memop"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldgm_64bulk_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldg_64loffset_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrb_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrh_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrsb_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrsb_64_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrsh_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrsh_64_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtrsw_64_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtr_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ldtr_64_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"rax1_vvv2_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sha512h2_qqv_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sha512h_qqv_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sha512su0_vv2_cryptosha512_2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sha512su1_vvv2_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3partw1_vvv4_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3partw2_vvv4_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3ss1_vvv4_crypto4"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3tt1a_vvv4_crypto3_imm2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3tt1b_vvv4_crypto3_imm2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3tt2a_vvv4_crypto3_imm2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm3tt2b_vvv_crypto3_imm2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm4ekey_vvv4_cryptosha512_3"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sm4e_vv4_cryptosha512_2"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st2g_64soffset_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st2g_64spost_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st2g_64spre_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st64b_64l_memop"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st64bv_64_memop"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"st64bv0_64_memop"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stgm_64bulk_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stgp_64_ldstpair_off"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stgp_64_ldstpair_post"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stgp_64_ldstpair_pre"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stg_64soffset_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stg_64spost_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stg_64spre_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sttrb_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sttrh_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sttr_32_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"sttr_64_ldst_unpriv"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stz2g_64soffset_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stz2g_64spost_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stz2g_64spre_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stzgm_64bulk_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stzg_64soffset_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stzg_64spost_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"stzg_64spre_ldsttags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"subg_64_addsub_immtags"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"subps_64s_dp_2src"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"subp_64s_dp_2src"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"tcancel_ex_exception"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"tstart_br_systemresult"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"ttest_br_systemresult"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"wfet_only_systeminstrswithreg"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"wfit_only_systeminstrswithreg"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"xar_vvv2_crypto3_imm6"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfcvt_z_p_z_s2bf"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfcvtnt_z_p_z_s2bf"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfdot_z_zzz_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfdot_z_zzzi_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlalb_z_zzz_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlalb_z_zzzi_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlalt_z_zzz_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmlalt_z_zzzi_"_h, &VISITORCLASS::VisitUnimplemented}, \ + {"bfmmla_z_zzz_"_h, &VISITORCLASS::VisitUnimplemented}, { \ + "unallocated"_h, &VISITORCLASS::VisitUnallocated \ } #define SIM_AUD_VISITOR_MAP(VISITORCLASS) \ - {"autia1716_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"autiasp_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"autiaz_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"autib1716_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"autibsp_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"autibz_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"axflag_m_pstate", &VISITORCLASS::VisitSystem}, \ - {"cfinv_m_pstate", &VISITORCLASS::VisitSystem}, \ - {"csdb_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"dgh_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"esb_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"isb_bi_barriers", &VISITORCLASS::VisitSystem}, \ - {"nop_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"pacia1716_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"paciasp_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"paciaz_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"pacib1716_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"pacibsp_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"pacibz_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"pssbb_only_barriers", &VISITORCLASS::VisitSystem}, \ - {"sev_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"sevl_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"ssbb_only_barriers", &VISITORCLASS::VisitSystem}, \ - {"wfe_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"wfi_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"xaflag_m_pstate", &VISITORCLASS::VisitSystem}, \ - {"xpaclri_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"yield_hi_hints", &VISITORCLASS::VisitSystem}, \ - {"abs_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cls_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"clz_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cmeq_asimdmisc_z", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cmge_asimdmisc_z", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cmgt_asimdmisc_z", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cmle_asimdmisc_z", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cmlt_asimdmisc_z", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"cnt_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fabs_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcmeq_asimdmisc_fz", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcmge_asimdmisc_fz", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcmgt_asimdmisc_fz", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcmle_asimdmisc_fz", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcmlt_asimdmisc_fz", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtas_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtau_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtl_asimdmisc_l", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtms_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtmu_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtns_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtnu_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtn_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtps_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtpu_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtxn_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtzs_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fcvtzu_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fneg_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frecpe_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frint32x_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frint32z_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frint64x_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frint64z_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frinta_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frinti_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frintm_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frintn_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frintp_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frintx_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frintz_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"frsqrte_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"fsqrt_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"neg_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"not_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"rbit_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"rev16_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"rev32_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"rev64_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"sadalp_asimdmisc_p", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"saddlp_asimdmisc_p", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"scvtf_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"shll_asimdmisc_s", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"sqabs_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"sqneg_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"sqxtn_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"sqxtun_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"suqadd_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"uadalp_asimdmisc_p", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"uaddlp_asimdmisc_p", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"ucvtf_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"uqxtn_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"urecpe_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"ursqrte_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"usqadd_asimdmisc_r", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"xtn_asimdmisc_n", &VISITORCLASS::VisitNEON2RegMisc}, \ - {"mla_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"mls_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"mul_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"saba_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sabd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"shadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"shsub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"smaxp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"smax_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"sminp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"smin_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"srhadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uaba_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uabd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uhadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uhsub_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"umaxp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"umax_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"uminp_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"umin_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"urhadd_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"and_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"bic_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"bif_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"bit_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"bsl_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"eor_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"orr_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"orn_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"pmul_asimdsame_only", &VISITORCLASS::VisitNEON3Same}, \ - {"fmlal2_asimdsame_f", &VISITORCLASS::VisitNEON3Same}, \ - {"fmlal_asimdsame_f", &VISITORCLASS::VisitNEON3Same}, \ - {"fmlsl2_asimdsame_f", &VISITORCLASS::VisitNEON3Same}, \ - {"fmlsl_asimdsame_f", &VISITORCLASS::VisitNEON3Same}, \ - {"ushll_asimdshf_l", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sshll_asimdshf_l", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"shrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"rshrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqshrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqrshrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqshrun_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqrshrun_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"uqshrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"uqrshrn_asimdshf_n", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sri_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"srshr_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"srsra_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sshr_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"ssra_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"urshr_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"ursra_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"ushr_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"usra_asimdshf_r", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"scvtf_asimdshf_c", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"ucvtf_asimdshf_c", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"fcvtzs_asimdshf_c", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"fcvtzu_asimdshf_c", &VISITORCLASS::VisitNEONShiftImmediate}, \ - {"sqdmlal_asisdelem_l", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"sqdmlsl_asisdelem_l", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"sqdmull_asisdelem_l", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmla_asisdelem_rh_h", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmla_asisdelem_r_sd", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmls_asisdelem_rh_h", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmls_asisdelem_r_sd", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmulx_asisdelem_rh_h", \ + {"autia1716_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"autiasp_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"autiaz_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"autib1716_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"autibsp_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"autibz_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"axflag_m_pstate"_h, &VISITORCLASS::VisitSystem}, \ + {"cfinv_m_pstate"_h, &VISITORCLASS::VisitSystem}, \ + {"csdb_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"dgh_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"esb_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"isb_bi_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"nop_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"pacia1716_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"paciasp_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"paciaz_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"pacib1716_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"pacibsp_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"pacibz_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"pssbb_only_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"sev_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"sevl_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"ssbb_only_barriers"_h, &VISITORCLASS::VisitSystem}, \ + {"wfe_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"wfi_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"xaflag_m_pstate"_h, &VISITORCLASS::VisitSystem}, \ + {"xpaclri_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"yield_hi_hints"_h, &VISITORCLASS::VisitSystem}, \ + {"abs_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cls_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"clz_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cmeq_asimdmisc_z"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cmge_asimdmisc_z"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cmgt_asimdmisc_z"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cmle_asimdmisc_z"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cmlt_asimdmisc_z"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"cnt_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fabs_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcmeq_asimdmisc_fz"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcmge_asimdmisc_fz"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcmgt_asimdmisc_fz"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcmle_asimdmisc_fz"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcmlt_asimdmisc_fz"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtas_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtau_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtl_asimdmisc_l"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtms_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtmu_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtns_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtnu_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtn_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtps_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtpu_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtxn_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtzs_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fcvtzu_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fneg_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frecpe_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frint32x_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frint32z_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frint64x_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frint64z_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frinta_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frinti_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frintm_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frintn_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frintp_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frintx_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frintz_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"frsqrte_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"fsqrt_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"neg_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"not_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"rbit_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"rev16_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"rev32_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"rev64_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"sadalp_asimdmisc_p"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"saddlp_asimdmisc_p"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"scvtf_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"shll_asimdmisc_s"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"sqabs_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"sqneg_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"sqxtn_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"sqxtun_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"suqadd_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"uadalp_asimdmisc_p"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"uaddlp_asimdmisc_p"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"ucvtf_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"uqxtn_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"urecpe_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"ursqrte_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"usqadd_asimdmisc_r"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"xtn_asimdmisc_n"_h, &VISITORCLASS::VisitNEON2RegMisc}, \ + {"mla_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"mls_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"mul_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"saba_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sabd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"shadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"shsub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"smaxp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"smax_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"sminp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"smin_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"srhadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uaba_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uabd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uhadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uhsub_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"umaxp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"umax_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"uminp_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"umin_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"urhadd_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"and_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"bic_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"bif_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"bit_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"bsl_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"eor_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"orr_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"orn_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"pmul_asimdsame_only"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmlal2_asimdsame_f"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmlal_asimdsame_f"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmlsl2_asimdsame_f"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"fmlsl_asimdsame_f"_h, &VISITORCLASS::VisitNEON3Same}, \ + {"ushll_asimdshf_l"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sshll_asimdshf_l"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"shrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"rshrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqshrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqrshrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqshrun_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqrshrun_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"uqshrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"uqrshrn_asimdshf_n"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sri_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"srshr_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"srsra_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sshr_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"ssra_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"urshr_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"ursra_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"ushr_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"usra_asimdshf_r"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"scvtf_asimdshf_c"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"ucvtf_asimdshf_c"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"fcvtzs_asimdshf_c"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"fcvtzu_asimdshf_c"_h, &VISITORCLASS::VisitNEONShiftImmediate}, \ + {"sqdmlal_asisdelem_l"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"sqdmlsl_asisdelem_l"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"sqdmull_asisdelem_l"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmla_asisdelem_rh_h"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmla_asisdelem_r_sd"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmls_asisdelem_rh_h"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmls_asisdelem_r_sd"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmulx_asisdelem_rh_h"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmulx_asisdelem_r_sd"_h, \ + &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ + {"fmul_asisdelem_rh_h"_h, \ &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmulx_asisdelem_r_sd", \ + {"fmul_asisdelem_r_sd"_h, \ &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmul_asisdelem_rh_h", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fmul_asisdelem_r_sd", &VISITORCLASS::VisitNEONScalarByIndexedElement}, \ - {"fabd_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"facge_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"facgt_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"fcmeq_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"fcmge_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"fcmgt_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"fmulx_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"frecps_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"frsqrts_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmeq_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmge_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmgt_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmhi_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmhs_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"cmtst_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"add_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sub_asisdsame_only", &VISITORCLASS::VisitNEONScalar3Same}, \ - {"sqrdmlah_asisdsame2_only", &VISITORCLASS::VisitNEONScalar3SameExtra}, \ - {"sqrdmlsh_asisdsame2_only", &VISITORCLASS::VisitNEONScalar3SameExtra}, \ - {"fmaxnmv_asimdall_only_h", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fmaxv_asimdall_only_h", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fminnmv_asimdall_only_h", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fminv_asimdall_only_h", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fmaxnmv_asimdall_only_sd", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fminnmv_asimdall_only_sd", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fmaxv_asimdall_only_sd", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"fminv_asimdall_only_sd", &VISITORCLASS::VisitNEONAcrossLanes}, \ - {"shl_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sli_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sri_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"srshr_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"srsra_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sshr_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"ssra_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"urshr_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"ursra_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"ushr_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"usra_asisdshf_r", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqrshrn_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqrshrun_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqshrn_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"sqshrun_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"uqrshrn_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"uqshrn_asisdshf_n", &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ - {"cmeq_asisdmisc_z", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"cmge_asisdmisc_z", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"cmgt_asisdmisc_z", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"cmle_asisdmisc_z", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"cmlt_asisdmisc_z", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"abs_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"neg_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmeq_asisdmisc_fz", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmge_asisdmisc_fz", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmgt_asisdmisc_fz", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmle_asisdmisc_fz", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcmlt_asisdmisc_fz", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtas_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtau_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtms_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtmu_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtns_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtnu_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtps_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtpu_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtxn_asisdmisc_n", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtzs_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"fcvtzu_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"frecpe_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"frecpx_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"frsqrte_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, \ - {"scvtf_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc}, { \ - "ucvtf_asisdmisc_r", &VISITORCLASS::VisitNEONScalar2RegMisc \ + {"fabd_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"facge_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"facgt_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"fcmeq_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"fcmge_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"fcmgt_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"fmulx_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"frecps_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"frsqrts_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmeq_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmge_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmgt_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmhi_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmhs_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"cmtst_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"add_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sub_asisdsame_only"_h, &VISITORCLASS::VisitNEONScalar3Same}, \ + {"sqrdmlah_asisdsame2_only"_h, \ + &VISITORCLASS::VisitNEONScalar3SameExtra}, \ + {"sqrdmlsh_asisdsame2_only"_h, \ + &VISITORCLASS::VisitNEONScalar3SameExtra}, \ + {"fmaxnmv_asimdall_only_h"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fmaxv_asimdall_only_h"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fminnmv_asimdall_only_h"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fminv_asimdall_only_h"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fmaxnmv_asimdall_only_sd"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fminnmv_asimdall_only_sd"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fmaxv_asimdall_only_sd"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"fminv_asimdall_only_sd"_h, &VISITORCLASS::VisitNEONAcrossLanes}, \ + {"shl_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sli_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sri_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"srshr_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"srsra_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sshr_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"ssra_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"urshr_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"ursra_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"ushr_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"usra_asisdshf_r"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqrshrn_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqrshrun_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqshrn_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"sqshrun_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"uqrshrn_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"uqshrn_asisdshf_n"_h, &VISITORCLASS::VisitNEONScalarShiftImmediate}, \ + {"cmeq_asisdmisc_z"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"cmge_asisdmisc_z"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"cmgt_asisdmisc_z"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"cmle_asisdmisc_z"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"cmlt_asisdmisc_z"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"abs_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"neg_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmeq_asisdmisc_fz"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmge_asisdmisc_fz"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmgt_asisdmisc_fz"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmle_asisdmisc_fz"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcmlt_asisdmisc_fz"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtas_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtau_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtms_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtmu_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtns_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtnu_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtps_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtpu_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtxn_asisdmisc_n"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtzs_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"fcvtzu_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"frecpe_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"frecpx_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"frsqrte_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, \ + {"scvtf_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc}, { \ + "ucvtf_asisdmisc_r"_h, &VISITORCLASS::VisitNEONScalar2RegMisc \ } diff --git a/src/aarch64/disasm-aarch64.cc b/src/aarch64/disasm-aarch64.cc index 15165b97..9cc9b3c9 100644 --- a/src/aarch64/disasm-aarch64.cc +++ b/src/aarch64/disasm-aarch64.cc @@ -37,612 +37,641 @@ namespace aarch64 { const Disassembler::FormToVisitorFnMap *Disassembler::GetFormToVisitorFnMap() { static const FormToVisitorFnMap form_to_visitor = { DEFAULT_FORM_TO_VISITOR_MAP(Disassembler), - {"autia1716_hi_hints", &Disassembler::DisassembleNoArgs}, - {"autiasp_hi_hints", &Disassembler::DisassembleNoArgs}, - {"autiaz_hi_hints", &Disassembler::DisassembleNoArgs}, - {"autib1716_hi_hints", &Disassembler::DisassembleNoArgs}, - {"autibsp_hi_hints", &Disassembler::DisassembleNoArgs}, - {"autibz_hi_hints", &Disassembler::DisassembleNoArgs}, - {"axflag_m_pstate", &Disassembler::DisassembleNoArgs}, - {"cfinv_m_pstate", &Disassembler::DisassembleNoArgs}, - {"csdb_hi_hints", &Disassembler::DisassembleNoArgs}, - {"dgh_hi_hints", &Disassembler::DisassembleNoArgs}, - {"ssbb_only_barriers", &Disassembler::DisassembleNoArgs}, - {"pssbb_only_barriers", &Disassembler::DisassembleNoArgs}, - {"esb_hi_hints", &Disassembler::DisassembleNoArgs}, - {"isb_bi_barriers", &Disassembler::DisassembleNoArgs}, - {"nop_hi_hints", &Disassembler::DisassembleNoArgs}, - {"pacia1716_hi_hints", &Disassembler::DisassembleNoArgs}, - {"paciasp_hi_hints", &Disassembler::DisassembleNoArgs}, - {"paciaz_hi_hints", &Disassembler::DisassembleNoArgs}, - {"pacib1716_hi_hints", &Disassembler::DisassembleNoArgs}, - {"pacibsp_hi_hints", &Disassembler::DisassembleNoArgs}, - {"pacibz_hi_hints", &Disassembler::DisassembleNoArgs}, - {"sev_hi_hints", &Disassembler::DisassembleNoArgs}, - {"sevl_hi_hints", &Disassembler::DisassembleNoArgs}, - {"wfe_hi_hints", &Disassembler::DisassembleNoArgs}, - {"wfi_hi_hints", &Disassembler::DisassembleNoArgs}, - {"xaflag_m_pstate", &Disassembler::DisassembleNoArgs}, - {"xpaclri_hi_hints", &Disassembler::DisassembleNoArgs}, - {"yield_hi_hints", &Disassembler::DisassembleNoArgs}, - {"abs_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"cls_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"clz_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"cnt_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"neg_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"rev16_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"rev32_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"rev64_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"sqabs_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"sqneg_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"suqadd_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"urecpe_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"ursqrte_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"usqadd_asimdmisc_r", &Disassembler::VisitNEON2RegMisc}, - {"not_asimdmisc_r", &Disassembler::DisassembleNEON2RegLogical}, - {"rbit_asimdmisc_r", &Disassembler::DisassembleNEON2RegLogical}, - {"xtn_asimdmisc_n", &Disassembler::DisassembleNEON2RegExtract}, - {"sqxtn_asimdmisc_n", &Disassembler::DisassembleNEON2RegExtract}, - {"uqxtn_asimdmisc_n", &Disassembler::DisassembleNEON2RegExtract}, - {"sqxtun_asimdmisc_n", &Disassembler::DisassembleNEON2RegExtract}, - {"shll_asimdmisc_s", &Disassembler::DisassembleNEON2RegExtract}, - {"sadalp_asimdmisc_p", &Disassembler::DisassembleNEON2RegAddlp}, - {"saddlp_asimdmisc_p", &Disassembler::DisassembleNEON2RegAddlp}, - {"uadalp_asimdmisc_p", &Disassembler::DisassembleNEON2RegAddlp}, - {"uaddlp_asimdmisc_p", &Disassembler::DisassembleNEON2RegAddlp}, - {"cmeq_asimdmisc_z", &Disassembler::DisassembleNEON2RegCompare}, - {"cmge_asimdmisc_z", &Disassembler::DisassembleNEON2RegCompare}, - {"cmgt_asimdmisc_z", &Disassembler::DisassembleNEON2RegCompare}, - {"cmle_asimdmisc_z", &Disassembler::DisassembleNEON2RegCompare}, - {"cmlt_asimdmisc_z", &Disassembler::DisassembleNEON2RegCompare}, - {"fcmeq_asimdmisc_fz", &Disassembler::DisassembleNEON2RegFPCompare}, - {"fcmge_asimdmisc_fz", &Disassembler::DisassembleNEON2RegFPCompare}, - {"fcmgt_asimdmisc_fz", &Disassembler::DisassembleNEON2RegFPCompare}, - {"fcmle_asimdmisc_fz", &Disassembler::DisassembleNEON2RegFPCompare}, - {"fcmlt_asimdmisc_fz", &Disassembler::DisassembleNEON2RegFPCompare}, - {"fcvtl_asimdmisc_l", &Disassembler::DisassembleNEON2RegFPConvert}, - {"fcvtn_asimdmisc_n", &Disassembler::DisassembleNEON2RegFPConvert}, - {"fcvtxn_asimdmisc_n", &Disassembler::DisassembleNEON2RegFPConvert}, - {"fabs_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtas_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtau_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtms_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtmu_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtns_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtnu_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtps_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtpu_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtzs_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fcvtzu_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fneg_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frecpe_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frint32x_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frint32z_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frint64x_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frint64z_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frinta_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frinti_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frintm_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frintn_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frintp_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frintx_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frintz_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"frsqrte_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"fsqrt_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"scvtf_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"ucvtf_asimdmisc_r", &Disassembler::DisassembleNEON2RegFP}, - {"smlal_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"smlsl_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"smull_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"umlal_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"umlsl_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"umull_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"sqdmull_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"sqdmlal_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"sqdmlsl_asimdelem_l", &Disassembler::DisassembleNEONMulByElementLong}, - {"sdot_asimdelem_d", &Disassembler::DisassembleNEONDotProdByElement}, - {"udot_asimdelem_d", &Disassembler::DisassembleNEONDotProdByElement}, - {"usdot_asimdelem_d", &Disassembler::DisassembleNEONDotProdByElement}, - {"sudot_asimdelem_d", &Disassembler::DisassembleNEONDotProdByElement}, - {"fmlal2_asimdelem_lh", &Disassembler::DisassembleNEONFPMulByElementLong}, - {"fmlal_asimdelem_lh", &Disassembler::DisassembleNEONFPMulByElementLong}, - {"fmlsl2_asimdelem_lh", &Disassembler::DisassembleNEONFPMulByElementLong}, - {"fmlsl_asimdelem_lh", &Disassembler::DisassembleNEONFPMulByElementLong}, - {"fcmla_asimdelem_c_h", + {"autia1716_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"autiasp_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"autiaz_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"autib1716_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"autibsp_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"autibz_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"axflag_m_pstate"_h, &Disassembler::DisassembleNoArgs}, + {"cfinv_m_pstate"_h, &Disassembler::DisassembleNoArgs}, + {"csdb_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"dgh_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"ssbb_only_barriers"_h, &Disassembler::DisassembleNoArgs}, + {"pssbb_only_barriers"_h, &Disassembler::DisassembleNoArgs}, + {"esb_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"isb_bi_barriers"_h, &Disassembler::DisassembleNoArgs}, + {"nop_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"pacia1716_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"paciasp_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"paciaz_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"pacib1716_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"pacibsp_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"pacibz_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"sev_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"sevl_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"wfe_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"wfi_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"xaflag_m_pstate"_h, &Disassembler::DisassembleNoArgs}, + {"xpaclri_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"yield_hi_hints"_h, &Disassembler::DisassembleNoArgs}, + {"abs_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"cls_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"clz_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"cnt_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"neg_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"rev16_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"rev32_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"rev64_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"sqabs_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"sqneg_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"suqadd_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"urecpe_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"ursqrte_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"usqadd_asimdmisc_r"_h, &Disassembler::VisitNEON2RegMisc}, + {"not_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegLogical}, + {"rbit_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegLogical}, + {"xtn_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegExtract}, + {"sqxtn_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegExtract}, + {"uqxtn_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegExtract}, + {"sqxtun_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegExtract}, + {"shll_asimdmisc_s"_h, &Disassembler::DisassembleNEON2RegExtract}, + {"sadalp_asimdmisc_p"_h, &Disassembler::DisassembleNEON2RegAddlp}, + {"saddlp_asimdmisc_p"_h, &Disassembler::DisassembleNEON2RegAddlp}, + {"uadalp_asimdmisc_p"_h, &Disassembler::DisassembleNEON2RegAddlp}, + {"uaddlp_asimdmisc_p"_h, &Disassembler::DisassembleNEON2RegAddlp}, + {"cmeq_asimdmisc_z"_h, &Disassembler::DisassembleNEON2RegCompare}, + {"cmge_asimdmisc_z"_h, &Disassembler::DisassembleNEON2RegCompare}, + {"cmgt_asimdmisc_z"_h, &Disassembler::DisassembleNEON2RegCompare}, + {"cmle_asimdmisc_z"_h, &Disassembler::DisassembleNEON2RegCompare}, + {"cmlt_asimdmisc_z"_h, &Disassembler::DisassembleNEON2RegCompare}, + {"fcmeq_asimdmisc_fz"_h, &Disassembler::DisassembleNEON2RegFPCompare}, + {"fcmge_asimdmisc_fz"_h, &Disassembler::DisassembleNEON2RegFPCompare}, + {"fcmgt_asimdmisc_fz"_h, &Disassembler::DisassembleNEON2RegFPCompare}, + {"fcmle_asimdmisc_fz"_h, &Disassembler::DisassembleNEON2RegFPCompare}, + {"fcmlt_asimdmisc_fz"_h, &Disassembler::DisassembleNEON2RegFPCompare}, + {"fcvtl_asimdmisc_l"_h, &Disassembler::DisassembleNEON2RegFPConvert}, + {"fcvtn_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegFPConvert}, + {"fcvtxn_asimdmisc_n"_h, &Disassembler::DisassembleNEON2RegFPConvert}, + {"fabs_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtas_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtau_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtms_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtmu_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtns_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtnu_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtps_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtpu_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtzs_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fcvtzu_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fneg_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frecpe_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frint32x_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frint32z_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frint64x_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frint64z_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frinta_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frinti_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frintm_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frintn_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frintp_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frintx_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frintz_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"frsqrte_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"fsqrt_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"scvtf_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"ucvtf_asimdmisc_r"_h, &Disassembler::DisassembleNEON2RegFP}, + {"smlal_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"smlsl_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"smull_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"umlal_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"umlsl_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"umull_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"sqdmull_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"sqdmlal_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"sqdmlsl_asimdelem_l"_h, &Disassembler::DisassembleNEONMulByElementLong}, + {"sdot_asimdelem_d"_h, &Disassembler::DisassembleNEONDotProdByElement}, + {"udot_asimdelem_d"_h, &Disassembler::DisassembleNEONDotProdByElement}, + {"usdot_asimdelem_d"_h, &Disassembler::DisassembleNEONDotProdByElement}, + {"sudot_asimdelem_d"_h, &Disassembler::DisassembleNEONDotProdByElement}, + {"fmlal2_asimdelem_lh"_h, + &Disassembler::DisassembleNEONFPMulByElementLong}, + {"fmlal_asimdelem_lh"_h, + &Disassembler::DisassembleNEONFPMulByElementLong}, + {"fmlsl2_asimdelem_lh"_h, + &Disassembler::DisassembleNEONFPMulByElementLong}, + {"fmlsl_asimdelem_lh"_h, + &Disassembler::DisassembleNEONFPMulByElementLong}, + {"fcmla_asimdelem_c_h"_h, &Disassembler::DisassembleNEONComplexMulByElement}, - {"fcmla_asimdelem_c_s", + {"fcmla_asimdelem_c_s"_h, &Disassembler::DisassembleNEONComplexMulByElement}, - {"fmla_asimdelem_rh_h", &Disassembler::DisassembleNEONHalfFPMulByElement}, - {"fmls_asimdelem_rh_h", &Disassembler::DisassembleNEONHalfFPMulByElement}, - {"fmulx_asimdelem_rh_h", + {"fmla_asimdelem_rh_h"_h, &Disassembler::DisassembleNEONHalfFPMulByElement}, - {"fmul_asimdelem_rh_h", &Disassembler::DisassembleNEONHalfFPMulByElement}, - {"fmla_asimdelem_r_sd", &Disassembler::DisassembleNEONFPMulByElement}, - {"fmls_asimdelem_r_sd", &Disassembler::DisassembleNEONFPMulByElement}, - {"fmulx_asimdelem_r_sd", &Disassembler::DisassembleNEONFPMulByElement}, - {"fmul_asimdelem_r_sd", &Disassembler::DisassembleNEONFPMulByElement}, - {"mla_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"mls_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"mul_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"saba_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"sabd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"shadd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"shsub_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"smaxp_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"smax_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"sminp_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"smin_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"srhadd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"uaba_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"uabd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"uhadd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"uhsub_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"umaxp_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"umax_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"uminp_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"umin_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"urhadd_asimdsame_only", &Disassembler::DisassembleNEON3SameNoD}, - {"and_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"bic_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"bif_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"bit_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"bsl_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"eor_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"orr_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"orn_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"pmul_asimdsame_only", &Disassembler::DisassembleNEON3SameLogical}, - {"fmlal2_asimdsame_f", &Disassembler::DisassembleNEON3SameFHM}, - {"fmlal_asimdsame_f", &Disassembler::DisassembleNEON3SameFHM}, - {"fmlsl2_asimdsame_f", &Disassembler::DisassembleNEON3SameFHM}, - {"fmlsl_asimdsame_f", &Disassembler::DisassembleNEON3SameFHM}, - {"sri_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"srshr_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"srsra_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"sshr_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"ssra_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"urshr_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"ursra_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"ushr_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"usra_asimdshf_r", &Disassembler::DisassembleNEONShiftRightImm}, - {"scvtf_asimdshf_c", &Disassembler::DisassembleNEONShiftRightImm}, - {"ucvtf_asimdshf_c", &Disassembler::DisassembleNEONShiftRightImm}, - {"fcvtzs_asimdshf_c", &Disassembler::DisassembleNEONShiftRightImm}, - {"fcvtzu_asimdshf_c", &Disassembler::DisassembleNEONShiftRightImm}, - {"ushll_asimdshf_l", &Disassembler::DisassembleNEONShiftLeftLongImm}, - {"sshll_asimdshf_l", &Disassembler::DisassembleNEONShiftLeftLongImm}, - {"shrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"rshrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"sqshrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"sqrshrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"sqshrun_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"sqrshrun_asimdshf_n", + {"fmls_asimdelem_rh_h"_h, + &Disassembler::DisassembleNEONHalfFPMulByElement}, + {"fmulx_asimdelem_rh_h"_h, + &Disassembler::DisassembleNEONHalfFPMulByElement}, + {"fmul_asimdelem_rh_h"_h, + &Disassembler::DisassembleNEONHalfFPMulByElement}, + {"fmla_asimdelem_r_sd"_h, &Disassembler::DisassembleNEONFPMulByElement}, + {"fmls_asimdelem_r_sd"_h, &Disassembler::DisassembleNEONFPMulByElement}, + {"fmulx_asimdelem_r_sd"_h, &Disassembler::DisassembleNEONFPMulByElement}, + {"fmul_asimdelem_r_sd"_h, &Disassembler::DisassembleNEONFPMulByElement}, + {"mla_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"mls_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"mul_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"saba_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"sabd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"shadd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"shsub_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"smaxp_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"smax_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"sminp_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"smin_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"srhadd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"uaba_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"uabd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"uhadd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"uhsub_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"umaxp_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"umax_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"uminp_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"umin_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"urhadd_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameNoD}, + {"and_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"bic_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"bif_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"bit_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"bsl_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"eor_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"orr_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"orn_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"pmul_asimdsame_only"_h, &Disassembler::DisassembleNEON3SameLogical}, + {"fmlal2_asimdsame_f"_h, &Disassembler::DisassembleNEON3SameFHM}, + {"fmlal_asimdsame_f"_h, &Disassembler::DisassembleNEON3SameFHM}, + {"fmlsl2_asimdsame_f"_h, &Disassembler::DisassembleNEON3SameFHM}, + {"fmlsl_asimdsame_f"_h, &Disassembler::DisassembleNEON3SameFHM}, + {"sri_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"srshr_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"srsra_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"sshr_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"ssra_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"urshr_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"ursra_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"ushr_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"usra_asimdshf_r"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"scvtf_asimdshf_c"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"ucvtf_asimdshf_c"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"fcvtzs_asimdshf_c"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"fcvtzu_asimdshf_c"_h, &Disassembler::DisassembleNEONShiftRightImm}, + {"ushll_asimdshf_l"_h, &Disassembler::DisassembleNEONShiftLeftLongImm}, + {"sshll_asimdshf_l"_h, &Disassembler::DisassembleNEONShiftLeftLongImm}, + {"shrn_asimdshf_n"_h, &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"rshrn_asimdshf_n"_h, &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"sqshrn_asimdshf_n"_h, + &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"sqrshrn_asimdshf_n"_h, + &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"sqshrun_asimdshf_n"_h, + &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"sqrshrun_asimdshf_n"_h, + &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"uqshrn_asimdshf_n"_h, &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"uqshrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"uqrshrn_asimdshf_n", &Disassembler::DisassembleNEONShiftRightNarrowImm}, - {"sqdmlal_asisdelem_l", + {"uqrshrn_asimdshf_n"_h, + &Disassembler::DisassembleNEONShiftRightNarrowImm}, + {"sqdmlal_asisdelem_l"_h, &Disassembler::DisassembleNEONScalarSatMulLongIndex}, - {"sqdmlsl_asisdelem_l", + {"sqdmlsl_asisdelem_l"_h, &Disassembler::DisassembleNEONScalarSatMulLongIndex}, - {"sqdmull_asisdelem_l", + {"sqdmull_asisdelem_l"_h, &Disassembler::DisassembleNEONScalarSatMulLongIndex}, - {"fmla_asisdelem_rh_h", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmla_asisdelem_r_sd", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmls_asisdelem_rh_h", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmls_asisdelem_r_sd", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmulx_asisdelem_rh_h", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmulx_asisdelem_r_sd", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmul_asisdelem_rh_h", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fmul_asisdelem_r_sd", &Disassembler::DisassembleNEONFPScalarMulIndex}, - {"fabd_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"facge_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"facgt_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"fcmeq_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"fcmge_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"fcmgt_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"fmulx_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"frecps_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"frsqrts_asisdsame_only", &Disassembler::DisassembleNEONFPScalar3Same}, - {"sqrdmlah_asisdsame2_only", &Disassembler::VisitNEONScalar3Same}, - {"sqrdmlsh_asisdsame2_only", &Disassembler::VisitNEONScalar3Same}, - {"cmeq_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"cmge_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"cmgt_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"cmhi_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"cmhs_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"cmtst_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"add_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"sub_asisdsame_only", &Disassembler::DisassembleNEONScalar3SameOnlyD}, - {"fmaxnmv_asimdall_only_h", + {"fmla_asisdelem_rh_h"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmla_asisdelem_r_sd"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmls_asisdelem_rh_h"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmls_asisdelem_r_sd"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmulx_asisdelem_rh_h"_h, + &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmulx_asisdelem_r_sd"_h, + &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmul_asisdelem_rh_h"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fmul_asisdelem_r_sd"_h, &Disassembler::DisassembleNEONFPScalarMulIndex}, + {"fabd_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"facge_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"facgt_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"fcmeq_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"fcmge_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"fcmgt_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"fmulx_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"frecps_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"frsqrts_asisdsame_only"_h, &Disassembler::DisassembleNEONFPScalar3Same}, + {"sqrdmlah_asisdsame2_only"_h, &Disassembler::VisitNEONScalar3Same}, + {"sqrdmlsh_asisdsame2_only"_h, &Disassembler::VisitNEONScalar3Same}, + {"cmeq_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"cmge_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"cmgt_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"cmhi_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"cmhs_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"cmtst_asisdsame_only"_h, + &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"add_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"sub_asisdsame_only"_h, &Disassembler::DisassembleNEONScalar3SameOnlyD}, + {"fmaxnmv_asimdall_only_h"_h, + &Disassembler::DisassembleNEONFP16AcrossLanes}, + {"fmaxv_asimdall_only_h"_h, &Disassembler::DisassembleNEONFP16AcrossLanes}, - {"fmaxv_asimdall_only_h", &Disassembler::DisassembleNEONFP16AcrossLanes}, - {"fminnmv_asimdall_only_h", + {"fminnmv_asimdall_only_h"_h, &Disassembler::DisassembleNEONFP16AcrossLanes}, - {"fminv_asimdall_only_h", &Disassembler::DisassembleNEONFP16AcrossLanes}, - {"fmaxnmv_asimdall_only_sd", &Disassembler::DisassembleNEONFPAcrossLanes}, - {"fminnmv_asimdall_only_sd", &Disassembler::DisassembleNEONFPAcrossLanes}, - {"fmaxv_asimdall_only_sd", &Disassembler::DisassembleNEONFPAcrossLanes}, - {"fminv_asimdall_only_sd", &Disassembler::DisassembleNEONFPAcrossLanes}, - {"shl_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"sli_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"sri_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"srshr_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"srsra_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"sshr_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"ssra_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"urshr_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"ursra_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"ushr_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"usra_asisdshf_r", &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, - {"sqrshrn_asisdshf_n", + {"fminv_asimdall_only_h"_h, + &Disassembler::DisassembleNEONFP16AcrossLanes}, + {"fmaxnmv_asimdall_only_sd"_h, + &Disassembler::DisassembleNEONFPAcrossLanes}, + {"fminnmv_asimdall_only_sd"_h, + &Disassembler::DisassembleNEONFPAcrossLanes}, + {"fmaxv_asimdall_only_sd"_h, &Disassembler::DisassembleNEONFPAcrossLanes}, + {"fminv_asimdall_only_sd"_h, &Disassembler::DisassembleNEONFPAcrossLanes}, + {"shl_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"sli_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"sri_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"srshr_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"srsra_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"sshr_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"ssra_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"urshr_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"ursra_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"ushr_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"usra_asisdshf_r"_h, &Disassembler::DisassembleNEONScalarShiftImmOnlyD}, + {"sqrshrn_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"sqrshrun_asisdshf_n", + {"sqrshrun_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"sqshrn_asisdshf_n", + {"sqshrn_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"sqshrun_asisdshf_n", + {"sqshrun_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"uqrshrn_asisdshf_n", + {"uqrshrn_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"uqshrn_asisdshf_n", + {"uqshrn_asisdshf_n"_h, &Disassembler::DisassembleNEONScalarShiftRightNarrowImm}, - {"cmeq_asisdmisc_z", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"cmge_asisdmisc_z", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"cmgt_asisdmisc_z", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"cmle_asisdmisc_z", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"cmlt_asisdmisc_z", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"abs_asisdmisc_r", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"neg_asisdmisc_r", &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, - {"fcmeq_asisdmisc_fz", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcmge_asisdmisc_fz", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcmgt_asisdmisc_fz", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcmle_asisdmisc_fz", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcmlt_asisdmisc_fz", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtas_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtau_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtms_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtmu_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtns_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtnu_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtps_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtpu_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtxn_asisdmisc_n", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtzs_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"fcvtzu_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"frecpe_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"frecpx_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"frsqrte_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"scvtf_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"ucvtf_asisdmisc_r", &Disassembler::DisassembleNEONFPScalar2RegMisc}, - {"adclb_z_zzz", &Disassembler::DisassembleSVEAddSubCarry}, - {"adclt_z_zzz", &Disassembler::DisassembleSVEAddSubCarry}, - {"addhnb_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"addhnt_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"addp_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"aesd_z_zz", &Disassembler::Disassemble_ZdnB_ZdnB_ZmB}, - {"aese_z_zz", &Disassembler::Disassemble_ZdnB_ZdnB_ZmB}, - {"aesimc_z_z", &Disassembler::Disassemble_ZdnB_ZdnB}, - {"aesmc_z_z", &Disassembler::Disassemble_ZdnB_ZdnB}, - {"bcax_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"bdep_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"bext_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"bgrp_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"bsl1n_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"bsl2n_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"bsl_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"cadd_z_zz", &Disassembler::DisassembleSVEComplexIntAddition}, - {"cdot_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb_const}, - {"cdot_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnH_ZmH_imm_const}, - {"cdot_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnB_ZmB_imm_const}, - {"cmla_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT_const}, - {"cmla_z_zzzi_h", &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm_const}, - {"cmla_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm_const}, - {"eor3_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"eorbt_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"eortb_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"ext_z_zi_con", &Disassembler::Disassemble_ZdB_Zn1B_Zn2B_imm}, - {"faddp_z_p_zz", &Disassembler::DisassembleSVEFPPair}, - {"fcvtlt_z_p_z_h2s", &Disassembler::Disassemble_ZdS_PgM_ZnH}, - {"fcvtlt_z_p_z_s2d", &Disassembler::Disassemble_ZdD_PgM_ZnS}, - {"fcvtnt_z_p_z_d2s", &Disassembler::Disassemble_ZdS_PgM_ZnD}, - {"fcvtnt_z_p_z_s2h", &Disassembler::Disassemble_ZdH_PgM_ZnS}, - {"fcvtx_z_p_z_d2s", &Disassembler::Disassemble_ZdS_PgM_ZnD}, - {"fcvtxnt_z_p_z_d2s", &Disassembler::Disassemble_ZdS_PgM_ZnD}, - {"flogb_z_p_z", &Disassembler::DisassembleSVEFlogb}, - {"fmaxnmp_z_p_zz", &Disassembler::DisassembleSVEFPPair}, - {"fmaxp_z_p_zz", &Disassembler::DisassembleSVEFPPair}, - {"fminnmp_z_p_zz", &Disassembler::DisassembleSVEFPPair}, - {"fminp_z_p_zz", &Disassembler::DisassembleSVEFPPair}, - {"fmlalb_z_zzz", &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, - {"fmlalb_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"fmlalt_z_zzz", &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, - {"fmlalt_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"fmlslb_z_zzz", &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, - {"fmlslb_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"fmlslt_z_zzz", &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, - {"fmlslt_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"histcnt_z_p_zz", &Disassembler::Disassemble_ZdT_PgZ_ZnT_ZmT}, - {"histseg_z_zz", &Disassembler::Disassemble_ZdB_ZnB_ZmB}, - {"ldnt1b_z_p_ar_d_64_unscaled", + {"cmeq_asisdmisc_z"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"cmge_asisdmisc_z"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"cmgt_asisdmisc_z"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"cmle_asisdmisc_z"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"cmlt_asisdmisc_z"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"abs_asisdmisc_r"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"neg_asisdmisc_r"_h, &Disassembler::DisassembleNEONScalar2RegMiscOnlyD}, + {"fcmeq_asisdmisc_fz"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcmge_asisdmisc_fz"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcmgt_asisdmisc_fz"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcmle_asisdmisc_fz"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcmlt_asisdmisc_fz"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtas_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtau_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtms_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtmu_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtns_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtnu_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtps_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtpu_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtxn_asisdmisc_n"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtzs_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"fcvtzu_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"frecpe_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"frecpx_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"frsqrte_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"scvtf_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"ucvtf_asisdmisc_r"_h, &Disassembler::DisassembleNEONFPScalar2RegMisc}, + {"adclb_z_zzz"_h, &Disassembler::DisassembleSVEAddSubCarry}, + {"adclt_z_zzz"_h, &Disassembler::DisassembleSVEAddSubCarry}, + {"addhnb_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"addhnt_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"addp_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"aesd_z_zz"_h, &Disassembler::Disassemble_ZdnB_ZdnB_ZmB}, + {"aese_z_zz"_h, &Disassembler::Disassemble_ZdnB_ZdnB_ZmB}, + {"aesimc_z_z"_h, &Disassembler::Disassemble_ZdnB_ZdnB}, + {"aesmc_z_z"_h, &Disassembler::Disassemble_ZdnB_ZdnB}, + {"bcax_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"bdep_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"bext_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"bgrp_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"bsl1n_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"bsl2n_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"bsl_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"cadd_z_zz"_h, &Disassembler::DisassembleSVEComplexIntAddition}, + {"cdot_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb_const}, + {"cdot_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnH_ZmH_imm_const}, + {"cdot_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnB_ZmB_imm_const}, + {"cmla_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT_const}, + {"cmla_z_zzzi_h"_h, &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm_const}, + {"cmla_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm_const}, + {"eor3_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"eorbt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"eortb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"ext_z_zi_con"_h, &Disassembler::Disassemble_ZdB_Zn1B_Zn2B_imm}, + {"faddp_z_p_zz"_h, &Disassembler::DisassembleSVEFPPair}, + {"fcvtlt_z_p_z_h2s"_h, &Disassembler::Disassemble_ZdS_PgM_ZnH}, + {"fcvtlt_z_p_z_s2d"_h, &Disassembler::Disassemble_ZdD_PgM_ZnS}, + {"fcvtnt_z_p_z_d2s"_h, &Disassembler::Disassemble_ZdS_PgM_ZnD}, + {"fcvtnt_z_p_z_s2h"_h, &Disassembler::Disassemble_ZdH_PgM_ZnS}, + {"fcvtx_z_p_z_d2s"_h, &Disassembler::Disassemble_ZdS_PgM_ZnD}, + {"fcvtxnt_z_p_z_d2s"_h, &Disassembler::Disassemble_ZdS_PgM_ZnD}, + {"flogb_z_p_z"_h, &Disassembler::DisassembleSVEFlogb}, + {"fmaxnmp_z_p_zz"_h, &Disassembler::DisassembleSVEFPPair}, + {"fmaxp_z_p_zz"_h, &Disassembler::DisassembleSVEFPPair}, + {"fminnmp_z_p_zz"_h, &Disassembler::DisassembleSVEFPPair}, + {"fminp_z_p_zz"_h, &Disassembler::DisassembleSVEFPPair}, + {"fmlalb_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, + {"fmlalb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"fmlalt_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, + {"fmlalt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"fmlslb_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, + {"fmlslb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"fmlslt_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH}, + {"fmlslt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"histcnt_z_p_zz"_h, &Disassembler::Disassemble_ZdT_PgZ_ZnT_ZmT}, + {"histseg_z_zz"_h, &Disassembler::Disassemble_ZdB_ZnB_ZmB}, + {"ldnt1b_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1b_z_p_ar_s_x32_unscaled", + {"ldnt1b_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_PgZ_ZnS_Xm}, - {"ldnt1d_z_p_ar_d_64_unscaled", + {"ldnt1d_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1h_z_p_ar_d_64_unscaled", + {"ldnt1h_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1h_z_p_ar_s_x32_unscaled", + {"ldnt1h_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sb_z_p_ar_d_64_unscaled", + {"ldnt1sb_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1sb_z_p_ar_s_x32_unscaled", + {"ldnt1sb_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sh_z_p_ar_d_64_unscaled", + {"ldnt1sh_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1sh_z_p_ar_s_x32_unscaled", + {"ldnt1sh_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sw_z_p_ar_d_64_unscaled", + {"ldnt1sw_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1w_z_p_ar_d_64_unscaled", + {"ldnt1w_z_p_ar_d_64_unscaled"_h, &Disassembler::Disassemble_ZtD_PgZ_ZnD_Xm}, - {"ldnt1w_z_p_ar_s_x32_unscaled", + {"ldnt1w_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_PgZ_ZnS_Xm}, - {"match_p_p_zz", &Disassembler::Disassemble_PdT_PgZ_ZnT_ZmT}, - {"mla_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, - {"mla_z_zzzi_h", &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, - {"mla_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, - {"mls_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, - {"mls_z_zzzi_h", &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, - {"mls_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, - {"mul_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"mul_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, - {"mul_z_zzi_h", &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, - {"mul_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, - {"nbsl_z_zzz", &Disassembler::DisassembleSVEBitwiseTernary}, - {"nmatch_p_p_zz", &Disassembler::Disassemble_PdT_PgZ_ZnT_ZmT}, - {"pmul_z_zz", &Disassembler::Disassemble_ZdB_ZnB_ZmB}, - {"pmullb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"pmullt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"raddhnb_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"raddhnt_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"rax1_z_zz", &Disassembler::Disassemble_ZdD_ZnD_ZmD}, - {"rshrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"rshrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"rsubhnb_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"rsubhnt_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"saba_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"sabalb_z_zzz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sabalt_z_zzz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sabdlb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sabdlt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sadalp_z_p_z", &Disassembler::Disassemble_ZdaT_PgM_ZnTb}, - {"saddlb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"saddlbt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"saddlt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"saddwb_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"saddwt_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"sbclb_z_zzz", &Disassembler::DisassembleSVEAddSubCarry}, - {"sbclt_z_zzz", &Disassembler::DisassembleSVEAddSubCarry}, - {"shadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"shrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"shrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"shsub_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"shsubr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sli_z_zzi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"sm4e_z_zz", &Disassembler::Disassemble_ZdnS_ZdnS_ZmS}, - {"sm4ekey_z_zz", &Disassembler::Disassemble_ZdS_ZnS_ZmS}, - {"smaxp_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sminp_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"smlalb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"smlalb_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smlalb_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"smlalt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"smlalt_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smlalt_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"smlslb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"smlslb_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smlslb_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"smlslt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"smlslt_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smlslt_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"smulh_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"smullb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"smullb_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smullb_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"smullt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"smullt_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"smullt_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"splice_z_p_zz_con", &Disassembler::Disassemble_ZdT_Pg_Zn1T_Zn2T}, - {"sqabs_z_p_z", &Disassembler::Disassemble_ZdT_PgM_ZnT}, - {"sqadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqcadd_z_zz", &Disassembler::DisassembleSVEComplexIntAddition}, - {"sqdmlalb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlalb_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, - {"sqdmlalb_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"sqdmlalbt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlalt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlalt_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, - {"sqdmlalt_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"sqdmlslb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlslb_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, - {"sqdmlslb_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"sqdmlslbt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlslt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"sqdmlslt_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, - {"sqdmlslt_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, - {"sqdmulh_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"sqdmulh_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, - {"sqdmulh_z_zzi_h", &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, - {"sqdmulh_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, - {"sqdmullb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sqdmullb_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"sqdmullb_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"sqdmullt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"sqdmullt_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"sqdmullt_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"sqneg_z_p_z", &Disassembler::Disassemble_ZdT_PgM_ZnT}, - {"sqrdcmlah_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT_const}, - {"sqrdcmlah_z_zzzi_h", &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm_const}, - {"sqrdcmlah_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm_const}, - {"sqrdmlah_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"sqrdmlah_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnD_ZmD_imm}, - {"sqrdmlah_z_zzzi_h", &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm}, - {"sqrdmlah_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm}, - {"sqrdmlsh_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"sqrdmlsh_z_zzzi_d", &Disassembler::Disassemble_ZdaD_ZnD_ZmD_imm}, - {"sqrdmlsh_z_zzzi_h", &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm}, - {"sqrdmlsh_z_zzzi_s", &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm}, - {"sqrdmulh_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"sqrdmulh_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, - {"sqrdmulh_z_zzi_h", &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, - {"sqrdmulh_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, - {"sqrshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqrshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqrshrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqrshrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqrshrunb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqrshrunt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqshl_z_p_zi", &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, - {"sqshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqshlu_z_p_zi", &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, - {"sqshrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqshrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqshrunb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqshrunt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"sqsub_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqsubr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sqxtnb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"sqxtnt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"sqxtunb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"sqxtunt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"srhadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"sri_z_zzi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"srshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"srshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"srshr_z_p_zi", &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, - {"srsra_z_zi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"sshllb_z_zi", &Disassembler::DisassembleSVEShiftLeftImm}, - {"sshllt_z_zi", &Disassembler::DisassembleSVEShiftLeftImm}, - {"ssra_z_zi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"ssublb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"ssublbt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"ssublt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"ssubltb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"ssubwb_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"ssubwt_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"stnt1b_z_p_ar_d_64_unscaled", &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, - {"stnt1b_z_p_ar_s_x32_unscaled", + {"match_p_p_zz"_h, &Disassembler::Disassemble_PdT_PgZ_ZnT_ZmT}, + {"mla_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, + {"mla_z_zzzi_h"_h, &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, + {"mla_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, + {"mls_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, + {"mls_z_zzzi_h"_h, &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, + {"mls_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, + {"mul_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"mul_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, + {"mul_z_zzi_h"_h, &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, + {"mul_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, + {"nbsl_z_zzz"_h, &Disassembler::DisassembleSVEBitwiseTernary}, + {"nmatch_p_p_zz"_h, &Disassembler::Disassemble_PdT_PgZ_ZnT_ZmT}, + {"pmul_z_zz"_h, &Disassembler::Disassemble_ZdB_ZnB_ZmB}, + {"pmullb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"pmullt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"raddhnb_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"raddhnt_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"rax1_z_zz"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD}, + {"rshrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"rshrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"rsubhnb_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"rsubhnt_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"saba_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"sabalb_z_zzz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sabalt_z_zzz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sabdlb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sabdlt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sadalp_z_p_z"_h, &Disassembler::Disassemble_ZdaT_PgM_ZnTb}, + {"saddlb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"saddlbt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"saddlt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"saddwb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"saddwt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"sbclb_z_zzz"_h, &Disassembler::DisassembleSVEAddSubCarry}, + {"sbclt_z_zzz"_h, &Disassembler::DisassembleSVEAddSubCarry}, + {"shadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"shrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"shrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"shsub_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"shsubr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sli_z_zzi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"sm4e_z_zz"_h, &Disassembler::Disassemble_ZdnS_ZdnS_ZmS}, + {"sm4ekey_z_zz"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS}, + {"smaxp_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sminp_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"smlalb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"smlalb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smlalb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"smlalt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"smlalt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smlalt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"smlslb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"smlslb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smlslb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"smlslt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"smlslt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smlslt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"smulh_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"smullb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"smullb_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smullb_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"smullt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"smullt_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"smullt_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"splice_z_p_zz_con"_h, &Disassembler::Disassemble_ZdT_Pg_Zn1T_Zn2T}, + {"sqabs_z_p_z"_h, &Disassembler::Disassemble_ZdT_PgM_ZnT}, + {"sqadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqcadd_z_zz"_h, &Disassembler::DisassembleSVEComplexIntAddition}, + {"sqdmlalb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlalb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, + {"sqdmlalb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"sqdmlalbt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlalt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlalt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, + {"sqdmlalt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"sqdmlslb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlslb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, + {"sqdmlslb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"sqdmlslbt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlslt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"sqdmlslt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnS_ZmS_imm}, + {"sqdmlslt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnH_ZmH_imm}, + {"sqdmulh_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"sqdmulh_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, + {"sqdmulh_z_zzi_h"_h, &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, + {"sqdmulh_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, + {"sqdmullb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sqdmullb_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"sqdmullb_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"sqdmullt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"sqdmullt_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"sqdmullt_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"sqneg_z_p_z"_h, &Disassembler::Disassemble_ZdT_PgM_ZnT}, + {"sqrdcmlah_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT_const}, + {"sqrdcmlah_z_zzzi_h"_h, + &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm_const}, + {"sqrdcmlah_z_zzzi_s"_h, + &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm_const}, + {"sqrdmlah_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"sqrdmlah_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnD_ZmD_imm}, + {"sqrdmlah_z_zzzi_h"_h, &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm}, + {"sqrdmlah_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm}, + {"sqrdmlsh_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"sqrdmlsh_z_zzzi_d"_h, &Disassembler::Disassemble_ZdaD_ZnD_ZmD_imm}, + {"sqrdmlsh_z_zzzi_h"_h, &Disassembler::Disassemble_ZdaH_ZnH_ZmH_imm}, + {"sqrdmlsh_z_zzzi_s"_h, &Disassembler::Disassemble_ZdaS_ZnS_ZmS_imm}, + {"sqrdmulh_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"sqrdmulh_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnD_ZmD_imm}, + {"sqrdmulh_z_zzi_h"_h, &Disassembler::Disassemble_ZdH_ZnH_ZmH_imm}, + {"sqrdmulh_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnS_ZmS_imm}, + {"sqrshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqrshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqrshrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqrshrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqrshrunb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqrshrunt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqshl_z_p_zi"_h, &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, + {"sqshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqshlu_z_p_zi"_h, &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, + {"sqshrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqshrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqshrunb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqshrunt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"sqsub_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqsubr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sqxtnb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"sqxtnt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"sqxtunb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"sqxtunt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"srhadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"sri_z_zzi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"srshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"srshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"srshr_z_p_zi"_h, &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, + {"srsra_z_zi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"sshllb_z_zi"_h, &Disassembler::DisassembleSVEShiftLeftImm}, + {"sshllt_z_zi"_h, &Disassembler::DisassembleSVEShiftLeftImm}, + {"ssra_z_zi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"ssublb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"ssublbt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"ssublt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"ssubltb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"ssubwb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"ssubwt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"stnt1b_z_p_ar_d_64_unscaled"_h, + &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, + {"stnt1b_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_Pg_ZnS_Xm}, - {"stnt1d_z_p_ar_d_64_unscaled", &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, - {"stnt1h_z_p_ar_d_64_unscaled", &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, - {"stnt1h_z_p_ar_s_x32_unscaled", + {"stnt1d_z_p_ar_d_64_unscaled"_h, + &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, + {"stnt1h_z_p_ar_d_64_unscaled"_h, + &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, + {"stnt1h_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_Pg_ZnS_Xm}, - {"stnt1w_z_p_ar_d_64_unscaled", &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, - {"stnt1w_z_p_ar_s_x32_unscaled", + {"stnt1w_z_p_ar_d_64_unscaled"_h, + &Disassembler::Disassemble_ZtD_Pg_ZnD_Xm}, + {"stnt1w_z_p_ar_s_x32_unscaled"_h, &Disassembler::Disassemble_ZtS_Pg_ZnS_Xm}, - {"subhnb_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"subhnt_z_zz", &Disassembler::DisassembleSVEAddSubHigh}, - {"suqadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"tbl_z_zz_2", &Disassembler::Disassemble_ZdT_Zn1T_Zn2T_ZmT}, - {"tbx_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"uaba_z_zzz", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"uabalb_z_zzz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uabalt_z_zzz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uabdlb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uabdlt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uadalp_z_p_z", &Disassembler::Disassemble_ZdaT_PgM_ZnTb}, - {"uaddlb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uaddlt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"uaddwb_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"uaddwt_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"uhadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uhsub_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uhsubr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"umaxp_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uminp_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"umlalb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"umlalb_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umlalb_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"umlalt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"umlalt_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umlalt_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"umlslb_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"umlslb_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umlslb_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"umlslt_z_zzz", &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, - {"umlslt_z_zzzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umlslt_z_zzzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"umulh_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmT}, - {"umullb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"umullb_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umullb_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"umullt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"umullt_z_zzi_d", &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, - {"umullt_z_zzi_s", &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, - {"uqadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqrshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqrshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqrshrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"uqrshrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"uqshl_z_p_zi", &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, - {"uqshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqshrnb_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"uqshrnt_z_zi", &Disassembler::DisassembleSVEShiftRightImm}, - {"uqsub_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqsubr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"uqxtnb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"uqxtnt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb}, - {"urecpe_z_p_z", &Disassembler::Disassemble_ZdS_PgM_ZnS}, - {"urhadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"urshl_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"urshlr_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"urshr_z_p_zi", &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, - {"ursqrte_z_p_z", &Disassembler::Disassemble_ZdS_PgM_ZnS}, - {"ursra_z_zi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"ushllb_z_zi", &Disassembler::DisassembleSVEShiftLeftImm}, - {"ushllt_z_zi", &Disassembler::DisassembleSVEShiftLeftImm}, - {"usqadd_z_p_zz", &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, - {"usra_z_zi", &Disassembler::VisitSVEBitwiseShiftUnpredicated}, - {"usublb_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"usublt_z_zz", &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, - {"usubwb_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"usubwt_z_zz", &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, - {"whilege_p_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"whilegt_p_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"whilehi_p_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"whilehs_p_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"whilerw_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"whilewr_p_rr", &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, - {"xar_z_zzi", &Disassembler::Disassemble_ZdnT_ZdnT_ZmT_const}, - {"fmmla_z_zzz_s", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"fmmla_z_zzz_d", &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, - {"smmla_z_zzz", &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, - {"ummla_z_zzz", &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, - {"usmmla_z_zzz", &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, - {"usdot_z_zzz_s", &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, - {"smmla_asimdsame2_g", &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, - {"ummla_asimdsame2_g", &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, - {"usmmla_asimdsame2_g", &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, - {"ld1row_z_p_bi_u32", + {"subhnb_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"subhnt_z_zz"_h, &Disassembler::DisassembleSVEAddSubHigh}, + {"suqadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"tbl_z_zz_2"_h, &Disassembler::Disassemble_ZdT_Zn1T_Zn2T_ZmT}, + {"tbx_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"uaba_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"uabalb_z_zzz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uabalt_z_zzz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uabdlb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uabdlt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uadalp_z_p_z"_h, &Disassembler::Disassemble_ZdaT_PgM_ZnTb}, + {"uaddlb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uaddlt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"uaddwb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"uaddwt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"uhadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uhsub_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uhsubr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"umaxp_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uminp_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"umlalb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"umlalb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umlalb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"umlalt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"umlalt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umlalt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"umlslb_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"umlslb_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umlslb_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"umlslt_z_zzz"_h, &Disassembler::Disassemble_ZdaT_ZnTb_ZmTb}, + {"umlslt_z_zzzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umlslt_z_zzzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"umulh_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmT}, + {"umullb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"umullb_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umullb_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"umullt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"umullt_z_zzi_d"_h, &Disassembler::Disassemble_ZdD_ZnS_ZmS_imm}, + {"umullt_z_zzi_s"_h, &Disassembler::Disassemble_ZdS_ZnH_ZmH_imm}, + {"uqadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqrshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqrshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqrshrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"uqrshrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"uqshl_z_p_zi"_h, &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, + {"uqshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqshrnb_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"uqshrnt_z_zi"_h, &Disassembler::DisassembleSVEShiftRightImm}, + {"uqsub_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqsubr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"uqxtnb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"uqxtnt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb}, + {"urecpe_z_p_z"_h, &Disassembler::Disassemble_ZdS_PgM_ZnS}, + {"urhadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"urshl_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"urshlr_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"urshr_z_p_zi"_h, &Disassembler::VisitSVEBitwiseShiftByImm_Predicated}, + {"ursqrte_z_p_z"_h, &Disassembler::Disassemble_ZdS_PgM_ZnS}, + {"ursra_z_zi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"ushllb_z_zi"_h, &Disassembler::DisassembleSVEShiftLeftImm}, + {"ushllt_z_zi"_h, &Disassembler::DisassembleSVEShiftLeftImm}, + {"usqadd_z_p_zz"_h, &Disassembler::Disassemble_ZdnT_PgM_ZdnT_ZmT}, + {"usra_z_zi"_h, &Disassembler::VisitSVEBitwiseShiftUnpredicated}, + {"usublb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"usublt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnTb_ZmTb}, + {"usubwb_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"usubwt_z_zz"_h, &Disassembler::Disassemble_ZdT_ZnT_ZmTb}, + {"whilege_p_p_rr"_h, + &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"whilegt_p_p_rr"_h, + &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"whilehi_p_p_rr"_h, + &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"whilehs_p_p_rr"_h, + &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"whilerw_p_rr"_h, &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"whilewr_p_rr"_h, &Disassembler::VisitSVEIntCompareScalarCountAndLimit}, + {"xar_z_zzi"_h, &Disassembler::Disassemble_ZdnT_ZdnT_ZmT_const}, + {"fmmla_z_zzz_s"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"fmmla_z_zzz_d"_h, &Disassembler::Disassemble_ZdaT_ZnT_ZmT}, + {"smmla_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, + {"ummla_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, + {"usmmla_z_zzz"_h, &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, + {"usdot_z_zzz_s"_h, &Disassembler::Disassemble_ZdaS_ZnB_ZmB}, + {"smmla_asimdsame2_g"_h, &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, + {"ummla_asimdsame2_g"_h, &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, + {"usmmla_asimdsame2_g"_h, &Disassembler::Disassemble_Vd4S_Vn16B_Vm16B}, + {"ld1row_z_p_bi_u32"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1row_z_p_br_contiguous", + {"ld1row_z_p_br_contiguous"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1rod_z_p_bi_u64", + {"ld1rod_z_p_bi_u64"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1rod_z_p_br_contiguous", + {"ld1rod_z_p_br_contiguous"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1rob_z_p_bi_u8", + {"ld1rob_z_p_bi_u8"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1rob_z_p_br_contiguous", + {"ld1rob_z_p_br_contiguous"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1roh_z_p_bi_u16", + {"ld1roh_z_p_bi_u16"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1roh_z_p_br_contiguous", + {"ld1roh_z_p_br_contiguous"_h, &Disassembler::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"usdot_z_zzzi_s", &Disassembler::VisitSVEMulIndex}, - {"sudot_z_zzzi_s", &Disassembler::VisitSVEMulIndex}, - {"usdot_asimdsame2_d", &Disassembler::VisitNEON3SameExtra}, + {"usdot_z_zzzi_s"_h, &Disassembler::VisitSVEMulIndex}, + {"sudot_z_zzzi_s"_h, &Disassembler::VisitSVEMulIndex}, + {"usdot_asimdsame2_d"_h, &Disassembler::VisitNEON3SameExtra}, }; return &form_to_visitor; } // NOLINT(readability/fn_size) @@ -8813,13 +8842,14 @@ void Disassembler::VisitUnallocated(const Instruction *instr) { void Disassembler::Visit(Metadata *metadata, const Instruction *instr) { VIXL_ASSERT(metadata->count("form") > 0); const std::string &form = (*metadata)["form"]; + form_hash_ = Hash(form.c_str()); const FormToVisitorFnMap *fv = Disassembler::GetFormToVisitorFnMap(); - if ((fv->count(form) > 0) && fv->at(form)) { - form_hash_ = Hash(form.c_str()); - SetMnemonicFromForm(form); - fv->at(form)(this, instr); - } else { + FormToVisitorFnMap::const_iterator it = fv->find(form_hash_); + if (it == fv->end()) { VisitUnimplemented(instr); + } else { + SetMnemonicFromForm(form); + (it->second)(this, instr); } } diff --git a/src/aarch64/disasm-aarch64.h b/src/aarch64/disasm-aarch64.h index fd7547bc..eaa1c4d5 100644 --- a/src/aarch64/disasm-aarch64.h +++ b/src/aarch64/disasm-aarch64.h @@ -118,7 +118,7 @@ class Disassembler : public DecoderVisitor { #undef DECLARE using FormToVisitorFnMap = std::unordered_map< - std::string, + uint32_t, std::function<void(Disassembler*, const Instruction*)>>; static const FormToVisitorFnMap* GetFormToVisitorFnMap(); diff --git a/src/aarch64/simulator-aarch64.cc b/src/aarch64/simulator-aarch64.cc index 8edbe9ec..10e4f8f8 100644 --- a/src/aarch64/simulator-aarch64.cc +++ b/src/aarch64/simulator-aarch64.cc @@ -71,341 +71,341 @@ const Simulator::FormToVisitorFnMap* Simulator::GetFormToVisitorFnMap() { static const FormToVisitorFnMap form_to_visitor = { DEFAULT_FORM_TO_VISITOR_MAP(Simulator), SIM_AUD_VISITOR_MAP(Simulator), - {"smlal_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"smlsl_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"smull_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"sqdmlal_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"sqdmlsl_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"sqdmull_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"umlal_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"umlsl_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"umull_asimdelem_l", &Simulator::SimulateNEONMulByElementLong}, - {"fcmla_asimdelem_c_h", &Simulator::SimulateNEONComplexMulByElement}, - {"fcmla_asimdelem_c_s", &Simulator::SimulateNEONComplexMulByElement}, - {"fmlal2_asimdelem_lh", &Simulator::SimulateNEONFPMulByElementLong}, - {"fmlal_asimdelem_lh", &Simulator::SimulateNEONFPMulByElementLong}, - {"fmlsl2_asimdelem_lh", &Simulator::SimulateNEONFPMulByElementLong}, - {"fmlsl_asimdelem_lh", &Simulator::SimulateNEONFPMulByElementLong}, - {"fmla_asimdelem_rh_h", &Simulator::SimulateNEONFPMulByElement}, - {"fmls_asimdelem_rh_h", &Simulator::SimulateNEONFPMulByElement}, - {"fmulx_asimdelem_rh_h", &Simulator::SimulateNEONFPMulByElement}, - {"fmul_asimdelem_rh_h", &Simulator::SimulateNEONFPMulByElement}, - {"fmla_asimdelem_r_sd", &Simulator::SimulateNEONFPMulByElement}, - {"fmls_asimdelem_r_sd", &Simulator::SimulateNEONFPMulByElement}, - {"fmulx_asimdelem_r_sd", &Simulator::SimulateNEONFPMulByElement}, - {"fmul_asimdelem_r_sd", &Simulator::SimulateNEONFPMulByElement}, - {"sdot_asimdelem_d", &Simulator::SimulateNEONDotProdByElement}, - {"udot_asimdelem_d", &Simulator::SimulateNEONDotProdByElement}, - {"adclb_z_zzz", &Simulator::SimulateSVEAddSubCarry}, - {"adclt_z_zzz", &Simulator::SimulateSVEAddSubCarry}, - {"addhnb_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"addhnt_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"addp_z_p_zz", &Simulator::SimulateSVEIntArithPair}, - {"bcax_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"bdep_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"bext_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"bgrp_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"bsl1n_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"bsl2n_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"bsl_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"cadd_z_zz", &Simulator::Simulate_ZdnT_ZdnT_ZmT_const}, - {"cdot_z_zzz", &Simulator::SimulateSVEComplexDotProduct}, - {"cdot_z_zzzi_d", &Simulator::SimulateSVEComplexDotProduct}, - {"cdot_z_zzzi_s", &Simulator::SimulateSVEComplexDotProduct}, - {"cmla_z_zzz", &Simulator::SimulateSVEComplexIntMulAdd}, - {"cmla_z_zzzi_h", &Simulator::SimulateSVEComplexIntMulAdd}, - {"cmla_z_zzzi_s", &Simulator::SimulateSVEComplexIntMulAdd}, - {"eor3_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"eorbt_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"eortb_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"ext_z_zi_con", &Simulator::Simulate_ZdB_Zn1B_Zn2B_imm}, - {"faddp_z_p_zz", &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, - {"fcvtlt_z_p_z_h2s", &Simulator::SimulateSVEFPConvertLong}, - {"fcvtlt_z_p_z_s2d", &Simulator::SimulateSVEFPConvertLong}, - {"fcvtnt_z_p_z_d2s", &Simulator::Simulate_ZdS_PgM_ZnD}, - {"fcvtnt_z_p_z_s2h", &Simulator::Simulate_ZdH_PgM_ZnS}, - {"fcvtx_z_p_z_d2s", &Simulator::Simulate_ZdS_PgM_ZnD}, - {"fcvtxnt_z_p_z_d2s", &Simulator::Simulate_ZdS_PgM_ZnD}, - {"flogb_z_p_z", &Simulator::Simulate_ZdT_PgM_ZnT}, - {"fmaxnmp_z_p_zz", &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, - {"fmaxp_z_p_zz", &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, - {"fminnmp_z_p_zz", &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, - {"fminp_z_p_zz", &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, - {"fmlalb_z_zzz", &Simulator::Simulate_ZdaS_ZnH_ZmH}, - {"fmlalb_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"fmlalt_z_zzz", &Simulator::Simulate_ZdaS_ZnH_ZmH}, - {"fmlalt_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"fmlslb_z_zzz", &Simulator::Simulate_ZdaS_ZnH_ZmH}, - {"fmlslb_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"fmlslt_z_zzz", &Simulator::Simulate_ZdaS_ZnH_ZmH}, - {"fmlslt_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"histcnt_z_p_zz", &Simulator::Simulate_ZdT_PgZ_ZnT_ZmT}, - {"histseg_z_zz", &Simulator::Simulate_ZdB_ZnB_ZmB}, - {"ldnt1b_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1b_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, - {"ldnt1d_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1h_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1h_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sb_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1sb_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sh_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1sh_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, - {"ldnt1sw_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1w_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, - {"ldnt1w_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, - {"match_p_p_zz", &Simulator::Simulate_PdT_PgZ_ZnT_ZmT}, - {"mla_z_zzzi_d", &Simulator::SimulateSVEMlaMlsIndex}, - {"mla_z_zzzi_h", &Simulator::SimulateSVEMlaMlsIndex}, - {"mla_z_zzzi_s", &Simulator::SimulateSVEMlaMlsIndex}, - {"mls_z_zzzi_d", &Simulator::SimulateSVEMlaMlsIndex}, - {"mls_z_zzzi_h", &Simulator::SimulateSVEMlaMlsIndex}, - {"mls_z_zzzi_s", &Simulator::SimulateSVEMlaMlsIndex}, - {"mul_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"mul_z_zzi_d", &Simulator::SimulateSVEMulIndex}, - {"mul_z_zzi_h", &Simulator::SimulateSVEMulIndex}, - {"mul_z_zzi_s", &Simulator::SimulateSVEMulIndex}, - {"nbsl_z_zzz", &Simulator::SimulateSVEBitwiseTernary}, - {"nmatch_p_p_zz", &Simulator::Simulate_PdT_PgZ_ZnT_ZmT}, - {"pmul_z_zz", &Simulator::Simulate_ZdB_ZnB_ZmB}, - {"pmullb_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"pmullt_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"raddhnb_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"raddhnt_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"rshrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"rshrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"rsubhnb_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"rsubhnt_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"saba_z_zzz", &Simulator::Simulate_ZdaT_ZnT_ZmT}, - {"sabalb_z_zzz", &Simulator::SimulateSVEInterleavedArithLong}, - {"sabalt_z_zzz", &Simulator::SimulateSVEInterleavedArithLong}, - {"sabdlb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"sabdlt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"sadalp_z_p_z", &Simulator::Simulate_ZdaT_PgM_ZnTb}, - {"saddlb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"saddlbt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"saddlt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"saddwb_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"saddwt_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"sbclb_z_zzz", &Simulator::SimulateSVEAddSubCarry}, - {"sbclt_z_zzz", &Simulator::SimulateSVEAddSubCarry}, - {"shadd_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"shrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"shrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"shsub_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"shsubr_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"sli_z_zzi", &Simulator::Simulate_ZdT_ZnT_const}, - {"smaxp_z_p_zz", &Simulator::SimulateSVEIntArithPair}, - {"sminp_z_p_zz", &Simulator::SimulateSVEIntArithPair}, - {"smlalb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"smlalb_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlalb_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlalt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"smlalt_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlalt_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlslb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"smlslb_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlslb_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlslt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"smlslt_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smlslt_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smulh_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"smullb_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"smullb_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smullb_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smullt_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"smullt_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"smullt_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"splice_z_p_zz_con", &Simulator::VisitSVEVectorSplice}, - {"sqabs_z_p_z", &Simulator::Simulate_ZdT_PgM_ZnT}, - {"sqadd_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"sqcadd_z_zz", &Simulator::Simulate_ZdnT_ZdnT_ZmT_const}, - {"sqdmlalb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlalb_z_zzzi_d", &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, - {"sqdmlalb_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"sqdmlalbt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlalt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlalt_z_zzzi_d", &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, - {"sqdmlalt_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"sqdmlslb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlslb_z_zzzi_d", &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, - {"sqdmlslb_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"sqdmlslbt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlslt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"sqdmlslt_z_zzzi_d", &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, - {"sqdmlslt_z_zzzi_s", &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, - {"sqdmulh_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"sqdmulh_z_zzi_d", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqdmulh_z_zzi_h", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqdmulh_z_zzi_s", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqdmullb_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"sqdmullb_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"sqdmullb_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"sqdmullt_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"sqdmullt_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"sqdmullt_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"sqneg_z_p_z", &Simulator::Simulate_ZdT_PgM_ZnT}, - {"sqrdcmlah_z_zzz", &Simulator::SimulateSVEComplexIntMulAdd}, - {"sqrdcmlah_z_zzzi_h", &Simulator::SimulateSVEComplexIntMulAdd}, - {"sqrdcmlah_z_zzzi_s", &Simulator::SimulateSVEComplexIntMulAdd}, - {"sqrdmlah_z_zzz", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlah_z_zzzi_d", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlah_z_zzzi_h", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlah_z_zzzi_s", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlsh_z_zzz", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlsh_z_zzzi_d", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlsh_z_zzzi_h", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmlsh_z_zzzi_s", &Simulator::SimulateSVESaturatingMulAddHigh}, - {"sqrdmulh_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"sqrdmulh_z_zzi_d", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqrdmulh_z_zzi_h", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqrdmulh_z_zzi_s", &Simulator::SimulateSVESaturatingMulHighIndex}, - {"sqrshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"sqrshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"sqrshrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"sqrshrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"sqrshrunb_z_zi", &Simulator::SimulateSVENarrow}, - {"sqrshrunt_z_zi", &Simulator::SimulateSVENarrow}, - {"sqshl_z_p_zi", &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, - {"sqshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"sqshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"sqshlu_z_p_zi", &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, - {"sqshrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"sqshrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"sqshrunb_z_zi", &Simulator::SimulateSVENarrow}, - {"sqshrunt_z_zi", &Simulator::SimulateSVENarrow}, - {"sqsub_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"sqsubr_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"sqxtnb_z_zz", &Simulator::SimulateSVENarrow}, - {"sqxtnt_z_zz", &Simulator::SimulateSVENarrow}, - {"sqxtunb_z_zz", &Simulator::SimulateSVENarrow}, - {"sqxtunt_z_zz", &Simulator::SimulateSVENarrow}, - {"srhadd_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"sri_z_zzi", &Simulator::Simulate_ZdT_ZnT_const}, - {"srshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"srshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"srshr_z_p_zi", &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, - {"srsra_z_zi", &Simulator::Simulate_ZdaT_ZnT_const}, - {"sshllb_z_zi", &Simulator::SimulateSVEShiftLeftImm}, - {"sshllt_z_zi", &Simulator::SimulateSVEShiftLeftImm}, - {"ssra_z_zi", &Simulator::Simulate_ZdaT_ZnT_const}, - {"ssublb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"ssublbt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"ssublt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"ssubltb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"ssubwb_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"ssubwt_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"stnt1b_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, - {"stnt1b_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, - {"stnt1d_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, - {"stnt1h_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, - {"stnt1h_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, - {"stnt1w_z_p_ar_d_64_unscaled", &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, - {"stnt1w_z_p_ar_s_x32_unscaled", &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, - {"subhnb_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"subhnt_z_zz", &Simulator::SimulateSVEAddSubHigh}, - {"suqadd_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"tbl_z_zz_2", &Simulator::VisitSVETableLookup}, - {"tbx_z_zz", &Simulator::VisitSVETableLookup}, - {"uaba_z_zzz", &Simulator::Simulate_ZdaT_ZnT_ZmT}, - {"uabalb_z_zzz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uabalt_z_zzz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uabdlb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uabdlt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uadalp_z_p_z", &Simulator::Simulate_ZdaT_PgM_ZnTb}, - {"uaddlb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uaddlt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"uaddwb_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"uaddwt_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"uhadd_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"uhsub_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"uhsubr_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"umaxp_z_p_zz", &Simulator::SimulateSVEIntArithPair}, - {"uminp_z_p_zz", &Simulator::SimulateSVEIntArithPair}, - {"umlalb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"umlalb_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlalb_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlalt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"umlalt_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlalt_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlslb_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"umlslb_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlslb_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlslt_z_zzz", &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, - {"umlslt_z_zzzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umlslt_z_zzzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umulh_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmT}, - {"umullb_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"umullb_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umullb_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umullt_z_zz", &Simulator::SimulateSVEIntMulLongVec}, - {"umullt_z_zzi_d", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"umullt_z_zzi_s", &Simulator::SimulateSVESaturatingIntMulLongIdx}, - {"uqadd_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"uqrshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"uqrshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"uqrshrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"uqrshrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"uqshl_z_p_zi", &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, - {"uqshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"uqshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"uqshrnb_z_zi", &Simulator::SimulateSVENarrow}, - {"uqshrnt_z_zi", &Simulator::SimulateSVENarrow}, - {"uqsub_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"uqsubr_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"uqxtnb_z_zz", &Simulator::SimulateSVENarrow}, - {"uqxtnt_z_zz", &Simulator::SimulateSVENarrow}, - {"urecpe_z_p_z", &Simulator::Simulate_ZdS_PgM_ZnS}, - {"urhadd_z_p_zz", &Simulator::SimulateSVEHalvingAddSub}, - {"urshl_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"urshlr_z_p_zz", &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, - {"urshr_z_p_zi", &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, - {"ursqrte_z_p_z", &Simulator::Simulate_ZdS_PgM_ZnS}, - {"ursra_z_zi", &Simulator::Simulate_ZdaT_ZnT_const}, - {"ushllb_z_zi", &Simulator::SimulateSVEShiftLeftImm}, - {"ushllt_z_zi", &Simulator::SimulateSVEShiftLeftImm}, - {"usqadd_z_p_zz", &Simulator::SimulateSVESaturatingArithmetic}, - {"usra_z_zi", &Simulator::Simulate_ZdaT_ZnT_const}, - {"usublb_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"usublt_z_zz", &Simulator::SimulateSVEInterleavedArithLong}, - {"usubwb_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"usubwt_z_zz", &Simulator::Simulate_ZdT_ZnT_ZmTb}, - {"whilege_p_p_rr", &Simulator::VisitSVEIntCompareScalarCountAndLimit}, - {"whilegt_p_p_rr", &Simulator::VisitSVEIntCompareScalarCountAndLimit}, - {"whilehi_p_p_rr", &Simulator::VisitSVEIntCompareScalarCountAndLimit}, - {"whilehs_p_p_rr", &Simulator::VisitSVEIntCompareScalarCountAndLimit}, - {"whilerw_p_rr", &Simulator::Simulate_PdT_Xn_Xm}, - {"whilewr_p_rr", &Simulator::Simulate_PdT_Xn_Xm}, - {"xar_z_zzi", &Simulator::SimulateSVEExclusiveOrRotate}, - {"smmla_z_zzz", &Simulator::SimulateMatrixMul}, - {"ummla_z_zzz", &Simulator::SimulateMatrixMul}, - {"usmmla_z_zzz", &Simulator::SimulateMatrixMul}, - {"smmla_asimdsame2_g", &Simulator::SimulateMatrixMul}, - {"ummla_asimdsame2_g", &Simulator::SimulateMatrixMul}, - {"usmmla_asimdsame2_g", &Simulator::SimulateMatrixMul}, - {"fmmla_z_zzz_s", &Simulator::SimulateSVEFPMatrixMul}, - {"fmmla_z_zzz_d", &Simulator::SimulateSVEFPMatrixMul}, - {"ld1row_z_p_bi_u32", + {"smlal_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"smlsl_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"smull_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"sqdmlal_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"sqdmlsl_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"sqdmull_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"umlal_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"umlsl_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"umull_asimdelem_l"_h, &Simulator::SimulateNEONMulByElementLong}, + {"fcmla_asimdelem_c_h"_h, &Simulator::SimulateNEONComplexMulByElement}, + {"fcmla_asimdelem_c_s"_h, &Simulator::SimulateNEONComplexMulByElement}, + {"fmlal2_asimdelem_lh"_h, &Simulator::SimulateNEONFPMulByElementLong}, + {"fmlal_asimdelem_lh"_h, &Simulator::SimulateNEONFPMulByElementLong}, + {"fmlsl2_asimdelem_lh"_h, &Simulator::SimulateNEONFPMulByElementLong}, + {"fmlsl_asimdelem_lh"_h, &Simulator::SimulateNEONFPMulByElementLong}, + {"fmla_asimdelem_rh_h"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmls_asimdelem_rh_h"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmulx_asimdelem_rh_h"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmul_asimdelem_rh_h"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmla_asimdelem_r_sd"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmls_asimdelem_r_sd"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmulx_asimdelem_r_sd"_h, &Simulator::SimulateNEONFPMulByElement}, + {"fmul_asimdelem_r_sd"_h, &Simulator::SimulateNEONFPMulByElement}, + {"sdot_asimdelem_d"_h, &Simulator::SimulateNEONDotProdByElement}, + {"udot_asimdelem_d"_h, &Simulator::SimulateNEONDotProdByElement}, + {"adclb_z_zzz"_h, &Simulator::SimulateSVEAddSubCarry}, + {"adclt_z_zzz"_h, &Simulator::SimulateSVEAddSubCarry}, + {"addhnb_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"addhnt_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"addp_z_p_zz"_h, &Simulator::SimulateSVEIntArithPair}, + {"bcax_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"bdep_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"bext_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"bgrp_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"bsl1n_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"bsl2n_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"bsl_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"cadd_z_zz"_h, &Simulator::Simulate_ZdnT_ZdnT_ZmT_const}, + {"cdot_z_zzz"_h, &Simulator::SimulateSVEComplexDotProduct}, + {"cdot_z_zzzi_d"_h, &Simulator::SimulateSVEComplexDotProduct}, + {"cdot_z_zzzi_s"_h, &Simulator::SimulateSVEComplexDotProduct}, + {"cmla_z_zzz"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"cmla_z_zzzi_h"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"cmla_z_zzzi_s"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"eor3_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"eorbt_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"eortb_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"ext_z_zi_con"_h, &Simulator::Simulate_ZdB_Zn1B_Zn2B_imm}, + {"faddp_z_p_zz"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, + {"fcvtlt_z_p_z_h2s"_h, &Simulator::SimulateSVEFPConvertLong}, + {"fcvtlt_z_p_z_s2d"_h, &Simulator::SimulateSVEFPConvertLong}, + {"fcvtnt_z_p_z_d2s"_h, &Simulator::Simulate_ZdS_PgM_ZnD}, + {"fcvtnt_z_p_z_s2h"_h, &Simulator::Simulate_ZdH_PgM_ZnS}, + {"fcvtx_z_p_z_d2s"_h, &Simulator::Simulate_ZdS_PgM_ZnD}, + {"fcvtxnt_z_p_z_d2s"_h, &Simulator::Simulate_ZdS_PgM_ZnD}, + {"flogb_z_p_z"_h, &Simulator::Simulate_ZdT_PgM_ZnT}, + {"fmaxnmp_z_p_zz"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, + {"fmaxp_z_p_zz"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, + {"fminnmp_z_p_zz"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, + {"fminp_z_p_zz"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_ZmT}, + {"fmlalb_z_zzz"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH}, + {"fmlalb_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"fmlalt_z_zzz"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH}, + {"fmlalt_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"fmlslb_z_zzz"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH}, + {"fmlslb_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"fmlslt_z_zzz"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH}, + {"fmlslt_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"histcnt_z_p_zz"_h, &Simulator::Simulate_ZdT_PgZ_ZnT_ZmT}, + {"histseg_z_zz"_h, &Simulator::Simulate_ZdB_ZnB_ZmB}, + {"ldnt1b_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1b_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, + {"ldnt1d_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1h_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1h_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, + {"ldnt1sb_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1sb_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, + {"ldnt1sh_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1sh_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, + {"ldnt1sw_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1w_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_PgZ_ZnD_Xm}, + {"ldnt1w_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_PgZ_ZnS_Xm}, + {"match_p_p_zz"_h, &Simulator::Simulate_PdT_PgZ_ZnT_ZmT}, + {"mla_z_zzzi_d"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mla_z_zzzi_h"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mla_z_zzzi_s"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mls_z_zzzi_d"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mls_z_zzzi_h"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mls_z_zzzi_s"_h, &Simulator::SimulateSVEMlaMlsIndex}, + {"mul_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"mul_z_zzi_d"_h, &Simulator::SimulateSVEMulIndex}, + {"mul_z_zzi_h"_h, &Simulator::SimulateSVEMulIndex}, + {"mul_z_zzi_s"_h, &Simulator::SimulateSVEMulIndex}, + {"nbsl_z_zzz"_h, &Simulator::SimulateSVEBitwiseTernary}, + {"nmatch_p_p_zz"_h, &Simulator::Simulate_PdT_PgZ_ZnT_ZmT}, + {"pmul_z_zz"_h, &Simulator::Simulate_ZdB_ZnB_ZmB}, + {"pmullb_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"pmullt_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"raddhnb_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"raddhnt_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"rshrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"rshrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"rsubhnb_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"rsubhnt_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"saba_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnT_ZmT}, + {"sabalb_z_zzz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"sabalt_z_zzz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"sabdlb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"sabdlt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"sadalp_z_p_z"_h, &Simulator::Simulate_ZdaT_PgM_ZnTb}, + {"saddlb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"saddlbt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"saddlt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"saddwb_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"saddwt_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"sbclb_z_zzz"_h, &Simulator::SimulateSVEAddSubCarry}, + {"sbclt_z_zzz"_h, &Simulator::SimulateSVEAddSubCarry}, + {"shadd_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"shrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"shrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"shsub_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"shsubr_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"sli_z_zzi"_h, &Simulator::Simulate_ZdT_ZnT_const}, + {"smaxp_z_p_zz"_h, &Simulator::SimulateSVEIntArithPair}, + {"sminp_z_p_zz"_h, &Simulator::SimulateSVEIntArithPair}, + {"smlalb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"smlalb_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlalb_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlalt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"smlalt_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlalt_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlslb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"smlslb_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlslb_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlslt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"smlslt_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smlslt_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smulh_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"smullb_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"smullb_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smullb_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smullt_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"smullt_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"smullt_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"splice_z_p_zz_con"_h, &Simulator::VisitSVEVectorSplice}, + {"sqabs_z_p_z"_h, &Simulator::Simulate_ZdT_PgM_ZnT}, + {"sqadd_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"sqcadd_z_zz"_h, &Simulator::Simulate_ZdnT_ZdnT_ZmT_const}, + {"sqdmlalb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlalb_z_zzzi_d"_h, &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, + {"sqdmlalb_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"sqdmlalbt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlalt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlalt_z_zzzi_d"_h, &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, + {"sqdmlalt_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"sqdmlslb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlslb_z_zzzi_d"_h, &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, + {"sqdmlslb_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"sqdmlslbt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlslt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"sqdmlslt_z_zzzi_d"_h, &Simulator::Simulate_ZdaD_ZnS_ZmS_imm}, + {"sqdmlslt_z_zzzi_s"_h, &Simulator::Simulate_ZdaS_ZnH_ZmH_imm}, + {"sqdmulh_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"sqdmulh_z_zzi_d"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqdmulh_z_zzi_h"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqdmulh_z_zzi_s"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqdmullb_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"sqdmullb_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"sqdmullb_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"sqdmullt_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"sqdmullt_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"sqdmullt_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"sqneg_z_p_z"_h, &Simulator::Simulate_ZdT_PgM_ZnT}, + {"sqrdcmlah_z_zzz"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"sqrdcmlah_z_zzzi_h"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"sqrdcmlah_z_zzzi_s"_h, &Simulator::SimulateSVEComplexIntMulAdd}, + {"sqrdmlah_z_zzz"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlah_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlah_z_zzzi_h"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlah_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlsh_z_zzz"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlsh_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlsh_z_zzzi_h"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmlsh_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingMulAddHigh}, + {"sqrdmulh_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"sqrdmulh_z_zzi_d"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqrdmulh_z_zzi_h"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqrdmulh_z_zzi_s"_h, &Simulator::SimulateSVESaturatingMulHighIndex}, + {"sqrshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"sqrshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"sqrshrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqrshrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqrshrunb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqrshrunt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqshl_z_p_zi"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, + {"sqshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"sqshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"sqshlu_z_p_zi"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, + {"sqshrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqshrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqshrunb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqshrunt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"sqsub_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"sqsubr_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"sqxtnb_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"sqxtnt_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"sqxtunb_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"sqxtunt_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"srhadd_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"sri_z_zzi"_h, &Simulator::Simulate_ZdT_ZnT_const}, + {"srshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"srshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"srshr_z_p_zi"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, + {"srsra_z_zi"_h, &Simulator::Simulate_ZdaT_ZnT_const}, + {"sshllb_z_zi"_h, &Simulator::SimulateSVEShiftLeftImm}, + {"sshllt_z_zi"_h, &Simulator::SimulateSVEShiftLeftImm}, + {"ssra_z_zi"_h, &Simulator::Simulate_ZdaT_ZnT_const}, + {"ssublb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"ssublbt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"ssublt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"ssubltb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"ssubwb_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"ssubwt_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"stnt1b_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, + {"stnt1b_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, + {"stnt1d_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, + {"stnt1h_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, + {"stnt1h_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, + {"stnt1w_z_p_ar_d_64_unscaled"_h, &Simulator::Simulate_ZtD_Pg_ZnD_Xm}, + {"stnt1w_z_p_ar_s_x32_unscaled"_h, &Simulator::Simulate_ZtS_Pg_ZnS_Xm}, + {"subhnb_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"subhnt_z_zz"_h, &Simulator::SimulateSVEAddSubHigh}, + {"suqadd_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"tbl_z_zz_2"_h, &Simulator::VisitSVETableLookup}, + {"tbx_z_zz"_h, &Simulator::VisitSVETableLookup}, + {"uaba_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnT_ZmT}, + {"uabalb_z_zzz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uabalt_z_zzz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uabdlb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uabdlt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uadalp_z_p_z"_h, &Simulator::Simulate_ZdaT_PgM_ZnTb}, + {"uaddlb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uaddlt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"uaddwb_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"uaddwt_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"uhadd_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"uhsub_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"uhsubr_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"umaxp_z_p_zz"_h, &Simulator::SimulateSVEIntArithPair}, + {"uminp_z_p_zz"_h, &Simulator::SimulateSVEIntArithPair}, + {"umlalb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"umlalb_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlalb_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlalt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"umlalt_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlalt_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlslb_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"umlslb_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlslb_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlslt_z_zzz"_h, &Simulator::Simulate_ZdaT_ZnTb_ZmTb}, + {"umlslt_z_zzzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umlslt_z_zzzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umulh_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmT}, + {"umullb_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"umullb_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umullb_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umullt_z_zz"_h, &Simulator::SimulateSVEIntMulLongVec}, + {"umullt_z_zzi_d"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"umullt_z_zzi_s"_h, &Simulator::SimulateSVESaturatingIntMulLongIdx}, + {"uqadd_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"uqrshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"uqrshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"uqrshrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"uqrshrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"uqshl_z_p_zi"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, + {"uqshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"uqshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"uqshrnb_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"uqshrnt_z_zi"_h, &Simulator::SimulateSVENarrow}, + {"uqsub_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"uqsubr_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"uqxtnb_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"uqxtnt_z_zz"_h, &Simulator::SimulateSVENarrow}, + {"urecpe_z_p_z"_h, &Simulator::Simulate_ZdS_PgM_ZnS}, + {"urhadd_z_p_zz"_h, &Simulator::SimulateSVEHalvingAddSub}, + {"urshl_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"urshlr_z_p_zz"_h, &Simulator::VisitSVEBitwiseShiftByVector_Predicated}, + {"urshr_z_p_zi"_h, &Simulator::Simulate_ZdnT_PgM_ZdnT_const}, + {"ursqrte_z_p_z"_h, &Simulator::Simulate_ZdS_PgM_ZnS}, + {"ursra_z_zi"_h, &Simulator::Simulate_ZdaT_ZnT_const}, + {"ushllb_z_zi"_h, &Simulator::SimulateSVEShiftLeftImm}, + {"ushllt_z_zi"_h, &Simulator::SimulateSVEShiftLeftImm}, + {"usqadd_z_p_zz"_h, &Simulator::SimulateSVESaturatingArithmetic}, + {"usra_z_zi"_h, &Simulator::Simulate_ZdaT_ZnT_const}, + {"usublb_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"usublt_z_zz"_h, &Simulator::SimulateSVEInterleavedArithLong}, + {"usubwb_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"usubwt_z_zz"_h, &Simulator::Simulate_ZdT_ZnT_ZmTb}, + {"whilege_p_p_rr"_h, &Simulator::VisitSVEIntCompareScalarCountAndLimit}, + {"whilegt_p_p_rr"_h, &Simulator::VisitSVEIntCompareScalarCountAndLimit}, + {"whilehi_p_p_rr"_h, &Simulator::VisitSVEIntCompareScalarCountAndLimit}, + {"whilehs_p_p_rr"_h, &Simulator::VisitSVEIntCompareScalarCountAndLimit}, + {"whilerw_p_rr"_h, &Simulator::Simulate_PdT_Xn_Xm}, + {"whilewr_p_rr"_h, &Simulator::Simulate_PdT_Xn_Xm}, + {"xar_z_zzi"_h, &Simulator::SimulateSVEExclusiveOrRotate}, + {"smmla_z_zzz"_h, &Simulator::SimulateMatrixMul}, + {"ummla_z_zzz"_h, &Simulator::SimulateMatrixMul}, + {"usmmla_z_zzz"_h, &Simulator::SimulateMatrixMul}, + {"smmla_asimdsame2_g"_h, &Simulator::SimulateMatrixMul}, + {"ummla_asimdsame2_g"_h, &Simulator::SimulateMatrixMul}, + {"usmmla_asimdsame2_g"_h, &Simulator::SimulateMatrixMul}, + {"fmmla_z_zzz_s"_h, &Simulator::SimulateSVEFPMatrixMul}, + {"fmmla_z_zzz_d"_h, &Simulator::SimulateSVEFPMatrixMul}, + {"ld1row_z_p_bi_u32"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1row_z_p_br_contiguous", + {"ld1row_z_p_br_contiguous"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1rod_z_p_bi_u64", + {"ld1rod_z_p_bi_u64"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1rod_z_p_br_contiguous", + {"ld1rod_z_p_br_contiguous"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1rob_z_p_bi_u8", + {"ld1rob_z_p_bi_u8"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1rob_z_p_br_contiguous", + {"ld1rob_z_p_br_contiguous"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"ld1roh_z_p_bi_u16", + {"ld1roh_z_p_bi_u16"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusImm}, - {"ld1roh_z_p_br_contiguous", + {"ld1roh_z_p_br_contiguous"_h, &Simulator::VisitSVELoadAndBroadcastQOWord_ScalarPlusScalar}, - {"usdot_z_zzz_s", &Simulator::VisitSVEIntMulAddUnpredicated}, - {"sudot_z_zzzi_s", &Simulator::VisitSVEMulIndex}, - {"usdot_z_zzzi_s", &Simulator::VisitSVEMulIndex}, - {"usdot_asimdsame2_d", &Simulator::VisitNEON3SameExtra}, - {"sudot_asimdelem_d", &Simulator::SimulateNEONDotProdByElement}, - {"usdot_asimdelem_d", &Simulator::SimulateNEONDotProdByElement}, + {"usdot_z_zzz_s"_h, &Simulator::VisitSVEIntMulAddUnpredicated}, + {"sudot_z_zzzi_s"_h, &Simulator::VisitSVEMulIndex}, + {"usdot_z_zzzi_s"_h, &Simulator::VisitSVEMulIndex}, + {"usdot_asimdsame2_d"_h, &Simulator::VisitNEON3SameExtra}, + {"sudot_asimdelem_d"_h, &Simulator::SimulateNEONDotProdByElement}, + {"usdot_asimdelem_d"_h, &Simulator::SimulateNEONDotProdByElement}, }; return &form_to_visitor; } @@ -1977,12 +1977,13 @@ void Simulator::PrintTakenBranch(const Instruction* target) { void Simulator::Visit(Metadata* metadata, const Instruction* instr) { VIXL_ASSERT(metadata->count("form") > 0); std::string form = (*metadata)["form"]; + form_hash_ = Hash(form.c_str()); const FormToVisitorFnMap* fv = Simulator::GetFormToVisitorFnMap(); - if ((fv->count(form) > 0) && fv->at(form)) { - form_hash_ = Hash(form.c_str()); - fv->at(form)(this, instr); - } else { + FormToVisitorFnMap::const_iterator it = fv->find(form_hash_); + if (it == fv->end()) { VisitUnimplemented(instr); + } else { + (it->second)(this, instr); } } diff --git a/src/aarch64/simulator-aarch64.h b/src/aarch64/simulator-aarch64.h index 7c403e24..ad6e1fbe 100644 --- a/src/aarch64/simulator-aarch64.h +++ b/src/aarch64/simulator-aarch64.h @@ -4763,7 +4763,7 @@ class Simulator : public DecoderVisitor { private: using FormToVisitorFnMap = - std::unordered_map<std::string, + std::unordered_map<uint32_t, std::function<void(Simulator*, const Instruction*)>>; static const FormToVisitorFnMap* GetFormToVisitorFnMap(); diff --git a/src/utils-vixl.h b/src/utils-vixl.h index 8a5f6b99..53876869 100644 --- a/src/utils-vixl.h +++ b/src/utils-vixl.h @@ -1412,6 +1412,8 @@ constexpr uint32_t Hash(const char* str, uint32_t hash = 0) { } } +constexpr uint32_t operator"" _h(const char* x, size_t) { return Hash(x); } + } // namespace vixl #endif // VIXL_UTILS_H |