From 42eab40a12f12f044a5ca7b7d889d9a1f0d172ee Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:13 +0000 Subject: [PATCH 001/859] target/arm: Account for SME in aarch64_sve_narrow_vq() assertion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In aarch64_sve_narrow_vq() we assert that the new VQ is within the maximum supported range for the CPU. We forgot to update this to account for SME, which might have a different maximum. Update the assert to permit any VQ which is valid for either SVE or SME. Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell Reviewed-by: Alex Bennée Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-2-peter.maydell@linaro.org --- target/arm/helper.c | 2 +- target/arm/internals.h | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 8c5769477cf14..373f0ebcb34cb 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -10088,7 +10088,7 @@ void aarch64_sve_narrow_vq(CPUARMState *env, unsigned vq) uint64_t pmask; assert(vq >= 1 && vq <= ARM_MAX_VQ); - assert(vq <= env_archcpu(env)->sve_max_vq); + assert(vq <= arm_max_vq(env_archcpu(env))); /* Zap the high bits of the zregs. */ for (i = 0; i < 32; i++) { diff --git a/target/arm/internals.h b/target/arm/internals.h index f7b641342a4d4..8ec27508473d3 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1808,6 +1808,15 @@ static inline uint64_t arm_mdcr_el2_eff(CPUARMState *env) ((1 << (1 - 1)) | (1 << (2 - 1)) | \ (1 << (4 - 1)) | (1 << (8 - 1)) | (1 << (16 - 1))) +/* + * Return the maximum SVE/SME VQ for this CPU. This defines + * the maximum possible size of the Zn vector registers. + */ +static inline int arm_max_vq(ARMCPU *cpu) +{ + return MAX(cpu->sve_max_vq, cpu->sme_max_vq); +} + /* * Return true if it is possible to take a fine-grained-trap to EL2. */ From 05f32d2584f40462aff5468cd47919b4a9077b9a Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:13 +0000 Subject: [PATCH 002/859] target/arm: Report correct vector width in gdbstub when SME present MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Our gdbstub implementation of the org.gnu.gdb.aarch64.sve feature doesn't account for SME correctly. We always report the Zn vector registers with a width based on the maximum SVE vector register size, even though SME's maximum size could be larger. This is particularly bad in the case of a CPU with SME but not SVE, because there the SVE vector width will be zero. If we report the Zn registers in the XML as having a zero width then gdb falls over with an internal error: (gdb) target remote :1234 Remote debugging using :1234 /build/gdb-1WjiBe/gdb-15.0.50.20240403/gdb/aarch64-tdep.c:3066: internal-error: aarch64_pseudo_register_type: bad register number 160 A problem internal to GDB has been detected, further debugging may prove unreliable. Report the Zn registers with their correct size. This matches how we already handle the 'vg' pseudoregister in org.gnu.gdb.aarch64.sve: we call sve_vqm1_for_el(), which returns the vector size accounting for SME, not the pure SVE vector size. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Message-id: 20260202133353.2231685-3-peter.maydell@linaro.org --- target/arm/gdbstub64.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index c584e5b4e69d6..b71666c3a1d15 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -158,7 +158,7 @@ int aarch64_gdb_get_sve_reg(CPUState *cs, GByteArray *buf, int reg) case 0 ... 31: { int vq, len = 0; - for (vq = 0; vq < cpu->sve_max_vq; vq++) { + for (vq = 0; vq < arm_max_vq(cpu); vq++) { len += gdb_get_reg128(buf, env->vfp.zregs[reg].d[vq * 2 + 1], env->vfp.zregs[reg].d[vq * 2]); @@ -174,7 +174,7 @@ int aarch64_gdb_get_sve_reg(CPUState *cs, GByteArray *buf, int reg) { int preg = reg - 34; int vq, len = 0; - for (vq = 0; vq < cpu->sve_max_vq; vq = vq + 4) { + for (vq = 0; vq < arm_max_vq(cpu); vq = vq + 4) { len += gdb_get_reg64(buf, env->vfp.pregs[preg].p[vq / 4]); } return len; @@ -208,7 +208,7 @@ int aarch64_gdb_set_sve_reg(CPUState *cs, uint8_t *buf, int reg) case 0 ... 31: { int vq, len = 0; - for (vq = 0; vq < cpu->sve_max_vq; vq++) { + for (vq = 0; vq < arm_max_vq(cpu); vq++) { if (target_big_endian()) { env->vfp.zregs[reg].d[vq * 2 + 1] = ldq_p(buf); buf += 8; @@ -233,7 +233,7 @@ int aarch64_gdb_set_sve_reg(CPUState *cs, uint8_t *buf, int reg) { int preg = reg - 34; int vq, len = 0; - for (vq = 0; vq < cpu->sve_max_vq; vq = vq + 4) { + for (vq = 0; vq < arm_max_vq(cpu); vq = vq + 4) { env->vfp.pregs[preg].p[vq / 4] = ldq_p(buf); buf += 8; len += 8; @@ -540,8 +540,8 @@ static void output_vector_union_type(GDBFeatureBuilder *builder, int reg_width, GDBFeature *arm_gen_dynamic_svereg_feature(CPUState *cs, int base_reg) { ARMCPU *cpu = ARM_CPU(cs); - int reg_width = cpu->sve_max_vq * 128; - int pred_width = cpu->sve_max_vq * 16; + int reg_width = arm_max_vq(cpu) * 128; + int pred_width = arm_max_vq(cpu) * 16; GDBFeatureBuilder builder; char *name; int reg = 0; From ee5bf0962ed6e0eb42d6bc9bfb3687f2408e3580 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:13 +0000 Subject: [PATCH 003/859] target/arm: Fix feature check in DO_SVE2_RRX, DO_SVE2_RRX_TB In the macros DO_SVE2_RRX and DO_SVE2_RRX_TB we use the feature check aa64_sve, thus exposing this set of instructions in SVE as well as SVE2. Use aa64_sve2 instead, so they UNDEF on an SVE1-only CPU as they should. Strictly, the condition here should be "SVE2 or SME"; but we will correct that in a following commit with all the other missing "or SME" checks. Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Manos Pitsidianakis Message-id: 20260202133353.2231685-4-peter.maydell@linaro.org --- target/arm/tcg/translate-sve.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 64adb5c1ce3c4..81f487152ce9c 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -3769,7 +3769,7 @@ TRANS_FEAT(UDOT_zzxw_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzxz, gen_helper_gvec_udot_idx_2h, a) #define DO_SVE2_RRX(NAME, FUNC) \ - TRANS_FEAT(NAME, aa64_sve, gen_gvec_ool_zzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzz, FUNC, \ a->rd, a->rn, a->rm, a->index) DO_SVE2_RRX(MUL_zzx_h, gen_helper_gvec_mul_idx_h) @@ -3787,7 +3787,7 @@ DO_SVE2_RRX(SQRDMULH_zzx_d, gen_helper_sve2_sqrdmulh_idx_d) #undef DO_SVE2_RRX #define DO_SVE2_RRX_TB(NAME, FUNC, TOP) \ - TRANS_FEAT(NAME, aa64_sve, gen_gvec_ool_zzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzz, FUNC, \ a->rd, a->rn, a->rm, (a->index << 1) | TOP) DO_SVE2_RRX_TB(SQDMULLB_zzx_s, gen_helper_sve2_sqdmull_idx_s, false) From 433097a2242120918090201129e5fbb8e16b3e34 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:13 +0000 Subject: [PATCH 004/859] target/arm/tcg: Allow SVE RAX1 in SME2p1 streaming mode The SVE RAX1 instruction is permitted in SME streaming mode starting from SME2p1. We forgot to allow this relaxation when we implemented SME2p1. Cc: qemu-stable@nongnu.org Fixes: 7b1613a1020d2 ("target/arm: Enable FEAT_SME2p1 on -cpu max") Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-5-peter.maydell@linaro.org --- target/arm/tcg/translate-sve.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 81f487152ce9c..e853b4dd0a364 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -7803,8 +7803,17 @@ TRANS_FEAT_NONSTREAMING(SM4E, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, TRANS_FEAT_NONSTREAMING(SM4EKEY, aa64_sve2_sm4, gen_gvec_ool_arg_zzz, gen_helper_crypto_sm4ekey, a, 0) -TRANS_FEAT_NONSTREAMING(RAX1, aa64_sve2_sha3, gen_gvec_fn_arg_zzz, - gen_gvec_rax1, a) +static bool trans_RAX1(DisasContext *s, arg_RAX1 *a) +{ + if (!dc_isar_feature(aa64_sve2_sha3, s)) { + return false; + } + if (!dc_isar_feature(aa64_sme2p1, s)) { + /* SME2p1 adds this as valid in streaming SVE mode */ + s->is_nonstreaming = true; + } + return gen_gvec_fn_arg_zzz(s, gen_gvec_rax1, a); +} TRANS_FEAT(FCVTNT_sh, aa64_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) From aeb3c147fc4a1eb9a73f9f10923fc06def088aeb Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:13 +0000 Subject: [PATCH 005/859] target/arm: Don't let 'sme=on' downgrade SME In our handling of the boolean 'sme' CPU property, we write this 0/1 value directly to ID_AA64PFR1_EL1.SME. This worked when the only valid values in that field were 0 (for no SME) and 1 (for SME1). However, with the addition of SME2 the SME field can now also read 2. This means that "-cpu max,sme=on" will result in an inconsistent set of ID registers, where ID_AA64PFR1_EL1.SME claims SME1 but ID_AA64SMFR0_EL1.SMEver claims SME2p1. This isn't a valid thing to report, and confuses Linux into reporting SME2 to userspace but not actually enabling userspace access for it. Fix this bug by having arm_cpu_sme_finalize() fix up the ID_AA64PFR1_EL1.SME field to match ID_AA64SMFR0.SMEver. This means the "sme" property's semantics are "off" for "no SME" and "on" for "enable at whatever the default SME version this CPU provides is". Update the documentation to clarify what 'sve=on' and 'sme=on' do. (We don't have the equivalent bug for 'sve=on' because ID_AA64PFR0_EL1.SVE only has 0 and 1 as valid values, but the semantics of the property are the same.) Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Manos Pitsidianakis Message-id: 20260202133353.2231685-6-peter.maydell@linaro.org --- docs/system/arm/cpu-features.rst | 10 ++++++++++ target/arm/cpu64.c | 15 +++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst index 37d5dfd15b348..024119449ccf3 100644 --- a/docs/system/arm/cpu-features.rst +++ b/docs/system/arm/cpu-features.rst @@ -318,6 +318,11 @@ SVE CPU Property Parsing Semantics provided an error will be generated. To avoid this error, one must enable at least one vector length prior to enabling SVE. + 10) Enabling SVE (with ``sve=on`` or by default) enables all the SVE + sub-features that the CPU supports (for example, it may also + enable SVE2). There are not generally any lower-level controls + for disabling specific SVE sub-features. + SVE CPU Property Examples ------------------------- @@ -430,6 +435,11 @@ and all vector lengths must be powers of 2. The maximum vector length supported by qemu is 2048 bits. Otherwise, there are no additional constraints on the set of vector lengths supported by SME. +As with SVE, ``sme=on`` enables all the SME sub-features the CPU +supports (for example, it may also enable SME2), and there are +no lower-level controls for fine-grained disabling of specific +SME sub-features. + SME User-mode Default Vector Length Property -------------------------------------------- diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 5d7c6b7fbbb93..4d316f5a71b20 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -366,6 +366,16 @@ void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp) cpu->sme_vq.map = vq_map; cpu->sme_max_vq = 32 - clz32(vq_map); + + /* + * The "sme" property setter writes a bool value into ID_AA64PFR1_EL1.SME + * (and at this point we know it's not 0). Correct that value to report + * the same SME version as ID_AA64SMFR0_EL1.SMEver. + */ + if (FIELD_EX64_IDREG(&cpu->isar, ID_AA64SMFR0, SMEVER) != 0) { + /* SME2 or better */ + FIELD_DP64_IDREG(&cpu->isar, ID_AA64PFR1, SME, 2); + } } static bool cpu_arm_get_sme(Object *obj, Error **errp) @@ -378,6 +388,11 @@ static void cpu_arm_set_sme(Object *obj, bool value, Error **errp) { ARMCPU *cpu = ARM_CPU(obj); + /* + * For now, write 0 for "off" and 1 for "on" into the PFR1 field. + * We will correct this value to report the right SME + * level (SME vs SME2) in arm_cpu_sme_finalize() later. + */ FIELD_DP64_IDREG(&cpu->isar, ID_AA64PFR1, SME, value); } From 8a21e4e27869b58a29e84437d0e8f0982cdbf50a Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 006/859] target/arm: Handle SME-only CPUs in sve_vqm1_for_el_sm() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In sve_vqm1_for_el_sm(), we implicitly assume that the CPU has SVE: if called with sm == false for non-streaming mode, we try to return a vector length from svq_vq. This hits the "assert(sm)" at the bettom of the function in an SME-only CPU where sve_vq.map is zero. Add code to handle the "SME-only CPU not in streaming mode" case: we report an effective VL of 128 bits, which is what the architecture rule R_KXKNK says should be used when SVE instructions are disabled or trapped but floating point instructions are enabled. Signed-off-by: Peter Maydell Reviewed-by: Alex Bennée Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-7-peter.maydell@linaro.org --- target/arm/helper.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 373f0ebcb34cb..ebf185000b85b 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -4775,7 +4775,7 @@ int sme_exception_el(CPUARMState *env, int el) } /* - * Given that SVE is enabled, return the vector length for EL. + * Given that SVE or SME is enabled, return the vector length for EL. */ uint32_t sve_vqm1_for_el_sm(CPUARMState *env, int el, bool sm) { @@ -4787,6 +4787,12 @@ uint32_t sve_vqm1_for_el_sm(CPUARMState *env, int el, bool sm) if (sm) { cr = env->vfp.smcr_el; map = cpu->sme_vq.map; + } else if (map == 0) { + /* + * SME-only CPU not in streaming mode: effective VL + * is 128 bits, per R_KXKNK. + */ + return 0; } if (el <= 1 && !el_is_in_host(env, el)) { From 5801dc1b3bc5c7b20d4cdc1d464d99e55d3eea3f Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 007/859] target/arm: Handle SME-without-SVE on change of EL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aarch64_sve_change_el() currently assumes that SME implies SVE, and will return without doing anything if SVE is not implemented, skipping a possible requirement to change the vector register state because the SME vector length has changed. Update it to handle SME also. Reviewed-by: Richard Henderson Reviewed-by: Alex Bennée Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Message-id: 20260202133353.2231685-8-peter.maydell@linaro.org --- target/arm/helper.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index ebf185000b85b..e12b2455d3f0d 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -10139,8 +10139,8 @@ void aarch64_sve_change_el(CPUARMState *env, int old_el, int old_len, new_len; bool old_a64, new_a64, sm; - /* Nothing to do if no SVE. */ - if (!cpu_isar_feature(aa64_sve, cpu)) { + /* Nothing to do if no SVE or SME. */ + if (!cpu_isar_feature(aa64_sve, cpu) && !cpu_isar_feature(aa64_sme, cpu)) { return; } From e868257fe6887c26d635d3156aff8d41e1f4a879 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 008/859] target/arm: Add aa64_sme_or_sve, aa64_sme_or_sve2 features MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With FEAT_SME, even a CPU which does not implement FEAT_SVE is allowed to execute the subset of SVE instructions which are permitted in streaming SVE mode. We correctly handle this when the emulated CPU has both FEAT_SVE and FEAT_SME, because sve_access_check() includes the logic for this, matching the pseudocode CheckSVEEnabled(). However if the emulated CPU only implement FEAT_SME, it will fail the initial dc_isar_feature(aa64_sve, s) feature check, because this doesn't match the check in the per-instruction decode pseudocode, which is typically: !IsFeatureImplemented(FEAT_SVE) && !IsFeatureImplemented(FEAT_SME) Add a new aa64_sme_or_sve feature function that we can use to update the relevant uses of aa64_sve, and similarly aa64_sme_or_sve2 for where we need to check FEAT_SVE2 || FEAT_SME. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-id: 20260202133353.2231685-9-peter.maydell@linaro.org --- target/arm/cpu-features.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 49c50e850a543..6935ef2f7862c 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1522,6 +1522,16 @@ static inline bool isar_feature_aa64_sme2p1(const ARMISARegisters *id) /* * Combinations of feature tests, for ease of use with TRANS_FEAT. */ +static inline bool isar_feature_aa64_sme_or_sve(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme(id) || isar_feature_aa64_sve(id); +} + +static inline bool isar_feature_aa64_sme_or_sve2(const ARMISARegisters *id) +{ + return isar_feature_aa64_sme(id) || isar_feature_aa64_sve2(id); +} + static inline bool isar_feature_aa64_sme_or_sve2p1(const ARMISARegisters *id) { return isar_feature_aa64_sme(id) || isar_feature_aa64_sve2p1(id); From e69bddfc75bdc01f23786a26836bd351702507d7 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 009/859] target/arm/tcg: Drop unnecessary aa64_sve check from do_trans_pmull() Part of the logic inside do_trans_pmull() applies the aa64_sve feature check for the non-128-bit-element versions of these insns (PMULLB and PMULLT). This is currently a redundant check because we only invoke this function via the macro invocation TRANS_FEAT(..., aa64_sve2, do_trans_pmull, ...) and it's actively wrong for an SME-only CPU, because these insns are also available via SME. Remove the unnecessary logic. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-10-peter.maydell@linaro.org --- target/arm/tcg/translate-sve.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index e853b4dd0a364..fe59126d2b46f 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -6782,8 +6782,6 @@ static bool do_trans_pmull(DisasContext *s, arg_rrr_esz *a, bool sel) return false; } s->is_nonstreaming = true; - } else if (!dc_isar_feature(aa64_sve, s)) { - return false; } return gen_gvec_ool_arg_zzz(s, fns[a->esz], a, sel); } From 895d4367d6d8afca49c2d7ed6c9e95e853e72e7f Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 010/859] target/arm/tcg: Use "or SME" feature checks where needed Many SVE instructions should be provided where the CPU implements either SVE or SME. Currently we largely check only for features aa64_sve or aa64_sve2. This happens to work because we forbid creation of a CPU with SME but not SVE. To allow users to create SME-only CPUs we need to update the conditions to use the "or SME" versions of the feature tests instead. This commit was created by going through translate-sve.c from top to bottom looking for aa64_sve feature tests and cross checking those against the instruction descriptions in the Arm ARM, which will say "(FEAT_SVE || FEAT_SME)" for instructions that are provided for both features, and "(FEAT_SME)" for the rarer instructions that are SME only. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-11-peter.maydell@linaro.org --- target/arm/tcg/translate-sve.c | 854 ++++++++++++++++----------------- 1 file changed, 427 insertions(+), 427 deletions(-) diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index fe59126d2b46f..44eda7b07d8a6 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -570,14 +570,14 @@ static bool trans_INVALID(DisasContext *s, arg_INVALID *a) *** SVE Logical - Unpredicated Group */ -TRANS_FEAT(AND_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_and, a) -TRANS_FEAT(ORR_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_or, a) -TRANS_FEAT(EOR_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_xor, a) -TRANS_FEAT(BIC_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_andc, a) +TRANS_FEAT(AND_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_and, a) +TRANS_FEAT(ORR_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_or, a) +TRANS_FEAT(EOR_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_xor, a) +TRANS_FEAT(BIC_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_andc, a) static bool trans_XAR(DisasContext *s, arg_rrri_esz *a) { - if (a->esz < 0 || !dc_isar_feature(aa64_sve2, s)) { + if (a->esz < 0 || !dc_isar_feature(aa64_sme_or_sve2, s)) { return false; } if (sve_access_check(s)) { @@ -589,8 +589,8 @@ static bool trans_XAR(DisasContext *s, arg_rrri_esz *a) return true; } -TRANS_FEAT(EOR3, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_gvec_eor3, a) -TRANS_FEAT(BCAX, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_gvec_bcax, a) +TRANS_FEAT(EOR3, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_gvec_eor3, a) +TRANS_FEAT(BCAX, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_gvec_bcax, a) static void gen_bsl(unsigned vece, uint32_t d, uint32_t n, uint32_t m, uint32_t a, uint32_t oprsz, uint32_t maxsz) @@ -599,7 +599,7 @@ static void gen_bsl(unsigned vece, uint32_t d, uint32_t n, uint32_t m, tcg_gen_gvec_bitsel(vece, d, a, n, m, oprsz, maxsz); } -TRANS_FEAT(BSL, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_bsl, a) +TRANS_FEAT(BSL, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_bsl, a) static void gen_bsl1n_i64(TCGv_i64 d, TCGv_i64 n, TCGv_i64 m, TCGv_i64 k) { @@ -628,7 +628,7 @@ static void gen_bsl1n(unsigned vece, uint32_t d, uint32_t n, uint32_t m, tcg_gen_gvec_4(d, n, m, a, oprsz, maxsz, &op); } -TRANS_FEAT(BSL1N, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_bsl1n, a) +TRANS_FEAT(BSL1N, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_bsl1n, a) static void gen_bsl2n_i64(TCGv_i64 d, TCGv_i64 n, TCGv_i64 m, TCGv_i64 k) { @@ -666,7 +666,7 @@ static void gen_bsl2n(unsigned vece, uint32_t d, uint32_t n, uint32_t m, tcg_gen_gvec_4(d, n, m, a, oprsz, maxsz, &op); } -TRANS_FEAT(BSL2N, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_bsl2n, a) +TRANS_FEAT(BSL2N, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_bsl2n, a) static void gen_nbsl_i64(TCGv_i64 d, TCGv_i64 n, TCGv_i64 m, TCGv_i64 k) { @@ -695,18 +695,18 @@ static void gen_nbsl(unsigned vece, uint32_t d, uint32_t n, uint32_t m, tcg_gen_gvec_4(d, n, m, a, oprsz, maxsz, &op); } -TRANS_FEAT(NBSL, aa64_sve2, gen_gvec_fn_arg_zzzz, gen_nbsl, a) +TRANS_FEAT(NBSL, aa64_sme_or_sve2, gen_gvec_fn_arg_zzzz, gen_nbsl, a) /* *** SVE Integer Arithmetic - Unpredicated Group */ -TRANS_FEAT(ADD_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_add, a) -TRANS_FEAT(SUB_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_sub, a) -TRANS_FEAT(SQADD_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_ssadd, a) -TRANS_FEAT(SQSUB_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_sssub, a) -TRANS_FEAT(UQADD_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_usadd, a) -TRANS_FEAT(UQSUB_zzz, aa64_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_ussub, a) +TRANS_FEAT(ADD_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_add, a) +TRANS_FEAT(SUB_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_sub, a) +TRANS_FEAT(SQADD_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_ssadd, a) +TRANS_FEAT(SQSUB_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_sssub, a) +TRANS_FEAT(UQADD_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_usadd, a) +TRANS_FEAT(UQSUB_zzz, aa64_sme_or_sve, gen_gvec_fn_arg_zzz, tcg_gen_gvec_ussub, a) /* *** SVE Integer Arithmetic - Binary Predicated Group @@ -732,40 +732,40 @@ static bool do_sel_z(DisasContext *s, int rd, int rn, int rm, int pg, int esz) TRANS_FEAT(NAME, FEAT, gen_gvec_ool_arg_zpzz, \ name##_zpzz_fns[a->esz], a, 0) -DO_ZPZZ(AND_zpzz, aa64_sve, sve_and) -DO_ZPZZ(EOR_zpzz, aa64_sve, sve_eor) -DO_ZPZZ(ORR_zpzz, aa64_sve, sve_orr) -DO_ZPZZ(BIC_zpzz, aa64_sve, sve_bic) +DO_ZPZZ(AND_zpzz, aa64_sme_or_sve, sve_and) +DO_ZPZZ(EOR_zpzz, aa64_sme_or_sve, sve_eor) +DO_ZPZZ(ORR_zpzz, aa64_sme_or_sve, sve_orr) +DO_ZPZZ(BIC_zpzz, aa64_sme_or_sve, sve_bic) -DO_ZPZZ(ADD_zpzz, aa64_sve, sve_add) -DO_ZPZZ(SUB_zpzz, aa64_sve, sve_sub) +DO_ZPZZ(ADD_zpzz, aa64_sme_or_sve, sve_add) +DO_ZPZZ(SUB_zpzz, aa64_sme_or_sve, sve_sub) -DO_ZPZZ(SMAX_zpzz, aa64_sve, sve_smax) -DO_ZPZZ(UMAX_zpzz, aa64_sve, sve_umax) -DO_ZPZZ(SMIN_zpzz, aa64_sve, sve_smin) -DO_ZPZZ(UMIN_zpzz, aa64_sve, sve_umin) -DO_ZPZZ(SABD_zpzz, aa64_sve, sve_sabd) -DO_ZPZZ(UABD_zpzz, aa64_sve, sve_uabd) +DO_ZPZZ(SMAX_zpzz, aa64_sme_or_sve, sve_smax) +DO_ZPZZ(UMAX_zpzz, aa64_sme_or_sve, sve_umax) +DO_ZPZZ(SMIN_zpzz, aa64_sme_or_sve, sve_smin) +DO_ZPZZ(UMIN_zpzz, aa64_sme_or_sve, sve_umin) +DO_ZPZZ(SABD_zpzz, aa64_sme_or_sve, sve_sabd) +DO_ZPZZ(UABD_zpzz, aa64_sme_or_sve, sve_uabd) -DO_ZPZZ(MUL_zpzz, aa64_sve, sve_mul) -DO_ZPZZ(SMULH_zpzz, aa64_sve, sve_smulh) -DO_ZPZZ(UMULH_zpzz, aa64_sve, sve_umulh) +DO_ZPZZ(MUL_zpzz, aa64_sme_or_sve, sve_mul) +DO_ZPZZ(SMULH_zpzz, aa64_sme_or_sve, sve_smulh) +DO_ZPZZ(UMULH_zpzz, aa64_sme_or_sve, sve_umulh) -DO_ZPZZ(ASR_zpzz, aa64_sve, sve_asr) -DO_ZPZZ(LSR_zpzz, aa64_sve, sve_lsr) -DO_ZPZZ(LSL_zpzz, aa64_sve, sve_lsl) +DO_ZPZZ(ASR_zpzz, aa64_sme_or_sve, sve_asr) +DO_ZPZZ(LSR_zpzz, aa64_sme_or_sve, sve_lsr) +DO_ZPZZ(LSL_zpzz, aa64_sme_or_sve, sve_lsl) static gen_helper_gvec_4 * const sdiv_fns[4] = { NULL, NULL, gen_helper_sve_sdiv_zpzz_s, gen_helper_sve_sdiv_zpzz_d }; -TRANS_FEAT(SDIV_zpzz, aa64_sve, gen_gvec_ool_arg_zpzz, sdiv_fns[a->esz], a, 0) +TRANS_FEAT(SDIV_zpzz, aa64_sme_or_sve, gen_gvec_ool_arg_zpzz, sdiv_fns[a->esz], a, 0) static gen_helper_gvec_4 * const udiv_fns[4] = { NULL, NULL, gen_helper_sve_udiv_zpzz_s, gen_helper_sve_udiv_zpzz_d }; -TRANS_FEAT(UDIV_zpzz, aa64_sve, gen_gvec_ool_arg_zpzz, udiv_fns[a->esz], a, 0) +TRANS_FEAT(UDIV_zpzz, aa64_sme_or_sve, gen_gvec_ool_arg_zpzz, udiv_fns[a->esz], a, 0) -TRANS_FEAT(SEL_zpzz, aa64_sve, do_sel_z, a->rd, a->rn, a->rm, a->pg, a->esz) +TRANS_FEAT(SEL_zpzz, aa64_sme_or_sve, do_sel_z, a->rd, a->rn, a->rm, a->pg, a->esz) /* *** SVE Integer Arithmetic - Unary Predicated Group @@ -778,14 +778,14 @@ TRANS_FEAT(SEL_zpzz, aa64_sve, do_sel_z, a->rd, a->rn, a->rm, a->pg, a->esz) }; \ TRANS_FEAT(NAME, FEAT, gen_gvec_ool_arg_zpz, name##_fns[a->esz], a, 0) -DO_ZPZ(CLS, aa64_sve, sve_cls) -DO_ZPZ(CLZ, aa64_sve, sve_clz) -DO_ZPZ(CNT_zpz, aa64_sve, sve_cnt_zpz) -DO_ZPZ(CNOT, aa64_sve, sve_cnot) -DO_ZPZ(NOT_zpz, aa64_sve, sve_not_zpz) -DO_ZPZ(ABS, aa64_sve, sve_abs) -DO_ZPZ(NEG, aa64_sve, sve_neg) -DO_ZPZ(RBIT, aa64_sve, sve_rbit) +DO_ZPZ(CLS, aa64_sme_or_sve, sve_cls) +DO_ZPZ(CLZ, aa64_sme_or_sve, sve_clz) +DO_ZPZ(CNT_zpz, aa64_sme_or_sve, sve_cnt_zpz) +DO_ZPZ(CNOT, aa64_sme_or_sve, sve_cnot) +DO_ZPZ(NOT_zpz, aa64_sme_or_sve, sve_not_zpz) +DO_ZPZ(ABS, aa64_sme_or_sve, sve_abs) +DO_ZPZ(NEG, aa64_sme_or_sve, sve_neg) +DO_ZPZ(RBIT, aa64_sme_or_sve, sve_rbit) DO_ZPZ(ORQV, aa64_sme2p1_or_sve2p1, sve2p1_orqv) DO_ZPZ(EORQV, aa64_sme2p1_or_sve2p1, sve2p1_eorqv) DO_ZPZ(ANDQV, aa64_sme2p1_or_sve2p1, sve2p1_andqv) @@ -798,7 +798,7 @@ static gen_helper_gvec_3 * const fabs_ah_fns[4] = { NULL, gen_helper_sve_ah_fabs_h, gen_helper_sve_ah_fabs_s, gen_helper_sve_ah_fabs_d, }; -TRANS_FEAT(FABS, aa64_sve, gen_gvec_ool_arg_zpz, +TRANS_FEAT(FABS, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, s->fpcr_ah ? fabs_ah_fns[a->esz] : fabs_fns[a->esz], a, 0) static gen_helper_gvec_3 * const fneg_fns[4] = { @@ -809,34 +809,34 @@ static gen_helper_gvec_3 * const fneg_ah_fns[4] = { NULL, gen_helper_sve_ah_fneg_h, gen_helper_sve_ah_fneg_s, gen_helper_sve_ah_fneg_d, }; -TRANS_FEAT(FNEG, aa64_sve, gen_gvec_ool_arg_zpz, +TRANS_FEAT(FNEG, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, s->fpcr_ah ? fneg_ah_fns[a->esz] : fneg_fns[a->esz], a, 0) static gen_helper_gvec_3 * const sxtb_fns[4] = { NULL, gen_helper_sve_sxtb_h, gen_helper_sve_sxtb_s, gen_helper_sve_sxtb_d, }; -TRANS_FEAT(SXTB, aa64_sve, gen_gvec_ool_arg_zpz, sxtb_fns[a->esz], a, 0) +TRANS_FEAT(SXTB, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, sxtb_fns[a->esz], a, 0) static gen_helper_gvec_3 * const uxtb_fns[4] = { NULL, gen_helper_sve_uxtb_h, gen_helper_sve_uxtb_s, gen_helper_sve_uxtb_d, }; -TRANS_FEAT(UXTB, aa64_sve, gen_gvec_ool_arg_zpz, uxtb_fns[a->esz], a, 0) +TRANS_FEAT(UXTB, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, uxtb_fns[a->esz], a, 0) static gen_helper_gvec_3 * const sxth_fns[4] = { NULL, NULL, gen_helper_sve_sxth_s, gen_helper_sve_sxth_d }; -TRANS_FEAT(SXTH, aa64_sve, gen_gvec_ool_arg_zpz, sxth_fns[a->esz], a, 0) +TRANS_FEAT(SXTH, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, sxth_fns[a->esz], a, 0) static gen_helper_gvec_3 * const uxth_fns[4] = { NULL, NULL, gen_helper_sve_uxth_s, gen_helper_sve_uxth_d }; -TRANS_FEAT(UXTH, aa64_sve, gen_gvec_ool_arg_zpz, uxth_fns[a->esz], a, 0) +TRANS_FEAT(UXTH, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, uxth_fns[a->esz], a, 0) -TRANS_FEAT(SXTW, aa64_sve, gen_gvec_ool_arg_zpz, +TRANS_FEAT(SXTW, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, a->esz == 3 ? gen_helper_sve_sxtw_d : NULL, a, 0) -TRANS_FEAT(UXTW, aa64_sve, gen_gvec_ool_arg_zpz, +TRANS_FEAT(UXTW, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, a->esz == 3 ? gen_helper_sve_uxtw_d : NULL, a, 0) static gen_helper_gvec_3 * const addqv_fns[4] = { @@ -912,7 +912,7 @@ static bool do_vpz_ool(DisasContext *s, arg_rpr_esz *a, gen_helper_sve_##name##_b, gen_helper_sve_##name##_h, \ gen_helper_sve_##name##_s, gen_helper_sve_##name##_d, \ }; \ - TRANS_FEAT(NAME, aa64_sve, do_vpz_ool, a, name##_fns[a->esz]) + TRANS_FEAT(NAME, aa64_sme_or_sve, do_vpz_ool, a, name##_fns[a->esz]) DO_VPZ(ORV, orv) DO_VPZ(ANDV, andv) @@ -928,7 +928,7 @@ static gen_helper_gvec_reduc * const saddv_fns[4] = { gen_helper_sve_saddv_b, gen_helper_sve_saddv_h, gen_helper_sve_saddv_s, NULL }; -TRANS_FEAT(SADDV, aa64_sve, do_vpz_ool, a, saddv_fns[a->esz]) +TRANS_FEAT(SADDV, aa64_sme_or_sve, do_vpz_ool, a, saddv_fns[a->esz]) #undef DO_VPZ @@ -980,59 +980,59 @@ static gen_helper_gvec_3 * const asr_zpzi_fns[4] = { gen_helper_sve_asr_zpzi_b, gen_helper_sve_asr_zpzi_h, gen_helper_sve_asr_zpzi_s, gen_helper_sve_asr_zpzi_d, }; -TRANS_FEAT(ASR_zpzi, aa64_sve, do_shift_zpzi, a, true, asr_zpzi_fns) +TRANS_FEAT(ASR_zpzi, aa64_sme_or_sve, do_shift_zpzi, a, true, asr_zpzi_fns) static gen_helper_gvec_3 * const lsr_zpzi_fns[4] = { gen_helper_sve_lsr_zpzi_b, gen_helper_sve_lsr_zpzi_h, gen_helper_sve_lsr_zpzi_s, gen_helper_sve_lsr_zpzi_d, }; -TRANS_FEAT(LSR_zpzi, aa64_sve, do_shift_zpzi, a, false, lsr_zpzi_fns) +TRANS_FEAT(LSR_zpzi, aa64_sme_or_sve, do_shift_zpzi, a, false, lsr_zpzi_fns) static gen_helper_gvec_3 * const lsl_zpzi_fns[4] = { gen_helper_sve_lsl_zpzi_b, gen_helper_sve_lsl_zpzi_h, gen_helper_sve_lsl_zpzi_s, gen_helper_sve_lsl_zpzi_d, }; -TRANS_FEAT(LSL_zpzi, aa64_sve, do_shift_zpzi, a, false, lsl_zpzi_fns) +TRANS_FEAT(LSL_zpzi, aa64_sme_or_sve, do_shift_zpzi, a, false, lsl_zpzi_fns) static gen_helper_gvec_3 * const asrd_fns[4] = { gen_helper_sve_asrd_b, gen_helper_sve_asrd_h, gen_helper_sve_asrd_s, gen_helper_sve_asrd_d, }; -TRANS_FEAT(ASRD, aa64_sve, do_shift_zpzi, a, false, asrd_fns) +TRANS_FEAT(ASRD, aa64_sme_or_sve, do_shift_zpzi, a, false, asrd_fns) static gen_helper_gvec_3 * const sqshl_zpzi_fns[4] = { gen_helper_sve2_sqshl_zpzi_b, gen_helper_sve2_sqshl_zpzi_h, gen_helper_sve2_sqshl_zpzi_s, gen_helper_sve2_sqshl_zpzi_d, }; -TRANS_FEAT(SQSHL_zpzi, aa64_sve2, gen_gvec_ool_arg_zpzi, +TRANS_FEAT(SQSHL_zpzi, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzi, a->esz < 0 ? NULL : sqshl_zpzi_fns[a->esz], a) static gen_helper_gvec_3 * const uqshl_zpzi_fns[4] = { gen_helper_sve2_uqshl_zpzi_b, gen_helper_sve2_uqshl_zpzi_h, gen_helper_sve2_uqshl_zpzi_s, gen_helper_sve2_uqshl_zpzi_d, }; -TRANS_FEAT(UQSHL_zpzi, aa64_sve2, gen_gvec_ool_arg_zpzi, +TRANS_FEAT(UQSHL_zpzi, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzi, a->esz < 0 ? NULL : uqshl_zpzi_fns[a->esz], a) static gen_helper_gvec_3 * const srshr_fns[4] = { gen_helper_sve2_srshr_b, gen_helper_sve2_srshr_h, gen_helper_sve2_srshr_s, gen_helper_sve2_srshr_d, }; -TRANS_FEAT(SRSHR, aa64_sve2, gen_gvec_ool_arg_zpzi, +TRANS_FEAT(SRSHR, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzi, a->esz < 0 ? NULL : srshr_fns[a->esz], a) static gen_helper_gvec_3 * const urshr_fns[4] = { gen_helper_sve2_urshr_b, gen_helper_sve2_urshr_h, gen_helper_sve2_urshr_s, gen_helper_sve2_urshr_d, }; -TRANS_FEAT(URSHR, aa64_sve2, gen_gvec_ool_arg_zpzi, +TRANS_FEAT(URSHR, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzi, a->esz < 0 ? NULL : urshr_fns[a->esz], a) static gen_helper_gvec_3 * const sqshlu_fns[4] = { gen_helper_sve2_sqshlu_b, gen_helper_sve2_sqshlu_h, gen_helper_sve2_sqshlu_s, gen_helper_sve2_sqshlu_d, }; -TRANS_FEAT(SQSHLU, aa64_sve2, gen_gvec_ool_arg_zpzi, +TRANS_FEAT(SQSHLU, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzi, a->esz < 0 ? NULL : sqshlu_fns[a->esz], a) /* @@ -1044,7 +1044,7 @@ TRANS_FEAT(SQSHLU, aa64_sve2, gen_gvec_ool_arg_zpzi, gen_helper_sve_##name##_zpzw_b, gen_helper_sve_##name##_zpzw_h, \ gen_helper_sve_##name##_zpzw_s, NULL \ }; \ - TRANS_FEAT(NAME##_zpzw, aa64_sve, gen_gvec_ool_arg_zpzz, \ + TRANS_FEAT(NAME##_zpzw, aa64_sme_or_sve, gen_gvec_ool_arg_zpzz, \ a->esz < 0 ? NULL : name##_zpzw_fns[a->esz], a, 0) DO_ZPZW(ASR, asr) @@ -1084,16 +1084,16 @@ static bool do_shift_imm(DisasContext *s, arg_rri_esz *a, bool asr, return true; } -TRANS_FEAT(ASR_zzi, aa64_sve, do_shift_imm, a, true, tcg_gen_gvec_sari) -TRANS_FEAT(LSR_zzi, aa64_sve, do_shift_imm, a, false, tcg_gen_gvec_shri) -TRANS_FEAT(LSL_zzi, aa64_sve, do_shift_imm, a, false, tcg_gen_gvec_shli) +TRANS_FEAT(ASR_zzi, aa64_sme_or_sve, do_shift_imm, a, true, tcg_gen_gvec_sari) +TRANS_FEAT(LSR_zzi, aa64_sme_or_sve, do_shift_imm, a, false, tcg_gen_gvec_shri) +TRANS_FEAT(LSL_zzi, aa64_sme_or_sve, do_shift_imm, a, false, tcg_gen_gvec_shli) #define DO_ZZW(NAME, name) \ static gen_helper_gvec_3 * const name##_zzw_fns[4] = { \ gen_helper_sve_##name##_zzw_b, gen_helper_sve_##name##_zzw_h, \ gen_helper_sve_##name##_zzw_s, NULL \ }; \ - TRANS_FEAT(NAME, aa64_sve, gen_gvec_ool_arg_zzz, \ + TRANS_FEAT(NAME, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, \ name##_zzw_fns[a->esz], a, 0) DO_ZZW(ASR_zzw, asr) @@ -1125,13 +1125,13 @@ static gen_helper_gvec_5 * const mla_fns[4] = { gen_helper_sve_mla_b, gen_helper_sve_mla_h, gen_helper_sve_mla_s, gen_helper_sve_mla_d, }; -TRANS_FEAT(MLA, aa64_sve, do_zpzzz_ool, a, mla_fns[a->esz]) +TRANS_FEAT(MLA, aa64_sme_or_sve, do_zpzzz_ool, a, mla_fns[a->esz]) static gen_helper_gvec_5 * const mls_fns[4] = { gen_helper_sve_mls_b, gen_helper_sve_mls_h, gen_helper_sve_mls_s, gen_helper_sve_mls_d, }; -TRANS_FEAT(MLS, aa64_sve, do_zpzzz_ool, a, mls_fns[a->esz]) +TRANS_FEAT(MLS, aa64_sme_or_sve, do_zpzzz_ool, a, mls_fns[a->esz]) /* *** SVE Index Generation Group @@ -1172,13 +1172,13 @@ static bool do_index(DisasContext *s, int esz, int rd, return true; } -TRANS_FEAT(INDEX_ii, aa64_sve, do_index, a->esz, a->rd, +TRANS_FEAT(INDEX_ii, aa64_sme_or_sve, do_index, a->esz, a->rd, tcg_constant_i64(a->imm1), tcg_constant_i64(a->imm2)) -TRANS_FEAT(INDEX_ir, aa64_sve, do_index, a->esz, a->rd, +TRANS_FEAT(INDEX_ir, aa64_sme_or_sve, do_index, a->esz, a->rd, tcg_constant_i64(a->imm), cpu_reg(s, a->rm)) -TRANS_FEAT(INDEX_ri, aa64_sve, do_index, a->esz, a->rd, +TRANS_FEAT(INDEX_ri, aa64_sme_or_sve, do_index, a->esz, a->rd, cpu_reg(s, a->rn), tcg_constant_i64(a->imm)) -TRANS_FEAT(INDEX_rr, aa64_sve, do_index, a->esz, a->rd, +TRANS_FEAT(INDEX_rr, aa64_sme_or_sve, do_index, a->esz, a->rd, cpu_reg(s, a->rn), cpu_reg(s, a->rm)) /* @@ -1187,7 +1187,7 @@ TRANS_FEAT(INDEX_rr, aa64_sve, do_index, a->esz, a->rd, static bool trans_ADDVL(DisasContext *s, arg_ADDVL *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1213,7 +1213,7 @@ static bool trans_ADDSVL(DisasContext *s, arg_ADDSVL *a) static bool trans_ADDPL(DisasContext *s, arg_ADDPL *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1239,7 +1239,7 @@ static bool trans_ADDSPL(DisasContext *s, arg_ADDSPL *a) static bool trans_RDVL(DisasContext *s, arg_RDVL *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1370,7 +1370,7 @@ static bool trans_AND_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!a->s) { @@ -1408,7 +1408,7 @@ static bool trans_BIC_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!a->s && a->pg == a->rn) { @@ -1439,7 +1439,7 @@ static bool trans_EOR_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } /* Alias NOT (predicate) is EOR Pd.B, Pg/Z, Pn.B, Pg.B */ @@ -1451,7 +1451,7 @@ static bool trans_EOR_pppp(DisasContext *s, arg_rprr_s *a) static bool trans_SEL_pppp(DisasContext *s, arg_rprr_s *a) { - if (a->s || !dc_isar_feature(aa64_sve, s)) { + if (a->s || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1486,7 +1486,7 @@ static bool trans_ORR_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!a->s && a->pg == a->rn && a->rn == a->rm) { @@ -1517,7 +1517,7 @@ static bool trans_ORN_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } return do_pppp_flags(s, a, &op); @@ -1545,7 +1545,7 @@ static bool trans_NOR_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } return do_pppp_flags(s, a, &op); @@ -1573,7 +1573,7 @@ static bool trans_NAND_pppp(DisasContext *s, arg_rprr_s *a) .prefer_i64 = true, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } return do_pppp_flags(s, a, &op); @@ -1585,7 +1585,7 @@ static bool trans_NAND_pppp(DisasContext *s, arg_rprr_s *a) static bool trans_PTEST(DisasContext *s, arg_PTEST *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1723,7 +1723,7 @@ static bool do_predset(DisasContext *s, int esz, int rd, int pat, bool setflag) return true; } -TRANS_FEAT(PTRUE, aa64_sve, do_predset, a->esz, a->rd, a->pat, a->s) +TRANS_FEAT(PTRUE, aa64_sme_or_sve, do_predset, a->esz, a->rd, a->pat, a->s) static bool trans_PTRUE_cnt(DisasContext *s, arg_PTRUE_cnt *a) { @@ -1746,7 +1746,7 @@ TRANS_FEAT_NONSTREAMING(SETFFR, aa64_sve, do_predset, 0, FFR_PRED_NUM, 31, false) /* Note pat == 32 is #unimp, to set no elements. */ -TRANS_FEAT(PFALSE, aa64_sve, do_predset, 0, a->rd, 32, false) +TRANS_FEAT(PFALSE, aa64_sme_or_sve, do_predset, 0, a->rd, 32, false) static bool trans_RDFFR_p(DisasContext *s, arg_RDFFR_p *a) { @@ -1791,8 +1791,8 @@ static bool do_pfirst_pnext(DisasContext *s, arg_rr_esz *a, return true; } -TRANS_FEAT(PFIRST, aa64_sve, do_pfirst_pnext, a, gen_helper_sve_pfirst) -TRANS_FEAT(PNEXT, aa64_sve, do_pfirst_pnext, a, gen_helper_sve_pnext) +TRANS_FEAT(PFIRST, aa64_sme_or_sve, do_pfirst_pnext, a, gen_helper_sve_pfirst) +TRANS_FEAT(PNEXT, aa64_sme_or_sve, do_pfirst_pnext, a, gen_helper_sve_pnext) /* *** SVE Element Count Group @@ -1946,7 +1946,7 @@ static void do_sat_addsub_vec(DisasContext *s, int esz, int rd, int rn, static bool trans_CNT_r(DisasContext *s, arg_CNT_r *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1959,7 +1959,7 @@ static bool trans_CNT_r(DisasContext *s, arg_CNT_r *a) static bool trans_INCDEC_r(DisasContext *s, arg_incdec_cnt *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -1975,7 +1975,7 @@ static bool trans_INCDEC_r(DisasContext *s, arg_incdec_cnt *a) static bool trans_SINCDEC_r_32(DisasContext *s, arg_incdec_cnt *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!sve_access_check(s)) { @@ -2002,7 +2002,7 @@ static bool trans_SINCDEC_r_32(DisasContext *s, arg_incdec_cnt *a) static bool trans_SINCDEC_r_64(DisasContext *s, arg_incdec_cnt *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!sve_access_check(s)) { @@ -2022,7 +2022,7 @@ static bool trans_SINCDEC_r_64(DisasContext *s, arg_incdec_cnt *a) static bool trans_INCDEC_v(DisasContext *s, arg_incdec2_cnt *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } @@ -2045,7 +2045,7 @@ static bool trans_INCDEC_v(DisasContext *s, arg_incdec2_cnt *a) static bool trans_SINCDEC_v(DisasContext *s, arg_incdec2_cnt *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } @@ -2079,15 +2079,15 @@ static bool do_zz_dbm(DisasContext *s, arg_rr_dbm *a, GVecGen2iFn *gvec_fn) return gen_gvec_fn_zzi(s, gvec_fn, MO_64, a->rd, a->rn, imm); } -TRANS_FEAT(AND_zzi, aa64_sve, do_zz_dbm, a, tcg_gen_gvec_andi) -TRANS_FEAT(ORR_zzi, aa64_sve, do_zz_dbm, a, tcg_gen_gvec_ori) -TRANS_FEAT(EOR_zzi, aa64_sve, do_zz_dbm, a, tcg_gen_gvec_xori) +TRANS_FEAT(AND_zzi, aa64_sme_or_sve, do_zz_dbm, a, tcg_gen_gvec_andi) +TRANS_FEAT(ORR_zzi, aa64_sme_or_sve, do_zz_dbm, a, tcg_gen_gvec_ori) +TRANS_FEAT(EOR_zzi, aa64_sme_or_sve, do_zz_dbm, a, tcg_gen_gvec_xori) static bool trans_DUPM(DisasContext *s, arg_DUPM *a) { uint64_t imm; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!logic_imm_decode_wmask(&imm, extract32(a->dbm, 12, 1), @@ -2131,7 +2131,7 @@ static void do_cpy_m(DisasContext *s, int esz, int rd, int rn, int pg, static bool trans_FCPY(DisasContext *s, arg_FCPY *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2144,7 +2144,7 @@ static bool trans_FCPY(DisasContext *s, arg_FCPY *a) static bool trans_CPY_m_i(DisasContext *s, arg_rpri_esz *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2160,7 +2160,7 @@ static bool trans_CPY_z_i(DisasContext *s, arg_CPY_z_i *a) gen_helper_sve_cpy_z_s, gen_helper_sve_cpy_z_d, }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2207,8 +2207,8 @@ static bool do_EXT(DisasContext *s, int rd, int rn, int rm, int imm) return true; } -TRANS_FEAT(EXT, aa64_sve, do_EXT, a->rd, a->rn, a->rm, a->imm) -TRANS_FEAT(EXT_sve2, aa64_sve2, do_EXT, a->rd, a->rn, (a->rn + 1) % 32, a->imm) +TRANS_FEAT(EXT, aa64_sme_or_sve, do_EXT, a->rd, a->rn, a->rm, a->imm) +TRANS_FEAT(EXT_sve2, aa64_sme_or_sve2, do_EXT, a->rd, a->rn, (a->rn + 1) % 32, a->imm) static bool trans_EXTQ(DisasContext *s, arg_EXTQ *a) { @@ -2265,7 +2265,7 @@ static bool trans_EXTQ(DisasContext *s, arg_EXTQ *a) static bool trans_DUP_s(DisasContext *s, arg_DUP_s *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2278,7 +2278,7 @@ static bool trans_DUP_s(DisasContext *s, arg_DUP_s *a) static bool trans_DUP_x(DisasContext *s, arg_DUP_x *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if ((a->imm & 0x1f) == 0) { @@ -2347,7 +2347,7 @@ static void do_insr_i64(DisasContext *s, arg_rrr_esz *a, TCGv_i64 val) static bool trans_INSR_f(DisasContext *s, arg_rrr_esz *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2360,7 +2360,7 @@ static bool trans_INSR_f(DisasContext *s, arg_rrr_esz *a) static bool trans_INSR_r(DisasContext *s, arg_rrr_esz *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2373,19 +2373,19 @@ static gen_helper_gvec_2 * const rev_fns[4] = { gen_helper_sve_rev_b, gen_helper_sve_rev_h, gen_helper_sve_rev_s, gen_helper_sve_rev_d }; -TRANS_FEAT(REV_v, aa64_sve, gen_gvec_ool_zz, rev_fns[a->esz], a->rd, a->rn, 0) +TRANS_FEAT(REV_v, aa64_sme_or_sve, gen_gvec_ool_zz, rev_fns[a->esz], a->rd, a->rn, 0) static gen_helper_gvec_3 * const sve_tbl_fns[4] = { gen_helper_sve_tbl_b, gen_helper_sve_tbl_h, gen_helper_sve_tbl_s, gen_helper_sve_tbl_d }; -TRANS_FEAT(TBL, aa64_sve, gen_gvec_ool_arg_zzz, sve_tbl_fns[a->esz], a, 0) +TRANS_FEAT(TBL, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, sve_tbl_fns[a->esz], a, 0) static gen_helper_gvec_4 * const sve2_tbl_fns[4] = { gen_helper_sve2_tbl_b, gen_helper_sve2_tbl_h, gen_helper_sve2_tbl_s, gen_helper_sve2_tbl_d }; -TRANS_FEAT(TBL_sve2, aa64_sve2, gen_gvec_ool_zzzz, sve2_tbl_fns[a->esz], +TRANS_FEAT(TBL_sve2, aa64_sme_or_sve2, gen_gvec_ool_zzzz, sve2_tbl_fns[a->esz], a->rd, a->rn, (a->rn + 1) % 32, a->rm, 0) static gen_helper_gvec_3 * const tblq_fns[4] = { @@ -2399,7 +2399,7 @@ static gen_helper_gvec_3 * const tbx_fns[4] = { gen_helper_sve2_tbx_b, gen_helper_sve2_tbx_h, gen_helper_sve2_tbx_s, gen_helper_sve2_tbx_d }; -TRANS_FEAT(TBX, aa64_sve2, gen_gvec_ool_arg_zzz, tbx_fns[a->esz], a, 0) +TRANS_FEAT(TBX, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, tbx_fns[a->esz], a, 0) static gen_helper_gvec_3 * const tbxq_fns[4] = { gen_helper_sve2p1_tbxq_b, gen_helper_sve2p1_tbxq_h, @@ -2515,7 +2515,7 @@ static bool trans_UNPK(DisasContext *s, arg_UNPK *a) { gen_helper_sve_sunpk_d, gen_helper_sve_uunpk_d }, }; - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2581,16 +2581,16 @@ static bool do_perm_pred2(DisasContext *s, arg_rr_esz *a, bool high_odd, return true; } -TRANS_FEAT(ZIP1_p, aa64_sve, do_perm_pred3, a, 0, gen_helper_sve_zip_p) -TRANS_FEAT(ZIP2_p, aa64_sve, do_perm_pred3, a, 1, gen_helper_sve_zip_p) -TRANS_FEAT(UZP1_p, aa64_sve, do_perm_pred3, a, 0, gen_helper_sve_uzp_p) -TRANS_FEAT(UZP2_p, aa64_sve, do_perm_pred3, a, 1, gen_helper_sve_uzp_p) -TRANS_FEAT(TRN1_p, aa64_sve, do_perm_pred3, a, 0, gen_helper_sve_trn_p) -TRANS_FEAT(TRN2_p, aa64_sve, do_perm_pred3, a, 1, gen_helper_sve_trn_p) +TRANS_FEAT(ZIP1_p, aa64_sme_or_sve, do_perm_pred3, a, 0, gen_helper_sve_zip_p) +TRANS_FEAT(ZIP2_p, aa64_sme_or_sve, do_perm_pred3, a, 1, gen_helper_sve_zip_p) +TRANS_FEAT(UZP1_p, aa64_sme_or_sve, do_perm_pred3, a, 0, gen_helper_sve_uzp_p) +TRANS_FEAT(UZP2_p, aa64_sme_or_sve, do_perm_pred3, a, 1, gen_helper_sve_uzp_p) +TRANS_FEAT(TRN1_p, aa64_sme_or_sve, do_perm_pred3, a, 0, gen_helper_sve_trn_p) +TRANS_FEAT(TRN2_p, aa64_sme_or_sve, do_perm_pred3, a, 1, gen_helper_sve_trn_p) -TRANS_FEAT(REV_p, aa64_sve, do_perm_pred2, a, 0, gen_helper_sve_rev_p) -TRANS_FEAT(PUNPKLO, aa64_sve, do_perm_pred2, a, 0, gen_helper_sve_punpk_p) -TRANS_FEAT(PUNPKHI, aa64_sve, do_perm_pred2, a, 1, gen_helper_sve_punpk_p) +TRANS_FEAT(REV_p, aa64_sme_or_sve, do_perm_pred2, a, 0, gen_helper_sve_rev_p) +TRANS_FEAT(PUNPKLO, aa64_sme_or_sve, do_perm_pred2, a, 0, gen_helper_sve_punpk_p) +TRANS_FEAT(PUNPKHI, aa64_sme_or_sve, do_perm_pred2, a, 1, gen_helper_sve_punpk_p) /* *** SVE Permute - Interleaving Group @@ -2617,9 +2617,9 @@ static gen_helper_gvec_3 * const zip_fns[4] = { gen_helper_sve_zip_b, gen_helper_sve_zip_h, gen_helper_sve_zip_s, gen_helper_sve_zip_d, }; -TRANS_FEAT(ZIP1_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(ZIP1_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, zip_fns[a->esz], a, 0) -TRANS_FEAT(ZIP2_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(ZIP2_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, zip_fns[a->esz], a, vec_full_reg_size(s) / 2) TRANS_FEAT_NONSTREAMING(ZIP1_q, aa64_sve_f64mm, do_interleave_q, @@ -2641,9 +2641,9 @@ static gen_helper_gvec_3 * const uzp_fns[4] = { gen_helper_sve_uzp_b, gen_helper_sve_uzp_h, gen_helper_sve_uzp_s, gen_helper_sve_uzp_d, }; -TRANS_FEAT(UZP1_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UZP1_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, uzp_fns[a->esz], a, 0) -TRANS_FEAT(UZP2_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UZP2_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, uzp_fns[a->esz], a, 1 << a->esz) TRANS_FEAT_NONSTREAMING(UZP1_q, aa64_sve_f64mm, do_interleave_q, @@ -2665,9 +2665,9 @@ static gen_helper_gvec_3 * const trn_fns[4] = { gen_helper_sve_trn_s, gen_helper_sve_trn_d, }; -TRANS_FEAT(TRN1_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(TRN1_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, trn_fns[a->esz], a, 0) -TRANS_FEAT(TRN2_z, aa64_sve, gen_gvec_ool_arg_zzz, +TRANS_FEAT(TRN2_z, aa64_sme_or_sve, gen_gvec_ool_arg_zzz, trn_fns[a->esz], a, 1 << a->esz) TRANS_FEAT_NONSTREAMING(TRN1_q, aa64_sve_f64mm, do_interleave_q, @@ -2828,8 +2828,8 @@ static bool do_clast_vector(DisasContext *s, arg_rprr_esz *a, bool before) return true; } -TRANS_FEAT(CLASTA_z, aa64_sve, do_clast_vector, a, false) -TRANS_FEAT(CLASTB_z, aa64_sve, do_clast_vector, a, true) +TRANS_FEAT(CLASTA_z, aa64_sme_or_sve, do_clast_vector, a, false) +TRANS_FEAT(CLASTB_z, aa64_sme_or_sve, do_clast_vector, a, true) /* Compute CLAST for a scalar. */ static void do_clast_scalar(DisasContext *s, int esz, int pg, int rm, @@ -2873,8 +2873,8 @@ static bool do_clast_fp(DisasContext *s, arg_rpr_esz *a, bool before) return true; } -TRANS_FEAT(CLASTA_v, aa64_sve, do_clast_fp, a, false) -TRANS_FEAT(CLASTB_v, aa64_sve, do_clast_fp, a, true) +TRANS_FEAT(CLASTA_v, aa64_sme_or_sve, do_clast_fp, a, false) +TRANS_FEAT(CLASTB_v, aa64_sme_or_sve, do_clast_fp, a, true) /* Compute CLAST for a Xreg. */ static bool do_clast_general(DisasContext *s, arg_rpr_esz *a, bool before) @@ -2906,8 +2906,8 @@ static bool do_clast_general(DisasContext *s, arg_rpr_esz *a, bool before) return true; } -TRANS_FEAT(CLASTA_r, aa64_sve, do_clast_general, a, false) -TRANS_FEAT(CLASTB_r, aa64_sve, do_clast_general, a, true) +TRANS_FEAT(CLASTA_r, aa64_sme_or_sve, do_clast_general, a, false) +TRANS_FEAT(CLASTB_r, aa64_sme_or_sve, do_clast_general, a, true) /* Compute LAST for a scalar. */ static TCGv_i64 do_last_scalar(DisasContext *s, int esz, @@ -2935,8 +2935,8 @@ static bool do_last_fp(DisasContext *s, arg_rpr_esz *a, bool before) return true; } -TRANS_FEAT(LASTA_v, aa64_sve, do_last_fp, a, false) -TRANS_FEAT(LASTB_v, aa64_sve, do_last_fp, a, true) +TRANS_FEAT(LASTA_v, aa64_sme_or_sve, do_last_fp, a, false) +TRANS_FEAT(LASTB_v, aa64_sme_or_sve, do_last_fp, a, true) /* Compute LAST for a Xreg. */ static bool do_last_general(DisasContext *s, arg_rpr_esz *a, bool before) @@ -2948,12 +2948,12 @@ static bool do_last_general(DisasContext *s, arg_rpr_esz *a, bool before) return true; } -TRANS_FEAT(LASTA_r, aa64_sve, do_last_general, a, false) -TRANS_FEAT(LASTB_r, aa64_sve, do_last_general, a, true) +TRANS_FEAT(LASTA_r, aa64_sme_or_sve, do_last_general, a, false) +TRANS_FEAT(LASTB_r, aa64_sme_or_sve, do_last_general, a, true) static bool trans_CPY_m_r(DisasContext *s, arg_rpr_esz *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2964,7 +2964,7 @@ static bool trans_CPY_m_r(DisasContext *s, arg_rpr_esz *a) static bool trans_CPY_m_v(DisasContext *s, arg_rpr_esz *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -2979,22 +2979,22 @@ static gen_helper_gvec_3 * const revb_fns[4] = { NULL, gen_helper_sve_revb_h, gen_helper_sve_revb_s, gen_helper_sve_revb_d, }; -TRANS_FEAT(REVB, aa64_sve, gen_gvec_ool_arg_zpz, revb_fns[a->esz], a, 0) +TRANS_FEAT(REVB, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, revb_fns[a->esz], a, 0) static gen_helper_gvec_3 * const revh_fns[4] = { NULL, NULL, gen_helper_sve_revh_s, gen_helper_sve_revh_d, }; -TRANS_FEAT(REVH, aa64_sve, gen_gvec_ool_arg_zpz, revh_fns[a->esz], a, 0) +TRANS_FEAT(REVH, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, revh_fns[a->esz], a, 0) -TRANS_FEAT(REVW, aa64_sve, gen_gvec_ool_arg_zpz, +TRANS_FEAT(REVW, aa64_sme_or_sve, gen_gvec_ool_arg_zpz, a->esz == 3 ? gen_helper_sve_revw_d : NULL, a, 0) TRANS_FEAT(REVD, aa64_sme, gen_gvec_ool_arg_zpz, gen_helper_sme_revd_q, a, 0) -TRANS_FEAT(SPLICE, aa64_sve, gen_gvec_ool_arg_zpzz, +TRANS_FEAT(SPLICE, aa64_sme_or_sve, gen_gvec_ool_arg_zpzz, gen_helper_sve_splice, a, a->esz) -TRANS_FEAT(SPLICE_sve2, aa64_sve2, gen_gvec_ool_zzzp, gen_helper_sve_splice, +TRANS_FEAT(SPLICE_sve2, aa64_sme_or_sve2, gen_gvec_ool_zzzp, gen_helper_sve_splice, a->rd, a->rn, (a->rn + 1) % 32, a->pg, a->esz) /* @@ -3038,7 +3038,7 @@ static bool do_ppzz_flags(DisasContext *s, arg_rprr_esz *a, gen_helper_sve_##name##_ppzz_b, gen_helper_sve_##name##_ppzz_h, \ gen_helper_sve_##name##_ppzz_s, gen_helper_sve_##name##_ppzz_d, \ }; \ - TRANS_FEAT(NAME##_ppzz, aa64_sve, do_ppzz_flags, \ + TRANS_FEAT(NAME##_ppzz, aa64_sme_or_sve, do_ppzz_flags, \ a, name##_ppzz_fns[a->esz]) DO_PPZZ(CMPEQ, cmpeq) @@ -3055,7 +3055,7 @@ DO_PPZZ(CMPHS, cmphs) gen_helper_sve_##name##_ppzw_b, gen_helper_sve_##name##_ppzw_h, \ gen_helper_sve_##name##_ppzw_s, NULL \ }; \ - TRANS_FEAT(NAME##_ppzw, aa64_sve, do_ppzz_flags, \ + TRANS_FEAT(NAME##_ppzw, aa64_sme_or_sve, do_ppzz_flags, \ a, name##_ppzw_fns[a->esz]) DO_PPZW(CMPEQ, cmpeq) @@ -3110,7 +3110,7 @@ static bool do_ppzi_flags(DisasContext *s, arg_rpri_esz *a, gen_helper_sve_##name##_ppzi_b, gen_helper_sve_##name##_ppzi_h, \ gen_helper_sve_##name##_ppzi_s, gen_helper_sve_##name##_ppzi_d, \ }; \ - TRANS_FEAT(NAME##_ppzi, aa64_sve, do_ppzi_flags, a, \ + TRANS_FEAT(NAME##_ppzi, aa64_sme_or_sve, do_ppzi_flags, a, \ name##_ppzi_fns[a->esz]) DO_PPZI(CMPEQ, cmpeq) @@ -3190,22 +3190,22 @@ static bool do_brk2(DisasContext *s, arg_rpr_s *a, return true; } -TRANS_FEAT(BRKPA, aa64_sve, do_brk3, a, +TRANS_FEAT(BRKPA, aa64_sme_or_sve, do_brk3, a, gen_helper_sve_brkpa, gen_helper_sve_brkpas) -TRANS_FEAT(BRKPB, aa64_sve, do_brk3, a, +TRANS_FEAT(BRKPB, aa64_sme_or_sve, do_brk3, a, gen_helper_sve_brkpb, gen_helper_sve_brkpbs) -TRANS_FEAT(BRKA_m, aa64_sve, do_brk2, a, +TRANS_FEAT(BRKA_m, aa64_sme_or_sve, do_brk2, a, gen_helper_sve_brka_m, gen_helper_sve_brkas_m) -TRANS_FEAT(BRKB_m, aa64_sve, do_brk2, a, +TRANS_FEAT(BRKB_m, aa64_sme_or_sve, do_brk2, a, gen_helper_sve_brkb_m, gen_helper_sve_brkbs_m) -TRANS_FEAT(BRKA_z, aa64_sve, do_brk2, a, +TRANS_FEAT(BRKA_z, aa64_sme_or_sve, do_brk2, a, gen_helper_sve_brka_z, gen_helper_sve_brkas_z) -TRANS_FEAT(BRKB_z, aa64_sve, do_brk2, a, +TRANS_FEAT(BRKB_z, aa64_sme_or_sve, do_brk2, a, gen_helper_sve_brkb_z, gen_helper_sve_brkbs_z) -TRANS_FEAT(BRKN, aa64_sve, do_brk2, a, +TRANS_FEAT(BRKN, aa64_sme_or_sve, do_brk2, a, gen_helper_sve_brkn, gen_helper_sve_brkns) /* @@ -3250,7 +3250,7 @@ static void do_cntp(DisasContext *s, TCGv_i64 val, int esz, int pn, int pg) static bool trans_CNTP(DisasContext *s, arg_CNTP *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3291,7 +3291,7 @@ static bool trans_CNTP_c(DisasContext *s, arg_CNTP_c *a) static bool trans_INCDECP_r(DisasContext *s, arg_incdec_pred *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3310,7 +3310,7 @@ static bool trans_INCDECP_r(DisasContext *s, arg_incdec_pred *a) static bool trans_INCDECP_z(DisasContext *s, arg_incdec2_pred *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3327,7 +3327,7 @@ static bool trans_INCDECP_z(DisasContext *s, arg_incdec2_pred *a) static bool trans_SINCDECP_r_32(DisasContext *s, arg_incdec_pred *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3342,7 +3342,7 @@ static bool trans_SINCDECP_r_32(DisasContext *s, arg_incdec_pred *a) static bool trans_SINCDECP_r_64(DisasContext *s, arg_incdec_pred *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3357,7 +3357,7 @@ static bool trans_SINCDECP_r_64(DisasContext *s, arg_incdec_pred *a) static bool trans_SINCDECP_z(DisasContext *s, arg_incdec2_pred *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3374,7 +3374,7 @@ static bool trans_SINCDECP_z(DisasContext *s, arg_incdec2_pred *a) static bool trans_CTERM(DisasContext *s, arg_CTERM *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!sve_access_check(s)) { @@ -3498,9 +3498,9 @@ static bool do_WHILE(DisasContext *s, arg_while *a, return true; } -TRANS_FEAT(WHILE_lt, aa64_sve, do_WHILE, +TRANS_FEAT(WHILE_lt, aa64_sme_or_sve, do_WHILE, a, true, 0, 0, gen_helper_sve_whilel) -TRANS_FEAT(WHILE_gt, aa64_sve2, do_WHILE, +TRANS_FEAT(WHILE_gt, aa64_sme_or_sve2, do_WHILE, a, false, 0, 0, gen_helper_sve_whileg) TRANS_FEAT(WHILE_lt_pair, aa64_sme2_or_sve2p1, do_WHILE, @@ -3525,7 +3525,7 @@ static bool trans_WHILE_ptr(DisasContext *s, arg_WHILE_ptr *a) unsigned vsz = vec_full_reg_size(s); unsigned desc = 0; - if (!dc_isar_feature(aa64_sve2, s)) { + if (!dc_isar_feature(aa64_sme_or_sve2, s)) { return false; } if (!sve_access_check(s)) { @@ -3618,7 +3618,7 @@ TRANS_FEAT(PEXT_2, aa64_sme2_or_sve2p1, do_pext, a, 2) static bool trans_FDUP(DisasContext *s, arg_FDUP *a) { - if (a->esz == 0 || !dc_isar_feature(aa64_sve, s)) { + if (a->esz == 0 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3635,7 +3635,7 @@ static bool trans_FDUP(DisasContext *s, arg_FDUP *a) static bool trans_DUP_i(DisasContext *s, arg_DUP_i *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3646,7 +3646,7 @@ static bool trans_DUP_i(DisasContext *s, arg_DUP_i *a) return true; } -TRANS_FEAT(ADD_zzi, aa64_sve, gen_gvec_fn_arg_zzi, tcg_gen_gvec_addi, a) +TRANS_FEAT(ADD_zzi, aa64_sme_or_sve, gen_gvec_fn_arg_zzi, tcg_gen_gvec_addi, a) static bool trans_SUB_zzi(DisasContext *s, arg_rri_esz *a) { @@ -3685,7 +3685,7 @@ static bool trans_SUBR_zzi(DisasContext *s, arg_rri_esz *a) .scalar_first = true } }; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -3697,7 +3697,7 @@ static bool trans_SUBR_zzi(DisasContext *s, arg_rri_esz *a) return true; } -TRANS_FEAT(MUL_zzi, aa64_sve, gen_gvec_fn_arg_zzi, tcg_gen_gvec_muli, a) +TRANS_FEAT(MUL_zzi, aa64_sme_or_sve, gen_gvec_fn_arg_zzi, tcg_gen_gvec_muli, a) static bool do_zzi_sat(DisasContext *s, arg_rri_esz *a, bool u, bool d) { @@ -3708,10 +3708,10 @@ static bool do_zzi_sat(DisasContext *s, arg_rri_esz *a, bool u, bool d) return true; } -TRANS_FEAT(SQADD_zzi, aa64_sve, do_zzi_sat, a, false, false) -TRANS_FEAT(UQADD_zzi, aa64_sve, do_zzi_sat, a, true, false) -TRANS_FEAT(SQSUB_zzi, aa64_sve, do_zzi_sat, a, false, true) -TRANS_FEAT(UQSUB_zzi, aa64_sve, do_zzi_sat, a, true, true) +TRANS_FEAT(SQADD_zzi, aa64_sme_or_sve, do_zzi_sat, a, false, false) +TRANS_FEAT(UQADD_zzi, aa64_sme_or_sve, do_zzi_sat, a, true, false) +TRANS_FEAT(SQSUB_zzi, aa64_sme_or_sve, do_zzi_sat, a, false, true) +TRANS_FEAT(UQSUB_zzi, aa64_sme_or_sve, do_zzi_sat, a, true, true) static bool do_zzi_ool(DisasContext *s, arg_rri_esz *a, gen_helper_gvec_2i *fn) { @@ -3729,7 +3729,7 @@ static bool do_zzi_ool(DisasContext *s, arg_rri_esz *a, gen_helper_gvec_2i *fn) gen_helper_sve_##name##i_b, gen_helper_sve_##name##i_h, \ gen_helper_sve_##name##i_s, gen_helper_sve_##name##i_d, \ }; \ - TRANS_FEAT(NAME##_zzi, aa64_sve, do_zzi_ool, a, name##i_fns[a->esz]) + TRANS_FEAT(NAME##_zzi, aa64_sme_or_sve, do_zzi_ool, a, name##i_fns[a->esz]) DO_ZZI(SMAX, smax) DO_ZZI(UMAX, umax) @@ -3742,20 +3742,20 @@ static gen_helper_gvec_4 * const dot_fns[2][2] = { { gen_helper_gvec_sdot_4b, gen_helper_gvec_sdot_4h }, { gen_helper_gvec_udot_4b, gen_helper_gvec_udot_4h } }; -TRANS_FEAT(DOT_zzzz, aa64_sve, gen_gvec_ool_zzzz, +TRANS_FEAT(DOT_zzzz, aa64_sme_or_sve, gen_gvec_ool_zzzz, dot_fns[a->u][a->sz], a->rd, a->rn, a->rm, a->ra, 0) /* * SVE Multiply - Indexed */ -TRANS_FEAT(SDOT_zzxw_4s, aa64_sve, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(SDOT_zzxw_4s, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, gen_helper_gvec_sdot_idx_4b, a) -TRANS_FEAT(SDOT_zzxw_4d, aa64_sve, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(SDOT_zzxw_4d, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, gen_helper_gvec_sdot_idx_4h, a) -TRANS_FEAT(UDOT_zzxw_4s, aa64_sve, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(UDOT_zzxw_4s, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, gen_helper_gvec_udot_idx_4b, a) -TRANS_FEAT(UDOT_zzxw_4d, aa64_sve, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(UDOT_zzxw_4d, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, gen_helper_gvec_udot_idx_4h, a) TRANS_FEAT(SUDOT_zzxw_4s, aa64_sve_i8mm, gen_gvec_ool_arg_zzxz, @@ -3769,7 +3769,7 @@ TRANS_FEAT(UDOT_zzxw_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzxz, gen_helper_gvec_udot_idx_2h, a) #define DO_SVE2_RRX(NAME, FUNC) \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_zzz, FUNC, \ a->rd, a->rn, a->rm, a->index) DO_SVE2_RRX(MUL_zzx_h, gen_helper_gvec_mul_idx_h) @@ -3787,7 +3787,7 @@ DO_SVE2_RRX(SQRDMULH_zzx_d, gen_helper_sve2_sqrdmulh_idx_d) #undef DO_SVE2_RRX #define DO_SVE2_RRX_TB(NAME, FUNC, TOP) \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_zzz, FUNC, \ a->rd, a->rn, a->rm, (a->index << 1) | TOP) DO_SVE2_RRX_TB(SQDMULLB_zzx_s, gen_helper_sve2_sqdmull_idx_s, false) @@ -3808,7 +3808,7 @@ DO_SVE2_RRX_TB(UMULLT_zzx_d, gen_helper_sve2_umull_idx_d, true) #undef DO_SVE2_RRX_TB #define DO_SVE2_RRXR(NAME, FUNC) \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_arg_zzxz, FUNC, a) + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_arg_zzxz, FUNC, a) DO_SVE2_RRXR(MLA_zzxz_h, gen_helper_gvec_mla_idx_h) DO_SVE2_RRXR(MLA_zzxz_s, gen_helper_gvec_mla_idx_s) @@ -3829,7 +3829,7 @@ DO_SVE2_RRXR(SQRDMLSH_zzxz_d, gen_helper_sve2_sqrdmlsh_idx_d) #undef DO_SVE2_RRXR #define DO_SVE2_RRXR_TB(NAME, FUNC, TOP) \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_zzzz, FUNC, \ a->rd, a->rn, a->rm, a->ra, (a->index << 1) | TOP) DO_SVE2_RRXR_TB(SQDMLALB_zzxw_s, gen_helper_sve2_sqdmlal_idx_s, false) @@ -3865,7 +3865,7 @@ DO_SVE2_RRXR_TB(UMLSLT_zzxw_d, gen_helper_sve2_umlsl_idx_d, true) #undef DO_SVE2_RRXR_TB #define DO_SVE2_RRXR_ROT(NAME, FUNC) \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_zzzz, FUNC, \ + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_zzzz, FUNC, \ a->rd, a->rn, a->rm, a->ra, (a->index << 2) | a->rot) DO_SVE2_RRXR_ROT(CMLA_zzxz_h, gen_helper_sve2_cmla_idx_h) @@ -3898,7 +3898,7 @@ static gen_helper_gvec_4_ptr * const fmla_idx_fns[4] = { gen_helper_gvec_bfmla_idx, gen_helper_gvec_fmla_idx_h, gen_helper_gvec_fmla_idx_s, gen_helper_gvec_fmla_idx_d }; -TRANS_FEAT(FMLA_zzxz, aa64_sve, do_fmla_zzxz, a, fmla_idx_fns[a->esz]) +TRANS_FEAT(FMLA_zzxz, aa64_sme_or_sve, do_fmla_zzxz, a, fmla_idx_fns[a->esz]) static gen_helper_gvec_4_ptr * const fmls_idx_fns[4][2] = { { gen_helper_gvec_bfmls_idx, gen_helper_gvec_ah_bfmls_idx }, @@ -3906,7 +3906,7 @@ static gen_helper_gvec_4_ptr * const fmls_idx_fns[4][2] = { { gen_helper_gvec_fmls_idx_s, gen_helper_gvec_ah_fmls_idx_s }, { gen_helper_gvec_fmls_idx_d, gen_helper_gvec_ah_fmls_idx_d }, }; -TRANS_FEAT(FMLS_zzxz, aa64_sve, do_fmla_zzxz, a, +TRANS_FEAT(FMLS_zzxz, aa64_sme_or_sve, do_fmla_zzxz, a, fmls_idx_fns[a->esz][s->fpcr_ah]) /* @@ -3917,7 +3917,7 @@ static gen_helper_gvec_3_ptr * const fmul_idx_fns[4] = { gen_helper_gvec_fmul_idx_b16, gen_helper_gvec_fmul_idx_h, gen_helper_gvec_fmul_idx_s, gen_helper_gvec_fmul_idx_d, }; -TRANS_FEAT(FMUL_zzx, aa64_sve, gen_gvec_fpst_zzz, +TRANS_FEAT(FMUL_zzx, aa64_sme_or_sve, gen_gvec_fpst_zzz, fmul_idx_fns[a->esz], a->rd, a->rn, a->rm, a->index, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) @@ -3965,7 +3965,7 @@ static bool do_reduce(DisasContext *s, arg_rpr_esz *a, NULL, gen_helper_sve_##name##_h, \ gen_helper_sve_##name##_s, gen_helper_sve_##name##_d, \ }; \ - TRANS_FEAT(NAME, aa64_sve, do_reduce, a, name##_fns[a->esz]) + TRANS_FEAT(NAME, aa64_sme_or_sve, do_reduce, a, name##_fns[a->esz]) #define DO_VPZ_AH(NAME, name) \ static gen_helper_fp_reduce * const name##_fns[4] = { \ @@ -3976,7 +3976,7 @@ static bool do_reduce(DisasContext *s, arg_rpr_esz *a, NULL, gen_helper_sve_ah_##name##_h, \ gen_helper_sve_ah_##name##_s, gen_helper_sve_ah_##name##_d, \ }; \ - TRANS_FEAT(NAME, aa64_sve, do_reduce, a, \ + TRANS_FEAT(NAME, aa64_sme_or_sve, do_reduce, a, \ s->fpcr_ah ? name##_ah_fns[a->esz] : name##_fns[a->esz]) DO_VPZ(FADDV, faddv) @@ -4047,7 +4047,7 @@ static gen_helper_gvec_2_ptr * const frecpe_rpres_fns[] = { NULL, gen_helper_gvec_frecpe_h, gen_helper_gvec_frecpe_rpres_s, gen_helper_gvec_frecpe_d, }; -TRANS_FEAT(FRECPE, aa64_sve, gen_gvec_fpst_ah_arg_zz, +TRANS_FEAT(FRECPE, aa64_sme_or_sve, gen_gvec_fpst_ah_arg_zz, s->fpcr_ah && dc_isar_feature(aa64_rpres, s) ? frecpe_rpres_fns[a->esz] : frecpe_fns[a->esz], a, 0) @@ -4059,7 +4059,7 @@ static gen_helper_gvec_2_ptr * const frsqrte_rpres_fns[] = { NULL, gen_helper_gvec_frsqrte_h, gen_helper_gvec_frsqrte_rpres_s, gen_helper_gvec_frsqrte_d, }; -TRANS_FEAT(FRSQRTE, aa64_sve, gen_gvec_fpst_ah_arg_zz, +TRANS_FEAT(FRSQRTE, aa64_sme_or_sve, gen_gvec_fpst_ah_arg_zz, s->fpcr_ah && dc_isar_feature(aa64_rpres, s) ? frsqrte_rpres_fns[a->esz] : frsqrte_fns[a->esz], a, 0) @@ -4091,7 +4091,7 @@ static bool do_ppz_fp(DisasContext *s, arg_rpr_esz *a, NULL, gen_helper_sve_##name##_h, \ gen_helper_sve_##name##_s, gen_helper_sve_##name##_d, \ }; \ - TRANS_FEAT(NAME, aa64_sve, do_ppz_fp, a, name##_fns[a->esz]) + TRANS_FEAT(NAME, aa64_sme_or_sve, do_ppz_fp, a, name##_fns[a->esz]) DO_PPZ(FCMGE_ppz0, fcmge0) DO_PPZ(FCMGT_ppz0, fcmgt0) @@ -4164,7 +4164,7 @@ static bool trans_FADDA(DisasContext *s, arg_rprr_esz *a) gen_helper_gvec_##name##_b16, gen_helper_gvec_##name##_h, \ gen_helper_gvec_##name##_s, gen_helper_gvec_##name##_d \ }; \ - TRANS_FEAT(NAME, aa64_sve, gen_gvec_fpst_arg_zzz, name##_fns[a->esz], a, 0) + TRANS_FEAT(NAME, aa64_sme_or_sve, gen_gvec_fpst_arg_zzz, name##_fns[a->esz], a, 0) #define DO_FP3_AH(NAME, name) \ static gen_helper_gvec_3_ptr * const name##_fns[4] = { \ @@ -4175,7 +4175,7 @@ static bool trans_FADDA(DisasContext *s, arg_rprr_esz *a) NULL, gen_helper_gvec_ah_##name##_h, \ gen_helper_gvec_ah_##name##_s, gen_helper_gvec_ah_##name##_d \ }; \ - TRANS_FEAT(NAME, aa64_sve, gen_gvec_fpst_ah_arg_zzz, \ + TRANS_FEAT(NAME, aa64_sme_or_sve, gen_gvec_fpst_ah_arg_zzz, \ s->fpcr_ah ? name##_ah_fns[a->esz] : name##_fns[a->esz], a, 0) DO_FP3(FADD_zzz, fadd) @@ -4238,17 +4238,17 @@ TRANS_FEAT_NONSTREAMING(FTSMUL, aa64_sve, gen_gvec_fpst_arg_zzz, s->fpcr_ah ? name##_ah_zpzz_fns[a->esz] : \ name##_zpzz_fns[a->esz], a) -DO_ZPZZ_FP_B16(FADD_zpzz, aa64_sve, sve_fadd) -DO_ZPZZ_FP_B16(FSUB_zpzz, aa64_sve, sve_fsub) -DO_ZPZZ_FP_B16(FMUL_zpzz, aa64_sve, sve_fmul) -DO_ZPZZ_AH_FP_B16(FMIN_zpzz, aa64_sve, sve_fmin, sve_ah_fmin) -DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sve, sve_fmax, sve_ah_fmax) -DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sve, sve_fminnum) -DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sve, sve_fmaxnum) -DO_ZPZZ_AH_FP(FABD, aa64_sve, sve_fabd, sve_ah_fabd) -DO_ZPZZ_FP(FSCALE, aa64_sve, sve_fscalbn) -DO_ZPZZ_FP(FDIV, aa64_sve, sve_fdiv) -DO_ZPZZ_FP(FMULX, aa64_sve, sve_fmulx) +DO_ZPZZ_FP_B16(FADD_zpzz, aa64_sme_or_sve, sve_fadd) +DO_ZPZZ_FP_B16(FSUB_zpzz, aa64_sme_or_sve, sve_fsub) +DO_ZPZZ_FP_B16(FMUL_zpzz, aa64_sme_or_sve, sve_fmul) +DO_ZPZZ_AH_FP_B16(FMIN_zpzz, aa64_sme_or_sve, sve_fmin, sve_ah_fmin) +DO_ZPZZ_AH_FP_B16(FMAX_zpzz, aa64_sme_or_sve, sve_fmax, sve_ah_fmax) +DO_ZPZZ_FP_B16(FMINNM_zpzz, aa64_sme_or_sve, sve_fminnum) +DO_ZPZZ_FP_B16(FMAXNM_zpzz, aa64_sme_or_sve, sve_fmaxnum) +DO_ZPZZ_AH_FP(FABD, aa64_sme_or_sve, sve_fabd, sve_ah_fabd) +DO_ZPZZ_FP(FSCALE, aa64_sme_or_sve, sve_fscalbn) +DO_ZPZZ_FP(FDIV, aa64_sme_or_sve, sve_fdiv) +DO_ZPZZ_FP(FMULX, aa64_sme_or_sve, sve_fmulx) typedef void gen_helper_sve_fp2scalar(TCGv_ptr, TCGv_ptr, TCGv_ptr, TCGv_i64, TCGv_ptr, TCGv_i32); @@ -4297,7 +4297,7 @@ static bool do_fp_imm(DisasContext *s, arg_rpri_esz *a, uint64_t imm, { float32_##const0, float32_##const1 }, \ { float64_##const0, float64_##const1 }, \ }; \ - TRANS_FEAT(NAME##_zpzi, aa64_sve, do_fp_imm, a, \ + TRANS_FEAT(NAME##_zpzi, aa64_sme_or_sve, do_fp_imm, a, \ name##_const[a->esz][a->imm], name##_fns[a->esz]) #define DO_FP_AH_IMM(NAME, name, const0, const1) \ @@ -4317,7 +4317,7 @@ static bool do_fp_imm(DisasContext *s, arg_rpri_esz *a, uint64_t imm, { float32_##const0, float32_##const1 }, \ { float64_##const0, float64_##const1 }, \ }; \ - TRANS_FEAT(NAME##_zpzi, aa64_sve, do_fp_imm, a, \ + TRANS_FEAT(NAME##_zpzi, aa64_sme_or_sve, do_fp_imm, a, \ name##_const[a->esz][a->imm], \ s->fpcr_ah ? name##_ah_fns[a->esz] : name##_fns[a->esz]) @@ -4355,7 +4355,7 @@ static bool do_fp_cmp(DisasContext *s, arg_rprr_esz *a, NULL, gen_helper_sve_##name##_h, \ gen_helper_sve_##name##_s, gen_helper_sve_##name##_d \ }; \ - TRANS_FEAT(NAME##_ppzz, aa64_sve, do_fp_cmp, a, name##_fns[a->esz]) + TRANS_FEAT(NAME##_ppzz, aa64_sme_or_sve, do_fp_cmp, a, name##_fns[a->esz]) DO_FPCMP(FCMGE, fcmge) DO_FPCMP(FCMGT, fcmgt) @@ -4371,7 +4371,7 @@ static gen_helper_gvec_4_ptr * const fcadd_fns[] = { NULL, gen_helper_sve_fcadd_h, gen_helper_sve_fcadd_s, gen_helper_sve_fcadd_d, }; -TRANS_FEAT(FCADD, aa64_sve, gen_gvec_fpst_zzzp, fcadd_fns[a->esz], +TRANS_FEAT(FCADD, aa64_sme_or_sve, gen_gvec_fpst_zzzp, fcadd_fns[a->esz], a->rd, a->rn, a->rm, a->pg, a->rot | (s->fpcr_ah << 1), a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) @@ -4395,7 +4395,7 @@ static bool do_fmla_zpzzz(DisasContext *s, arg_rprrr_esz *a, gen_helper_sve_##ah_name##_b16, gen_helper_sve_##ah_name##_h, \ gen_helper_sve_##ah_name##_s, gen_helper_sve_##ah_name##_d \ }; \ - TRANS_FEAT(NAME, aa64_sve, do_fmla_zpzzz, a, \ + TRANS_FEAT(NAME, aa64_sme_or_sve, do_fmla_zpzzz, a, \ s->fpcr_ah ? name##_ah_fns[a->esz] : name##_fns[a->esz]) /* We don't need an ah_fmla_zpzzz because fmla doesn't negate anything */ @@ -4410,14 +4410,14 @@ static gen_helper_gvec_5_ptr * const fcmla_fns[4] = { NULL, gen_helper_sve_fcmla_zpzzz_h, gen_helper_sve_fcmla_zpzzz_s, gen_helper_sve_fcmla_zpzzz_d, }; -TRANS_FEAT(FCMLA_zpzzz, aa64_sve, gen_gvec_fpst_zzzzp, fcmla_fns[a->esz], +TRANS_FEAT(FCMLA_zpzzz, aa64_sme_or_sve, gen_gvec_fpst_zzzzp, fcmla_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->pg, a->rot | (s->fpcr_ah << 2), a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) static gen_helper_gvec_4_ptr * const fcmla_idx_fns[4] = { NULL, gen_helper_gvec_fcmlah_idx, gen_helper_gvec_fcmlas_idx, NULL }; -TRANS_FEAT(FCMLA_zzxz, aa64_sve, gen_gvec_fpst_zzzz, fcmla_idx_fns[a->esz], +TRANS_FEAT(FCMLA_zzxz, aa64_sme_or_sve, gen_gvec_fpst_zzzz, fcmla_idx_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->index * 4 + a->rot, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) @@ -4425,53 +4425,53 @@ TRANS_FEAT(FCMLA_zzxz, aa64_sve, gen_gvec_fpst_zzzz, fcmla_idx_fns[a->esz], *** SVE Floating Point Unary Operations Predicated Group */ -TRANS_FEAT(FCVT_sh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_sh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_sh, a, 0, FPST_A64) -TRANS_FEAT(FCVT_hs, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_hs, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_hs, a, 0, FPST_A64_F16) TRANS_FEAT(BFCVT, aa64_sve_bf16, gen_gvec_fpst_arg_zpz, gen_helper_sve_bfcvt, a, 0, s->fpcr_ah ? FPST_AH : FPST_A64) -TRANS_FEAT(FCVT_dh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_dh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_dh, a, 0, FPST_A64) -TRANS_FEAT(FCVT_hd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_hd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_hd, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVT_ds, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_ds, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_ds, a, 0, FPST_A64) -TRANS_FEAT(FCVT_sd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVT_sd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_sd, a, 0, FPST_A64) -TRANS_FEAT(FCVTZS_hh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_hh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_hh, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZU_hh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_hh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_hh, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZS_hs, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_hs, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_hs, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZU_hs, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_hs, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_hs, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZS_hd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_hd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_hd, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZU_hd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_hd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_hd, a, 0, FPST_A64_F16) -TRANS_FEAT(FCVTZS_ss, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_ss, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_ss, a, 0, FPST_A64) -TRANS_FEAT(FCVTZU_ss, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_ss, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_ss, a, 0, FPST_A64) -TRANS_FEAT(FCVTZS_sd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_sd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_sd, a, 0, FPST_A64) -TRANS_FEAT(FCVTZU_sd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_sd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_sd, a, 0, FPST_A64) -TRANS_FEAT(FCVTZS_ds, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_ds, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_ds, a, 0, FPST_A64) -TRANS_FEAT(FCVTZU_ds, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_ds, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_ds, a, 0, FPST_A64) -TRANS_FEAT(FCVTZS_dd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZS_dd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzs_dd, a, 0, FPST_A64) -TRANS_FEAT(FCVTZU_dd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTZU_dd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvtzu_dd, a, 0, FPST_A64) static gen_helper_gvec_3_ptr * const frint_fns[] = { @@ -4480,7 +4480,7 @@ static gen_helper_gvec_3_ptr * const frint_fns[] = { gen_helper_sve_frint_s, gen_helper_sve_frint_d }; -TRANS_FEAT(FRINTI, aa64_sve, gen_gvec_fpst_arg_zpz, frint_fns[a->esz], +TRANS_FEAT(FRINTI, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, frint_fns[a->esz], a, 0, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) static gen_helper_gvec_3_ptr * const frintx_fns[] = { @@ -4489,7 +4489,7 @@ static gen_helper_gvec_3_ptr * const frintx_fns[] = { gen_helper_sve_frintx_s, gen_helper_sve_frintx_d }; -TRANS_FEAT(FRINTX, aa64_sve, gen_gvec_fpst_arg_zpz, frintx_fns[a->esz], +TRANS_FEAT(FRINTX, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, frintx_fns[a->esz], a, 0, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64); static bool do_frint_mode(DisasContext *s, arg_rpr_esz *a, @@ -4519,63 +4519,63 @@ static bool do_frint_mode(DisasContext *s, arg_rpr_esz *a, return true; } -TRANS_FEAT(FRINTN, aa64_sve, do_frint_mode, a, +TRANS_FEAT(FRINTN, aa64_sme_or_sve, do_frint_mode, a, FPROUNDING_TIEEVEN, frint_fns[a->esz]) -TRANS_FEAT(FRINTP, aa64_sve, do_frint_mode, a, +TRANS_FEAT(FRINTP, aa64_sme_or_sve, do_frint_mode, a, FPROUNDING_POSINF, frint_fns[a->esz]) -TRANS_FEAT(FRINTM, aa64_sve, do_frint_mode, a, +TRANS_FEAT(FRINTM, aa64_sme_or_sve, do_frint_mode, a, FPROUNDING_NEGINF, frint_fns[a->esz]) -TRANS_FEAT(FRINTZ, aa64_sve, do_frint_mode, a, +TRANS_FEAT(FRINTZ, aa64_sme_or_sve, do_frint_mode, a, FPROUNDING_ZERO, frint_fns[a->esz]) -TRANS_FEAT(FRINTA, aa64_sve, do_frint_mode, a, +TRANS_FEAT(FRINTA, aa64_sme_or_sve, do_frint_mode, a, FPROUNDING_TIEAWAY, frint_fns[a->esz]) static gen_helper_gvec_3_ptr * const frecpx_fns[] = { NULL, gen_helper_sve_frecpx_h, gen_helper_sve_frecpx_s, gen_helper_sve_frecpx_d, }; -TRANS_FEAT(FRECPX, aa64_sve, gen_gvec_fpst_arg_zpz, frecpx_fns[a->esz], +TRANS_FEAT(FRECPX, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, frecpx_fns[a->esz], a, 0, select_ah_fpst(s, a->esz)) static gen_helper_gvec_3_ptr * const fsqrt_fns[] = { NULL, gen_helper_sve_fsqrt_h, gen_helper_sve_fsqrt_s, gen_helper_sve_fsqrt_d, }; -TRANS_FEAT(FSQRT, aa64_sve, gen_gvec_fpst_arg_zpz, fsqrt_fns[a->esz], +TRANS_FEAT(FSQRT, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, fsqrt_fns[a->esz], a, 0, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) -TRANS_FEAT(SCVTF_hh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_hh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_hh, a, 0, FPST_A64_F16) -TRANS_FEAT(SCVTF_sh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_sh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_sh, a, 0, FPST_A64_F16) -TRANS_FEAT(SCVTF_dh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_dh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_dh, a, 0, FPST_A64_F16) -TRANS_FEAT(SCVTF_ss, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_ss, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_ss, a, 0, FPST_A64) -TRANS_FEAT(SCVTF_ds, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_ds, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_ds, a, 0, FPST_A64) -TRANS_FEAT(SCVTF_sd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_sd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_sd, a, 0, FPST_A64) -TRANS_FEAT(SCVTF_dd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(SCVTF_dd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_scvt_dd, a, 0, FPST_A64) -TRANS_FEAT(UCVTF_hh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_hh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_hh, a, 0, FPST_A64_F16) -TRANS_FEAT(UCVTF_sh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_sh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_sh, a, 0, FPST_A64_F16) -TRANS_FEAT(UCVTF_dh, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_dh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_dh, a, 0, FPST_A64_F16) -TRANS_FEAT(UCVTF_ss, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_ss, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_ss, a, 0, FPST_A64) -TRANS_FEAT(UCVTF_ds, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_ds, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_ds, a, 0, FPST_A64) -TRANS_FEAT(UCVTF_sd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_sd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_sd, a, 0, FPST_A64) -TRANS_FEAT(UCVTF_dd, aa64_sve, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(UCVTF_dd, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_ucvt_dd, a, 0, FPST_A64) /* @@ -4803,7 +4803,7 @@ void gen_sve_str(DisasContext *s, TCGv_ptr base, int vofs, static bool trans_LDR_zri(DisasContext *s, arg_rri *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -4817,7 +4817,7 @@ static bool trans_LDR_zri(DisasContext *s, arg_rri *a) static bool trans_LDR_pri(DisasContext *s, arg_rri *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -4831,7 +4831,7 @@ static bool trans_LDR_pri(DisasContext *s, arg_rri *a) static bool trans_STR_zri(DisasContext *s, arg_rri *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -4845,7 +4845,7 @@ static bool trans_STR_zri(DisasContext *s, arg_rri *a) static bool trans_STR_pri(DisasContext *s, arg_rri *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -5101,7 +5101,7 @@ static bool trans_LD_zprr(DisasContext *s, arg_rprr_load *a) /* dtypes 16-18 are artificial, representing 128-bit element */ switch (a->dtype) { case 0 ... 15: - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } break; @@ -5134,7 +5134,7 @@ static bool trans_LD_zpri(DisasContext *s, arg_rpri_load *a) /* dtypes 16-18 are artificial, representing 128-bit element */ switch (a->dtype) { case 0 ... 15: - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } break; @@ -5420,7 +5420,7 @@ static void do_ldrq(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype) static bool trans_LD1RQ_zprr(DisasContext *s, arg_rprr_load *a) { - if (a->rm == 31 || !dc_isar_feature(aa64_sve, s)) { + if (a->rm == 31 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -5435,7 +5435,7 @@ static bool trans_LD1RQ_zprr(DisasContext *s, arg_rprr_load *a) static bool trans_LD1RQ_zpri(DisasContext *s, arg_rpri_load *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (sve_access_check(s)) { @@ -5554,7 +5554,7 @@ static bool trans_LD1R_zpri(DisasContext *s, arg_rpri_load *a) TCGv_i64 temp, clean_addr; MemOp memop; - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } if (!sve_access_check(s)) { @@ -5746,7 +5746,7 @@ static bool trans_ST_zprr(DisasContext *s, arg_rprr_store *a) } switch (a->esz) { case MO_8 ... MO_64: - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } break; @@ -5783,7 +5783,7 @@ static bool trans_ST_zpri(DisasContext *s, arg_rpri_store *a) } switch (a->esz) { case MO_8 ... MO_64: - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } break; @@ -6525,7 +6525,7 @@ static bool trans_STNT1_zprz(DisasContext *s, arg_ST1_zprz *a) static bool trans_PRF(DisasContext *s, arg_PRF *a) { - if (!dc_isar_feature(aa64_sve, s)) { + if (!dc_isar_feature(aa64_sme_or_sve, s)) { return false; } /* Prefetch is a nop within QEMU. */ @@ -6535,7 +6535,7 @@ static bool trans_PRF(DisasContext *s, arg_PRF *a) static bool trans_PRF_rr(DisasContext *s, arg_PRF_rr *a) { - if (a->rm == 31 || !dc_isar_feature(aa64_sve, s)) { + if (a->rm == 31 || !dc_isar_feature(aa64_sme_or_sve, s)) { return false; } /* Prefetch is a nop within QEMU. */ @@ -6568,39 +6568,39 @@ static bool trans_PRF_ns(DisasContext *s, arg_PRF_ns *a) * In the meantime, just emit the moves. */ -TRANS_FEAT(MOVPRFX, aa64_sve, do_mov_z, a->rd, a->rn) -TRANS_FEAT(MOVPRFX_m, aa64_sve, do_sel_z, a->rd, a->rn, a->rd, a->pg, a->esz) -TRANS_FEAT(MOVPRFX_z, aa64_sve, do_movz_zpz, a->rd, a->rn, a->pg, a->esz, false) +TRANS_FEAT(MOVPRFX, aa64_sme_or_sve, do_mov_z, a->rd, a->rn) +TRANS_FEAT(MOVPRFX_m, aa64_sme_or_sve, do_sel_z, a->rd, a->rn, a->rd, a->pg, a->esz) +TRANS_FEAT(MOVPRFX_z, aa64_sme_or_sve, do_movz_zpz, a->rd, a->rn, a->pg, a->esz, false) /* * SVE2 Integer Multiply - Unpredicated */ -TRANS_FEAT(MUL_zzz, aa64_sve2, gen_gvec_fn_arg_zzz, tcg_gen_gvec_mul, a) -TRANS_FEAT(SQDMULH_zzz, aa64_sve2, gen_gvec_fn_arg_zzz, gen_gvec_sve2_sqdmulh, a) +TRANS_FEAT(MUL_zzz, aa64_sme_or_sve2, gen_gvec_fn_arg_zzz, tcg_gen_gvec_mul, a) +TRANS_FEAT(SQDMULH_zzz, aa64_sme_or_sve2, gen_gvec_fn_arg_zzz, gen_gvec_sve2_sqdmulh, a) static gen_helper_gvec_3 * const smulh_zzz_fns[4] = { gen_helper_gvec_smulh_b, gen_helper_gvec_smulh_h, gen_helper_gvec_smulh_s, gen_helper_gvec_smulh_d, }; -TRANS_FEAT(SMULH_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SMULH_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, smulh_zzz_fns[a->esz], a, 0) static gen_helper_gvec_3 * const umulh_zzz_fns[4] = { gen_helper_gvec_umulh_b, gen_helper_gvec_umulh_h, gen_helper_gvec_umulh_s, gen_helper_gvec_umulh_d, }; -TRANS_FEAT(UMULH_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UMULH_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, umulh_zzz_fns[a->esz], a, 0) -TRANS_FEAT(PMUL_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(PMUL_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, gen_helper_gvec_pmul_b, a, 0) static gen_helper_gvec_3 * const sqrdmulh_zzz_fns[4] = { gen_helper_sve2_sqrdmulh_b, gen_helper_sve2_sqrdmulh_h, gen_helper_sve2_sqrdmulh_s, gen_helper_sve2_sqrdmulh_d, }; -TRANS_FEAT(SQRDMULH_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SQRDMULH_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sqrdmulh_zzz_fns[a->esz], a, 0) /* @@ -6611,66 +6611,66 @@ static gen_helper_gvec_4 * const sadlp_fns[4] = { NULL, gen_helper_sve2_sadalp_zpzz_h, gen_helper_sve2_sadalp_zpzz_s, gen_helper_sve2_sadalp_zpzz_d, }; -TRANS_FEAT(SADALP_zpzz, aa64_sve2, gen_gvec_ool_arg_zpzz, +TRANS_FEAT(SADALP_zpzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzz, sadlp_fns[a->esz], a, 0) static gen_helper_gvec_4 * const uadlp_fns[4] = { NULL, gen_helper_sve2_uadalp_zpzz_h, gen_helper_sve2_uadalp_zpzz_s, gen_helper_sve2_uadalp_zpzz_d, }; -TRANS_FEAT(UADALP_zpzz, aa64_sve2, gen_gvec_ool_arg_zpzz, +TRANS_FEAT(UADALP_zpzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zpzz, uadlp_fns[a->esz], a, 0) /* * SVE2 integer unary operations (predicated) */ -TRANS_FEAT(URECPE, aa64_sve2, gen_gvec_ool_arg_zpz, +TRANS_FEAT(URECPE, aa64_sme_or_sve2, gen_gvec_ool_arg_zpz, a->esz == 2 ? gen_helper_sve2_urecpe_s : NULL, a, 0) -TRANS_FEAT(URSQRTE, aa64_sve2, gen_gvec_ool_arg_zpz, +TRANS_FEAT(URSQRTE, aa64_sme_or_sve2, gen_gvec_ool_arg_zpz, a->esz == 2 ? gen_helper_sve2_ursqrte_s : NULL, a, 0) static gen_helper_gvec_3 * const sqabs_fns[4] = { gen_helper_sve2_sqabs_b, gen_helper_sve2_sqabs_h, gen_helper_sve2_sqabs_s, gen_helper_sve2_sqabs_d, }; -TRANS_FEAT(SQABS, aa64_sve2, gen_gvec_ool_arg_zpz, sqabs_fns[a->esz], a, 0) +TRANS_FEAT(SQABS, aa64_sme_or_sve2, gen_gvec_ool_arg_zpz, sqabs_fns[a->esz], a, 0) static gen_helper_gvec_3 * const sqneg_fns[4] = { gen_helper_sve2_sqneg_b, gen_helper_sve2_sqneg_h, gen_helper_sve2_sqneg_s, gen_helper_sve2_sqneg_d, }; -TRANS_FEAT(SQNEG, aa64_sve2, gen_gvec_ool_arg_zpz, sqneg_fns[a->esz], a, 0) +TRANS_FEAT(SQNEG, aa64_sme_or_sve2, gen_gvec_ool_arg_zpz, sqneg_fns[a->esz], a, 0) -DO_ZPZZ(SQSHL, aa64_sve2, sve2_sqshl) -DO_ZPZZ(SQRSHL, aa64_sve2, sve2_sqrshl) -DO_ZPZZ(SRSHL, aa64_sve2, sve2_srshl) +DO_ZPZZ(SQSHL, aa64_sme_or_sve2, sve2_sqshl) +DO_ZPZZ(SQRSHL, aa64_sme_or_sve2, sve2_sqrshl) +DO_ZPZZ(SRSHL, aa64_sme_or_sve2, sve2_srshl) -DO_ZPZZ(UQSHL, aa64_sve2, sve2_uqshl) -DO_ZPZZ(UQRSHL, aa64_sve2, sve2_uqrshl) -DO_ZPZZ(URSHL, aa64_sve2, sve2_urshl) +DO_ZPZZ(UQSHL, aa64_sme_or_sve2, sve2_uqshl) +DO_ZPZZ(UQRSHL, aa64_sme_or_sve2, sve2_uqrshl) +DO_ZPZZ(URSHL, aa64_sme_or_sve2, sve2_urshl) -DO_ZPZZ(SHADD, aa64_sve2, sve2_shadd) -DO_ZPZZ(SRHADD, aa64_sve2, sve2_srhadd) -DO_ZPZZ(SHSUB, aa64_sve2, sve2_shsub) +DO_ZPZZ(SHADD, aa64_sme_or_sve2, sve2_shadd) +DO_ZPZZ(SRHADD, aa64_sme_or_sve2, sve2_srhadd) +DO_ZPZZ(SHSUB, aa64_sme_or_sve2, sve2_shsub) -DO_ZPZZ(UHADD, aa64_sve2, sve2_uhadd) -DO_ZPZZ(URHADD, aa64_sve2, sve2_urhadd) -DO_ZPZZ(UHSUB, aa64_sve2, sve2_uhsub) +DO_ZPZZ(UHADD, aa64_sme_or_sve2, sve2_uhadd) +DO_ZPZZ(URHADD, aa64_sme_or_sve2, sve2_urhadd) +DO_ZPZZ(UHSUB, aa64_sme_or_sve2, sve2_uhsub) -DO_ZPZZ(ADDP, aa64_sve2, sve2_addp) -DO_ZPZZ(SMAXP, aa64_sve2, sve2_smaxp) -DO_ZPZZ(UMAXP, aa64_sve2, sve2_umaxp) -DO_ZPZZ(SMINP, aa64_sve2, sve2_sminp) -DO_ZPZZ(UMINP, aa64_sve2, sve2_uminp) +DO_ZPZZ(ADDP, aa64_sme_or_sve2, sve2_addp) +DO_ZPZZ(SMAXP, aa64_sme_or_sve2, sve2_smaxp) +DO_ZPZZ(UMAXP, aa64_sme_or_sve2, sve2_umaxp) +DO_ZPZZ(SMINP, aa64_sme_or_sve2, sve2_sminp) +DO_ZPZZ(UMINP, aa64_sme_or_sve2, sve2_uminp) -DO_ZPZZ(SQADD_zpzz, aa64_sve2, sve2_sqadd) -DO_ZPZZ(UQADD_zpzz, aa64_sve2, sve2_uqadd) -DO_ZPZZ(SQSUB_zpzz, aa64_sve2, sve2_sqsub) -DO_ZPZZ(UQSUB_zpzz, aa64_sve2, sve2_uqsub) -DO_ZPZZ(SUQADD, aa64_sve2, sve2_suqadd) -DO_ZPZZ(USQADD, aa64_sve2, sve2_usqadd) +DO_ZPZZ(SQADD_zpzz, aa64_sme_or_sve2, sve2_sqadd) +DO_ZPZZ(UQADD_zpzz, aa64_sme_or_sve2, sve2_uqadd) +DO_ZPZZ(SQSUB_zpzz, aa64_sme_or_sve2, sve2_sqsub) +DO_ZPZZ(UQSUB_zpzz, aa64_sme_or_sve2, sve2_uqsub) +DO_ZPZZ(SUQADD, aa64_sme_or_sve2, sve2_suqadd) +DO_ZPZZ(USQADD, aa64_sme_or_sve2, sve2_usqadd) /* * SVE2 Widening Integer Arithmetic @@ -6680,95 +6680,95 @@ static gen_helper_gvec_3 * const saddl_fns[4] = { NULL, gen_helper_sve2_saddl_h, gen_helper_sve2_saddl_s, gen_helper_sve2_saddl_d, }; -TRANS_FEAT(SADDLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SADDLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, saddl_fns[a->esz], a, 0) -TRANS_FEAT(SADDLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SADDLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, saddl_fns[a->esz], a, 3) -TRANS_FEAT(SADDLBT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SADDLBT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, saddl_fns[a->esz], a, 2) static gen_helper_gvec_3 * const ssubl_fns[4] = { NULL, gen_helper_sve2_ssubl_h, gen_helper_sve2_ssubl_s, gen_helper_sve2_ssubl_d, }; -TRANS_FEAT(SSUBLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SSUBLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubl_fns[a->esz], a, 0) -TRANS_FEAT(SSUBLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SSUBLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubl_fns[a->esz], a, 3) -TRANS_FEAT(SSUBLBT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SSUBLBT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubl_fns[a->esz], a, 2) -TRANS_FEAT(SSUBLTB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SSUBLTB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubl_fns[a->esz], a, 1) static gen_helper_gvec_3 * const sabdl_fns[4] = { NULL, gen_helper_sve2_sabdl_h, gen_helper_sve2_sabdl_s, gen_helper_sve2_sabdl_d, }; -TRANS_FEAT(SABDLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SABDLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sabdl_fns[a->esz], a, 0) -TRANS_FEAT(SABDLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SABDLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sabdl_fns[a->esz], a, 3) static gen_helper_gvec_3 * const uaddl_fns[4] = { NULL, gen_helper_sve2_uaddl_h, gen_helper_sve2_uaddl_s, gen_helper_sve2_uaddl_d, }; -TRANS_FEAT(UADDLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UADDLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uaddl_fns[a->esz], a, 0) -TRANS_FEAT(UADDLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UADDLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uaddl_fns[a->esz], a, 3) static gen_helper_gvec_3 * const usubl_fns[4] = { NULL, gen_helper_sve2_usubl_h, gen_helper_sve2_usubl_s, gen_helper_sve2_usubl_d, }; -TRANS_FEAT(USUBLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(USUBLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, usubl_fns[a->esz], a, 0) -TRANS_FEAT(USUBLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(USUBLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, usubl_fns[a->esz], a, 3) static gen_helper_gvec_3 * const uabdl_fns[4] = { NULL, gen_helper_sve2_uabdl_h, gen_helper_sve2_uabdl_s, gen_helper_sve2_uabdl_d, }; -TRANS_FEAT(UABDLB, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UABDLB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uabdl_fns[a->esz], a, 0) -TRANS_FEAT(UABDLT, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UABDLT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uabdl_fns[a->esz], a, 3) static gen_helper_gvec_3 * const sqdmull_fns[4] = { NULL, gen_helper_sve2_sqdmull_zzz_h, gen_helper_sve2_sqdmull_zzz_s, gen_helper_sve2_sqdmull_zzz_d, }; -TRANS_FEAT(SQDMULLB_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SQDMULLB_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sqdmull_fns[a->esz], a, 0) -TRANS_FEAT(SQDMULLT_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SQDMULLT_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sqdmull_fns[a->esz], a, 3) static gen_helper_gvec_3 * const smull_fns[4] = { NULL, gen_helper_sve2_smull_zzz_h, gen_helper_sve2_smull_zzz_s, gen_helper_sve2_smull_zzz_d, }; -TRANS_FEAT(SMULLB_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SMULLB_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, smull_fns[a->esz], a, 0) -TRANS_FEAT(SMULLT_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SMULLT_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, smull_fns[a->esz], a, 3) static gen_helper_gvec_3 * const umull_fns[4] = { NULL, gen_helper_sve2_umull_zzz_h, gen_helper_sve2_umull_zzz_s, gen_helper_sve2_umull_zzz_d, }; -TRANS_FEAT(UMULLB_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UMULLB_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, umull_fns[a->esz], a, 0) -TRANS_FEAT(UMULLT_zzz, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(UMULLT_zzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, umull_fns[a->esz], a, 3) static gen_helper_gvec_3 * const eoril_fns[4] = { gen_helper_sve2_eoril_b, gen_helper_sve2_eoril_h, gen_helper_sve2_eoril_s, gen_helper_sve2_eoril_d, }; -TRANS_FEAT(EORBT, aa64_sve2, gen_gvec_ool_arg_zzz, eoril_fns[a->esz], a, 2) -TRANS_FEAT(EORTB, aa64_sve2, gen_gvec_ool_arg_zzz, eoril_fns[a->esz], a, 1) +TRANS_FEAT(EORBT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, eoril_fns[a->esz], a, 2) +TRANS_FEAT(EORTB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, eoril_fns[a->esz], a, 1) static bool do_trans_pmull(DisasContext *s, arg_rrr_esz *a, bool sel) { @@ -6786,36 +6786,36 @@ static bool do_trans_pmull(DisasContext *s, arg_rrr_esz *a, bool sel) return gen_gvec_ool_arg_zzz(s, fns[a->esz], a, sel); } -TRANS_FEAT(PMULLB, aa64_sve2, do_trans_pmull, a, false) -TRANS_FEAT(PMULLT, aa64_sve2, do_trans_pmull, a, true) +TRANS_FEAT(PMULLB, aa64_sme_or_sve2, do_trans_pmull, a, false) +TRANS_FEAT(PMULLT, aa64_sme_or_sve2, do_trans_pmull, a, true) static gen_helper_gvec_3 * const saddw_fns[4] = { NULL, gen_helper_sve2_saddw_h, gen_helper_sve2_saddw_s, gen_helper_sve2_saddw_d, }; -TRANS_FEAT(SADDWB, aa64_sve2, gen_gvec_ool_arg_zzz, saddw_fns[a->esz], a, 0) -TRANS_FEAT(SADDWT, aa64_sve2, gen_gvec_ool_arg_zzz, saddw_fns[a->esz], a, 1) +TRANS_FEAT(SADDWB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, saddw_fns[a->esz], a, 0) +TRANS_FEAT(SADDWT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, saddw_fns[a->esz], a, 1) static gen_helper_gvec_3 * const ssubw_fns[4] = { NULL, gen_helper_sve2_ssubw_h, gen_helper_sve2_ssubw_s, gen_helper_sve2_ssubw_d, }; -TRANS_FEAT(SSUBWB, aa64_sve2, gen_gvec_ool_arg_zzz, ssubw_fns[a->esz], a, 0) -TRANS_FEAT(SSUBWT, aa64_sve2, gen_gvec_ool_arg_zzz, ssubw_fns[a->esz], a, 1) +TRANS_FEAT(SSUBWB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubw_fns[a->esz], a, 0) +TRANS_FEAT(SSUBWT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, ssubw_fns[a->esz], a, 1) static gen_helper_gvec_3 * const uaddw_fns[4] = { NULL, gen_helper_sve2_uaddw_h, gen_helper_sve2_uaddw_s, gen_helper_sve2_uaddw_d, }; -TRANS_FEAT(UADDWB, aa64_sve2, gen_gvec_ool_arg_zzz, uaddw_fns[a->esz], a, 0) -TRANS_FEAT(UADDWT, aa64_sve2, gen_gvec_ool_arg_zzz, uaddw_fns[a->esz], a, 1) +TRANS_FEAT(UADDWB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uaddw_fns[a->esz], a, 0) +TRANS_FEAT(UADDWT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, uaddw_fns[a->esz], a, 1) static gen_helper_gvec_3 * const usubw_fns[4] = { NULL, gen_helper_sve2_usubw_h, gen_helper_sve2_usubw_s, gen_helper_sve2_usubw_d, }; -TRANS_FEAT(USUBWB, aa64_sve2, gen_gvec_ool_arg_zzz, usubw_fns[a->esz], a, 0) -TRANS_FEAT(USUBWT, aa64_sve2, gen_gvec_ool_arg_zzz, usubw_fns[a->esz], a, 1) +TRANS_FEAT(USUBWB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, usubw_fns[a->esz], a, 0) +TRANS_FEAT(USUBWT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, usubw_fns[a->esz], a, 1) static void gen_sshll_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t imm) { @@ -6935,8 +6935,8 @@ static const GVecGen2i sshll_ops[3] = { .fno = gen_helper_sve2_sshll_d, .vece = MO_64 } }; -TRANS_FEAT(SSHLLB, aa64_sve2, do_shll_tb, a, sshll_ops, false) -TRANS_FEAT(SSHLLT, aa64_sve2, do_shll_tb, a, sshll_ops, true) +TRANS_FEAT(SSHLLB, aa64_sme_or_sve2, do_shll_tb, a, sshll_ops, false) +TRANS_FEAT(SSHLLT, aa64_sme_or_sve2, do_shll_tb, a, sshll_ops, true) static const TCGOpcode ushll_list[] = { INDEX_op_shli_vec, INDEX_op_shri_vec, 0 @@ -6958,8 +6958,8 @@ static const GVecGen2i ushll_ops[3] = { .fno = gen_helper_sve2_ushll_d, .vece = MO_64 }, }; -TRANS_FEAT(USHLLB, aa64_sve2, do_shll_tb, a, ushll_ops, false) -TRANS_FEAT(USHLLT, aa64_sve2, do_shll_tb, a, ushll_ops, true) +TRANS_FEAT(USHLLB, aa64_sme_or_sve2, do_shll_tb, a, ushll_ops, false) +TRANS_FEAT(USHLLT, aa64_sme_or_sve2, do_shll_tb, a, ushll_ops, true) static gen_helper_gvec_3 * const bext_fns[4] = { gen_helper_sve2_bext_b, gen_helper_sve2_bext_h, @@ -6986,33 +6986,33 @@ static gen_helper_gvec_3 * const cadd_fns[4] = { gen_helper_sve2_cadd_b, gen_helper_sve2_cadd_h, gen_helper_sve2_cadd_s, gen_helper_sve2_cadd_d, }; -TRANS_FEAT(CADD_rot90, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(CADD_rot90, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, cadd_fns[a->esz], a, 0) -TRANS_FEAT(CADD_rot270, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(CADD_rot270, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, cadd_fns[a->esz], a, 1) static gen_helper_gvec_3 * const sqcadd_fns[4] = { gen_helper_sve2_sqcadd_b, gen_helper_sve2_sqcadd_h, gen_helper_sve2_sqcadd_s, gen_helper_sve2_sqcadd_d, }; -TRANS_FEAT(SQCADD_rot90, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SQCADD_rot90, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sqcadd_fns[a->esz], a, 0) -TRANS_FEAT(SQCADD_rot270, aa64_sve2, gen_gvec_ool_arg_zzz, +TRANS_FEAT(SQCADD_rot270, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, sqcadd_fns[a->esz], a, 1) static gen_helper_gvec_4 * const sabal_fns[4] = { NULL, gen_helper_sve2_sabal_h, gen_helper_sve2_sabal_s, gen_helper_sve2_sabal_d, }; -TRANS_FEAT(SABALB, aa64_sve2, gen_gvec_ool_arg_zzzz, sabal_fns[a->esz], a, 0) -TRANS_FEAT(SABALT, aa64_sve2, gen_gvec_ool_arg_zzzz, sabal_fns[a->esz], a, 1) +TRANS_FEAT(SABALB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sabal_fns[a->esz], a, 0) +TRANS_FEAT(SABALT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sabal_fns[a->esz], a, 1) static gen_helper_gvec_4 * const uabal_fns[4] = { NULL, gen_helper_sve2_uabal_h, gen_helper_sve2_uabal_s, gen_helper_sve2_uabal_d, }; -TRANS_FEAT(UABALB, aa64_sve2, gen_gvec_ool_arg_zzzz, uabal_fns[a->esz], a, 0) -TRANS_FEAT(UABALT, aa64_sve2, gen_gvec_ool_arg_zzzz, uabal_fns[a->esz], a, 1) +TRANS_FEAT(UABALB, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, uabal_fns[a->esz], a, 0) +TRANS_FEAT(UABALT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, uabal_fns[a->esz], a, 1) static bool do_adcl(DisasContext *s, arg_rrrr_esz *a, bool sel) { @@ -7027,18 +7027,18 @@ static bool do_adcl(DisasContext *s, arg_rrrr_esz *a, bool sel) return gen_gvec_ool_arg_zzzz(s, fns[a->esz & 1], a, (a->esz & 2) | sel); } -TRANS_FEAT(ADCLB, aa64_sve2, do_adcl, a, false) -TRANS_FEAT(ADCLT, aa64_sve2, do_adcl, a, true) +TRANS_FEAT(ADCLB, aa64_sme_or_sve2, do_adcl, a, false) +TRANS_FEAT(ADCLT, aa64_sme_or_sve2, do_adcl, a, true) -TRANS_FEAT(SSRA, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_ssra, a) -TRANS_FEAT(USRA, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_usra, a) -TRANS_FEAT(SRSRA, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_srsra, a) -TRANS_FEAT(URSRA, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_ursra, a) -TRANS_FEAT(SRI, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_sri, a) -TRANS_FEAT(SLI, aa64_sve2, gen_gvec_fn_arg_zzi, gen_gvec_sli, a) +TRANS_FEAT(SSRA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_ssra, a) +TRANS_FEAT(USRA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_usra, a) +TRANS_FEAT(SRSRA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_srsra, a) +TRANS_FEAT(URSRA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_ursra, a) +TRANS_FEAT(SRI, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_sri, a) +TRANS_FEAT(SLI, aa64_sme_or_sve2, gen_gvec_fn_arg_zzi, gen_gvec_sli, a) -TRANS_FEAT(SABA, aa64_sve2, gen_gvec_fn_arg_zzz, gen_gvec_saba, a) -TRANS_FEAT(UABA, aa64_sve2, gen_gvec_fn_arg_zzz, gen_gvec_uaba, a) +TRANS_FEAT(SABA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzz, gen_gvec_saba, a) +TRANS_FEAT(UABA, aa64_sme_or_sve2, gen_gvec_fn_arg_zzz, gen_gvec_uaba, a) static bool do_narrow_extract(DisasContext *s, arg_rri_esz *a, const GVecGen2 ops[3]) @@ -7085,7 +7085,7 @@ static const GVecGen2 sqxtnb_ops[3] = { .fno = gen_helper_sve2_sqxtnb_d, .vece = MO_64 }, }; -TRANS_FEAT(SQXTNB, aa64_sve2, do_narrow_extract, a, sqxtnb_ops) +TRANS_FEAT(SQXTNB, aa64_sme_or_sve2, do_narrow_extract, a, sqxtnb_ops) static void gen_sqxtnt_vec(unsigned vece, TCGv_vec d, TCGv_vec n) { @@ -7117,7 +7117,7 @@ static const GVecGen2 sqxtnt_ops[3] = { .fno = gen_helper_sve2_sqxtnt_d, .vece = MO_64 }, }; -TRANS_FEAT(SQXTNT, aa64_sve2, do_narrow_extract, a, sqxtnt_ops) +TRANS_FEAT(SQXTNT, aa64_sme_or_sve2, do_narrow_extract, a, sqxtnt_ops) static const TCGOpcode uqxtn_list[] = { INDEX_op_shli_vec, INDEX_op_umin_vec, 0 @@ -7145,7 +7145,7 @@ static const GVecGen2 uqxtnb_ops[3] = { .fno = gen_helper_sve2_uqxtnb_d, .vece = MO_64 }, }; -TRANS_FEAT(UQXTNB, aa64_sve2, do_narrow_extract, a, uqxtnb_ops) +TRANS_FEAT(UQXTNB, aa64_sme_or_sve2, do_narrow_extract, a, uqxtnb_ops) static void gen_uqxtnt_vec(unsigned vece, TCGv_vec d, TCGv_vec n) { @@ -7175,7 +7175,7 @@ static const GVecGen2 uqxtnt_ops[3] = { .fno = gen_helper_sve2_uqxtnt_d, .vece = MO_64 }, }; -TRANS_FEAT(UQXTNT, aa64_sve2, do_narrow_extract, a, uqxtnt_ops) +TRANS_FEAT(UQXTNT, aa64_sme_or_sve2, do_narrow_extract, a, uqxtnt_ops) static const TCGOpcode sqxtun_list[] = { INDEX_op_shli_vec, INDEX_op_umin_vec, INDEX_op_smax_vec, 0 @@ -7204,7 +7204,7 @@ static const GVecGen2 sqxtunb_ops[3] = { .fno = gen_helper_sve2_sqxtunb_d, .vece = MO_64 }, }; -TRANS_FEAT(SQXTUNB, aa64_sve2, do_narrow_extract, a, sqxtunb_ops) +TRANS_FEAT(SQXTUNB, aa64_sme_or_sve2, do_narrow_extract, a, sqxtunb_ops) static void gen_sqxtunt_vec(unsigned vece, TCGv_vec d, TCGv_vec n) { @@ -7235,7 +7235,7 @@ static const GVecGen2 sqxtunt_ops[3] = { .fno = gen_helper_sve2_sqxtunt_d, .vece = MO_64 }, }; -TRANS_FEAT(SQXTUNT, aa64_sve2, do_narrow_extract, a, sqxtunt_ops) +TRANS_FEAT(SQXTUNT, aa64_sme_or_sve2, do_narrow_extract, a, sqxtunt_ops) static bool do_shr_narrow(DisasContext *s, arg_rri_esz *a, const GVecGen2i ops[3]) @@ -7304,7 +7304,7 @@ static const GVecGen2i shrnb_ops[3] = { .fno = gen_helper_sve2_shrnb_d, .vece = MO_64 }, }; -TRANS_FEAT(SHRNB, aa64_sve2, do_shr_narrow, a, shrnb_ops) +TRANS_FEAT(SHRNB, aa64_sme_or_sve2, do_shr_narrow, a, shrnb_ops) static void gen_shrnt_i64(unsigned vece, TCGv_i64 d, TCGv_i64 n, int shr) { @@ -7363,21 +7363,21 @@ static const GVecGen2i shrnt_ops[3] = { .fno = gen_helper_sve2_shrnt_d, .vece = MO_64 }, }; -TRANS_FEAT(SHRNT, aa64_sve2, do_shr_narrow, a, shrnt_ops) +TRANS_FEAT(SHRNT, aa64_sme_or_sve2, do_shr_narrow, a, shrnt_ops) static const GVecGen2i rshrnb_ops[3] = { { .fno = gen_helper_sve2_rshrnb_h }, { .fno = gen_helper_sve2_rshrnb_s }, { .fno = gen_helper_sve2_rshrnb_d }, }; -TRANS_FEAT(RSHRNB, aa64_sve2, do_shr_narrow, a, rshrnb_ops) +TRANS_FEAT(RSHRNB, aa64_sme_or_sve2, do_shr_narrow, a, rshrnb_ops) static const GVecGen2i rshrnt_ops[3] = { { .fno = gen_helper_sve2_rshrnt_h }, { .fno = gen_helper_sve2_rshrnt_s }, { .fno = gen_helper_sve2_rshrnt_d }, }; -TRANS_FEAT(RSHRNT, aa64_sve2, do_shr_narrow, a, rshrnt_ops) +TRANS_FEAT(RSHRNT, aa64_sme_or_sve2, do_shr_narrow, a, rshrnt_ops) static void gen_sqshrunb_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7407,7 +7407,7 @@ static const GVecGen2i sqshrunb_ops[3] = { .fno = gen_helper_sve2_sqshrunb_d, .vece = MO_64 }, }; -TRANS_FEAT(SQSHRUNB, aa64_sve2, do_shr_narrow, a, sqshrunb_ops) +TRANS_FEAT(SQSHRUNB, aa64_sme_or_sve2, do_shr_narrow, a, sqshrunb_ops) static void gen_sqshrunt_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7444,21 +7444,21 @@ static const GVecGen2i sqshrunt_ops[3] = { .fno = gen_helper_sve2_sqshrunt_d, .vece = MO_64 }, }; -TRANS_FEAT(SQSHRUNT, aa64_sve2, do_shr_narrow, a, sqshrunt_ops) +TRANS_FEAT(SQSHRUNT, aa64_sme_or_sve2, do_shr_narrow, a, sqshrunt_ops) static const GVecGen2i sqrshrunb_ops[3] = { { .fno = gen_helper_sve2_sqrshrunb_h }, { .fno = gen_helper_sve2_sqrshrunb_s }, { .fno = gen_helper_sve2_sqrshrunb_d }, }; -TRANS_FEAT(SQRSHRUNB, aa64_sve2, do_shr_narrow, a, sqrshrunb_ops) +TRANS_FEAT(SQRSHRUNB, aa64_sme_or_sve2, do_shr_narrow, a, sqrshrunb_ops) static const GVecGen2i sqrshrunt_ops[3] = { { .fno = gen_helper_sve2_sqrshrunt_h }, { .fno = gen_helper_sve2_sqrshrunt_s }, { .fno = gen_helper_sve2_sqrshrunt_d }, }; -TRANS_FEAT(SQRSHRUNT, aa64_sve2, do_shr_narrow, a, sqrshrunt_ops) +TRANS_FEAT(SQRSHRUNT, aa64_sme_or_sve2, do_shr_narrow, a, sqrshrunt_ops) static void gen_sqshrnb_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7491,7 +7491,7 @@ static const GVecGen2i sqshrnb_ops[3] = { .fno = gen_helper_sve2_sqshrnb_d, .vece = MO_64 }, }; -TRANS_FEAT(SQSHRNB, aa64_sve2, do_shr_narrow, a, sqshrnb_ops) +TRANS_FEAT(SQSHRNB, aa64_sme_or_sve2, do_shr_narrow, a, sqshrnb_ops) static void gen_sqshrnt_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7529,21 +7529,21 @@ static const GVecGen2i sqshrnt_ops[3] = { .fno = gen_helper_sve2_sqshrnt_d, .vece = MO_64 }, }; -TRANS_FEAT(SQSHRNT, aa64_sve2, do_shr_narrow, a, sqshrnt_ops) +TRANS_FEAT(SQSHRNT, aa64_sme_or_sve2, do_shr_narrow, a, sqshrnt_ops) static const GVecGen2i sqrshrnb_ops[3] = { { .fno = gen_helper_sve2_sqrshrnb_h }, { .fno = gen_helper_sve2_sqrshrnb_s }, { .fno = gen_helper_sve2_sqrshrnb_d }, }; -TRANS_FEAT(SQRSHRNB, aa64_sve2, do_shr_narrow, a, sqrshrnb_ops) +TRANS_FEAT(SQRSHRNB, aa64_sme_or_sve2, do_shr_narrow, a, sqrshrnb_ops) static const GVecGen2i sqrshrnt_ops[3] = { { .fno = gen_helper_sve2_sqrshrnt_h }, { .fno = gen_helper_sve2_sqrshrnt_s }, { .fno = gen_helper_sve2_sqrshrnt_d }, }; -TRANS_FEAT(SQRSHRNT, aa64_sve2, do_shr_narrow, a, sqrshrnt_ops) +TRANS_FEAT(SQRSHRNT, aa64_sme_or_sve2, do_shr_narrow, a, sqrshrnt_ops) static void gen_uqshrnb_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7572,7 +7572,7 @@ static const GVecGen2i uqshrnb_ops[3] = { .fno = gen_helper_sve2_uqshrnb_d, .vece = MO_64 }, }; -TRANS_FEAT(UQSHRNB, aa64_sve2, do_shr_narrow, a, uqshrnb_ops) +TRANS_FEAT(UQSHRNB, aa64_sme_or_sve2, do_shr_narrow, a, uqshrnb_ops) static void gen_uqshrnt_vec(unsigned vece, TCGv_vec d, TCGv_vec n, int64_t shr) @@ -7607,28 +7607,28 @@ static const GVecGen2i uqshrnt_ops[3] = { .fno = gen_helper_sve2_uqshrnt_d, .vece = MO_64 }, }; -TRANS_FEAT(UQSHRNT, aa64_sve2, do_shr_narrow, a, uqshrnt_ops) +TRANS_FEAT(UQSHRNT, aa64_sme_or_sve2, do_shr_narrow, a, uqshrnt_ops) static const GVecGen2i uqrshrnb_ops[3] = { { .fno = gen_helper_sve2_uqrshrnb_h }, { .fno = gen_helper_sve2_uqrshrnb_s }, { .fno = gen_helper_sve2_uqrshrnb_d }, }; -TRANS_FEAT(UQRSHRNB, aa64_sve2, do_shr_narrow, a, uqrshrnb_ops) +TRANS_FEAT(UQRSHRNB, aa64_sme_or_sve2, do_shr_narrow, a, uqrshrnb_ops) static const GVecGen2i uqrshrnt_ops[3] = { { .fno = gen_helper_sve2_uqrshrnt_h }, { .fno = gen_helper_sve2_uqrshrnt_s }, { .fno = gen_helper_sve2_uqrshrnt_d }, }; -TRANS_FEAT(UQRSHRNT, aa64_sve2, do_shr_narrow, a, uqrshrnt_ops) +TRANS_FEAT(UQRSHRNT, aa64_sme_or_sve2, do_shr_narrow, a, uqrshrnt_ops) #define DO_SVE2_ZZZ_NARROW(NAME, name) \ static gen_helper_gvec_3 * const name##_fns[4] = { \ NULL, gen_helper_sve2_##name##_h, \ gen_helper_sve2_##name##_s, gen_helper_sve2_##name##_d, \ }; \ - TRANS_FEAT(NAME, aa64_sve2, gen_gvec_ool_arg_zzz, \ + TRANS_FEAT(NAME, aa64_sme_or_sve2, gen_gvec_ool_arg_zzz, \ name##_fns[a->esz], a, 0) DO_SVE2_ZZZ_NARROW(ADDHNB, addhnb) @@ -7660,11 +7660,11 @@ TRANS_FEAT_NONSTREAMING(HISTCNT, aa64_sve2, gen_gvec_ool_arg_zpzz, TRANS_FEAT_NONSTREAMING(HISTSEG, aa64_sve2, gen_gvec_ool_arg_zzz, a->esz == 0 ? gen_helper_sve2_histseg : NULL, a, 0) -DO_ZPZZ_FP(FADDP, aa64_sve2, sve2_faddp_zpzz) -DO_ZPZZ_FP(FMAXNMP, aa64_sve2, sve2_fmaxnmp_zpzz) -DO_ZPZZ_FP(FMINNMP, aa64_sve2, sve2_fminnmp_zpzz) -DO_ZPZZ_FP(FMAXP, aa64_sve2, sve2_fmaxp_zpzz) -DO_ZPZZ_FP(FMINP, aa64_sve2, sve2_fminp_zpzz) +DO_ZPZZ_FP(FADDP, aa64_sme_or_sve2, sve2_faddp_zpzz) +DO_ZPZZ_FP(FMAXNMP, aa64_sme_or_sve2, sve2_fmaxnmp_zpzz) +DO_ZPZZ_FP(FMINNMP, aa64_sme_or_sve2, sve2_fminnmp_zpzz) +DO_ZPZZ_FP(FMAXP, aa64_sme_or_sve2, sve2_fmaxp_zpzz) +DO_ZPZZ_FP(FMINP, aa64_sme_or_sve2, sve2_fminp_zpzz) static bool do_fmmla(DisasContext *s, arg_rrrr_esz *a, gen_helper_gvec_4_ptr *fn) @@ -7690,92 +7690,92 @@ static gen_helper_gvec_4 * const sqdmlal_zzzw_fns[] = { NULL, gen_helper_sve2_sqdmlal_zzzw_h, gen_helper_sve2_sqdmlal_zzzw_s, gen_helper_sve2_sqdmlal_zzzw_d, }; -TRANS_FEAT(SQDMLALB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLALB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlal_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(SQDMLALT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLALT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlal_zzzw_fns[a->esz], a, 3) -TRANS_FEAT(SQDMLALBT, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLALBT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlal_zzzw_fns[a->esz], a, 2) static gen_helper_gvec_4 * const sqdmlsl_zzzw_fns[] = { NULL, gen_helper_sve2_sqdmlsl_zzzw_h, gen_helper_sve2_sqdmlsl_zzzw_s, gen_helper_sve2_sqdmlsl_zzzw_d, }; -TRANS_FEAT(SQDMLSLB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLSLB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlsl_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(SQDMLSLT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLSLT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlsl_zzzw_fns[a->esz], a, 3) -TRANS_FEAT(SQDMLSLBT, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQDMLSLBT, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqdmlsl_zzzw_fns[a->esz], a, 2) static gen_helper_gvec_4 * const sqrdmlah_fns[] = { gen_helper_sve2_sqrdmlah_b, gen_helper_sve2_sqrdmlah_h, gen_helper_sve2_sqrdmlah_s, gen_helper_sve2_sqrdmlah_d, }; -TRANS_FEAT(SQRDMLAH_zzzz, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQRDMLAH_zzzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqrdmlah_fns[a->esz], a, 0) static gen_helper_gvec_4 * const sqrdmlsh_fns[] = { gen_helper_sve2_sqrdmlsh_b, gen_helper_sve2_sqrdmlsh_h, gen_helper_sve2_sqrdmlsh_s, gen_helper_sve2_sqrdmlsh_d, }; -TRANS_FEAT(SQRDMLSH_zzzz, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SQRDMLSH_zzzz, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, sqrdmlsh_fns[a->esz], a, 0) static gen_helper_gvec_4 * const smlal_zzzw_fns[] = { NULL, gen_helper_sve2_smlal_zzzw_h, gen_helper_sve2_smlal_zzzw_s, gen_helper_sve2_smlal_zzzw_d, }; -TRANS_FEAT(SMLALB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SMLALB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, smlal_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(SMLALT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SMLALT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, smlal_zzzw_fns[a->esz], a, 1) static gen_helper_gvec_4 * const umlal_zzzw_fns[] = { NULL, gen_helper_sve2_umlal_zzzw_h, gen_helper_sve2_umlal_zzzw_s, gen_helper_sve2_umlal_zzzw_d, }; -TRANS_FEAT(UMLALB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(UMLALB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, umlal_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(UMLALT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(UMLALT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, umlal_zzzw_fns[a->esz], a, 1) static gen_helper_gvec_4 * const smlsl_zzzw_fns[] = { NULL, gen_helper_sve2_smlsl_zzzw_h, gen_helper_sve2_smlsl_zzzw_s, gen_helper_sve2_smlsl_zzzw_d, }; -TRANS_FEAT(SMLSLB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SMLSLB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, smlsl_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(SMLSLT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(SMLSLT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, smlsl_zzzw_fns[a->esz], a, 1) static gen_helper_gvec_4 * const umlsl_zzzw_fns[] = { NULL, gen_helper_sve2_umlsl_zzzw_h, gen_helper_sve2_umlsl_zzzw_s, gen_helper_sve2_umlsl_zzzw_d, }; -TRANS_FEAT(UMLSLB_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(UMLSLB_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, umlsl_zzzw_fns[a->esz], a, 0) -TRANS_FEAT(UMLSLT_zzzw, aa64_sve2, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(UMLSLT_zzzw, aa64_sme_or_sve2, gen_gvec_ool_arg_zzzz, umlsl_zzzw_fns[a->esz], a, 1) static gen_helper_gvec_4 * const cmla_fns[] = { gen_helper_sve2_cmla_zzzz_b, gen_helper_sve2_cmla_zzzz_h, gen_helper_sve2_cmla_zzzz_s, gen_helper_sve2_cmla_zzzz_d, }; -TRANS_FEAT(CMLA_zzzz, aa64_sve2, gen_gvec_ool_zzzz, +TRANS_FEAT(CMLA_zzzz, aa64_sme_or_sve2, gen_gvec_ool_zzzz, cmla_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->rot) static gen_helper_gvec_4 * const cdot_fns[] = { NULL, NULL, gen_helper_sve2_cdot_zzzz_s, gen_helper_sve2_cdot_zzzz_d }; -TRANS_FEAT(CDOT_zzzz, aa64_sve2, gen_gvec_ool_zzzz, +TRANS_FEAT(CDOT_zzzz, aa64_sme_or_sve2, gen_gvec_ool_zzzz, cdot_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->rot) static gen_helper_gvec_4 * const sqrdcmlah_fns[] = { gen_helper_sve2_sqrdcmlah_zzzz_b, gen_helper_sve2_sqrdcmlah_zzzz_h, gen_helper_sve2_sqrdcmlah_zzzz_s, gen_helper_sve2_sqrdcmlah_zzzz_d, }; -TRANS_FEAT(SQRDCMLAH_zzzz, aa64_sve2, gen_gvec_ool_zzzz, +TRANS_FEAT(SQRDCMLAH_zzzz, aa64_sme_or_sve2, gen_gvec_ool_zzzz, sqrdcmlah_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->rot) TRANS_FEAT(USDOT_zzzz_4s, aa64_sve_i8mm, gen_gvec_ool_arg_zzzz, @@ -7813,30 +7813,30 @@ static bool trans_RAX1(DisasContext *s, arg_RAX1 *a) return gen_gvec_fn_arg_zzz(s, gen_gvec_rax1, a); } -TRANS_FEAT(FCVTNT_sh, aa64_sve2, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTNT_sh, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_sh, a, 0, FPST_A64) -TRANS_FEAT(FCVTNT_ds, aa64_sve2, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTNT_ds, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_ds, a, 0, FPST_A64) TRANS_FEAT(BFCVTNT, aa64_sve_bf16, gen_gvec_fpst_arg_zpz, gen_helper_sve_bfcvtnt, a, 0, s->fpcr_ah ? FPST_AH : FPST_A64) -TRANS_FEAT(FCVTLT_hs, aa64_sve2, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTLT_hs, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtlt_hs, a, 0, FPST_A64) -TRANS_FEAT(FCVTLT_sd, aa64_sve2, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(FCVTLT_sd, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtlt_sd, a, 0, FPST_A64) -TRANS_FEAT(FCVTX_ds, aa64_sve2, do_frint_mode, a, +TRANS_FEAT(FCVTX_ds, aa64_sme_or_sve2, do_frint_mode, a, FPROUNDING_ODD, gen_helper_sve_fcvt_ds) -TRANS_FEAT(FCVTXNT_ds, aa64_sve2, do_frint_mode, a, +TRANS_FEAT(FCVTXNT_ds, aa64_sme_or_sve2, do_frint_mode, a, FPROUNDING_ODD, gen_helper_sve2_fcvtnt_ds) static gen_helper_gvec_3_ptr * const flogb_fns[] = { NULL, gen_helper_flogb_h, gen_helper_flogb_s, gen_helper_flogb_d }; -TRANS_FEAT(FLOGB, aa64_sve2, gen_gvec_fpst_arg_zpz, flogb_fns[a->esz], +TRANS_FEAT(FLOGB, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, flogb_fns[a->esz], a, 0, a->esz == MO_16 ? FPST_A64_F16 : FPST_A64) static bool do_FMLAL_zzzw(DisasContext *s, arg_rrrr_esz *a, bool sub, bool sel) @@ -7846,10 +7846,10 @@ static bool do_FMLAL_zzzw(DisasContext *s, arg_rrrr_esz *a, bool sub, bool sel) (sel << 1) | sub, tcg_env); } -TRANS_FEAT(FMLALB_zzzw, aa64_sve2, do_FMLAL_zzzw, a, false, false) -TRANS_FEAT(FMLALT_zzzw, aa64_sve2, do_FMLAL_zzzw, a, false, true) -TRANS_FEAT(FMLSLB_zzzw, aa64_sve2, do_FMLAL_zzzw, a, true, false) -TRANS_FEAT(FMLSLT_zzzw, aa64_sve2, do_FMLAL_zzzw, a, true, true) +TRANS_FEAT(FMLALB_zzzw, aa64_sme_or_sve2, do_FMLAL_zzzw, a, false, false) +TRANS_FEAT(FMLALT_zzzw, aa64_sme_or_sve2, do_FMLAL_zzzw, a, false, true) +TRANS_FEAT(FMLSLB_zzzw, aa64_sme_or_sve2, do_FMLAL_zzzw, a, true, false) +TRANS_FEAT(FMLSLT_zzzw, aa64_sme_or_sve2, do_FMLAL_zzzw, a, true, true) static bool do_FMLAL_zzxw(DisasContext *s, arg_rrxr_esz *a, bool sub, bool sel) { @@ -7858,10 +7858,10 @@ static bool do_FMLAL_zzxw(DisasContext *s, arg_rrxr_esz *a, bool sub, bool sel) (a->index << 3) | (sel << 1) | sub, tcg_env); } -TRANS_FEAT(FMLALB_zzxw, aa64_sve2, do_FMLAL_zzxw, a, false, false) -TRANS_FEAT(FMLALT_zzxw, aa64_sve2, do_FMLAL_zzxw, a, false, true) -TRANS_FEAT(FMLSLB_zzxw, aa64_sve2, do_FMLAL_zzxw, a, true, false) -TRANS_FEAT(FMLSLT_zzxw, aa64_sve2, do_FMLAL_zzxw, a, true, true) +TRANS_FEAT(FMLALB_zzxw, aa64_sme_or_sve2, do_FMLAL_zzxw, a, false, false) +TRANS_FEAT(FMLALT_zzxw, aa64_sme_or_sve2, do_FMLAL_zzxw, a, false, true) +TRANS_FEAT(FMLSLB_zzxw, aa64_sme_or_sve2, do_FMLAL_zzxw, a, true, false) +TRANS_FEAT(FMLSLT_zzxw, aa64_sme_or_sve2, do_FMLAL_zzxw, a, true, true) TRANS_FEAT_NONSTREAMING(SMMLA, aa64_sve_i8mm, gen_gvec_ool_arg_zzzz, gen_helper_gvec_smmla_b, a, 0) From 5ca3420055d3c30a6a32ae8d0b03e2bf337734b2 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 011/859] target/arm/tcg: Correct SVE/SME I8MM checks The I8MM field of ID_AA64ZFR0_EL1 is set when the CPU implements FEAT_I8MM and either FEAT_SVE or FEAT_SME. Currently we assume that it is only set for FEAT_SVE. Update the feature checks: * we rename the existing feature check function to sve_sme_i8mm to indicate that it is true for either SVE or SME I8MM * we add a new check function for FEAT_SVE && FEAT_I8MM (giving it the sve_i8mm name that the old function used to have) * the instructions which are (SVE || SME) && I8MM need their checks updating to sve_sme_i8mm: these are SUDOT, USDOT * instructions which are SVE && I8MM (i.e. really SVE-only) stay unchanged with sve_i8mm: these are SMMLA, USMMLA, UMMLA Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-12-peter.maydell@linaro.org --- target/arm/cpu-features.h | 8 +++++++- target/arm/tcg/translate-sve.c | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 6935ef2f7862c..40eb8cef17556 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1464,7 +1464,8 @@ static inline bool isar_feature_aa64_sve2_sm4(const ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, SM4) != 0; } -static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) +/* Note that this is true if either SVE or SME are implemented with I8MM */ +static inline bool isar_feature_aa64_sme_sve_i8mm(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, I8MM) != 0; } @@ -1557,6 +1558,11 @@ static inline bool isar_feature_aa64_sme2_f64f64(const ARMISARegisters *id) return isar_feature_aa64_sme2(id) && isar_feature_aa64_sme_f64f64(id); } +static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_i8mm(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 44eda7b07d8a6..53d35f6de97e3 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -3758,9 +3758,9 @@ TRANS_FEAT(UDOT_zzxw_4s, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, TRANS_FEAT(UDOT_zzxw_4d, aa64_sme_or_sve, gen_gvec_ool_arg_zzxz, gen_helper_gvec_udot_idx_4h, a) -TRANS_FEAT(SUDOT_zzxw_4s, aa64_sve_i8mm, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(SUDOT_zzxw_4s, aa64_sme_sve_i8mm, gen_gvec_ool_arg_zzxz, gen_helper_gvec_sudot_idx_4b, a) -TRANS_FEAT(USDOT_zzxw_4s, aa64_sve_i8mm, gen_gvec_ool_arg_zzxz, +TRANS_FEAT(USDOT_zzxw_4s, aa64_sme_sve_i8mm, gen_gvec_ool_arg_zzxz, gen_helper_gvec_usdot_idx_4b, a) TRANS_FEAT(SDOT_zzxw_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzxz, @@ -7778,7 +7778,7 @@ static gen_helper_gvec_4 * const sqrdcmlah_fns[] = { TRANS_FEAT(SQRDCMLAH_zzzz, aa64_sme_or_sve2, gen_gvec_ool_zzzz, sqrdcmlah_fns[a->esz], a->rd, a->rn, a->rm, a->ra, a->rot) -TRANS_FEAT(USDOT_zzzz_4s, aa64_sve_i8mm, gen_gvec_ool_arg_zzzz, +TRANS_FEAT(USDOT_zzzz_4s, aa64_sme_sve_i8mm, gen_gvec_ool_arg_zzzz, gen_helper_gvec_usdot_4b, a, 0) TRANS_FEAT(SDOT_zzzz_2s, aa64_sme2_or_sve2p1, gen_gvec_ool_arg_zzzz, From 3c106377904f9aa08249696622c12df1ba5e7e66 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 012/859] target/arm/tcg: Correct SVE/SME BF16 checks As with I8MM, the BF16 field of ID_AA64ZFR0_EL1 is set when the CPU implements FEAT_BF16 and either FEAT_SVE or FEAT_SME, so we need to have separate checks for "(SVE || SME) && BF16" and "SVE && BF16". Follow the same pattern as with I8MM: * aa64_sve_sme_bf16 means (SVE || SME) && BF16 * aa64_sve_bf16 means (SVE && BF16) BFMMLA is the only SVE BF16 insn that isn't in SME. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-13-peter.maydell@linaro.org --- target/arm/cpu-features.h | 7 ++++++- target/arm/tcg/translate-sve.c | 16 ++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 40eb8cef17556..83db3fd950947 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1449,7 +1449,7 @@ static inline bool isar_feature_aa64_sve2_bitperm(const ARMISARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BITPERM) != 0; } -static inline bool isar_feature_aa64_sve_bf16(const ARMISARegisters *id) +static inline bool isar_feature_aa64_sme_sve_bf16(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ZFR0, BFLOAT16) != 0; } @@ -1563,6 +1563,11 @@ static inline bool isar_feature_aa64_sve_i8mm(const ARMISARegisters *id) return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_i8mm(id); } +static inline bool isar_feature_aa64_sve_bf16(const ARMISARegisters *id) +{ + return isar_feature_aa64_sve(id) && isar_feature_aa64_sme_sve_bf16(id); +} + /* * Feature tests for "does this exist in either 32-bit or 64-bit?" */ diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 53d35f6de97e3..956ddee123201 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -4430,7 +4430,7 @@ TRANS_FEAT(FCVT_sh, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, TRANS_FEAT(FCVT_hs, aa64_sme_or_sve, gen_gvec_fpst_arg_zpz, gen_helper_sve_fcvt_hs, a, 0, FPST_A64_F16) -TRANS_FEAT(BFCVT, aa64_sve_bf16, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(BFCVT, aa64_sme_sve_bf16, gen_gvec_fpst_arg_zpz, gen_helper_sve_bfcvt, a, 0, s->fpcr_ah ? FPST_AH : FPST_A64) @@ -7818,7 +7818,7 @@ TRANS_FEAT(FCVTNT_sh, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, TRANS_FEAT(FCVTNT_ds, aa64_sme_or_sve2, gen_gvec_fpst_arg_zpz, gen_helper_sve2_fcvtnt_ds, a, 0, FPST_A64) -TRANS_FEAT(BFCVTNT, aa64_sve_bf16, gen_gvec_fpst_arg_zpz, +TRANS_FEAT(BFCVTNT, aa64_sme_sve_bf16, gen_gvec_fpst_arg_zpz, gen_helper_sve_bfcvtnt, a, 0, s->fpcr_ah ? FPST_AH : FPST_A64) @@ -7875,9 +7875,9 @@ TRANS_FEAT(FDOT_zzzz, aa64_sme2_or_sve2p1, gen_gvec_env_arg_zzzz, TRANS_FEAT(FDOT_zzxz, aa64_sme2_or_sve2p1, gen_gvec_env_arg_zzxz, gen_helper_sme2_fdot_idx_h, a) -TRANS_FEAT(BFDOT_zzzz, aa64_sve_bf16, gen_gvec_env_arg_zzzz, +TRANS_FEAT(BFDOT_zzzz, aa64_sme_sve_bf16, gen_gvec_env_arg_zzzz, gen_helper_gvec_bfdot, a, 0) -TRANS_FEAT(BFDOT_zzxz, aa64_sve_bf16, gen_gvec_env_arg_zzxz, +TRANS_FEAT(BFDOT_zzxz, aa64_sme_sve_bf16, gen_gvec_env_arg_zzxz, gen_helper_gvec_bfdot_idx, a) TRANS_FEAT_NONSTREAMING(BFMMLA, aa64_sve_bf16, gen_gvec_env_arg_zzzz, @@ -7890,8 +7890,8 @@ static bool do_BFMLAL_zzzw(DisasContext *s, arg_rrrr_esz *a, bool sel) s->fpcr_ah ? FPST_AH : FPST_A64); } -TRANS_FEAT(BFMLALB_zzzw, aa64_sve_bf16, do_BFMLAL_zzzw, a, false) -TRANS_FEAT(BFMLALT_zzzw, aa64_sve_bf16, do_BFMLAL_zzzw, a, true) +TRANS_FEAT(BFMLALB_zzzw, aa64_sme_sve_bf16, do_BFMLAL_zzzw, a, false) +TRANS_FEAT(BFMLALT_zzzw, aa64_sme_sve_bf16, do_BFMLAL_zzzw, a, true) static bool do_BFMLAL_zzxw(DisasContext *s, arg_rrxr_esz *a, bool sel) { @@ -7901,8 +7901,8 @@ static bool do_BFMLAL_zzxw(DisasContext *s, arg_rrxr_esz *a, bool sel) s->fpcr_ah ? FPST_AH : FPST_A64); } -TRANS_FEAT(BFMLALB_zzxw, aa64_sve_bf16, do_BFMLAL_zzxw, a, false) -TRANS_FEAT(BFMLALT_zzxw, aa64_sve_bf16, do_BFMLAL_zzxw, a, true) +TRANS_FEAT(BFMLALB_zzxw, aa64_sme_sve_bf16, do_BFMLAL_zzxw, a, false) +TRANS_FEAT(BFMLALT_zzxw, aa64_sme_sve_bf16, do_BFMLAL_zzxw, a, true) static bool do_BFMLSL_zzzw(DisasContext *s, arg_rrrr_esz *a, bool sel) { From 8952556536461af0b2fb398438275e19485943dc Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 013/859] target/arm: Don't squash all ID_AA64ZFR0_EL1 fields for non-SVE The ID register ID_AA64ZFR0_EL1's fields are not all for SVE exclusive features; some are also used to describe SME on an SME-only CPU: SVE-only fields: * F64MM, F32MM, F16MM, SM4, B16B16, SVEVer Fields used for SVE and SME (in some cases there is also a field for SME in ID_AA64SMFR0_EL1, but it is just a "present or absent" single bit flag and the ZFR0 field then tells you what level of support is present): * I8MM, SHA3, BF16, BitPerm, EltPerm, AES Currently we zero the whole ID_AA64ZFR0_EL1 register in arm_cpu_sve_finalize() if SVE is not present, which wipes also the fields we need for SME. Only clear the fields which are SVE-specific here, and clear the rest in arm_cpu_sme_finalize() if we have neither SME nor SVE. This requires us to update our ID_AA64ZFR0 field definitions to match the rev M.a.a Arm ARM, as the F16MM SVE-only field is not one we had a definition for previously. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-14-peter.maydell@linaro.org --- target/arm/cpu-features.h | 2 ++ target/arm/cpu64.c | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 83db3fd950947..b683c9551a0e9 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -368,12 +368,14 @@ FIELD(ID_AA64DFR0, HPMN0, 60, 4) FIELD(ID_AA64ZFR0, SVEVER, 0, 4) FIELD(ID_AA64ZFR0, AES, 4, 4) +FIELD(ID_AA64ZFR0, ELTPERM, 12, 4) FIELD(ID_AA64ZFR0, BITPERM, 16, 4) FIELD(ID_AA64ZFR0, BFLOAT16, 20, 4) FIELD(ID_AA64ZFR0, B16B16, 24, 4) FIELD(ID_AA64ZFR0, SHA3, 32, 4) FIELD(ID_AA64ZFR0, SM4, 40, 4) FIELD(ID_AA64ZFR0, I8MM, 44, 4) +FIELD(ID_AA64ZFR0, F16MM, 48, 4) FIELD(ID_AA64ZFR0, F32MM, 52, 4) FIELD(ID_AA64ZFR0, F64MM, 56, 4) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index 4d316f5a71b20..b2be8c9fbadd3 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -136,9 +136,17 @@ void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp) if (!cpu_isar_feature(aa64_sve, cpu)) { /* * SVE is disabled and so are all vector lengths. Good. - * Disable all SVE extensions as well. + * Disable all SVE extensions as well. Note that some ZFR0 + * fields are used also by SME so must not be wiped in + * an SME-no-SVE config. We will clear the rest in + * arm_cpu_sme_finalize() if necessary. */ - SET_IDREG(&cpu->isar, ID_AA64ZFR0, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, F64MM, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, F32MM, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, F16MM, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, SM4, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, B16B16, 0); + FIELD_DP64_IDREG(&cpu->isar, ID_AA64ZFR0, SVEVER, 0); return; } @@ -338,6 +346,10 @@ void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp) if (vq_map == 0) { if (!cpu_isar_feature(aa64_sme, cpu)) { SET_IDREG(&cpu->isar, ID_AA64SMFR0, 0); + if (!cpu_isar_feature(aa64_sve, cpu)) { + /* This clears the "SVE or SME" fields in ZFR0 */ + SET_IDREG(&cpu->isar, ID_AA64ZFR0, 0); + } return; } From c38e9dc3b6e27e738f50920b02a8dd0c90a061ef Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 014/859] target/arm: Squash FEAT_SME_FA64 if FEAT_SVE is not present FEAT_SME_FA64 allows Streaming SVE code to access the whole SVE instruction set; it requires FEAT_SVE to be present. If we have a CPU with SME but not SVE, squash the FA64 bit in arm_cpu_sme_finalize(). This doesn't have any effect at the moment because we don't let the user create an SME-without-SVE CPU, but we are about to lift that restriction. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-id: 20260202133353.2231685-15-peter.maydell@linaro.org --- target/arm/cpu64.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c index b2be8c9fbadd3..dec430c48b92a 100644 --- a/target/arm/cpu64.c +++ b/target/arm/cpu64.c @@ -388,6 +388,11 @@ void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp) /* SME2 or better */ FIELD_DP64_IDREG(&cpu->isar, ID_AA64PFR1, SME, 2); } + + if (!cpu_isar_feature(aa64_sve, cpu)) { + /* FEAT_SME_FA64 requires SVE, not just SME */ + FIELD_DP64_IDREG(&cpu->isar, ID_AA64SMFR0, FA64, 0); + } } static bool cpu_arm_get_sme(Object *obj, Error **errp) From a0660e2b2deb77725cc508ccc238619ca14edca8 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 015/859] target/arm: Permit configurations with SME but not SVE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In commit f7767ca30179 ("target/arm: Disable SME if SVE is disabled") we added code that forces SME to be disabled if SVE is disabled. This was something we did in the run-up to a release to avoid an assertion failure in smcr_write() if the user disabled SVE on the 'max' CPU without disabling SME also. Now that we have corrected the code so that it doesn't assert in an SME-without-SVE setup, we can let users select it. This effectively reverts f7767ca30179. Note that this now means that command lines like "-cpu max,sve=off" which used to turn off SME and SVE will now give you a CPU with SME but not SVE. This is permitted by our loose "max can always give you extra stuff" rules, but may be unexpected to users. Mention this in the CPU property documentation. Reviewed-by: Richard Henderson Reviewed-by: Alex Bennée Signed-off-by: Peter Maydell Message-id: 20260202133353.2231685-16-peter.maydell@linaro.org --- docs/system/arm/cpu-features.rst | 10 ++++++++-- target/arm/cpu.c | 10 ---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst index 024119449ccf3..3db1f19401f87 100644 --- a/docs/system/arm/cpu-features.rst +++ b/docs/system/arm/cpu-features.rst @@ -323,12 +323,18 @@ SVE CPU Property Parsing Semantics enable SVE2). There are not generally any lower-level controls for disabling specific SVE sub-features. + 11) Disabling SVE does not automatically disable SME. If you want to + disable both you must use ``sve=off,sme=off``. In particular, + for the ``max`` CPU, ``sve=off`` alone will give you a CPU with + SME only (and which therefore still has the SVE vector registers). + Most users will want to disable both at once. + SVE CPU Property Examples ------------------------- - 1) Disable SVE:: + 1) Disable SVE and SME:: - $ qemu-system-aarch64 -M virt -cpu max,sve=off + $ qemu-system-aarch64 -M virt -cpu max,sve=off,sme=off 2) Implicitly enable all vector lengths for the ``max`` CPU type:: diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 7542444b180f2..10f8280eef2dd 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1580,16 +1580,6 @@ void arm_cpu_finalize_features(ARMCPU *cpu, Error **errp) return; } - /* - * FEAT_SME is not architecturally dependent on FEAT_SVE (unless - * FEAT_SME_FA64 is present). However our implementation currently - * assumes it, so if the user asked for sve=off then turn off SME also. - * (KVM doesn't currently support SME at all.) - */ - if (cpu_isar_feature(aa64_sme, cpu) && !cpu_isar_feature(aa64_sve, cpu)) { - object_property_set_bool(OBJECT(cpu), "sme", false, &error_abort); - } - arm_cpu_sme_finalize(cpu, &local_err); if (local_err != NULL) { error_propagate(errp, local_err); From 1b33ed1689a1055e8c7c0faa91795b2a7e434e2e Mon Sep 17 00:00:00 2001 From: BALATON Zoltan Date: Wed, 18 Feb 2026 18:40:14 +0000 Subject: [PATCH 016/859] hw/usb/hcd-ohci: Implement frame number overflow event According to the USB OHCI specification section 6.5.6 ("FrameNumberOverflow Event"), when bit 15 of the frame count changes (either from 1 to 0 or 0 to 1) a FrameNumberOverflow interrupt should be generated. This fixes usb-audio on mac99,via=pmu with MacOS 9. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3274 Signed-off-by: BALATON Zoltan Tested-by: Elisey Konstantinov Message-id: 20260212185425.2F854596A29@zero.eik.bme.hu [PMM: added brief comment, tweaked commit message] Signed-off-by: Peter Maydell Reviewed-by: Peter Maydell --- hw/usb/hcd-ohci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c index c7e9c7190350c..1aeed9286f5ed 100644 --- a/hw/usb/hcd-ohci.c +++ b/hw/usb/hcd-ohci.c @@ -1246,6 +1246,10 @@ static void ohci_frame_boundary(void *opaque) hcca.frame = cpu_to_le16(ohci->frame_number); /* When the HC updates frame number, set pad to 0. Ref OHCI Spec 4.4.1*/ hcca.pad = 0; + /* FrameNumberOverflow happens when bit 15 of frame number changes */ + if (ohci->frame_number == 0x8000 || ohci->frame_number == 0) { + ohci_set_interrupt(ohci, OHCI_INTR_FNO); + } if (ohci->done_count == 0 && !(ohci->intr_status & OHCI_INTR_WD)) { if (!ohci->done) { From 4a22c50d4ab22f68f38e9c3e095ccceb9248bc15 Mon Sep 17 00:00:00 2001 From: Osama Abdelkader Date: Tue, 17 Feb 2026 21:47:54 +0100 Subject: [PATCH 017/859] whpx: remove duplicate include cpu.h is included twice Signed-off-by: Osama Abdelkader Message-id: 20260217204754.101223-1-osama.abdelkader@gmail.com Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell --- target/arm/whpx/whpx-all.c | 1 - 1 file changed, 1 deletion(-) diff --git a/target/arm/whpx/whpx-all.c b/target/arm/whpx/whpx-all.c index 36c5e30a03491..b0602266af29a 100644 --- a/target/arm/whpx/whpx-all.c +++ b/target/arm/whpx/whpx-all.c @@ -27,7 +27,6 @@ #include #include "syndrome.h" -#include "cpu.h" #include "target/arm/cpregs.h" #include "internals.h" From 2755af839eeb57708353704bb51cc4ad9a3b9cbc Mon Sep 17 00:00:00 2001 From: Osama Abdelkader Date: Tue, 17 Feb 2026 22:08:04 +0100 Subject: [PATCH 018/859] whpx: fix FP register loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In whpx_get_registers and whpx_set_registers the loops over FP registers were using whpx_reg_match[i].reg instead of whpx_fpreg_match[i].reg Signed-off-by: Osama Abdelkader Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Mohamed Mediouni > Message-id: 20260217210805.104427-1-osama.abdelkader@gmail.com Signed-off-by: Peter Maydell --- target/arm/whpx/whpx-all.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/arm/whpx/whpx-all.c b/target/arm/whpx/whpx-all.c index b0602266af29a..40ada2d5b65ba 100644 --- a/target/arm/whpx/whpx-all.c +++ b/target/arm/whpx/whpx-all.c @@ -554,7 +554,7 @@ void whpx_get_registers(CPUState *cpu) } for (i = 0; i < ARRAY_SIZE(whpx_fpreg_match); i++) { - whpx_get_reg(cpu, whpx_reg_match[i].reg, &val); + whpx_get_reg(cpu, whpx_fpreg_match[i].reg, &val); memcpy((char *)env + whpx_fpreg_match[i].offset, &val, sizeof(val.Reg128)); } @@ -605,7 +605,7 @@ void whpx_set_registers(CPUState *cpu, int level) for (i = 0; i < ARRAY_SIZE(whpx_fpreg_match); i++) { memcpy(&val.Reg128, (char *)env + whpx_fpreg_match[i].offset, sizeof(val.Reg128)); - whpx_set_reg(cpu, whpx_reg_match[i].reg, val); + whpx_set_reg(cpu, whpx_fpreg_match[i].reg, val); } clean_whv_register_value(&val); From 7bea97639e0505e911a639e8b7f12e2ddf2cabb0 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 20:01:37 -0800 Subject: [PATCH 019/859] target/arm: Move TCG-specific code out of debug_helper.c The target/arm/debug_helper.c file has some code which we need for non-TCG accelerators, but quite a lot which is guarded by a CONFIG_TCG ifdef. Move all this TCG-only code out to a new file target/arm/tcg/debug.c. In particular all the code requiring access to the TCG helper function prototypes is in the moved code, so we can drop the use of tcg/helper.h from debug_helper.c. Signed-off-by: Peter Maydell Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-2-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/debug_helper.c | 769 ------------------------------------ target/arm/tcg/debug.c | 782 +++++++++++++++++++++++++++++++++++++ target/arm/tcg/meson.build | 2 + 3 files changed, 784 insertions(+), 769 deletions(-) create mode 100644 target/arm/tcg/debug.c diff --git a/target/arm/debug_helper.c b/target/arm/debug_helper.c index 579516e154142..352c8e5c8e7ba 100644 --- a/target/arm/debug_helper.c +++ b/target/arm/debug_helper.c @@ -14,775 +14,6 @@ #include "exec/watchpoint.h" #include "system/tcg.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - -#ifdef CONFIG_TCG -/* Return the Exception Level targeted by debug exceptions. */ -static int arm_debug_target_el(CPUARMState *env) -{ - bool secure = arm_is_secure(env); - bool route_to_el2 = false; - - if (arm_feature(env, ARM_FEATURE_M)) { - return 1; - } - - if (arm_is_el2_enabled(env)) { - route_to_el2 = env->cp15.hcr_el2 & HCR_TGE || - env->cp15.mdcr_el2 & MDCR_TDE; - } - - if (route_to_el2) { - return 2; - } else if (arm_feature(env, ARM_FEATURE_EL3) && - !arm_el_is_aa64(env, 3) && secure) { - return 3; - } else { - return 1; - } -} - -/* - * Raise an exception to the debug target el. - * Modify syndrome to indicate when origin and target EL are the same. - */ -G_NORETURN static void -raise_exception_debug(CPUARMState *env, uint32_t excp, uint32_t syndrome) -{ - int debug_el = arm_debug_target_el(env); - int cur_el = arm_current_el(env); - - /* - * If singlestep is targeting a lower EL than the current one, then - * DisasContext.ss_active must be false and we can never get here. - * Similarly for watchpoint and breakpoint matches. - */ - assert(debug_el >= cur_el); - syndrome |= (debug_el == cur_el) << ARM_EL_EC_SHIFT; - raise_exception(env, excp, syndrome, debug_el); -} - -/* See AArch64.GenerateDebugExceptionsFrom() in ARM ARM pseudocode */ -static bool aa64_generate_debug_exceptions(CPUARMState *env) -{ - int cur_el = arm_current_el(env); - int debug_el; - - if (cur_el == 3) { - return false; - } - - /* MDCR_EL3.SDD disables debug events from Secure state */ - if (arm_is_secure_below_el3(env) - && extract32(env->cp15.mdcr_el3, 16, 1)) { - return false; - } - - /* - * Same EL to same EL debug exceptions need MDSCR_KDE enabled - * while not masking the (D)ebug bit in DAIF. - */ - debug_el = arm_debug_target_el(env); - - if (cur_el == debug_el) { - return extract32(env->cp15.mdscr_el1, 13, 1) - && !(env->daif & PSTATE_D); - } - - /* Otherwise the debug target needs to be a higher EL */ - return debug_el > cur_el; -} - -static bool aa32_generate_debug_exceptions(CPUARMState *env) -{ - int el = arm_current_el(env); - - if (el == 0 && arm_el_is_aa64(env, 1)) { - return aa64_generate_debug_exceptions(env); - } - - if (arm_is_secure(env)) { - int spd; - - if (el == 0 && (env->cp15.sder & 1)) { - /* - * SDER.SUIDEN means debug exceptions from Secure EL0 - * are always enabled. Otherwise they are controlled by - * SDCR.SPD like those from other Secure ELs. - */ - return true; - } - - spd = extract32(env->cp15.mdcr_el3, 14, 2); - switch (spd) { - case 1: - /* SPD == 0b01 is reserved, but behaves as 0b00. */ - case 0: - /* - * For 0b00 we return true if external secure invasive debug - * is enabled. On real hardware this is controlled by external - * signals to the core. QEMU always permits debug, and behaves - * as if DBGEN, SPIDEN, NIDEN and SPNIDEN are all tied high. - */ - return true; - case 2: - return false; - case 3: - return true; - } - } - - return el != 2; -} - -/* - * Return true if debugging exceptions are currently enabled. - * This corresponds to what in ARM ARM pseudocode would be - * if UsingAArch32() then - * return AArch32.GenerateDebugExceptions() - * else - * return AArch64.GenerateDebugExceptions() - * We choose to push the if() down into this function for clarity, - * since the pseudocode has it at all callsites except for the one in - * CheckSoftwareStep(), where it is elided because both branches would - * always return the same value. - */ -bool arm_generate_debug_exceptions(CPUARMState *env) -{ - if ((env->cp15.oslsr_el1 & 1) || (env->cp15.osdlr_el1 & 1)) { - return false; - } - if (is_a64(env)) { - return aa64_generate_debug_exceptions(env); - } else { - return aa32_generate_debug_exceptions(env); - } -} - -/* - * Is single-stepping active? (Note that the "is EL_D AArch64?" check - * implicitly means this always returns false in pre-v8 CPUs.) - */ -bool arm_singlestep_active(CPUARMState *env) -{ - return extract32(env->cp15.mdscr_el1, 0, 1) - && arm_el_is_aa64(env, arm_debug_target_el(env)) - && arm_generate_debug_exceptions(env); -} - -/* Return true if the linked breakpoint entry lbn passes its checks */ -static bool linked_bp_matches(ARMCPU *cpu, int lbn) -{ - CPUARMState *env = &cpu->env; - uint64_t bcr = env->cp15.dbgbcr[lbn]; - int brps = arm_num_brps(cpu); - int ctx_cmps = arm_num_ctx_cmps(cpu); - int bt; - uint32_t contextidr; - uint64_t hcr_el2; - - /* - * Links to unimplemented or non-context aware breakpoints are - * CONSTRAINED UNPREDICTABLE: either behave as if disabled, or - * as if linked to an UNKNOWN context-aware breakpoint (in which - * case DBGWCR_EL1.LBN must indicate that breakpoint). - * We choose the former. - */ - if (lbn >= brps || lbn < (brps - ctx_cmps)) { - return false; - } - - bcr = env->cp15.dbgbcr[lbn]; - - if (extract64(bcr, 0, 1) == 0) { - /* Linked breakpoint disabled : generate no events */ - return false; - } - - bt = extract64(bcr, 20, 4); - hcr_el2 = arm_hcr_el2_eff(env); - - switch (bt) { - case 3: /* linked context ID match */ - switch (arm_current_el(env)) { - default: - /* Context matches never fire in AArch64 EL3 */ - return false; - case 2: - if (!(hcr_el2 & HCR_E2H)) { - /* Context matches never fire in EL2 without E2H enabled. */ - return false; - } - contextidr = env->cp15.contextidr_el[2]; - break; - case 1: - contextidr = env->cp15.contextidr_el[1]; - break; - case 0: - if ((hcr_el2 & (HCR_E2H | HCR_TGE)) == (HCR_E2H | HCR_TGE)) { - contextidr = env->cp15.contextidr_el[2]; - } else { - contextidr = env->cp15.contextidr_el[1]; - } - break; - } - break; - - case 7: /* linked contextidr_el1 match */ - contextidr = env->cp15.contextidr_el[1]; - break; - case 13: /* linked contextidr_el2 match */ - contextidr = env->cp15.contextidr_el[2]; - break; - - case 9: /* linked VMID match (reserved if no EL2) */ - case 11: /* linked context ID and VMID match (reserved if no EL2) */ - case 15: /* linked full context ID match */ - default: - /* - * Links to Unlinked context breakpoints must generate no - * events; we choose to do the same for reserved values too. - */ - return false; - } - - /* - * We match the whole register even if this is AArch32 using the - * short descriptor format (in which case it holds both PROCID and ASID), - * since we don't implement the optional v7 context ID masking. - */ - return contextidr == (uint32_t)env->cp15.dbgbvr[lbn]; -} - -static bool bp_wp_matches(ARMCPU *cpu, int n, bool is_wp) -{ - CPUARMState *env = &cpu->env; - uint64_t cr; - int pac, hmc, ssc, wt, lbn; - /* - * Note that for watchpoints the check is against the CPU security - * state, not the S/NS attribute on the offending data access. - */ - bool is_secure = arm_is_secure(env); - int access_el = arm_current_el(env); - - if (is_wp) { - CPUWatchpoint *wp = env->cpu_watchpoint[n]; - - if (!wp || !(wp->flags & BP_WATCHPOINT_HIT)) { - return false; - } - cr = env->cp15.dbgwcr[n]; - if (wp->hitattrs.user) { - /* - * The LDRT/STRT/LDT/STT "unprivileged access" instructions should - * match watchpoints as if they were accesses done at EL0, even if - * the CPU is at EL1 or higher. - */ - access_el = 0; - } - } else { - uint64_t pc = is_a64(env) ? env->pc : env->regs[15]; - - if (!env->cpu_breakpoint[n] || env->cpu_breakpoint[n]->pc != pc) { - return false; - } - cr = env->cp15.dbgbcr[n]; - } - /* - * The WATCHPOINT_HIT flag guarantees us that the watchpoint is - * enabled and that the address and access type match; for breakpoints - * we know the address matched; check the remaining fields, including - * linked breakpoints. We rely on WCR and BCR having the same layout - * for the LBN, SSC, HMC, PAC/PMC and is-linked fields. - * Note that some combinations of {PAC, HMC, SSC} are reserved and - * must act either like some valid combination or as if the watchpoint - * were disabled. We choose the former, and use this together with - * the fact that EL3 must always be Secure and EL2 must always be - * Non-Secure to simplify the code slightly compared to the full - * table in the ARM ARM. - */ - pac = FIELD_EX64(cr, DBGWCR, PAC); - hmc = FIELD_EX64(cr, DBGWCR, HMC); - ssc = FIELD_EX64(cr, DBGWCR, SSC); - - switch (ssc) { - case 0: - break; - case 1: - case 3: - if (is_secure) { - return false; - } - break; - case 2: - if (!is_secure) { - return false; - } - break; - } - - switch (access_el) { - case 3: - case 2: - if (!hmc) { - return false; - } - break; - case 1: - if (extract32(pac, 0, 1) == 0) { - return false; - } - break; - case 0: - if (extract32(pac, 1, 1) == 0) { - return false; - } - break; - default: - g_assert_not_reached(); - } - - wt = FIELD_EX64(cr, DBGWCR, WT); - lbn = FIELD_EX64(cr, DBGWCR, LBN); - - if (wt && !linked_bp_matches(cpu, lbn)) { - return false; - } - - return true; -} - -static bool check_watchpoints(ARMCPU *cpu) -{ - CPUARMState *env = &cpu->env; - int n; - - /* - * If watchpoints are disabled globally or we can't take debug - * exceptions here then watchpoint firings are ignored. - */ - if (extract32(env->cp15.mdscr_el1, 15, 1) == 0 - || !arm_generate_debug_exceptions(env)) { - return false; - } - - for (n = 0; n < ARRAY_SIZE(env->cpu_watchpoint); n++) { - if (bp_wp_matches(cpu, n, true)) { - return true; - } - } - return false; -} - -bool arm_debug_check_breakpoint(CPUState *cs) -{ - ARMCPU *cpu = ARM_CPU(cs); - CPUARMState *env = &cpu->env; - vaddr pc; - int n; - - /* - * If breakpoints are disabled globally or we can't take debug - * exceptions here then breakpoint firings are ignored. - */ - if (extract32(env->cp15.mdscr_el1, 15, 1) == 0 - || !arm_generate_debug_exceptions(env)) { - return false; - } - - /* - * Single-step exceptions have priority over breakpoint exceptions. - * If single-step state is active-pending, suppress the bp. - */ - if (arm_singlestep_active(env) && !(env->pstate & PSTATE_SS)) { - return false; - } - - /* - * PC alignment faults have priority over breakpoint exceptions. - */ - pc = is_a64(env) ? env->pc : env->regs[15]; - if ((is_a64(env) || !env->thumb) && (pc & 3) != 0) { - return false; - } - - /* - * Instruction aborts have priority over breakpoint exceptions. - * TODO: We would need to look up the page for PC and verify that - * it is present and executable. - */ - - for (n = 0; n < ARRAY_SIZE(env->cpu_breakpoint); n++) { - if (bp_wp_matches(cpu, n, false)) { - return true; - } - } - return false; -} - -bool arm_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp) -{ - /* - * Called by core code when a CPU watchpoint fires; need to check if this - * is also an architectural watchpoint match. - */ - ARMCPU *cpu = ARM_CPU(cs); - - return check_watchpoints(cpu); -} - -/* - * Return the FSR value for a debug exception (watchpoint, hardware - * breakpoint or BKPT insn) targeting the specified exception level. - */ -static uint32_t arm_debug_exception_fsr(CPUARMState *env) -{ - ARMMMUFaultInfo fi = { .type = ARMFault_Debug }; - int target_el = arm_debug_target_el(env); - bool using_lpae; - - if (arm_feature(env, ARM_FEATURE_M)) { - using_lpae = false; - } else if (target_el == 2 || arm_el_is_aa64(env, target_el)) { - using_lpae = true; - } else if (arm_feature(env, ARM_FEATURE_PMSA) && - arm_feature(env, ARM_FEATURE_V8)) { - using_lpae = true; - } else if (arm_feature(env, ARM_FEATURE_LPAE) && - (env->cp15.tcr_el[target_el] & TTBCR_EAE)) { - using_lpae = true; - } else { - using_lpae = false; - } - - if (using_lpae) { - return arm_fi_to_lfsc(&fi); - } else { - return arm_fi_to_sfsc(&fi); - } -} - -void arm_debug_excp_handler(CPUState *cs) -{ - /* - * Called by core code when a watchpoint or breakpoint fires; - * need to check which one and raise the appropriate exception. - */ - ARMCPU *cpu = ARM_CPU(cs); - CPUARMState *env = &cpu->env; - CPUWatchpoint *wp_hit = cs->watchpoint_hit; - - if (wp_hit) { - if (wp_hit->flags & BP_CPU) { - bool wnr = (wp_hit->flags & BP_WATCHPOINT_HIT_WRITE) != 0; - - cs->watchpoint_hit = NULL; - - env->exception.fsr = arm_debug_exception_fsr(env); - env->exception.vaddress = wp_hit->hitaddr; - raise_exception_debug(env, EXCP_DATA_ABORT, - syn_watchpoint(0, 0, wnr)); - } - } else { - uint64_t pc = is_a64(env) ? env->pc : env->regs[15]; - - /* - * (1) GDB breakpoints should be handled first. - * (2) Do not raise a CPU exception if no CPU breakpoint has fired, - * since singlestep is also done by generating a debug internal - * exception. - */ - if (cpu_breakpoint_test(cs, pc, BP_GDB) - || !cpu_breakpoint_test(cs, pc, BP_CPU)) { - return; - } - - env->exception.fsr = arm_debug_exception_fsr(env); - /* - * FAR is UNKNOWN: clear vaddress to avoid potentially exposing - * values to the guest that it shouldn't be able to see at its - * exception/security level. - */ - env->exception.vaddress = 0; - raise_exception_debug(env, EXCP_PREFETCH_ABORT, syn_breakpoint(0)); - } -} - -/* - * Raise an EXCP_BKPT with the specified syndrome register value, - * targeting the correct exception level for debug exceptions. - */ -void HELPER(exception_bkpt_insn)(CPUARMState *env, uint32_t syndrome) -{ - int debug_el = arm_debug_target_el(env); - int cur_el = arm_current_el(env); - - /* FSR will only be used if the debug target EL is AArch32. */ - env->exception.fsr = arm_debug_exception_fsr(env); - /* - * FAR is UNKNOWN: clear vaddress to avoid potentially exposing - * values to the guest that it shouldn't be able to see at its - * exception/security level. - */ - env->exception.vaddress = 0; - /* - * Other kinds of architectural debug exception are ignored if - * they target an exception level below the current one (in QEMU - * this is checked by arm_generate_debug_exceptions()). Breakpoint - * instructions are special because they always generate an exception - * to somewhere: if they can't go to the configured debug exception - * level they are taken to the current exception level. - */ - if (debug_el < cur_el) { - debug_el = cur_el; - } - raise_exception(env, EXCP_BKPT, syndrome, debug_el); -} - -void HELPER(exception_swstep)(CPUARMState *env, uint32_t syndrome) -{ - raise_exception_debug(env, EXCP_UDEF, syndrome); -} - -void hw_watchpoint_update(ARMCPU *cpu, int n) -{ - CPUARMState *env = &cpu->env; - vaddr len = 0; - vaddr wvr = env->cp15.dbgwvr[n]; - uint64_t wcr = env->cp15.dbgwcr[n]; - int mask; - int flags = BP_CPU | BP_STOP_BEFORE_ACCESS; - - if (env->cpu_watchpoint[n]) { - cpu_watchpoint_remove_by_ref(CPU(cpu), env->cpu_watchpoint[n]); - env->cpu_watchpoint[n] = NULL; - } - - if (!FIELD_EX64(wcr, DBGWCR, E)) { - /* E bit clear : watchpoint disabled */ - return; - } - - switch (FIELD_EX64(wcr, DBGWCR, LSC)) { - case 0: - /* LSC 00 is reserved and must behave as if the wp is disabled */ - return; - case 1: - flags |= BP_MEM_READ; - break; - case 2: - flags |= BP_MEM_WRITE; - break; - case 3: - flags |= BP_MEM_ACCESS; - break; - } - - /* - * Attempts to use both MASK and BAS fields simultaneously are - * CONSTRAINED UNPREDICTABLE; we opt to ignore BAS in this case, - * thus generating a watchpoint for every byte in the masked region. - */ - mask = FIELD_EX64(wcr, DBGWCR, MASK); - if (mask == 1 || mask == 2) { - /* - * Reserved values of MASK; we must act as if the mask value was - * some non-reserved value, or as if the watchpoint were disabled. - * We choose the latter. - */ - return; - } else if (mask) { - /* Watchpoint covers an aligned area up to 2GB in size */ - len = 1ULL << mask; - /* - * If masked bits in WVR are not zero it's CONSTRAINED UNPREDICTABLE - * whether the watchpoint fires when the unmasked bits match; we opt - * to generate the exceptions. - */ - wvr &= ~(len - 1); - } else { - /* Watchpoint covers bytes defined by the byte address select bits */ - int bas = FIELD_EX64(wcr, DBGWCR, BAS); - int basstart; - - if (extract64(wvr, 2, 1)) { - /* - * Deprecated case of an only 4-aligned address. BAS[7:4] are - * ignored, and BAS[3:0] define which bytes to watch. - */ - bas &= 0xf; - } - - if (bas == 0) { - /* This must act as if the watchpoint is disabled */ - return; - } - - /* - * The BAS bits are supposed to be programmed to indicate a contiguous - * range of bytes. Otherwise it is CONSTRAINED UNPREDICTABLE whether - * we fire for each byte in the word/doubleword addressed by the WVR. - * We choose to ignore any non-zero bits after the first range of 1s. - */ - basstart = ctz32(bas); - len = cto32(bas >> basstart); - wvr += basstart; - } - - cpu_watchpoint_insert(CPU(cpu), wvr, len, flags, - &env->cpu_watchpoint[n]); -} - -void hw_watchpoint_update_all(ARMCPU *cpu) -{ - int i; - CPUARMState *env = &cpu->env; - - /* - * Completely clear out existing QEMU watchpoints and our array, to - * avoid possible stale entries following migration load. - */ - cpu_watchpoint_remove_all(CPU(cpu), BP_CPU); - memset(env->cpu_watchpoint, 0, sizeof(env->cpu_watchpoint)); - - for (i = 0; i < ARRAY_SIZE(cpu->env.cpu_watchpoint); i++) { - hw_watchpoint_update(cpu, i); - } -} - -void hw_breakpoint_update(ARMCPU *cpu, int n) -{ - CPUARMState *env = &cpu->env; - uint64_t bvr = env->cp15.dbgbvr[n]; - uint64_t bcr = env->cp15.dbgbcr[n]; - vaddr addr; - int bt; - int flags = BP_CPU; - - if (env->cpu_breakpoint[n]) { - cpu_breakpoint_remove_by_ref(CPU(cpu), env->cpu_breakpoint[n]); - env->cpu_breakpoint[n] = NULL; - } - - if (!extract64(bcr, 0, 1)) { - /* E bit clear : watchpoint disabled */ - return; - } - - bt = extract64(bcr, 20, 4); - - switch (bt) { - case 4: /* unlinked address mismatch (reserved if AArch64) */ - case 5: /* linked address mismatch (reserved if AArch64) */ - qemu_log_mask(LOG_UNIMP, - "arm: address mismatch breakpoint types not implemented\n"); - return; - case 0: /* unlinked address match */ - case 1: /* linked address match */ - { - /* - * Bits [1:0] are RES0. - * - * It is IMPLEMENTATION DEFINED whether bits [63:49] - * ([63:53] for FEAT_LVA) are hardwired to a copy of the sign bit - * of the VA field ([48] or [52] for FEAT_LVA), or whether the - * value is read as written. It is CONSTRAINED UNPREDICTABLE - * whether the RESS bits are ignored when comparing an address. - * Therefore we are allowed to compare the entire register, which - * lets us avoid considering whether FEAT_LVA is actually enabled. - * - * The BAS field is used to allow setting breakpoints on 16-bit - * wide instructions; it is CONSTRAINED UNPREDICTABLE whether - * a bp will fire if the addresses covered by the bp and the addresses - * covered by the insn overlap but the insn doesn't start at the - * start of the bp address range. We choose to require the insn and - * the bp to have the same address. The constraints on writing to - * BAS enforced in dbgbcr_write mean we have only four cases: - * 0b0000 => no breakpoint - * 0b0011 => breakpoint on addr - * 0b1100 => breakpoint on addr + 2 - * 0b1111 => breakpoint on addr - * See also figure D2-3 in the v8 ARM ARM (DDI0487A.c). - */ - int bas = extract64(bcr, 5, 4); - addr = bvr & ~3ULL; - if (bas == 0) { - return; - } - if (bas == 0xc) { - addr += 2; - } - break; - } - case 2: /* unlinked context ID match */ - case 8: /* unlinked VMID match (reserved if no EL2) */ - case 10: /* unlinked context ID and VMID match (reserved if no EL2) */ - qemu_log_mask(LOG_UNIMP, - "arm: unlinked context breakpoint types not implemented\n"); - return; - case 9: /* linked VMID match (reserved if no EL2) */ - case 11: /* linked context ID and VMID match (reserved if no EL2) */ - case 3: /* linked context ID match */ - default: - /* - * We must generate no events for Linked context matches (unless - * they are linked to by some other bp/wp, which is handled in - * updates for the linking bp/wp). We choose to also generate no events - * for reserved values. - */ - return; - } - - cpu_breakpoint_insert(CPU(cpu), addr, flags, &env->cpu_breakpoint[n]); -} - -void hw_breakpoint_update_all(ARMCPU *cpu) -{ - int i; - CPUARMState *env = &cpu->env; - - /* - * Completely clear out existing QEMU breakpoints and our array, to - * avoid possible stale entries following migration load. - */ - cpu_breakpoint_remove_all(CPU(cpu), BP_CPU); - memset(env->cpu_breakpoint, 0, sizeof(env->cpu_breakpoint)); - - for (i = 0; i < ARRAY_SIZE(cpu->env.cpu_breakpoint); i++) { - hw_breakpoint_update(cpu, i); - } -} - -#if !defined(CONFIG_USER_ONLY) - -vaddr arm_adjust_watchpoint_address(CPUState *cs, vaddr addr, int len) -{ - ARMCPU *cpu = ARM_CPU(cs); - CPUARMState *env = &cpu->env; - - /* - * In BE32 system mode, target memory is stored byteswapped (on a - * little-endian host system), and by the time we reach here (via an - * opcode helper) the addresses of subword accesses have been adjusted - * to account for that, which means that watchpoints will not match. - * Undo the adjustment here. - */ - if (arm_sctlr_b(env)) { - if (len == 1) { - addr ^= 3; - } else if (len == 2) { - addr ^= 2; - } - } - - return addr; -} - -#endif /* !CONFIG_USER_ONLY */ -#endif /* CONFIG_TCG */ - /* * Check for traps to "powerdown debug" registers, which are controlled * by MDCR.TDOSA diff --git a/target/arm/tcg/debug.c b/target/arm/tcg/debug.c new file mode 100644 index 0000000000000..7dfb291a9bf80 --- /dev/null +++ b/target/arm/tcg/debug.c @@ -0,0 +1,782 @@ +/* + * ARM debug helpers used by TCG + * + * This code is licensed under the GNU GPL v2 or later. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "cpu.h" +#include "internals.h" +#include "cpu-features.h" +#include "cpregs.h" +#include "exec/watchpoint.h" +#include "system/tcg.h" + +#define HELPER_H "tcg/helper.h" +#include "exec/helper-proto.h.inc" + +/* Return the Exception Level targeted by debug exceptions. */ +static int arm_debug_target_el(CPUARMState *env) +{ + bool secure = arm_is_secure(env); + bool route_to_el2 = false; + + if (arm_feature(env, ARM_FEATURE_M)) { + return 1; + } + + if (arm_is_el2_enabled(env)) { + route_to_el2 = env->cp15.hcr_el2 & HCR_TGE || + env->cp15.mdcr_el2 & MDCR_TDE; + } + + if (route_to_el2) { + return 2; + } else if (arm_feature(env, ARM_FEATURE_EL3) && + !arm_el_is_aa64(env, 3) && secure) { + return 3; + } else { + return 1; + } +} + +/* + * Raise an exception to the debug target el. + * Modify syndrome to indicate when origin and target EL are the same. + */ +static G_NORETURN void +raise_exception_debug(CPUARMState *env, uint32_t excp, uint32_t syndrome) +{ + int debug_el = arm_debug_target_el(env); + int cur_el = arm_current_el(env); + + /* + * If singlestep is targeting a lower EL than the current one, then + * DisasContext.ss_active must be false and we can never get here. + * Similarly for watchpoint and breakpoint matches. + */ + assert(debug_el >= cur_el); + syndrome |= (debug_el == cur_el) << ARM_EL_EC_SHIFT; + raise_exception(env, excp, syndrome, debug_el); +} + +/* See AArch64.GenerateDebugExceptionsFrom() in ARM ARM pseudocode */ +static bool aa64_generate_debug_exceptions(CPUARMState *env) +{ + int cur_el = arm_current_el(env); + int debug_el; + + if (cur_el == 3) { + return false; + } + + /* MDCR_EL3.SDD disables debug events from Secure state */ + if (arm_is_secure_below_el3(env) + && extract32(env->cp15.mdcr_el3, 16, 1)) { + return false; + } + + /* + * Same EL to same EL debug exceptions need MDSCR_KDE enabled + * while not masking the (D)ebug bit in DAIF. + */ + debug_el = arm_debug_target_el(env); + + if (cur_el == debug_el) { + return extract32(env->cp15.mdscr_el1, 13, 1) + && !(env->daif & PSTATE_D); + } + + /* Otherwise the debug target needs to be a higher EL */ + return debug_el > cur_el; +} + +static bool aa32_generate_debug_exceptions(CPUARMState *env) +{ + int el = arm_current_el(env); + + if (el == 0 && arm_el_is_aa64(env, 1)) { + return aa64_generate_debug_exceptions(env); + } + + if (arm_is_secure(env)) { + int spd; + + if (el == 0 && (env->cp15.sder & 1)) { + /* + * SDER.SUIDEN means debug exceptions from Secure EL0 + * are always enabled. Otherwise they are controlled by + * SDCR.SPD like those from other Secure ELs. + */ + return true; + } + + spd = extract32(env->cp15.mdcr_el3, 14, 2); + switch (spd) { + case 1: + /* SPD == 0b01 is reserved, but behaves as 0b00. */ + case 0: + /* + * For 0b00 we return true if external secure invasive debug + * is enabled. On real hardware this is controlled by external + * signals to the core. QEMU always permits debug, and behaves + * as if DBGEN, SPIDEN, NIDEN and SPNIDEN are all tied high. + */ + return true; + case 2: + return false; + case 3: + return true; + } + } + + return el != 2; +} + +/* + * Return true if debugging exceptions are currently enabled. + * This corresponds to what in ARM ARM pseudocode would be + * if UsingAArch32() then + * return AArch32.GenerateDebugExceptions() + * else + * return AArch64.GenerateDebugExceptions() + * We choose to push the if() down into this function for clarity, + * since the pseudocode has it at all callsites except for the one in + * CheckSoftwareStep(), where it is elided because both branches would + * always return the same value. + */ +bool arm_generate_debug_exceptions(CPUARMState *env) +{ + if ((env->cp15.oslsr_el1 & 1) || (env->cp15.osdlr_el1 & 1)) { + return false; + } + if (is_a64(env)) { + return aa64_generate_debug_exceptions(env); + } else { + return aa32_generate_debug_exceptions(env); + } +} + +/* + * Is single-stepping active? (Note that the "is EL_D AArch64?" check + * implicitly means this always returns false in pre-v8 CPUs.) + */ +bool arm_singlestep_active(CPUARMState *env) +{ + return extract32(env->cp15.mdscr_el1, 0, 1) + && arm_el_is_aa64(env, arm_debug_target_el(env)) + && arm_generate_debug_exceptions(env); +} + +/* Return true if the linked breakpoint entry lbn passes its checks */ +static bool linked_bp_matches(ARMCPU *cpu, int lbn) +{ + CPUARMState *env = &cpu->env; + uint64_t bcr = env->cp15.dbgbcr[lbn]; + int brps = arm_num_brps(cpu); + int ctx_cmps = arm_num_ctx_cmps(cpu); + int bt; + uint32_t contextidr; + uint64_t hcr_el2; + + /* + * Links to unimplemented or non-context aware breakpoints are + * CONSTRAINED UNPREDICTABLE: either behave as if disabled, or + * as if linked to an UNKNOWN context-aware breakpoint (in which + * case DBGWCR_EL1.LBN must indicate that breakpoint). + * We choose the former. + */ + if (lbn >= brps || lbn < (brps - ctx_cmps)) { + return false; + } + + bcr = env->cp15.dbgbcr[lbn]; + + if (extract64(bcr, 0, 1) == 0) { + /* Linked breakpoint disabled : generate no events */ + return false; + } + + bt = extract64(bcr, 20, 4); + hcr_el2 = arm_hcr_el2_eff(env); + + switch (bt) { + case 3: /* linked context ID match */ + switch (arm_current_el(env)) { + default: + /* Context matches never fire in AArch64 EL3 */ + return false; + case 2: + if (!(hcr_el2 & HCR_E2H)) { + /* Context matches never fire in EL2 without E2H enabled. */ + return false; + } + contextidr = env->cp15.contextidr_el[2]; + break; + case 1: + contextidr = env->cp15.contextidr_el[1]; + break; + case 0: + if ((hcr_el2 & (HCR_E2H | HCR_TGE)) == (HCR_E2H | HCR_TGE)) { + contextidr = env->cp15.contextidr_el[2]; + } else { + contextidr = env->cp15.contextidr_el[1]; + } + break; + } + break; + + case 7: /* linked contextidr_el1 match */ + contextidr = env->cp15.contextidr_el[1]; + break; + case 13: /* linked contextidr_el2 match */ + contextidr = env->cp15.contextidr_el[2]; + break; + + case 9: /* linked VMID match (reserved if no EL2) */ + case 11: /* linked context ID and VMID match (reserved if no EL2) */ + case 15: /* linked full context ID match */ + default: + /* + * Links to Unlinked context breakpoints must generate no + * events; we choose to do the same for reserved values too. + */ + return false; + } + + /* + * We match the whole register even if this is AArch32 using the + * short descriptor format (in which case it holds both PROCID and ASID), + * since we don't implement the optional v7 context ID masking. + */ + return contextidr == (uint32_t)env->cp15.dbgbvr[lbn]; +} + +static bool bp_wp_matches(ARMCPU *cpu, int n, bool is_wp) +{ + CPUARMState *env = &cpu->env; + uint64_t cr; + int pac, hmc, ssc, wt, lbn; + /* + * Note that for watchpoints the check is against the CPU security + * state, not the S/NS attribute on the offending data access. + */ + bool is_secure = arm_is_secure(env); + int access_el = arm_current_el(env); + + if (is_wp) { + CPUWatchpoint *wp = env->cpu_watchpoint[n]; + + if (!wp || !(wp->flags & BP_WATCHPOINT_HIT)) { + return false; + } + cr = env->cp15.dbgwcr[n]; + if (wp->hitattrs.user) { + /* + * The LDRT/STRT/LDT/STT "unprivileged access" instructions should + * match watchpoints as if they were accesses done at EL0, even if + * the CPU is at EL1 or higher. + */ + access_el = 0; + } + } else { + uint64_t pc = is_a64(env) ? env->pc : env->regs[15]; + + if (!env->cpu_breakpoint[n] || env->cpu_breakpoint[n]->pc != pc) { + return false; + } + cr = env->cp15.dbgbcr[n]; + } + /* + * The WATCHPOINT_HIT flag guarantees us that the watchpoint is + * enabled and that the address and access type match; for breakpoints + * we know the address matched; check the remaining fields, including + * linked breakpoints. We rely on WCR and BCR having the same layout + * for the LBN, SSC, HMC, PAC/PMC and is-linked fields. + * Note that some combinations of {PAC, HMC, SSC} are reserved and + * must act either like some valid combination or as if the watchpoint + * were disabled. We choose the former, and use this together with + * the fact that EL3 must always be Secure and EL2 must always be + * Non-Secure to simplify the code slightly compared to the full + * table in the ARM ARM. + */ + pac = FIELD_EX64(cr, DBGWCR, PAC); + hmc = FIELD_EX64(cr, DBGWCR, HMC); + ssc = FIELD_EX64(cr, DBGWCR, SSC); + + switch (ssc) { + case 0: + break; + case 1: + case 3: + if (is_secure) { + return false; + } + break; + case 2: + if (!is_secure) { + return false; + } + break; + } + + switch (access_el) { + case 3: + case 2: + if (!hmc) { + return false; + } + break; + case 1: + if (extract32(pac, 0, 1) == 0) { + return false; + } + break; + case 0: + if (extract32(pac, 1, 1) == 0) { + return false; + } + break; + default: + g_assert_not_reached(); + } + + wt = FIELD_EX64(cr, DBGWCR, WT); + lbn = FIELD_EX64(cr, DBGWCR, LBN); + + if (wt && !linked_bp_matches(cpu, lbn)) { + return false; + } + + return true; +} + +static bool check_watchpoints(ARMCPU *cpu) +{ + CPUARMState *env = &cpu->env; + int n; + + /* + * If watchpoints are disabled globally or we can't take debug + * exceptions here then watchpoint firings are ignored. + */ + if (extract32(env->cp15.mdscr_el1, 15, 1) == 0 + || !arm_generate_debug_exceptions(env)) { + return false; + } + + for (n = 0; n < ARRAY_SIZE(env->cpu_watchpoint); n++) { + if (bp_wp_matches(cpu, n, true)) { + return true; + } + } + return false; +} + +bool arm_debug_check_breakpoint(CPUState *cs) +{ + ARMCPU *cpu = ARM_CPU(cs); + CPUARMState *env = &cpu->env; + vaddr pc; + int n; + + /* + * If breakpoints are disabled globally or we can't take debug + * exceptions here then breakpoint firings are ignored. + */ + if (extract32(env->cp15.mdscr_el1, 15, 1) == 0 + || !arm_generate_debug_exceptions(env)) { + return false; + } + + /* + * Single-step exceptions have priority over breakpoint exceptions. + * If single-step state is active-pending, suppress the bp. + */ + if (arm_singlestep_active(env) && !(env->pstate & PSTATE_SS)) { + return false; + } + + /* + * PC alignment faults have priority over breakpoint exceptions. + */ + pc = is_a64(env) ? env->pc : env->regs[15]; + if ((is_a64(env) || !env->thumb) && (pc & 3) != 0) { + return false; + } + + /* + * Instruction aborts have priority over breakpoint exceptions. + * TODO: We would need to look up the page for PC and verify that + * it is present and executable. + */ + + for (n = 0; n < ARRAY_SIZE(env->cpu_breakpoint); n++) { + if (bp_wp_matches(cpu, n, false)) { + return true; + } + } + return false; +} + +bool arm_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp) +{ + /* + * Called by core code when a CPU watchpoint fires; need to check if this + * is also an architectural watchpoint match. + */ + ARMCPU *cpu = ARM_CPU(cs); + + return check_watchpoints(cpu); +} + +/* + * Return the FSR value for a debug exception (watchpoint, hardware + * breakpoint or BKPT insn) targeting the specified exception level. + */ +static uint32_t arm_debug_exception_fsr(CPUARMState *env) +{ + ARMMMUFaultInfo fi = { .type = ARMFault_Debug }; + int target_el = arm_debug_target_el(env); + bool using_lpae; + + if (arm_feature(env, ARM_FEATURE_M)) { + using_lpae = false; + } else if (target_el == 2 || arm_el_is_aa64(env, target_el)) { + using_lpae = true; + } else if (arm_feature(env, ARM_FEATURE_PMSA) && + arm_feature(env, ARM_FEATURE_V8)) { + using_lpae = true; + } else if (arm_feature(env, ARM_FEATURE_LPAE) && + (env->cp15.tcr_el[target_el] & TTBCR_EAE)) { + using_lpae = true; + } else { + using_lpae = false; + } + + if (using_lpae) { + return arm_fi_to_lfsc(&fi); + } else { + return arm_fi_to_sfsc(&fi); + } +} + +void arm_debug_excp_handler(CPUState *cs) +{ + /* + * Called by core code when a watchpoint or breakpoint fires; + * need to check which one and raise the appropriate exception. + */ + ARMCPU *cpu = ARM_CPU(cs); + CPUARMState *env = &cpu->env; + CPUWatchpoint *wp_hit = cs->watchpoint_hit; + + if (wp_hit) { + if (wp_hit->flags & BP_CPU) { + bool wnr = (wp_hit->flags & BP_WATCHPOINT_HIT_WRITE) != 0; + + cs->watchpoint_hit = NULL; + + env->exception.fsr = arm_debug_exception_fsr(env); + env->exception.vaddress = wp_hit->hitaddr; + raise_exception_debug(env, EXCP_DATA_ABORT, + syn_watchpoint(0, 0, wnr)); + } + } else { + uint64_t pc = is_a64(env) ? env->pc : env->regs[15]; + + /* + * (1) GDB breakpoints should be handled first. + * (2) Do not raise a CPU exception if no CPU breakpoint has fired, + * since singlestep is also done by generating a debug internal + * exception. + */ + if (cpu_breakpoint_test(cs, pc, BP_GDB) + || !cpu_breakpoint_test(cs, pc, BP_CPU)) { + return; + } + + env->exception.fsr = arm_debug_exception_fsr(env); + /* + * FAR is UNKNOWN: clear vaddress to avoid potentially exposing + * values to the guest that it shouldn't be able to see at its + * exception/security level. + */ + env->exception.vaddress = 0; + raise_exception_debug(env, EXCP_PREFETCH_ABORT, syn_breakpoint(0)); + } +} + +/* + * Raise an EXCP_BKPT with the specified syndrome register value, + * targeting the correct exception level for debug exceptions. + */ +void HELPER(exception_bkpt_insn)(CPUARMState *env, uint32_t syndrome) +{ + int debug_el = arm_debug_target_el(env); + int cur_el = arm_current_el(env); + + /* FSR will only be used if the debug target EL is AArch32. */ + env->exception.fsr = arm_debug_exception_fsr(env); + /* + * FAR is UNKNOWN: clear vaddress to avoid potentially exposing + * values to the guest that it shouldn't be able to see at its + * exception/security level. + */ + env->exception.vaddress = 0; + /* + * Other kinds of architectural debug exception are ignored if + * they target an exception level below the current one (in QEMU + * this is checked by arm_generate_debug_exceptions()). Breakpoint + * instructions are special because they always generate an exception + * to somewhere: if they can't go to the configured debug exception + * level they are taken to the current exception level. + */ + if (debug_el < cur_el) { + debug_el = cur_el; + } + raise_exception(env, EXCP_BKPT, syndrome, debug_el); +} + +void HELPER(exception_swstep)(CPUARMState *env, uint32_t syndrome) +{ + raise_exception_debug(env, EXCP_UDEF, syndrome); +} + +void hw_watchpoint_update(ARMCPU *cpu, int n) +{ + CPUARMState *env = &cpu->env; + vaddr len = 0; + vaddr wvr = env->cp15.dbgwvr[n]; + uint64_t wcr = env->cp15.dbgwcr[n]; + int mask; + int flags = BP_CPU | BP_STOP_BEFORE_ACCESS; + + if (env->cpu_watchpoint[n]) { + cpu_watchpoint_remove_by_ref(CPU(cpu), env->cpu_watchpoint[n]); + env->cpu_watchpoint[n] = NULL; + } + + if (!FIELD_EX64(wcr, DBGWCR, E)) { + /* E bit clear : watchpoint disabled */ + return; + } + + switch (FIELD_EX64(wcr, DBGWCR, LSC)) { + case 0: + /* LSC 00 is reserved and must behave as if the wp is disabled */ + return; + case 1: + flags |= BP_MEM_READ; + break; + case 2: + flags |= BP_MEM_WRITE; + break; + case 3: + flags |= BP_MEM_ACCESS; + break; + } + + /* + * Attempts to use both MASK and BAS fields simultaneously are + * CONSTRAINED UNPREDICTABLE; we opt to ignore BAS in this case, + * thus generating a watchpoint for every byte in the masked region. + */ + mask = FIELD_EX64(wcr, DBGWCR, MASK); + if (mask == 1 || mask == 2) { + /* + * Reserved values of MASK; we must act as if the mask value was + * some non-reserved value, or as if the watchpoint were disabled. + * We choose the latter. + */ + return; + } else if (mask) { + /* Watchpoint covers an aligned area up to 2GB in size */ + len = 1ULL << mask; + /* + * If masked bits in WVR are not zero it's CONSTRAINED UNPREDICTABLE + * whether the watchpoint fires when the unmasked bits match; we opt + * to generate the exceptions. + */ + wvr &= ~(len - 1); + } else { + /* Watchpoint covers bytes defined by the byte address select bits */ + int bas = FIELD_EX64(wcr, DBGWCR, BAS); + int basstart; + + if (extract64(wvr, 2, 1)) { + /* + * Deprecated case of an only 4-aligned address. BAS[7:4] are + * ignored, and BAS[3:0] define which bytes to watch. + */ + bas &= 0xf; + } + + if (bas == 0) { + /* This must act as if the watchpoint is disabled */ + return; + } + + /* + * The BAS bits are supposed to be programmed to indicate a contiguous + * range of bytes. Otherwise it is CONSTRAINED UNPREDICTABLE whether + * we fire for each byte in the word/doubleword addressed by the WVR. + * We choose to ignore any non-zero bits after the first range of 1s. + */ + basstart = ctz32(bas); + len = cto32(bas >> basstart); + wvr += basstart; + } + + cpu_watchpoint_insert(CPU(cpu), wvr, len, flags, + &env->cpu_watchpoint[n]); +} + +void hw_watchpoint_update_all(ARMCPU *cpu) +{ + int i; + CPUARMState *env = &cpu->env; + + /* + * Completely clear out existing QEMU watchpoints and our array, to + * avoid possible stale entries following migration load. + */ + cpu_watchpoint_remove_all(CPU(cpu), BP_CPU); + memset(env->cpu_watchpoint, 0, sizeof(env->cpu_watchpoint)); + + for (i = 0; i < ARRAY_SIZE(cpu->env.cpu_watchpoint); i++) { + hw_watchpoint_update(cpu, i); + } +} + +void hw_breakpoint_update(ARMCPU *cpu, int n) +{ + CPUARMState *env = &cpu->env; + uint64_t bvr = env->cp15.dbgbvr[n]; + uint64_t bcr = env->cp15.dbgbcr[n]; + vaddr addr; + int bt; + int flags = BP_CPU; + + if (env->cpu_breakpoint[n]) { + cpu_breakpoint_remove_by_ref(CPU(cpu), env->cpu_breakpoint[n]); + env->cpu_breakpoint[n] = NULL; + } + + if (!extract64(bcr, 0, 1)) { + /* E bit clear : watchpoint disabled */ + return; + } + + bt = extract64(bcr, 20, 4); + + switch (bt) { + case 4: /* unlinked address mismatch (reserved if AArch64) */ + case 5: /* linked address mismatch (reserved if AArch64) */ + qemu_log_mask(LOG_UNIMP, + "arm: address mismatch breakpoint types not implemented\n"); + return; + case 0: /* unlinked address match */ + case 1: /* linked address match */ + { + /* + * Bits [1:0] are RES0. + * + * It is IMPLEMENTATION DEFINED whether bits [63:49] + * ([63:53] for FEAT_LVA) are hardwired to a copy of the sign bit + * of the VA field ([48] or [52] for FEAT_LVA), or whether the + * value is read as written. It is CONSTRAINED UNPREDICTABLE + * whether the RESS bits are ignored when comparing an address. + * Therefore we are allowed to compare the entire register, which + * lets us avoid considering whether FEAT_LVA is actually enabled. + * + * The BAS field is used to allow setting breakpoints on 16-bit + * wide instructions; it is CONSTRAINED UNPREDICTABLE whether + * a bp will fire if the addresses covered by the bp and the addresses + * covered by the insn overlap but the insn doesn't start at the + * start of the bp address range. We choose to require the insn and + * the bp to have the same address. The constraints on writing to + * BAS enforced in dbgbcr_write mean we have only four cases: + * 0b0000 => no breakpoint + * 0b0011 => breakpoint on addr + * 0b1100 => breakpoint on addr + 2 + * 0b1111 => breakpoint on addr + * See also figure D2-3 in the v8 ARM ARM (DDI0487A.c). + */ + int bas = extract64(bcr, 5, 4); + addr = bvr & ~3ULL; + if (bas == 0) { + return; + } + if (bas == 0xc) { + addr += 2; + } + break; + } + case 2: /* unlinked context ID match */ + case 8: /* unlinked VMID match (reserved if no EL2) */ + case 10: /* unlinked context ID and VMID match (reserved if no EL2) */ + qemu_log_mask(LOG_UNIMP, + "arm: unlinked context breakpoint types not implemented\n"); + return; + case 9: /* linked VMID match (reserved if no EL2) */ + case 11: /* linked context ID and VMID match (reserved if no EL2) */ + case 3: /* linked context ID match */ + default: + /* + * We must generate no events for Linked context matches (unless + * they are linked to by some other bp/wp, which is handled in + * updates for the linking bp/wp). We choose to also generate no events + * for reserved values. + */ + return; + } + + cpu_breakpoint_insert(CPU(cpu), addr, flags, &env->cpu_breakpoint[n]); +} + +void hw_breakpoint_update_all(ARMCPU *cpu) +{ + int i; + CPUARMState *env = &cpu->env; + + /* + * Completely clear out existing QEMU breakpoints and our array, to + * avoid possible stale entries following migration load. + */ + cpu_breakpoint_remove_all(CPU(cpu), BP_CPU); + memset(env->cpu_breakpoint, 0, sizeof(env->cpu_breakpoint)); + + for (i = 0; i < ARRAY_SIZE(cpu->env.cpu_breakpoint); i++) { + hw_breakpoint_update(cpu, i); + } +} + +#if !defined(CONFIG_USER_ONLY) + +vaddr arm_adjust_watchpoint_address(CPUState *cs, vaddr addr, int len) +{ + ARMCPU *cpu = ARM_CPU(cs); + CPUARMState *env = &cpu->env; + + /* + * In BE32 system mode, target memory is stored byteswapped (on a + * little-endian host system), and by the time we reach here (via an + * opcode helper) the addresses of subword accesses have been adjusted + * to account for that, which means that watchpoints will not match. + * Undo the adjustment here. + */ + if (arm_sctlr_b(env)) { + if (len == 1) { + addr ^= 3; + } else if (len == 2) { + addr ^= 2; + } + } + + return addr; +} + +#endif /* !CONFIG_USER_ONLY */ diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index 1b115656c464f..6e9aed3e5de6d 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -65,6 +65,7 @@ arm_common_ss.add(files( arm_common_system_ss.add(files( 'cpregs-at.c', + 'debug.c', 'hflags.c', 'neon_helper.c', 'tlb_helper.c', @@ -72,6 +73,7 @@ arm_common_system_ss.add(files( 'vfp_helper.c', )) arm_user_ss.add(files( + 'debug.c', 'hflags.c', 'neon_helper.c', 'tlb_helper.c', From fefb9baf11959cfa8120507c06dc3670fe59f048 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Wed, 18 Feb 2026 20:01:38 -0800 Subject: [PATCH 020/859] target/arm: Don't require helper prototypes in helper.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In arm_cpu_do_interrupt_aarch64() we call the TCG helper function helper_rebuild_hflags_a64(), which requires helper.c to include the TCG helper function prototypes even when this file is being compiled with TCG disabled. We don't actually need to do this -- because we have already written the new EL into pstate and updated env->aarch64, we can call aarch64_rebuild_hflags() to achieve the same effect. This is the function we use everywhere else in this file to update hflags. Switch to aarch64_rebuild_hflags() and drop the include of the TCG helper headers. Signed-off-by: Peter Maydell Reviewed-by: Pierrick Bouvier Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-3-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index e12b2455d3f0d..6bfab90981c11 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -36,9 +36,6 @@ #include "target/arm/gtimer.h" #include "qemu/plugin.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - static void switch_mode(CPUARMState *env, int mode); int compare_u64(const void *a, const void *b) @@ -9479,7 +9476,7 @@ static void arm_cpu_do_interrupt_aarch64(CPUState *cs) aarch64_restore_sp(env, new_el); if (tcg_enabled()) { - helper_rebuild_hflags_a64(env, new_el); + arm_rebuild_hflags(env); } env->pc = addr; From 7811dd39a6c131ad79bd0d15b5bc8ecd1dad9d0e Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:39 -0800 Subject: [PATCH 021/859] target/arm: extract helper-mve.h from helper.h A few points to mention: - We mix helper prototypes and gen_helper definitions in a single header for convenience and to avoid headers boilerplate. - We rename existing tcg/helper-mve.h to helper-mve-defs.h to avoid conflict when including helper-mve.h. - We move mve helper_info definitions to tcg/mve_helper.c We'll repeat the same for other helpers. This allow to get rid of TARGET_AARCH64 in target/arm/helper.h. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-4-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper-mve.h | 14 ++++++++++++++ target/arm/helper.h | 2 -- target/arm/tcg/{helper-mve.h => helper-mve-defs.h} | 0 target/arm/tcg/mve_helper.c | 4 ++++ target/arm/tcg/translate-mve.c | 1 + target/arm/tcg/translate.c | 1 + 6 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 target/arm/helper-mve.h rename target/arm/tcg/{helper-mve.h => helper-mve-defs.h} (100%) diff --git a/target/arm/helper-mve.h b/target/arm/helper-mve.h new file mode 100644 index 0000000000000..32ef3f6466137 --- /dev/null +++ b/target/arm/helper-mve.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef HELPER_MVE_H +#define HELPER_MVE_H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-mve-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER_MVE_H */ diff --git a/target/arm/helper.h b/target/arm/helper.h index f340a49a28a51..44c7f3ed7516f 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -7,5 +7,3 @@ #include "tcg/helper-sve.h" #include "tcg/helper-sme.h" #endif - -#include "tcg/helper-mve.h" diff --git a/target/arm/tcg/helper-mve.h b/target/arm/tcg/helper-mve-defs.h similarity index 100% rename from target/arm/tcg/helper-mve.h rename to target/arm/tcg/helper-mve-defs.h diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index 63ddcf3fecfba..f33642df1f9c8 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper-mve.h" #include "internals.h" #include "vec_internal.h" #include "exec/helper-proto.h" @@ -27,6 +28,9 @@ #include "fpu/softfloat.h" #include "crypto/clmul.h" +#define HELPER_H "tcg/helper-mve-defs.h" +#include "exec/helper-info.c.inc" + static uint16_t mve_eci_mask(CPUARMState *env) { /* diff --git a/target/arm/tcg/translate-mve.c b/target/arm/tcg/translate-mve.c index b1a8d6a65c047..4ca88f4d3a3f7 100644 --- a/target/arm/tcg/translate-mve.c +++ b/target/arm/tcg/translate-mve.c @@ -18,6 +18,7 @@ */ #include "qemu/osdep.h" +#include "helper-mve.h" #include "translate.h" #include "translate-a32.h" diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index c90b0106f75c1..580ec86c68c73 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -28,6 +28,7 @@ #include "cpregs.h" #include "exec/helper-proto.h" #include "exec/target_page.h" +#include "helper-mve.h" #define HELPER_H "helper.h" #include "exec/helper-info.c.inc" From 903a87216c150d63a4c44aedee015aceb42ecc18 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:40 -0800 Subject: [PATCH 022/859] target/arm: extract helper-a64.h from helper.h Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-5-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper-a64.h | 14 ++++++++++++++ target/arm/helper.h | 1 - target/arm/tcg/{helper-a64.h => helper-a64-defs.h} | 0 target/arm/tcg/helper-a64.c | 4 ++++ target/arm/tcg/mte_helper.c | 1 + target/arm/tcg/pauth_helper.c | 1 + target/arm/tcg/sve_helper.c | 1 + target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/vec_helper.c | 1 + 9 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 target/arm/helper-a64.h rename target/arm/tcg/{helper-a64.h => helper-a64-defs.h} (100%) diff --git a/target/arm/helper-a64.h b/target/arm/helper-a64.h new file mode 100644 index 0000000000000..cda7e039b72ac --- /dev/null +++ b/target/arm/helper-a64.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef HELPER_A64_H +#define HELPER_A64_H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-a64-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER_A64_H */ diff --git a/target/arm/helper.h b/target/arm/helper.h index 44c7f3ed7516f..79f8de1e169a3 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -3,7 +3,6 @@ #include "tcg/helper.h" #ifdef TARGET_AARCH64 -#include "tcg/helper-a64.h" #include "tcg/helper-sve.h" #include "tcg/helper-sme.h" #endif diff --git a/target/arm/tcg/helper-a64.h b/target/arm/tcg/helper-a64-defs.h similarity index 100% rename from target/arm/tcg/helper-a64.h rename to target/arm/tcg/helper-a64-defs.h diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c index e4d2c2e3928ca..07ddfb895ddb6 100644 --- a/target/arm/tcg/helper-a64.c +++ b/target/arm/tcg/helper-a64.c @@ -22,6 +22,7 @@ #include "cpu.h" #include "gdbstub/helpers.h" #include "exec/helper-proto.h" +#include "helper-a64.h" #include "qemu/host-utils.h" #include "qemu/log.h" #include "qemu/main-loop.h" @@ -43,6 +44,9 @@ #endif #include "vec_internal.h" +#define HELPER_H "tcg/helper-a64-defs.h" +#include "exec/helper-info.c.inc" + /* C2.4.7 Multiply and divide */ /* special cases for 0 and LLONG_MIN are mandated by the standard */ uint64_t HELPER(udiv64)(uint64_t num, uint64_t den) diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index 08b8e7176a6aa..01b7f099f4aba 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -31,6 +31,7 @@ #endif #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" +#include "helper-a64.h" #include "exec/helper-proto.h" #include "exec/tlb-flags.h" #include "accel/tcg/cpu-ops.h" diff --git a/target/arm/tcg/pauth_helper.c b/target/arm/tcg/pauth_helper.c index c591c3052c38c..5a20117ae8986 100644 --- a/target/arm/tcg/pauth_helper.c +++ b/target/arm/tcg/pauth_helper.c @@ -22,6 +22,7 @@ #include "internals.h" #include "cpu-features.h" #include "accel/tcg/cpu-ldst.h" +#include "helper-a64.h" #include "exec/helper-proto.h" #include "tcg/tcg-gvec-desc.h" #include "qemu/xxhash.h" diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index c442fcb540df2..0600eea47c721 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -24,6 +24,7 @@ #include "exec/helper-proto.h" #include "exec/target_page.h" #include "exec/tlb-flags.h" +#include "helper-a64.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "tcg/tcg.h" diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 7a8cd99e004d8..1a54337b6a844 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -18,6 +18,7 @@ */ #include "qemu/osdep.h" #include "exec/target_page.h" +#include "helper-a64.h" #include "translate.h" #include "translate-a64.h" #include "qemu/log.h" diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index 33a136b90a61e..7451a283efa02 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "exec/helper-proto.h" +#include "helper-a64.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "qemu/int128.h" From af4ff26d4dbd35dc23f60d0a5c97cf044cc3ce34 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:41 -0800 Subject: [PATCH 023/859] target/arm: extract helper-sve.h from helper.h Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-6-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper-sve.h | 14 ++++++++++++++ target/arm/helper.h | 1 - target/arm/tcg/gengvec64.c | 3 ++- target/arm/tcg/{helper-sve.h => helper-sve-defs.h} | 0 target/arm/tcg/sve_helper.c | 3 +++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/translate-sme.c | 2 ++ target/arm/tcg/translate-sve.c | 2 ++ target/arm/tcg/vec_helper.c | 1 + 9 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 target/arm/helper-sve.h rename target/arm/tcg/{helper-sve.h => helper-sve-defs.h} (100%) diff --git a/target/arm/helper-sve.h b/target/arm/helper-sve.h new file mode 100644 index 0000000000000..ae4f46c70a00b --- /dev/null +++ b/target/arm/helper-sve.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef HELPER_SVE_H +#define HELPER_SVE_H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-sve-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER_SVE_H */ diff --git a/target/arm/helper.h b/target/arm/helper.h index 79f8de1e169a3..2f724643d39f7 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -3,6 +3,5 @@ #include "tcg/helper.h" #ifdef TARGET_AARCH64 -#include "tcg/helper-sve.h" #include "tcg/helper-sme.h" #endif diff --git a/target/arm/tcg/gengvec64.c b/target/arm/tcg/gengvec64.c index c425d2b14901d..c7bdd1ea82f15 100644 --- a/target/arm/tcg/gengvec64.c +++ b/target/arm/tcg/gengvec64.c @@ -18,10 +18,11 @@ */ #include "qemu/osdep.h" +#include "cpu.h" +#include "helper-sve.h" #include "translate.h" #include "translate-a64.h" - static void gen_rax1_i64(TCGv_i64 d, TCGv_i64 n, TCGv_i64 m) { tcg_gen_rotli_i64(d, m, 1); diff --git a/target/arm/tcg/helper-sve.h b/target/arm/tcg/helper-sve-defs.h similarity index 100% rename from target/arm/tcg/helper-sve.h rename to target/arm/tcg/helper-sve-defs.h diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 0600eea47c721..16e528e41a6d5 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -25,6 +25,7 @@ #include "exec/target_page.h" #include "exec/tlb-flags.h" #include "helper-a64.h" +#include "helper-sve.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "tcg/tcg.h" @@ -38,6 +39,8 @@ #include "user/page-protection.h" #endif +#define HELPER_H "tcg/helper-sve-defs.h" +#include "exec/helper-info.c.inc" /* Return a value for NZCV as per the ARM PredTest pseudofunction. * diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 1a54337b6a844..31fb2ea9cc378 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "exec/target_page.h" #include "helper-a64.h" +#include "helper-sve.h" #include "translate.h" #include "translate-a64.h" #include "qemu/log.h" diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 091c56da4f4ea..463ece97ab80f 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -18,6 +18,8 @@ */ #include "qemu/osdep.h" +#include "cpu.h" +#include "helper-sve.h" #include "translate.h" #include "translate-a64.h" diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index 956ddee123201..bd6be68d81036 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -18,6 +18,8 @@ */ #include "qemu/osdep.h" +#include "cpu.h" +#include "helper-sve.h" #include "translate.h" #include "translate-a64.h" #include "fpu/softfloat.h" diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index 7451a283efa02..bc64c8ff374cd 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -21,6 +21,7 @@ #include "cpu.h" #include "exec/helper-proto.h" #include "helper-a64.h" +#include "helper-sve.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "qemu/int128.h" From 27031a759d1d29d55eb09006a79838f0b4390b27 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:42 -0800 Subject: [PATCH 024/859] target/arm: extract helper-sme.h from helper.h Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-7-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper-sme.h | 14 ++++++++++++++ target/arm/helper.h | 4 ---- target/arm/tcg/{helper-sme.h => helper-sme-defs.h} | 0 target/arm/tcg/sme_helper.c | 3 +++ target/arm/tcg/translate-a64.c | 1 + target/arm/tcg/translate-sme.c | 1 + target/arm/tcg/translate-sve.c | 1 + target/arm/tcg/vec_helper.c | 1 + 8 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 target/arm/helper-sme.h rename target/arm/tcg/{helper-sme.h => helper-sme-defs.h} (100%) diff --git a/target/arm/helper-sme.h b/target/arm/helper-sme.h new file mode 100644 index 0000000000000..27c85fdeef1e3 --- /dev/null +++ b/target/arm/helper-sme.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#ifndef HELPER_SME_H +#define HELPER_SME_H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-sme-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER_SME_H */ diff --git a/target/arm/helper.h b/target/arm/helper.h index 2f724643d39f7..b1e83196b3b91 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -1,7 +1,3 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ #include "tcg/helper.h" - -#ifdef TARGET_AARCH64 -#include "tcg/helper-sme.h" -#endif diff --git a/target/arm/tcg/helper-sme.h b/target/arm/tcg/helper-sme-defs.h similarity index 100% rename from target/arm/tcg/helper-sme.h rename to target/arm/tcg/helper-sme-defs.h diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c index 075360d8b8abf..7729732369fe9 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -22,6 +22,7 @@ #include "internals.h" #include "tcg/tcg-gvec-desc.h" #include "exec/helper-proto.h" +#include "helper-sme.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/helper-retaddr.h" #include "qemu/int128.h" @@ -29,6 +30,8 @@ #include "vec_internal.h" #include "sve_ldst_internal.h" +#define HELPER_H "tcg/helper-sme-defs.h" +#include "exec/helper-info.c.inc" static bool vectors_overlap(ARMVectorReg *x, unsigned nx, ARMVectorReg *y, unsigned ny) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 31fb2ea9cc378..5d261a5e32b82 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "exec/target_page.h" #include "helper-a64.h" +#include "helper-sme.h" #include "helper-sve.h" #include "translate.h" #include "translate-a64.h" diff --git a/target/arm/tcg/translate-sme.c b/target/arm/tcg/translate-sme.c index 463ece97ab80f..7d25ac5a51f73 100644 --- a/target/arm/tcg/translate-sme.c +++ b/target/arm/tcg/translate-sme.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper-sme.h" #include "helper-sve.h" #include "translate.h" #include "translate-a64.h" diff --git a/target/arm/tcg/translate-sve.c b/target/arm/tcg/translate-sve.c index bd6be68d81036..5bace3fda1a0b 100644 --- a/target/arm/tcg/translate-sve.c +++ b/target/arm/tcg/translate-sve.c @@ -19,6 +19,7 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper-sme.h" #include "helper-sve.h" #include "translate.h" #include "translate-a64.h" diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index bc64c8ff374cd..a070ac90579b0 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -21,6 +21,7 @@ #include "cpu.h" #include "exec/helper-proto.h" #include "helper-a64.h" +#include "helper-sme.h" #include "helper-sve.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" From 9085154835063f13a9084eea7599f25ea5f5143f Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:43 -0800 Subject: [PATCH 025/859] tcg: move tcg_use_softmmu to tcg/tcg-internal.h In next commit, we'll apply same helper pattern for base helpers remaining. Our new helper pattern always include helper-*-common.h, which ends up including include/tcg/tcg.h, which contains one occurrence of CONFIG_USER_ONLY. Thus, common files not being duplicated between system and target relying on helpers will fail to compile. Existing occurrences are: - target/arm/tcg/arith_helper.c - target/arm/tcg/crypto_helper.c This occurrence of CONFIG_USER_ONLY is for defining variable tcg_use_softmmu, and we rely on dead code elimination with it in various tcg-target.c.inc. Thus, move its definition to tcg/tcg-internal.h, so helpers can be included by common files. Also, change it to a define, as it has fixed values for now. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-8-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- include/tcg/tcg.h | 6 ------ tcg/tcg-internal.h | 6 ++++++ tcg/tcg.c | 4 ---- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 60942ce05c27b..45c7e118c3d9d 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -445,12 +445,6 @@ static inline bool temp_readonly(TCGTemp *ts) return ts->kind >= TEMP_FIXED; } -#ifdef CONFIG_USER_ONLY -extern bool tcg_use_softmmu; -#else -#define tcg_use_softmmu true -#endif - extern __thread TCGContext *tcg_ctx; extern const void *tcg_code_gen_epilogue; extern uintptr_t tcg_splitwx_diff; diff --git a/tcg/tcg-internal.h b/tcg/tcg-internal.h index 2cbfb5d5caa26..2615684612073 100644 --- a/tcg/tcg-internal.h +++ b/tcg/tcg-internal.h @@ -34,6 +34,12 @@ extern TCGContext **tcg_ctxs; extern unsigned int tcg_cur_ctxs; extern unsigned int tcg_max_ctxs; +#ifdef CONFIG_USER_ONLY +#define tcg_use_softmmu false +#else +#define tcg_use_softmmu true +#endif + void tcg_region_init(size_t tb_size, int splitwx, unsigned max_threads); bool tcg_region_alloc(TCGContext *s); void tcg_region_initial_alloc(TCGContext *s); diff --git a/tcg/tcg.c b/tcg/tcg.c index e7bf4dad4ee2f..3111e1f4265be 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -236,10 +236,6 @@ static TCGAtomAlign atom_and_align_for_opc(TCGContext *s, MemOp opc, MemOp host_atom, bool allow_two_ops) __attribute__((unused)); -#ifdef CONFIG_USER_ONLY -bool tcg_use_softmmu; -#endif - TCGContext tcg_init_ctx; __thread TCGContext *tcg_ctx; From bfc57f037d956f75607e678fb046581585ec319c Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:44 -0800 Subject: [PATCH 026/859] target/arm: move exec/helper-* plumbery to helper.h Since we cleaned helper.h, we can continue further and remove all exec/helper-* inclusion. This way, all helpers use the same pattern, and helper include details are limited to those headers. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-9-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/helper.h | 13 ++++++++++++- target/arm/tcg/arith_helper.c | 4 +--- target/arm/tcg/crypto_helper.c | 4 +--- target/arm/tcg/debug.c | 4 +--- target/arm/tcg/helper-a64.c | 2 +- target/arm/tcg/{helper.h => helper-defs.h} | 0 target/arm/tcg/hflags.c | 4 +--- target/arm/tcg/m_helper.c | 2 +- target/arm/tcg/mte_helper.c | 2 +- target/arm/tcg/mve_helper.c | 2 +- target/arm/tcg/neon_helper.c | 4 +--- target/arm/tcg/op_helper.c | 2 +- target/arm/tcg/pauth_helper.c | 2 +- target/arm/tcg/psci.c | 2 +- target/arm/tcg/sme_helper.c | 2 +- target/arm/tcg/sve_helper.c | 2 +- target/arm/tcg/tlb_helper.c | 4 +--- target/arm/tcg/translate.c | 9 ++++----- target/arm/tcg/translate.h | 2 +- target/arm/tcg/vec_helper.c | 2 +- target/arm/tcg/vfp_helper.c | 4 +--- 21 files changed, 34 insertions(+), 38 deletions(-) rename target/arm/tcg/{helper.h => helper-defs.h} (100%) diff --git a/target/arm/helper.h b/target/arm/helper.h index b1e83196b3b91..b1c26c180ea47 100644 --- a/target/arm/helper.h +++ b/target/arm/helper.h @@ -1,3 +1,14 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ -#include "tcg/helper.h" +#ifndef HELPER__H +#define HELPER__H + +#include "exec/helper-proto-common.h" +#include "exec/helper-gen-common.h" + +#define HELPER_H "tcg/helper-defs.h" +#include "exec/helper-proto.h.inc" +#include "exec/helper-gen.h.inc" +#undef HELPER_H + +#endif /* HELPER__H */ diff --git a/target/arm/tcg/arith_helper.c b/target/arm/tcg/arith_helper.c index 97c6362992c0c..cc081c8f96674 100644 --- a/target/arm/tcg/arith_helper.c +++ b/target/arm/tcg/arith_helper.c @@ -8,11 +8,9 @@ #include "qemu/osdep.h" #include "qemu/bswap.h" #include "qemu/crc32c.h" +#include "helper.h" #include /* for crc32 */ -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - /* * Note that signed overflow is undefined in C. The following routines are * careful to use unsigned types where modulo arithmetic is required. diff --git a/target/arm/tcg/crypto_helper.c b/target/arm/tcg/crypto_helper.c index 3428bd1bf0b4b..11977cb7723a0 100644 --- a/target/arm/tcg/crypto_helper.c +++ b/target/arm/tcg/crypto_helper.c @@ -15,11 +15,9 @@ #include "tcg/tcg-gvec-desc.h" #include "crypto/aes-round.h" #include "crypto/sm4.h" +#include "helper.h" #include "vec_internal.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - union CRYPTO_STATE { uint8_t bytes[16]; uint32_t words[4]; diff --git a/target/arm/tcg/debug.c b/target/arm/tcg/debug.c index 7dfb291a9bf80..5214e3c08a809 100644 --- a/target/arm/tcg/debug.c +++ b/target/arm/tcg/debug.c @@ -8,15 +8,13 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "cpregs.h" #include "exec/watchpoint.h" #include "system/tcg.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - /* Return the Exception Level targeted by debug exceptions. */ static int arm_debug_target_el(CPUARMState *env) { diff --git a/target/arm/tcg/helper-a64.c b/target/arm/tcg/helper-a64.c index 07ddfb895ddb6..2dec587d38626 100644 --- a/target/arm/tcg/helper-a64.c +++ b/target/arm/tcg/helper-a64.c @@ -21,7 +21,7 @@ #include "qemu/units.h" #include "cpu.h" #include "gdbstub/helpers.h" -#include "exec/helper-proto.h" +#include "helper.h" #include "helper-a64.h" #include "qemu/host-utils.h" #include "qemu/log.h" diff --git a/target/arm/tcg/helper.h b/target/arm/tcg/helper-defs.h similarity index 100% rename from target/arm/tcg/helper.h rename to target/arm/tcg/helper-defs.h diff --git a/target/arm/tcg/hflags.c b/target/arm/tcg/hflags.c index 5c9b9bec3b2c6..7e6f8d3647586 100644 --- a/target/arm/tcg/hflags.c +++ b/target/arm/tcg/hflags.c @@ -7,15 +7,13 @@ */ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "exec/translation-block.h" #include "accel/tcg/cpu-ops.h" #include "cpregs.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - static inline bool fgt_svc(CPUARMState *env, int el) { /* diff --git a/target/arm/tcg/m_helper.c b/target/arm/tcg/m_helper.c index 0c3832a47fd8d..a0cb8cb021ed9 100644 --- a/target/arm/tcg/m_helper.c +++ b/target/arm/tcg/m_helper.c @@ -8,10 +8,10 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "gdbstub/helpers.h" -#include "exec/helper-proto.h" #include "qemu/main-loop.h" #include "qemu/bitops.h" #include "qemu/log.h" diff --git a/target/arm/tcg/mte_helper.c b/target/arm/tcg/mte_helper.c index 01b7f099f4aba..a9fb979f639f2 100644 --- a/target/arm/tcg/mte_helper.c +++ b/target/arm/tcg/mte_helper.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "exec/target_page.h" #include "exec/page-protection.h" @@ -32,7 +33,6 @@ #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/probe.h" #include "helper-a64.h" -#include "exec/helper-proto.h" #include "exec/tlb-flags.h" #include "accel/tcg/cpu-ops.h" #include "qapi/error.h" diff --git a/target/arm/tcg/mve_helper.c b/target/arm/tcg/mve_helper.c index f33642df1f9c8..a67d90d6c75e4 100644 --- a/target/arm/tcg/mve_helper.c +++ b/target/arm/tcg/mve_helper.c @@ -19,10 +19,10 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "helper-mve.h" #include "internals.h" #include "vec_internal.h" -#include "exec/helper-proto.h" #include "accel/tcg/cpu-ldst.h" #include "tcg/tcg.h" #include "fpu/softfloat.h" diff --git a/target/arm/tcg/neon_helper.c b/target/arm/tcg/neon_helper.c index 8d288f3a70065..69147969b231f 100644 --- a/target/arm/tcg/neon_helper.c +++ b/target/arm/tcg/neon_helper.c @@ -9,13 +9,11 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "vec_internal.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - #define SIGNBIT (uint32_t)0x80000000 #define SIGNBIT64 ((uint64_t)1 << 63) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index c7ab462d1d12b..4d70863506845 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -19,8 +19,8 @@ #include "qemu/osdep.h" #include "qemu/main-loop.h" #include "cpu.h" -#include "exec/helper-proto.h" #include "exec/target_page.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "accel/tcg/cpu-ldst.h" diff --git a/target/arm/tcg/pauth_helper.c b/target/arm/tcg/pauth_helper.c index 5a20117ae8986..67c0d59d9e970 100644 --- a/target/arm/tcg/pauth_helper.c +++ b/target/arm/tcg/pauth_helper.c @@ -19,11 +19,11 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "accel/tcg/cpu-ldst.h" #include "helper-a64.h" -#include "exec/helper-proto.h" #include "tcg/tcg-gvec-desc.h" #include "qemu/xxhash.h" diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c index 2d40930157851..bca6058e41a8e 100644 --- a/target/arm/tcg/psci.c +++ b/target/arm/tcg/psci.c @@ -18,7 +18,7 @@ #include "qemu/osdep.h" #include "cpu.h" -#include "exec/helper-proto.h" +#include "helper.h" #include "kvm-consts.h" #include "qemu/main-loop.h" #include "system/runstate.h" diff --git a/target/arm/tcg/sme_helper.c b/target/arm/tcg/sme_helper.c index 7729732369fe9..ab5999c5925aa 100644 --- a/target/arm/tcg/sme_helper.c +++ b/target/arm/tcg/sme_helper.c @@ -21,7 +21,7 @@ #include "cpu.h" #include "internals.h" #include "tcg/tcg-gvec-desc.h" -#include "exec/helper-proto.h" +#include "helper.h" #include "helper-sme.h" #include "accel/tcg/cpu-ldst.h" #include "accel/tcg/helper-retaddr.h" diff --git a/target/arm/tcg/sve_helper.c b/target/arm/tcg/sve_helper.c index 16e528e41a6d5..062d8881bd0fc 100644 --- a/target/arm/tcg/sve_helper.c +++ b/target/arm/tcg/sve_helper.c @@ -21,9 +21,9 @@ #include "cpu.h" #include "internals.h" #include "exec/page-protection.h" -#include "exec/helper-proto.h" #include "exec/target_page.h" #include "exec/tlb-flags.h" +#include "helper.h" #include "helper-a64.h" #include "helper-sve.h" #include "tcg/tcg-gvec-desc.h" diff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c index 5c689d3b69ffe..565954269f9d9 100644 --- a/target/arm/tcg/tlb_helper.c +++ b/target/arm/tcg/tlb_helper.c @@ -7,12 +7,10 @@ */ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - /* * Returns true if the stage 1 translation regime is using LPAE format page * tables. Used when raising alignment exceptions, whose FSR changes depending diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index 580ec86c68c73..3f57006f9df6a 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -26,14 +26,10 @@ #include "arm_ldst.h" #include "semihosting/semihost.h" #include "cpregs.h" -#include "exec/helper-proto.h" #include "exec/target_page.h" +#include "helper.h" #include "helper-mve.h" -#define HELPER_H "helper.h" -#include "exec/helper-info.c.inc" -#undef HELPER_H - #define ENABLE_ARCH_4T arm_dc_feature(s, ARM_FEATURE_V4T) #define ENABLE_ARCH_5 arm_dc_feature(s, ARM_FEATURE_V5) /* currently all emulated v5 cores are also v5TE, so don't bother */ @@ -45,6 +41,9 @@ #define ENABLE_ARCH_7 arm_dc_feature(s, ARM_FEATURE_V7) #define ENABLE_ARCH_8 arm_dc_feature(s, ARM_FEATURE_V8) +#define HELPER_H "tcg/helper-defs.h" +#include "exec/helper-info.c.inc" + /* These are TCG globals which alias CPUARMState fields */ static TCGv_i32 cpu_R[16]; TCGv_i32 cpu_CF, cpu_NF, cpu_VF, cpu_ZF; diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 1e30d7c77c373..027769271c936 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -6,7 +6,7 @@ #include "tcg/tcg-op-gvec.h" #include "exec/translator.h" #include "exec/translation-block.h" -#include "exec/helper-gen.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index a070ac90579b0..1223b843bf12f 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -19,7 +19,7 @@ #include "qemu/osdep.h" #include "cpu.h" -#include "exec/helper-proto.h" +#include "helper.h" #include "helper-a64.h" #include "helper-sme.h" #include "helper-sve.h" diff --git a/target/arm/tcg/vfp_helper.c b/target/arm/tcg/vfp_helper.c index e156e3774ad8f..45f2eb0930fa7 100644 --- a/target/arm/tcg/vfp_helper.c +++ b/target/arm/tcg/vfp_helper.c @@ -19,14 +19,12 @@ #include "qemu/osdep.h" #include "cpu.h" +#include "helper.h" #include "internals.h" #include "cpu-features.h" #include "fpu/softfloat.h" #include "qemu/log.h" -#define HELPER_H "tcg/helper.h" -#include "exec/helper-proto.h.inc" - /* * Set the float_status behaviour to match the Arm defaults: * * tininess-before-rounding From 3580aa03547f92b658cabffbd13534e9f546c0bc Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:45 -0800 Subject: [PATCH 027/859] target/arm/tcg/psci.c: make compilation unit common MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that helper.h does not contain TARGET_AARCH64 identifier, we can move forward with this file. Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-10-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/tcg/meson.build | 5 +---- target/arm/tcg/psci.c | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index 6e9aed3e5de6d..85277dba8dad3 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -49,10 +49,6 @@ arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'sve_helper.c', )) -arm_system_ss.add(files( - 'psci.c', -)) - arm_system_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('cpu-v7m.c')) arm_user_ss.add(when: 'TARGET_AARCH64', if_false: files('cpu-v7m.c')) @@ -68,6 +64,7 @@ arm_common_system_ss.add(files( 'debug.c', 'hflags.c', 'neon_helper.c', + 'psci.c', 'tlb_helper.c', 'tlb-insns.c', 'vfp_helper.c', diff --git a/target/arm/tcg/psci.c b/target/arm/tcg/psci.c index bca6058e41a8e..56754bde95161 100644 --- a/target/arm/tcg/psci.c +++ b/target/arm/tcg/psci.c @@ -68,7 +68,7 @@ void arm_handle_psci_call(ARMCPU *cpu) CPUARMState *env = &cpu->env; uint64_t param[4]; uint64_t context_id, mpidr; - target_ulong entry; + uint64_t entry; int32_t ret = 0; int i; From 3211199b00b9bbb78fe3da6b06c9126cab0368da Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:46 -0800 Subject: [PATCH 028/859] target/arm/tcg/cpu-v7m.c: make compilation unit common MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-11-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/tcg/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index 85277dba8dad3..cabf65e62367a 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -49,7 +49,7 @@ arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'sve_helper.c', )) -arm_system_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('cpu-v7m.c')) +arm_common_system_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('cpu-v7m.c')) arm_user_ss.add(when: 'TARGET_AARCH64', if_false: files('cpu-v7m.c')) arm_common_ss.add(zlib) From 4ba9234f67f296beb998b7d7f77d70722d5fd5c1 Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:47 -0800 Subject: [PATCH 029/859] target/arm/tcg/vec_helper.c: make compilation unit common We need to extract 64 bits helper in a new file (vec_helper64.c), and extract some macro definition also, since they will be used in both files. As well, DO_3OP_PAIR was defined twice, so rename the second variant to DO_3OP_PAIR_NO_STATUS to reflect what it does. Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-12-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/tcg/meson.build | 4 +- target/arm/tcg/vec_helper.c | 225 +++------------------------------- target/arm/tcg/vec_helper64.c | 142 +++++++++++++++++++++ target/arm/tcg/vec_internal.h | 49 ++++++++ 4 files changed, 212 insertions(+), 208 deletions(-) create mode 100644 target/arm/tcg/vec_helper64.c diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index cabf65e62367a..5f59156055127 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -33,7 +33,6 @@ arm_ss.add(files( 'm_helper.c', 'mve_helper.c', 'op_helper.c', - 'vec_helper.c', )) arm_ss.add(when: 'TARGET_AARCH64', if_true: files( @@ -47,6 +46,7 @@ arm_ss.add(when: 'TARGET_AARCH64', if_true: files( 'pauth_helper.c', 'sme_helper.c', 'sve_helper.c', + 'vec_helper64.c', )) arm_common_system_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('cpu-v7m.c')) @@ -67,6 +67,7 @@ arm_common_system_ss.add(files( 'psci.c', 'tlb_helper.c', 'tlb-insns.c', + 'vec_helper.c', 'vfp_helper.c', )) arm_user_ss.add(files( @@ -74,5 +75,6 @@ arm_user_ss.add(files( 'hflags.c', 'neon_helper.c', 'tlb_helper.c', + 'vec_helper.c', 'vfp_helper.c', )) diff --git a/target/arm/tcg/vec_helper.c b/target/arm/tcg/vec_helper.c index 1223b843bf12f..91e98d28aea5c 100644 --- a/target/arm/tcg/vec_helper.c +++ b/target/arm/tcg/vec_helper.c @@ -20,9 +20,6 @@ #include "qemu/osdep.h" #include "cpu.h" #include "helper.h" -#include "helper-a64.h" -#include "helper-sme.h" -#include "helper-sve.h" #include "tcg/tcg-gvec-desc.h" #include "fpu/softfloat.h" #include "qemu/int128.h" @@ -1458,18 +1455,6 @@ static float32 float32_rsqrts_nf(float32 op1, float32 op2, float_status *stat) return float32_div(op1, float32_two, stat); } -#define DO_3OP(NAME, FUNC, TYPE) \ -void HELPER(NAME)(void *vd, void *vn, void *vm, \ - float_status *stat, uint32_t desc) \ -{ \ - intptr_t i, oprsz = simd_oprsz(desc); \ - TYPE *d = vd, *n = vn, *m = vm; \ - for (i = 0; i < oprsz / sizeof(TYPE); i++) { \ - d[i] = FUNC(n[i], m[i], stat); \ - } \ - clear_tail(d, oprsz, simd_maxsz(desc)); \ -} - DO_3OP(gvec_fadd_b16, bfloat16_add, float16) DO_3OP(gvec_fadd_h, float16_add, float16) DO_3OP(gvec_fadd_s, float32_add, float32) @@ -1541,49 +1526,6 @@ DO_3OP(gvec_recps_nf_s, float32_recps_nf, float32) DO_3OP(gvec_rsqrts_nf_h, float16_rsqrts_nf, float16) DO_3OP(gvec_rsqrts_nf_s, float32_rsqrts_nf, float32) -#ifdef TARGET_AARCH64 -DO_3OP(gvec_fdiv_h, float16_div, float16) -DO_3OP(gvec_fdiv_s, float32_div, float32) -DO_3OP(gvec_fdiv_d, float64_div, float64) - -DO_3OP(gvec_fmulx_h, helper_advsimd_mulxh, float16) -DO_3OP(gvec_fmulx_s, helper_vfp_mulxs, float32) -DO_3OP(gvec_fmulx_d, helper_vfp_mulxd, float64) - -DO_3OP(gvec_recps_h, helper_recpsf_f16, float16) -DO_3OP(gvec_recps_s, helper_recpsf_f32, float32) -DO_3OP(gvec_recps_d, helper_recpsf_f64, float64) - -DO_3OP(gvec_rsqrts_h, helper_rsqrtsf_f16, float16) -DO_3OP(gvec_rsqrts_s, helper_rsqrtsf_f32, float32) -DO_3OP(gvec_rsqrts_d, helper_rsqrtsf_f64, float64) - -DO_3OP(gvec_ah_recps_h, helper_recpsf_ah_f16, float16) -DO_3OP(gvec_ah_recps_s, helper_recpsf_ah_f32, float32) -DO_3OP(gvec_ah_recps_d, helper_recpsf_ah_f64, float64) - -DO_3OP(gvec_ah_rsqrts_h, helper_rsqrtsf_ah_f16, float16) -DO_3OP(gvec_ah_rsqrts_s, helper_rsqrtsf_ah_f32, float32) -DO_3OP(gvec_ah_rsqrts_d, helper_rsqrtsf_ah_f64, float64) - -DO_3OP(gvec_ah_fmax_h, helper_vfp_ah_maxh, float16) -DO_3OP(gvec_ah_fmax_s, helper_vfp_ah_maxs, float32) -DO_3OP(gvec_ah_fmax_d, helper_vfp_ah_maxd, float64) - -DO_3OP(gvec_ah_fmin_h, helper_vfp_ah_minh, float16) -DO_3OP(gvec_ah_fmin_s, helper_vfp_ah_mins, float32) -DO_3OP(gvec_ah_fmin_d, helper_vfp_ah_mind, float64) - -DO_3OP(gvec_fmax_b16, bfloat16_max, bfloat16) -DO_3OP(gvec_fmin_b16, bfloat16_min, bfloat16) -DO_3OP(gvec_fmaxnum_b16, bfloat16_maxnum, bfloat16) -DO_3OP(gvec_fminnum_b16, bfloat16_minnum, bfloat16) -DO_3OP(gvec_ah_fmax_b16, helper_sme2_ah_fmax_b16, bfloat16) -DO_3OP(gvec_ah_fmin_b16, helper_sme2_ah_fmin_b16, bfloat16) - -#endif -#undef DO_3OP - /* Non-fused multiply-add (unlike float16_muladd etc, which are fused) */ static float16 float16_muladd_nf(float16 dest, float16 op1, float16 op2, float_status *stat) @@ -1769,23 +1711,6 @@ DO_MLA_IDX(gvec_mls_idx_d, uint64_t, -, H8) #undef DO_MLA_IDX -#define DO_FMUL_IDX(NAME, ADD, MUL, TYPE, H) \ -void HELPER(NAME)(void *vd, void *vn, void *vm, \ - float_status *stat, uint32_t desc) \ -{ \ - intptr_t i, j, oprsz = simd_oprsz(desc); \ - intptr_t segment = MIN(16, oprsz) / sizeof(TYPE); \ - intptr_t idx = simd_data(desc); \ - TYPE *d = vd, *n = vn, *m = vm; \ - for (i = 0; i < oprsz / sizeof(TYPE); i += segment) { \ - TYPE mm = m[H(i + idx)]; \ - for (j = 0; j < segment; j++) { \ - d[i + j] = ADD(d[i + j], MUL(n[i + j], mm, stat), stat); \ - } \ - } \ - clear_tail(d, oprsz, simd_maxsz(desc)); \ -} - #define nop(N, M, S) (M) DO_FMUL_IDX(gvec_fmul_idx_b16, nop, bfloat16_mul, float16, H2) @@ -1793,14 +1718,6 @@ DO_FMUL_IDX(gvec_fmul_idx_h, nop, float16_mul, float16, H2) DO_FMUL_IDX(gvec_fmul_idx_s, nop, float32_mul, float32, H4) DO_FMUL_IDX(gvec_fmul_idx_d, nop, float64_mul, float64, H8) -#ifdef TARGET_AARCH64 - -DO_FMUL_IDX(gvec_fmulx_idx_h, nop, helper_advsimd_mulxh, float16, H2) -DO_FMUL_IDX(gvec_fmulx_idx_s, nop, helper_vfp_mulxs, float32, H4) -DO_FMUL_IDX(gvec_fmulx_idx_d, nop, helper_vfp_mulxd, float64, H8) - -#endif - #undef nop /* @@ -1812,8 +1729,6 @@ DO_FMUL_IDX(gvec_fmla_nf_idx_s, float32_add, float32_mul, float32, H4) DO_FMUL_IDX(gvec_fmls_nf_idx_h, float16_sub, float16_mul, float16, H2) DO_FMUL_IDX(gvec_fmls_nf_idx_s, float32_sub, float32_mul, float32, H4) -#undef DO_FMUL_IDX - #define DO_FMLA_IDX(NAME, TYPE, H, NEGX, NEGF) \ void HELPER(NAME)(void *vd, void *vn, void *vm, void *va, \ float_status *stat, uint32_t desc) \ @@ -2530,31 +2445,6 @@ void HELPER(neon_pmull_h)(void *vd, void *vn, void *vm, uint32_t desc) clear_tail(d, 16, simd_maxsz(desc)); } -#ifdef TARGET_AARCH64 -void HELPER(sve2_pmull_h)(void *vd, void *vn, void *vm, uint32_t desc) -{ - int shift = simd_data(desc) * 8; - intptr_t i, opr_sz = simd_oprsz(desc); - uint64_t *d = vd, *n = vn, *m = vm; - - for (i = 0; i < opr_sz / 8; ++i) { - d[i] = clmul_8x4_even(n[i] >> shift, m[i] >> shift); - } -} - -void HELPER(sve2_pmull_d)(void *vd, void *vn, void *vm, uint32_t desc) -{ - intptr_t sel = H4(simd_data(desc)); - intptr_t i, opr_sz = simd_oprsz(desc); - uint32_t *n = vn, *m = vm; - uint64_t *d = vd; - - for (i = 0; i < opr_sz / 8; ++i) { - d[i] = clmul_32(n[2 * i + sel], m[2 * i + sel]); - } -} -#endif - #define DO_CMP0(NAME, TYPE, OP) \ void HELPER(NAME)(void *vd, void *vn, uint32_t desc) \ { \ @@ -2628,26 +2518,6 @@ DO_ABA(gvec_uaba_d, uint64_t) #undef DO_ABA -#define DO_3OP_PAIR(NAME, FUNC, TYPE, H) \ -void HELPER(NAME)(void *vd, void *vn, void *vm, \ - float_status *stat, uint32_t desc) \ -{ \ - ARMVectorReg scratch; \ - intptr_t oprsz = simd_oprsz(desc); \ - intptr_t half = oprsz / sizeof(TYPE) / 2; \ - TYPE *d = vd, *n = vn, *m = vm; \ - if (unlikely(d == m)) { \ - m = memcpy(&scratch, m, oprsz); \ - } \ - for (intptr_t i = 0; i < half; ++i) { \ - d[H(i)] = FUNC(n[H(i * 2)], n[H(i * 2 + 1)], stat); \ - } \ - for (intptr_t i = 0; i < half; ++i) { \ - d[H(i + half)] = FUNC(m[H(i * 2)], m[H(i * 2 + 1)], stat); \ - } \ - clear_tail(d, oprsz, simd_maxsz(desc)); \ -} - DO_3OP_PAIR(gvec_faddp_h, float16_add, float16, H2) DO_3OP_PAIR(gvec_faddp_s, float32_add, float32, H4) DO_3OP_PAIR(gvec_faddp_d, float64_add, float64, ) @@ -2668,19 +2538,7 @@ DO_3OP_PAIR(gvec_fminnump_h, float16_minnum, float16, H2) DO_3OP_PAIR(gvec_fminnump_s, float32_minnum, float32, H4) DO_3OP_PAIR(gvec_fminnump_d, float64_minnum, float64, ) -#ifdef TARGET_AARCH64 -DO_3OP_PAIR(gvec_ah_fmaxp_h, helper_vfp_ah_maxh, float16, H2) -DO_3OP_PAIR(gvec_ah_fmaxp_s, helper_vfp_ah_maxs, float32, H4) -DO_3OP_PAIR(gvec_ah_fmaxp_d, helper_vfp_ah_maxd, float64, ) - -DO_3OP_PAIR(gvec_ah_fminp_h, helper_vfp_ah_minh, float16, H2) -DO_3OP_PAIR(gvec_ah_fminp_s, helper_vfp_ah_mins, float32, H4) -DO_3OP_PAIR(gvec_ah_fminp_d, helper_vfp_ah_mind, float64, ) -#endif - -#undef DO_3OP_PAIR - -#define DO_3OP_PAIR(NAME, FUNC, TYPE, H) \ +#define DO_3OP_PAIR_NO_STATUS(NAME, FUNC, TYPE, H) \ void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc) \ { \ ARMVectorReg scratch; \ @@ -2700,29 +2558,29 @@ void HELPER(NAME)(void *vd, void *vn, void *vm, uint32_t desc) \ } #define ADD(A, B) (A + B) -DO_3OP_PAIR(gvec_addp_b, ADD, uint8_t, H1) -DO_3OP_PAIR(gvec_addp_h, ADD, uint16_t, H2) -DO_3OP_PAIR(gvec_addp_s, ADD, uint32_t, H4) -DO_3OP_PAIR(gvec_addp_d, ADD, uint64_t, ) +DO_3OP_PAIR_NO_STATUS(gvec_addp_b, ADD, uint8_t, H1) +DO_3OP_PAIR_NO_STATUS(gvec_addp_h, ADD, uint16_t, H2) +DO_3OP_PAIR_NO_STATUS(gvec_addp_s, ADD, uint32_t, H4) +DO_3OP_PAIR_NO_STATUS(gvec_addp_d, ADD, uint64_t, /**/) #undef ADD -DO_3OP_PAIR(gvec_smaxp_b, MAX, int8_t, H1) -DO_3OP_PAIR(gvec_smaxp_h, MAX, int16_t, H2) -DO_3OP_PAIR(gvec_smaxp_s, MAX, int32_t, H4) +DO_3OP_PAIR_NO_STATUS(gvec_smaxp_b, MAX, int8_t, H1) +DO_3OP_PAIR_NO_STATUS(gvec_smaxp_h, MAX, int16_t, H2) +DO_3OP_PAIR_NO_STATUS(gvec_smaxp_s, MAX, int32_t, H4) -DO_3OP_PAIR(gvec_umaxp_b, MAX, uint8_t, H1) -DO_3OP_PAIR(gvec_umaxp_h, MAX, uint16_t, H2) -DO_3OP_PAIR(gvec_umaxp_s, MAX, uint32_t, H4) +DO_3OP_PAIR_NO_STATUS(gvec_umaxp_b, MAX, uint8_t, H1) +DO_3OP_PAIR_NO_STATUS(gvec_umaxp_h, MAX, uint16_t, H2) +DO_3OP_PAIR_NO_STATUS(gvec_umaxp_s, MAX, uint32_t, H4) -DO_3OP_PAIR(gvec_sminp_b, MIN, int8_t, H1) -DO_3OP_PAIR(gvec_sminp_h, MIN, int16_t, H2) -DO_3OP_PAIR(gvec_sminp_s, MIN, int32_t, H4) +DO_3OP_PAIR_NO_STATUS(gvec_sminp_b, MIN, int8_t, H1) +DO_3OP_PAIR_NO_STATUS(gvec_sminp_h, MIN, int16_t, H2) +DO_3OP_PAIR_NO_STATUS(gvec_sminp_s, MIN, int32_t, H4) -DO_3OP_PAIR(gvec_uminp_b, MIN, uint8_t, H1) -DO_3OP_PAIR(gvec_uminp_h, MIN, uint16_t, H2) -DO_3OP_PAIR(gvec_uminp_s, MIN, uint32_t, H4) +DO_3OP_PAIR_NO_STATUS(gvec_uminp_b, MIN, uint8_t, H1) +DO_3OP_PAIR_NO_STATUS(gvec_uminp_h, MIN, uint16_t, H2) +DO_3OP_PAIR_NO_STATUS(gvec_uminp_s, MIN, uint32_t, H4) -#undef DO_3OP_PAIR +#undef DO_3OP_PAIR_NO_STATUS #define DO_VCVT_FIXED(NAME, FUNC, TYPE) \ void HELPER(NAME)(void *vd, void *vn, float_status *stat, uint32_t desc) \ @@ -2797,53 +2655,6 @@ DO_VRINT_RMODE(gvec_vrint_rm_s, helper_rints, uint32_t) #undef DO_VRINT_RMODE -#ifdef TARGET_AARCH64 -void HELPER(simd_tblx)(void *vd, void *vm, CPUARMState *env, uint32_t desc) -{ - const uint8_t *indices = vm; - size_t oprsz = simd_oprsz(desc); - uint32_t rn = extract32(desc, SIMD_DATA_SHIFT, 5); - bool is_tbx = extract32(desc, SIMD_DATA_SHIFT + 5, 1); - uint32_t table_len = desc >> (SIMD_DATA_SHIFT + 6); - union { - uint8_t b[16]; - uint64_t d[2]; - } result; - - /* - * We must construct the final result in a temp, lest the output - * overlaps the input table. For TBL, begin with zero; for TBX, - * begin with the original register contents. Note that we always - * copy 16 bytes here to avoid an extra branch; clearing the high - * bits of the register for oprsz == 8 is handled below. - */ - if (is_tbx) { - memcpy(&result, vd, 16); - } else { - memset(&result, 0, 16); - } - - for (size_t i = 0; i < oprsz; ++i) { - uint32_t index = indices[H1(i)]; - - if (index < table_len) { - /* - * Convert index (a byte offset into the virtual table - * which is a series of 128-bit vectors concatenated) - * into the correct register element, bearing in mind - * that the table can wrap around from V31 to V0. - */ - const uint8_t *table = (const uint8_t *) - aa64_vfp_qreg(env, (rn + (index >> 4)) % 32); - result.b[H1(i)] = table[H1(index % 16)]; - } - } - - memcpy(vd, &result, 16); - clear_tail(vd, oprsz, simd_maxsz(desc)); -} -#endif - /* * NxN -> N highpart multiply * diff --git a/target/arm/tcg/vec_helper64.c b/target/arm/tcg/vec_helper64.c new file mode 100644 index 0000000000000..249a257177e1c --- /dev/null +++ b/target/arm/tcg/vec_helper64.c @@ -0,0 +1,142 @@ +/* + * ARM AdvSIMD / SVE Vector Operations + * + * Copyright (c) 2026 Linaro + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "helper.h" +#include "helper-a64.h" +#include "helper-sme.h" +#include "helper-sve.h" +#include "tcg/tcg-gvec-desc.h" +#include "fpu/softfloat.h" +#include "qemu/int128.h" +#include "crypto/clmul.h" +#include "vec_internal.h" + +DO_3OP(gvec_fdiv_h, float16_div, float16) +DO_3OP(gvec_fdiv_s, float32_div, float32) +DO_3OP(gvec_fdiv_d, float64_div, float64) + +DO_3OP(gvec_fmulx_h, helper_advsimd_mulxh, float16) +DO_3OP(gvec_fmulx_s, helper_vfp_mulxs, float32) +DO_3OP(gvec_fmulx_d, helper_vfp_mulxd, float64) + +DO_3OP(gvec_recps_h, helper_recpsf_f16, float16) +DO_3OP(gvec_recps_s, helper_recpsf_f32, float32) +DO_3OP(gvec_recps_d, helper_recpsf_f64, float64) + +DO_3OP(gvec_rsqrts_h, helper_rsqrtsf_f16, float16) +DO_3OP(gvec_rsqrts_s, helper_rsqrtsf_f32, float32) +DO_3OP(gvec_rsqrts_d, helper_rsqrtsf_f64, float64) + +DO_3OP(gvec_ah_recps_h, helper_recpsf_ah_f16, float16) +DO_3OP(gvec_ah_recps_s, helper_recpsf_ah_f32, float32) +DO_3OP(gvec_ah_recps_d, helper_recpsf_ah_f64, float64) + +DO_3OP(gvec_ah_rsqrts_h, helper_rsqrtsf_ah_f16, float16) +DO_3OP(gvec_ah_rsqrts_s, helper_rsqrtsf_ah_f32, float32) +DO_3OP(gvec_ah_rsqrts_d, helper_rsqrtsf_ah_f64, float64) + +DO_3OP(gvec_ah_fmax_h, helper_vfp_ah_maxh, float16) +DO_3OP(gvec_ah_fmax_s, helper_vfp_ah_maxs, float32) +DO_3OP(gvec_ah_fmax_d, helper_vfp_ah_maxd, float64) + +DO_3OP(gvec_ah_fmin_h, helper_vfp_ah_minh, float16) +DO_3OP(gvec_ah_fmin_s, helper_vfp_ah_mins, float32) +DO_3OP(gvec_ah_fmin_d, helper_vfp_ah_mind, float64) + +DO_3OP(gvec_fmax_b16, bfloat16_max, bfloat16) +DO_3OP(gvec_fmin_b16, bfloat16_min, bfloat16) +DO_3OP(gvec_fmaxnum_b16, bfloat16_maxnum, bfloat16) +DO_3OP(gvec_fminnum_b16, bfloat16_minnum, bfloat16) +DO_3OP(gvec_ah_fmax_b16, helper_sme2_ah_fmax_b16, bfloat16) +DO_3OP(gvec_ah_fmin_b16, helper_sme2_ah_fmin_b16, bfloat16) + +#define nop(N, M, S) (M) + +DO_FMUL_IDX(gvec_fmulx_idx_h, nop, helper_advsimd_mulxh, float16, H2) +DO_FMUL_IDX(gvec_fmulx_idx_s, nop, helper_vfp_mulxs, float32, H4) +DO_FMUL_IDX(gvec_fmulx_idx_d, nop, helper_vfp_mulxd, float64, H8) + +#undef nop + +void HELPER(sve2_pmull_h)(void *vd, void *vn, void *vm, uint32_t desc) +{ + int shift = simd_data(desc) * 8; + intptr_t i, opr_sz = simd_oprsz(desc); + uint64_t *d = vd, *n = vn, *m = vm; + + for (i = 0; i < opr_sz / 8; ++i) { + d[i] = clmul_8x4_even(n[i] >> shift, m[i] >> shift); + } +} + +void HELPER(sve2_pmull_d)(void *vd, void *vn, void *vm, uint32_t desc) +{ + intptr_t sel = H4(simd_data(desc)); + intptr_t i, opr_sz = simd_oprsz(desc); + uint32_t *n = vn, *m = vm; + uint64_t *d = vd; + + for (i = 0; i < opr_sz / 8; ++i) { + d[i] = clmul_32(n[2 * i + sel], m[2 * i + sel]); + } +} + +DO_3OP_PAIR(gvec_ah_fmaxp_h, helper_vfp_ah_maxh, float16, H2) +DO_3OP_PAIR(gvec_ah_fmaxp_s, helper_vfp_ah_maxs, float32, H4) +DO_3OP_PAIR(gvec_ah_fmaxp_d, helper_vfp_ah_maxd, float64, /**/) + +DO_3OP_PAIR(gvec_ah_fminp_h, helper_vfp_ah_minh, float16, H2) +DO_3OP_PAIR(gvec_ah_fminp_s, helper_vfp_ah_mins, float32, H4) +DO_3OP_PAIR(gvec_ah_fminp_d, helper_vfp_ah_mind, float64, /**/) + +void HELPER(simd_tblx)(void *vd, void *vm, CPUARMState *env, uint32_t desc) +{ + const uint8_t *indices = vm; + size_t oprsz = simd_oprsz(desc); + uint32_t rn = extract32(desc, SIMD_DATA_SHIFT, 5); + bool is_tbx = extract32(desc, SIMD_DATA_SHIFT + 5, 1); + uint32_t table_len = desc >> (SIMD_DATA_SHIFT + 6); + union { + uint8_t b[16]; + uint64_t d[2]; + } result; + + /* + * We must construct the final result in a temp, lest the output + * overlaps the input table. For TBL, begin with zero; for TBX, + * begin with the original register contents. Note that we always + * copy 16 bytes here to avoid an extra branch; clearing the high + * bits of the register for oprsz == 8 is handled below. + */ + if (is_tbx) { + memcpy(&result, vd, 16); + } else { + memset(&result, 0, 16); + } + + for (size_t i = 0; i < oprsz; ++i) { + uint32_t index = indices[H1(i)]; + + if (index < table_len) { + /* + * Convert index (a byte offset into the virtual table + * which is a series of 128-bit vectors concatenated) + * into the correct register element, bearing in mind + * that the table can wrap around from V31 to V0. + */ + const uint8_t *table = (const uint8_t *) + aa64_vfp_qreg(env, (rn + (index >> 4)) % 32); + result.b[H1(i)] = table[H1(index % 16)]; + } + } + + memcpy(vd, &result, 16); + clear_tail(vd, oprsz, simd_maxsz(desc)); +} diff --git a/target/arm/tcg/vec_internal.h b/target/arm/tcg/vec_internal.h index cf41b03dbcd52..4edd2b4fc18fd 100644 --- a/target/arm/tcg/vec_internal.h +++ b/target/arm/tcg/vec_internal.h @@ -450,4 +450,53 @@ static inline void depositn(uint64_t *p, unsigned pos, } } +#define DO_3OP(NAME, FUNC, TYPE) \ +void HELPER(NAME)(void *vd, void *vn, void *vm, \ + float_status * stat, uint32_t desc) \ +{ \ + intptr_t i, oprsz = simd_oprsz(desc); \ + TYPE *d = vd, *n = vn, *m = vm; \ + for (i = 0; i < oprsz / sizeof(TYPE); i++) { \ + d[i] = FUNC(n[i], m[i], stat); \ + } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ +} + +#define DO_3OP_PAIR(NAME, FUNC, TYPE, H) \ +void HELPER(NAME)(void *vd, void *vn, void *vm, \ + float_status * stat, uint32_t desc) \ +{ \ + ARMVectorReg scratch; \ + intptr_t oprsz = simd_oprsz(desc); \ + intptr_t half = oprsz / sizeof(TYPE) / 2; \ + TYPE *d = vd, *n = vn, *m = vm; \ + if (unlikely(d == m)) { \ + m = memcpy(&scratch, m, oprsz); \ + } \ + for (intptr_t i = 0; i < half; ++i) { \ + d[H(i)] = FUNC(n[H(i * 2)], n[H(i * 2 + 1)], stat); \ + } \ + for (intptr_t i = 0; i < half; ++i) { \ + d[H(i + half)] = FUNC(m[H(i * 2)], m[H(i * 2 + 1)], stat); \ + } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ +} + +#define DO_FMUL_IDX(NAME, ADD, MUL, TYPE, H) \ +void HELPER(NAME)(void *vd, void *vn, void *vm, \ + float_status * stat, uint32_t desc) \ +{ \ + intptr_t i, j, oprsz = simd_oprsz(desc); \ + intptr_t segment = MIN(16, oprsz) / sizeof(TYPE); \ + intptr_t idx = simd_data(desc); \ + TYPE *d = vd, *n = vn, *m = vm; \ + for (i = 0; i < oprsz / sizeof(TYPE); i += segment) { \ + TYPE mm = m[H(i + idx)]; \ + for (j = 0; j < segment; j++) { \ + d[i + j] = ADD(d[i + j], MUL(n[i + j], mm, stat), stat); \ + } \ + } \ + clear_tail(d, oprsz, simd_maxsz(desc)); \ +} + #endif /* TARGET_ARM_VEC_INTERNAL_H */ From 15500df3b3b05516eb80dddb4a9d29c0c28a02ab Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:48 -0800 Subject: [PATCH 030/859] target/arm/tcg/translate.h: replace target_ulong with vaddr Reviewed-by: Richard Henderson Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-13-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/tcg/translate.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 027769271c936..2c8358dd7fa34 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -18,7 +18,7 @@ */ typedef struct DisasLabel { TCGLabel *label; - target_ulong pc_save; + vaddr pc_save; } DisasLabel; /* @@ -42,7 +42,7 @@ typedef struct DisasContext { DisasDelayException *delay_excp_list; /* The address of the current instruction being translated. */ - target_ulong pc_curr; + vaddr pc_curr; /* * For CF_PCREL, the full value of cpu_pc is not known * (although the page offset is known). For convenience, the @@ -56,8 +56,8 @@ typedef struct DisasContext { * pc_save contains -1 to indicate that relative updates are no * longer possible. */ - target_ulong pc_save; - target_ulong page_start; + vaddr pc_save; + vaddr page_start; uint32_t insn; /* Nonzero if this instruction has been conditionally skipped. */ int condjmp; From 596081113bdd947ac8d8c85ba4a491df439c4d0d Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:49 -0800 Subject: [PATCH 031/859] target/arm/tcg/translate.h: replace target_long with int64_t MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit target_long is used to represent a pc diff. Checked all call sites to make sure we were already passing signed values, so extending works as expected. Use vaddr for pc_curr and pc_save. Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-14-pierrick.bouvier@linaro.org Signed-off-by: Peter Maydell --- target/arm/tcg/translate-a32.h | 2 +- target/arm/tcg/translate.c | 18 +++++++++--------- target/arm/tcg/translate.h | 12 ++++++------ 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/target/arm/tcg/translate-a32.h b/target/arm/tcg/translate-a32.h index 0b1fa57965cec..a8df364171b9a 100644 --- a/target/arm/tcg/translate-a32.h +++ b/target/arm/tcg/translate-a32.h @@ -40,7 +40,7 @@ void write_neon_element64(TCGv_i64 src, int reg, int ele, MemOp memop); TCGv_i32 add_reg_for_lit(DisasContext *s, int reg, int ofs); void gen_set_cpsr(TCGv_i32 var, uint32_t mask); void gen_set_condexec(DisasContext *s); -void gen_update_pc(DisasContext *s, target_long diff); +void gen_update_pc(DisasContext *s, int64_t diff); void gen_lookup_tb(DisasContext *s); long vfp_reg_offset(bool dp, unsigned reg); long neon_full_reg_offset(unsigned reg); diff --git a/target/arm/tcg/translate.c b/target/arm/tcg/translate.c index 3f57006f9df6a..f9d1b8897d2aa 100644 --- a/target/arm/tcg/translate.c +++ b/target/arm/tcg/translate.c @@ -253,12 +253,12 @@ static inline int get_a32_user_mem_index(DisasContext *s) } /* The pc_curr difference for an architectural jump. */ -static target_long jmp_diff(DisasContext *s, target_long diff) +static int64_t jmp_diff(DisasContext *s, int64_t diff) { return diff + (s->thumb ? 4 : 8); } -static void gen_pc_plus_diff(DisasContext *s, TCGv_i32 var, target_long diff) +static void gen_pc_plus_diff(DisasContext *s, TCGv_i32 var, int64_t diff) { assert(s->pc_save != -1); if (tb_cflags(s->base.tb) & CF_PCREL) { @@ -738,7 +738,7 @@ void gen_set_condexec(DisasContext *s) } } -void gen_update_pc(DisasContext *s, target_long diff) +void gen_update_pc(DisasContext *s, int64_t diff) { gen_pc_plus_diff(s, cpu_R[15], diff); s->pc_save = s->pc_curr + diff; @@ -1058,7 +1058,7 @@ static void gen_exception(int excp, uint32_t syndrome) tcg_constant_i32(syndrome)); } -static void gen_exception_insn_el_v(DisasContext *s, target_long pc_diff, +static void gen_exception_insn_el_v(DisasContext *s, int64_t pc_diff, int excp, uint32_t syn, TCGv_i32 tcg_el) { if (s->aarch64) { @@ -1071,14 +1071,14 @@ static void gen_exception_insn_el_v(DisasContext *s, target_long pc_diff, s->base.is_jmp = DISAS_NORETURN; } -void gen_exception_insn_el(DisasContext *s, target_long pc_diff, int excp, +void gen_exception_insn_el(DisasContext *s, int64_t pc_diff, int excp, uint32_t syn, uint32_t target_el) { gen_exception_insn_el_v(s, pc_diff, excp, syn, tcg_constant_i32(target_el)); } -void gen_exception_insn(DisasContext *s, target_long pc_diff, +void gen_exception_insn(DisasContext *s, int64_t pc_diff, int excp, uint32_t syn) { if (s->aarch64) { @@ -1313,7 +1313,7 @@ static void gen_goto_ptr(void) * cpu_loop_exec. Any live exit_requests will be processed as we * enter the next TB. */ -static void gen_goto_tb(DisasContext *s, unsigned tb_slot_idx, target_long diff) +static void gen_goto_tb(DisasContext *s, unsigned tb_slot_idx, int64_t diff) { if (translator_use_goto_tb(&s->base, s->pc_curr + diff)) { /* @@ -1340,7 +1340,7 @@ static void gen_goto_tb(DisasContext *s, unsigned tb_slot_idx, target_long diff) } /* Jump, specifying which TB number to use if we gen_goto_tb() */ -static void gen_jmp_tb(DisasContext *s, target_long diff, int tbno) +static void gen_jmp_tb(DisasContext *s, int64_t diff, int tbno) { if (unlikely(s->ss_active)) { /* An indirect jump so that we still trigger the debug exception. */ @@ -1383,7 +1383,7 @@ static void gen_jmp_tb(DisasContext *s, target_long diff, int tbno) } } -static inline void gen_jmp(DisasContext *s, target_long diff) +static inline void gen_jmp(DisasContext *s, int64_t diff) { gen_jmp_tb(s, diff, 0); } diff --git a/target/arm/tcg/translate.h b/target/arm/tcg/translate.h index 2c8358dd7fa34..3e3094a463e5d 100644 --- a/target/arm/tcg/translate.h +++ b/target/arm/tcg/translate.h @@ -27,8 +27,8 @@ typedef struct DisasLabel { typedef struct DisasDelayException { struct DisasDelayException *next; TCGLabel *lab; - target_long pc_curr; - target_long pc_save; + vaddr pc_curr; + vaddr pc_save; int condexec_mask; int condexec_cond; uint32_t excp; @@ -359,14 +359,14 @@ static inline int curr_insn_len(DisasContext *s) #ifdef TARGET_AARCH64 void a64_translate_init(void); -void gen_a64_update_pc(DisasContext *s, target_long diff); +void gen_a64_update_pc(DisasContext *s, int64_t diff); extern const TranslatorOps aarch64_translator_ops; #else static inline void a64_translate_init(void) { } -static inline void gen_a64_update_pc(DisasContext *s, target_long diff) +static inline void gen_a64_update_pc(DisasContext *s, int64_t diff) { } #endif @@ -377,9 +377,9 @@ void arm_gen_test_cc(int cc, TCGLabel *label); MemOp pow2_align(unsigned i); void unallocated_encoding(DisasContext *s); void gen_exception_internal(int excp); -void gen_exception_insn_el(DisasContext *s, target_long pc_diff, int excp, +void gen_exception_insn_el(DisasContext *s, int64_t pc_diff, int excp, uint32_t syn, uint32_t target_el); -void gen_exception_insn(DisasContext *s, target_long pc_diff, +void gen_exception_insn(DisasContext *s, int64_t pc_diff, int excp, uint32_t syn); TCGLabel *delay_exception_el(DisasContext *s, int excp, uint32_t syn, uint32_t target_el); From 10059583c7bfea50c1596310b0639669e93ce1ee Mon Sep 17 00:00:00 2001 From: Pierrick Bouvier Date: Wed, 18 Feb 2026 20:01:50 -0800 Subject: [PATCH 032/859] include/tcg/tcg-op.h: eradicate TARGET_INSN_START_EXTRA_WORDS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit removes TARGET_INSN_START_EXTRA_WORDS and force all arch to call the same version of tcg_gen_insn_start, with additional 0 arguments if needed. Since all arch have a single call site (in translate.c), this is as good documentation as having a single define. The notable exception is target/arm, which has two different translate files for 32/64 bits. Since it's the only one, we accept to have two call sites for this. As well, we update parameter type to use uint64_t instead of target_ulong, so it can be called from common code. Signed-off-by: Pierrick Bouvier Message-id: 20260219040150.2098396-15-pierrick.bouvier@linaro.org Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Peter Maydell --- include/tcg/tcg-op-common.h | 8 ++++++++ include/tcg/tcg-op.h | 29 ----------------------------- target/alpha/cpu-param.h | 2 -- target/alpha/translate.c | 4 ++-- target/arm/cpu-param.h | 7 ------- target/avr/cpu-param.h | 2 -- target/avr/translate.c | 2 +- target/hexagon/cpu-param.h | 2 -- target/hexagon/translate.c | 2 +- target/hppa/cpu-param.h | 2 -- target/i386/cpu-param.h | 2 -- target/i386/tcg/translate.c | 2 +- target/loongarch/cpu-param.h | 2 -- target/loongarch/tcg/translate.c | 2 +- target/m68k/cpu-param.h | 2 -- target/m68k/translate.c | 2 +- target/microblaze/cpu-param.h | 2 -- target/microblaze/translate.c | 2 +- target/mips/cpu-param.h | 2 -- target/or1k/cpu-param.h | 2 -- target/or1k/translate.c | 2 +- target/ppc/cpu-param.h | 2 -- target/ppc/translate.c | 2 +- target/riscv/cpu-param.h | 7 ------- target/rx/cpu-param.h | 2 -- target/rx/translate.c | 2 +- target/s390x/cpu-param.h | 2 -- target/sh4/cpu-param.h | 2 -- target/sh4/translate.c | 4 ++-- target/sparc/cpu-param.h | 2 -- target/sparc/translate.c | 2 +- target/tricore/cpu-param.h | 2 -- target/tricore/translate.c | 2 +- target/xtensa/cpu-param.h | 2 -- target/xtensa/translate.c | 2 +- 35 files changed, 24 insertions(+), 93 deletions(-) diff --git a/include/tcg/tcg-op-common.h b/include/tcg/tcg-op-common.h index f752ef440b209..e02f209c093fd 100644 --- a/include/tcg/tcg-op-common.h +++ b/include/tcg/tcg-op-common.h @@ -30,6 +30,14 @@ TCGv_i64 tcg_global_mem_new_i64(TCGv_ptr reg, intptr_t off, const char *name); TCGv_ptr tcg_global_mem_new_ptr(TCGv_ptr reg, intptr_t off, const char *name); /* Generic ops. */ +static inline void tcg_gen_insn_start(uint64_t pc, uint64_t a1, + uint64_t a2) +{ + TCGOp *op = tcg_emit_op(INDEX_op_insn_start, INSN_START_WORDS); + tcg_set_insn_start_param(op, 0, pc); + tcg_set_insn_start_param(op, 1, a1); + tcg_set_insn_start_param(op, 2, a2); +} void gen_set_label(TCGLabel *l); void tcg_gen_br(TCGLabel *l); diff --git a/include/tcg/tcg-op.h b/include/tcg/tcg-op.h index ee379994e7621..7024be938e6e0 100644 --- a/include/tcg/tcg-op.h +++ b/include/tcg/tcg-op.h @@ -28,35 +28,6 @@ # error Mismatch with insn-start-words.h #endif -#if TARGET_INSN_START_EXTRA_WORDS == 0 -static inline void tcg_gen_insn_start(target_ulong pc) -{ - TCGOp *op = tcg_emit_op(INDEX_op_insn_start, INSN_START_WORDS); - tcg_set_insn_start_param(op, 0, pc); - tcg_set_insn_start_param(op, 1, 0); - tcg_set_insn_start_param(op, 2, 0); -} -#elif TARGET_INSN_START_EXTRA_WORDS == 1 -static inline void tcg_gen_insn_start(target_ulong pc, target_ulong a1) -{ - TCGOp *op = tcg_emit_op(INDEX_op_insn_start, INSN_START_WORDS); - tcg_set_insn_start_param(op, 0, pc); - tcg_set_insn_start_param(op, 1, a1); - tcg_set_insn_start_param(op, 2, 0); -} -#elif TARGET_INSN_START_EXTRA_WORDS == 2 -static inline void tcg_gen_insn_start(target_ulong pc, target_ulong a1, - target_ulong a2) -{ - TCGOp *op = tcg_emit_op(INDEX_op_insn_start, INSN_START_WORDS); - tcg_set_insn_start_param(op, 0, pc); - tcg_set_insn_start_param(op, 1, a1); - tcg_set_insn_start_param(op, 2, a2); -} -#else -#error Unhandled TARGET_INSN_START_EXTRA_WORDS value -#endif - #if TARGET_LONG_BITS == 32 typedef TCGv_i32 TCGv; #define tcg_temp_new() tcg_temp_new_i32() diff --git a/target/alpha/cpu-param.h b/target/alpha/cpu-param.h index a799f42db3146..c9da620ab3ef9 100644 --- a/target/alpha/cpu-param.h +++ b/target/alpha/cpu-param.h @@ -24,6 +24,4 @@ # define TARGET_VIRT_ADDR_SPACE_BITS (30 + TARGET_PAGE_BITS) #endif -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 4442462891ee0..4d22d7d5a4500 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -2899,9 +2899,9 @@ static void alpha_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) DisasContext *ctx = container_of(dcbase, DisasContext, base); if (ctx->pcrel) { - tcg_gen_insn_start(dcbase->pc_next & ~TARGET_PAGE_MASK); + tcg_gen_insn_start(dcbase->pc_next & ~TARGET_PAGE_MASK, 0, 0); } else { - tcg_gen_insn_start(dcbase->pc_next); + tcg_gen_insn_start(dcbase->pc_next, 0, 0); } } diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h index 8b46c7c5708b5..7de0099cbfa85 100644 --- a/target/arm/cpu-param.h +++ b/target/arm/cpu-param.h @@ -32,11 +32,4 @@ # define TARGET_PAGE_BITS_LEGACY 10 #endif /* !CONFIG_USER_ONLY */ -/* - * ARM-specific extra insn start words: - * 1: Conditional execution bits - * 2: Partial exception syndrome for data aborts - */ -#define TARGET_INSN_START_EXTRA_WORDS 2 - #endif diff --git a/target/avr/cpu-param.h b/target/avr/cpu-param.h index f74bfc258046e..ea7887919a7cc 100644 --- a/target/avr/cpu-param.h +++ b/target/avr/cpu-param.h @@ -25,6 +25,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 24 #define TARGET_VIRT_ADDR_SPACE_BITS 24 -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/avr/translate.c b/target/avr/translate.c index 78ae83df219ca..649dd4b0112f8 100644 --- a/target/avr/translate.c +++ b/target/avr/translate.c @@ -2689,7 +2689,7 @@ static void avr_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->npc); + tcg_gen_insn_start(ctx->npc, 0, 0); } static void avr_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h index 635d509e74363..45ee7b46409c7 100644 --- a/target/hexagon/cpu-param.h +++ b/target/hexagon/cpu-param.h @@ -23,6 +23,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 36 #define TARGET_VIRT_ADDR_SPACE_BITS 32 -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/hexagon/translate.c b/target/hexagon/translate.c index 2fdc956bf997c..8a223f6e13e59 100644 --- a/target/hexagon/translate.c +++ b/target/hexagon/translate.c @@ -998,7 +998,7 @@ static void hexagon_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->base.pc_next); + tcg_gen_insn_start(ctx->base.pc_next, 0, 0); } static bool pkt_crosses_page(CPUHexagonState *env, DisasContext *ctx) diff --git a/target/hppa/cpu-param.h b/target/hppa/cpu-param.h index 9bf7ac76d0c51..e0b2c7c9157b9 100644 --- a/target/hppa/cpu-param.h +++ b/target/hppa/cpu-param.h @@ -19,6 +19,4 @@ #define TARGET_PAGE_BITS 12 -#define TARGET_INSN_START_EXTRA_WORDS 2 - #endif diff --git a/target/i386/cpu-param.h b/target/i386/cpu-param.h index ebb844bcc83b7..909bc02792383 100644 --- a/target/i386/cpu-param.h +++ b/target/i386/cpu-param.h @@ -22,6 +22,4 @@ #endif #define TARGET_PAGE_BITS 12 -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c index 7186517239cfa..14210d569f7c3 100644 --- a/target/i386/tcg/translate.c +++ b/target/i386/tcg/translate.c @@ -3501,7 +3501,7 @@ static void i386_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) if (tb_cflags(dcbase->tb) & CF_PCREL) { pc_arg &= ~TARGET_PAGE_MASK; } - tcg_gen_insn_start(pc_arg, dc->cc_op); + tcg_gen_insn_start(pc_arg, dc->cc_op, 0); } static void i386_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) diff --git a/target/loongarch/cpu-param.h b/target/loongarch/cpu-param.h index 58cc45a377e3b..071567712b3e0 100644 --- a/target/loongarch/cpu-param.h +++ b/target/loongarch/cpu-param.h @@ -13,6 +13,4 @@ #define TARGET_PAGE_BITS 12 -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/loongarch/tcg/translate.c b/target/loongarch/tcg/translate.c index 30f375b33f070..b9ed13d19c6cc 100644 --- a/target/loongarch/tcg/translate.c +++ b/target/loongarch/tcg/translate.c @@ -159,7 +159,7 @@ static void loongarch_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->base.pc_next); + tcg_gen_insn_start(ctx->base.pc_next, 0, 0); } /* diff --git a/target/m68k/cpu-param.h b/target/m68k/cpu-param.h index 256a2b5f8b298..7afbf6d302dd2 100644 --- a/target/m68k/cpu-param.h +++ b/target/m68k/cpu-param.h @@ -17,6 +17,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32 -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/m68k/translate.c b/target/m68k/translate.c index a0309939012b1..abc1c79f3cd81 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -6041,7 +6041,7 @@ static void m68k_tr_tb_start(DisasContextBase *dcbase, CPUState *cpu) static void m68k_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) { DisasContext *dc = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(dc->base.pc_next, dc->cc_op); + tcg_gen_insn_start(dc->base.pc_next, dc->cc_op, 0); } static void m68k_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) diff --git a/target/microblaze/cpu-param.h b/target/microblaze/cpu-param.h index e0a37945136ea..6a0714bb3d752 100644 --- a/target/microblaze/cpu-param.h +++ b/target/microblaze/cpu-param.h @@ -27,6 +27,4 @@ /* FIXME: MB uses variable pages down to 1K but linux only uses 4k. */ #define TARGET_PAGE_BITS 12 -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index 0be3c98dc17e4..2af67beecec08 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1630,7 +1630,7 @@ static void mb_tr_insn_start(DisasContextBase *dcb, CPUState *cs) { DisasContext *dc = container_of(dcb, DisasContext, base); - tcg_gen_insn_start(dc->base.pc_next, dc->tb_flags & ~MSR_TB_MASK); + tcg_gen_insn_start(dc->base.pc_next, dc->tb_flags & ~MSR_TB_MASK, 0); } static void mb_tr_translate_insn(DisasContextBase *dcb, CPUState *cs) diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h index 58f450827f796..a71e7383d2497 100644 --- a/target/mips/cpu-param.h +++ b/target/mips/cpu-param.h @@ -20,6 +20,4 @@ #endif #define TARGET_PAGE_BITS 12 -#define TARGET_INSN_START_EXTRA_WORDS 2 - #endif diff --git a/target/or1k/cpu-param.h b/target/or1k/cpu-param.h index b4f57bbe692cc..3011bf5fccab4 100644 --- a/target/or1k/cpu-param.h +++ b/target/or1k/cpu-param.h @@ -12,6 +12,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32 -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/or1k/translate.c b/target/or1k/translate.c index ce2dc466dc7e8..de81dc6ef8d27 100644 --- a/target/or1k/translate.c +++ b/target/or1k/translate.c @@ -1552,7 +1552,7 @@ static void openrisc_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) DisasContext *dc = container_of(dcbase, DisasContext, base); tcg_gen_insn_start(dc->base.pc_next, (dc->delayed_branch ? 1 : 0) - | (dc->base.num_insns > 1 ? 2 : 0)); + | (dc->base.num_insns > 1 ? 2 : 0), 0); } static void openrisc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h index e4ed9080ee967..ca7602d898361 100644 --- a/target/ppc/cpu-param.h +++ b/target/ppc/cpu-param.h @@ -37,6 +37,4 @@ # define TARGET_PAGE_BITS 12 #endif -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/ppc/translate.c b/target/ppc/translate.c index e9acfa239ec37..a09a6df93fd13 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -6575,7 +6575,7 @@ static void ppc_tr_tb_start(DisasContextBase *db, CPUState *cs) static void ppc_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { - tcg_gen_insn_start(dcbase->pc_next); + tcg_gen_insn_start(dcbase->pc_next, 0, 0); } static bool is_prefix_insn(DisasContext *ctx, uint32_t insn) diff --git a/target/riscv/cpu-param.h b/target/riscv/cpu-param.h index cfdc67c258c70..039e877891aae 100644 --- a/target/riscv/cpu-param.h +++ b/target/riscv/cpu-param.h @@ -17,13 +17,6 @@ #endif #define TARGET_PAGE_BITS 12 /* 4 KiB Pages */ -/* - * RISC-V-specific extra insn start words: - * 1: Original instruction opcode - * 2: more information about instruction - */ -#define TARGET_INSN_START_EXTRA_WORDS 2 - /* * The current MMU Modes are: * - U mode 0b000 diff --git a/target/rx/cpu-param.h b/target/rx/cpu-param.h index 84934f3bcaf0e..ef1970a09e93e 100644 --- a/target/rx/cpu-param.h +++ b/target/rx/cpu-param.h @@ -24,6 +24,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32 -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/rx/translate.c b/target/rx/translate.c index 26d41548294f1..a245b9db8fe73 100644 --- a/target/rx/translate.c +++ b/target/rx/translate.c @@ -2217,7 +2217,7 @@ static void rx_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->base.pc_next); + tcg_gen_insn_start(ctx->base.pc_next, 0, 0); } static void rx_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h index abfae3bedfb17..a5f798eeae786 100644 --- a/target/s390x/cpu-param.h +++ b/target/s390x/cpu-param.h @@ -12,6 +12,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 64 #define TARGET_VIRT_ADDR_SPACE_BITS 64 -#define TARGET_INSN_START_EXTRA_WORDS 2 - #endif diff --git a/target/sh4/cpu-param.h b/target/sh4/cpu-param.h index f328715ee862f..2b6e11dd0acab 100644 --- a/target/sh4/cpu-param.h +++ b/target/sh4/cpu-param.h @@ -16,6 +16,4 @@ # define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/sh4/translate.c b/target/sh4/translate.c index b3ae0a3814c7e..b1057727c55e4 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -2181,7 +2181,7 @@ static void decode_gusa(DisasContext *ctx, CPUSH4State *env) * tb->icount * insn_start. */ for (i = 1; i < max_insns; ++i) { - tcg_gen_insn_start(pc + i * 2, ctx->envflags); + tcg_gen_insn_start(pc + i * 2, ctx->envflags, 0); ctx->base.insn_start = tcg_last_op(); } } @@ -2241,7 +2241,7 @@ static void sh4_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->base.pc_next, ctx->envflags); + tcg_gen_insn_start(ctx->base.pc_next, ctx->envflags, 0); } static void sh4_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) diff --git a/target/sparc/cpu-param.h b/target/sparc/cpu-param.h index 45eea9d6bac8a..6e8e2a514694c 100644 --- a/target/sparc/cpu-param.h +++ b/target/sparc/cpu-param.h @@ -21,6 +21,4 @@ # define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif -#define TARGET_INSN_START_EXTRA_WORDS 1 - #endif diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 57b50ff8b9a3c..7e8558dbbd88f 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -5735,7 +5735,7 @@ static void sparc_tr_insn_start(DisasContextBase *dcbase, CPUState *cs) g_assert_not_reached(); } } - tcg_gen_insn_start(dc->pc, npc); + tcg_gen_insn_start(dc->pc, npc, 0); } static void sparc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) diff --git a/target/tricore/cpu-param.h b/target/tricore/cpu-param.h index eb33a67c41943..790242ef3d222 100644 --- a/target/tricore/cpu-param.h +++ b/target/tricore/cpu-param.h @@ -12,6 +12,4 @@ #define TARGET_PHYS_ADDR_SPACE_BITS 32 #define TARGET_VIRT_ADDR_SPACE_BITS 32 -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/tricore/translate.c b/target/tricore/translate.c index 18d8726af6d71..0eaf7a82f87e0 100644 --- a/target/tricore/translate.c +++ b/target/tricore/translate.c @@ -8410,7 +8410,7 @@ static void tricore_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) { DisasContext *ctx = container_of(dcbase, DisasContext, base); - tcg_gen_insn_start(ctx->base.pc_next); + tcg_gen_insn_start(ctx->base.pc_next, 0, 0); } static bool insn_crosses_page(DisasContext *ctx, CPUTriCoreState *env) diff --git a/target/xtensa/cpu-param.h b/target/xtensa/cpu-param.h index 7a0c22c900562..06d85218b8494 100644 --- a/target/xtensa/cpu-param.h +++ b/target/xtensa/cpu-param.h @@ -16,6 +16,4 @@ #define TARGET_VIRT_ADDR_SPACE_BITS 32 #endif -#define TARGET_INSN_START_EXTRA_WORDS 0 - #endif diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c index bb8d2ed86cf5e..5e3707d3fdf98 100644 --- a/target/xtensa/translate.c +++ b/target/xtensa/translate.c @@ -1159,7 +1159,7 @@ static void xtensa_tr_tb_start(DisasContextBase *dcbase, CPUState *cpu) static void xtensa_tr_insn_start(DisasContextBase *dcbase, CPUState *cpu) { - tcg_gen_insn_start(dcbase->pc_next); + tcg_gen_insn_start(dcbase->pc_next, 0, 0); } static void xtensa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) From 16786eb7bf8644398707e64fff12e4c9564ec131 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Wed, 18 Feb 2026 17:05:05 +0100 Subject: [PATCH 033/859] hw/hppa: Add BMC on 64-bit machines only Prevent adding the BMC with it's serial ports on 32-bit machines, even if they have a PCI bus like the B160L. This fixes boot problems with HP-UX on B160L. Signed-off-by: Helge Deller Fixes: 557bc5260cfd ("hw/hppa: PCI devices depend on availability of PCI bus") Cc: qemu-stable@nongnu.org Reviewed-by: Anton Johansson --- hw/hppa/machine.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index c3680667aee5c..d6aeb793c0d84 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -376,7 +376,9 @@ static void machine_HP_common_init_tail(MachineState *machine, PCIBus *pci_bus, if (pci_bus) { pci_init_nic_devices(pci_bus, mc->default_nic); + } + if (pci_bus && hppa_is_pa20(&cpu[0]->env)) { /* BMC board: HP Diva GSP PCI card */ dev = qdev_new("diva-gsp"); if (dev && !object_property_get_bool(OBJECT(dev), "disable", NULL)) { From 1546dc52046825ad9aeb8c6a9dd0e8de869ced97 Mon Sep 17 00:00:00 2001 From: Helge Deller Date: Wed, 18 Feb 2026 21:01:55 +0100 Subject: [PATCH 034/859] target/hppa: Update SeaBIOS-hppa to version 22 The new firmware includes support for an A400-44 machine with initial functional 64-bit PAT PDC support: - Linux 64-bit kernel runs nicely. - ODE 2006 works nicely on 715, B160L, and A400, but has problems on C3700. - MPE and 64-bit HP-UX11 need more work, although HP-UX11 boot up to a crash where it reports where it had problems. Signed-off-by: Helge Deller Reviewed-by: Anton Johansson --- pc-bios/hppa-firmware.img | Bin 628952 -> 632048 bytes pc-bios/hppa-firmware64.img | Bin 692032 -> 713608 bytes roms/seabios-hppa | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/hppa-firmware.img b/pc-bios/hppa-firmware.img index d4c247152adce4e8684de2dc64f530bddc511f00..09485fb0fe0cf89985751c8e2d0de32f83ca92ac 100644 GIT binary patch delta 274092 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 z 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 z zbO=4J{7ALVSv7h1vBkY63X4*RzJpRP*c znk4V4C;g*ha{e>kF`upizB}zVfX+pqZUzp-VNd^PnP#0szAUNR>qEA;rUaRakc>aj;IPNW`%&Rb|R>)p$E%GqL{```{dSPr}=Y_hh{DvA6c3zLQ;>klwwgAAQuNqH0e+ z^!1yf4({qb{Ur&mM~1rw<%jZ?`hl`e>IceN>PMYku2U`gQDxDOYKwl3##x}jWyz@@vf=tsB6a9Jig+A&IJ-@skjU_i);B%x13n>inwK+ zpJN=t-#~sDkFgW)G!%B)RGd2|k~Y;hwifO>iySlA5G7C3hSWc@a`L)i%l{PW5M+XK z`-{rowaz}*GXr()%ihtRAj?nHQCYvPQst@Roy59A9ReSI!s)hSvPG9JLfE|J9c43A z9&ty=wJbMfmpot9_2cioqjj8@Sa8DjC2_*$CGFQ270yY_e~>W9;|v2Q!mc7L?9`Wu zllW#fh-$QdQumW^^MtAM4VZ`4?ak{eC&pQB|3BLsQF)WHH?qHQ{Fy6Qzo4UXt_Aw$ z#rRT4JF^pZCXf||U!GkKS@`o`hFv)VyYe#Z$`RO=mtj{1#6{3+H`~B)v#647V6&)Z z`-l6IY7th$d;@p3Jog-U@y5J^Z#CXIC_h<0QGT*+qTN=0+>L`X9HzLA*c+DLIdLn} zU*>6J9PIFNmNo1W;ymAHSf0c4xVMCBW^raB;$Vjv*UmWDVTS)u*AIrTQZyLuI)#2x z(4Ua_*C=?;Ity%vg7rM*Etc>n?Kk7R|22fCttEb(Um)8t(xknW{UX>~2@iX-q7B~- z0FSfNrQOQE!>iBLzdF&i#y$se!mtUn2N>7yfZXa}_mnKISF!<|!=vHepibNwq!ni4 zF9)*CVf|;_@AVbT$GZkPS&shJWz=DL9}8?7boCO1S5Qx-y#rr>nF9HbW*(%xuJsnr zoFk?p{8HwD{3G2L5x0Ogj_oLTD1!SQ*?xha#%LYS9>k>szT-PE_gwelPVGuL&ei+r;p?!U4>tcnoIyEde<%8mo#;EFKZ$(oScv{5`=gxC z!JBjavR^9G)?@`aE`YAcIc%IcW$!!n;-5V03N>qApWmSjc-rFRSmM-+t0B7-SmHN+ z4+kdSq1H}cCbsw^TtB^R%lr`5Pv?y9o{0S+JI2Qy)3|TLwx)X`_K575&@25m+YQ}* z>=W7HyVZ5`B!TxcTz`!>zmeIu_=CiCJ=R;>v}yhs6}8wW__SP~eF@eNk8gd=UxIm% zxi}*Ma|pgM4BpH1x8eVT^5=YAz4Pu+@9a<2+xc_#&aIYj zU+JG%7FY-IOWpsL^1F0=4kyD|mZa^f#sRbVS=QmVN#4Md(j)B0NztQ{G(8%p>k;;( zOFbGV^@uc9)XgY*Vj@OA)Q7qMv-LsB8g+p>u)=?fSC&n2Q0@U5qzfpQ?)i|Tu&J_D z{%3lH{Sui@*k4lboOSZ8;#*PXdKueQxNm#`Wsfxsrz9M7L-}*=KC=v$23>cv~8d zVihhny0%File*`Q+XXyM-~k`_?hHKOBb(vfK}W5kDH6mZVacNz?oWp6yy(2%v!}$t z^$#WF6}+E>|0C0%2Y;UQQzm+T%!1o^US$Myh{2{M9bUiZU za5H$FuFK&;iyW-se@c^sHEz5v2Yh21|1os|c|c!t!guIaweN5L|4jmalfd63@HYwk z-y(r5{6zKxxu5^qpS~09%3k|_3*QEx*W%puYcc0u){FH$1C#tb8-eTEFrVLv`wO)d zv9O=#RbpOq^`p;gjsvfFV({m`ZlPYA0&c+_>&eXMX!#h4<2 zebqjMeRW05?{LR>H-kgKKM!+ko&UQt+B>z;h5hBghchW~7n3&W+d^DBfOE?46n>oJ zB>5n1%!yCIT@M=La1XG~pYm4@;QkZIZ=vSy_b$MG__#aaZQ!{koHt+^+*R+8Fu0S0 zwBP8A9$+}>am}8AbJD|~yOVVG4-`4}bryRUuW}TDHr+*V`}cJgc^7v&9A$~<1o)>^ zjJBPD-%DN>qj!lg+&AK=f;`JPH%i=Pzq{~Vp2Mc*3ouUrnHp}E0p!|&x!whsOTQ63 z#*ZJ$e*p6)!u>YR?_WLc^wiCPfrtJ@YjW@QjykZ}6T>&C*DB}YyU%R>8`QewHz=gC zeII`s{;=+l_aWNC_~ZFb^A2dg=K23U|9)rGv2Q2#IpJ)ef4@Px*GqRrv}o^YUjlJ& z(ogq8U17)m0jwX!nOc~8p1pUoFTQWHV+Q837hs;+PgygMxGUkuuE(7?OTxb3THHf7 zb#orhoASimI}5ckd=X<<+*yHAc8S z$AGI@xbaO2`r}&1vo4mc4F1qsKKnZz3(;45koQ^P#sqn;1N^t)yzz;6&qi1W-d6)| z2IJxW0?!V?dpzz5ocQp6`9nBAVD8FTxdY>mk`@2yZ-;+2+zh{Q>Rlp-yyLu;G43vJ z3H;d>{{{Q@&Qw`m8=J05uVzZ!}||pokJS083&oJ!d#yoXVg>r5$>0D z6!igmJ<6za(3L3+mwJTnBGeh)S0wGgf@l}(3v^=vbgY5r=j?6t#Vb3!f^&Ql7WD@@ zH;-#U@XbWlaeOOTz;u-zsN2K`7}gusEtVm56tGr&a?a3zMV*_6^Iqbf$=(H|$!{zQ zpI6>DN_^l+(JW7;Dd)dBE}&Qk)n}t_yL-L!V22iXN(<}VfAr4t_zLI1{ndm0o;d9k z{8;-Syo-HUhvO4d+_1NJW z?LpCwue-}Mw>@YB=-+;+5*YCMZ9xXvFxPJVHTO67M@ol(2xCoSbq5m7{qYGgH=jS_ zr(7}jCx8Ck+sYlE(A*zLSkqYDOh0f&J->bQw~rd`m^(fpQKx*vr6;bYn*RIG=s1{y z{00)Jcd^`PmS&}v$(^O;Mm;fK+~DTy(=(m%klK}7&HOa?U%53)%hDL1nX;9(nRejJ zKW$g3hfi-xdF5do$~yK&&|)Z;Dl!PrRu)9*9}_w7Oa5O*N+e zH`N57IV`m-je4Y9nYAd;ALy?tRgZLwszFbJ%XTvSn$I+!iMZ8cbsJ%L*TrjM8B#M? zaoE_=*m31n>ikmtsLNMwWtfT`COM*_;ICf{h=J%pe4t;JdOuvz0ffd8JK`@3O;kV( zWDR(5+8cjp^Wg)^0AjL+OK)gDxn1~uL)v^V{JxQ+;c9Va)1{~y@tJt=oe7+|=j|oQ z=bpC%Z~NZ14SI%3&)PPj355>@^uP|3#!KnLGoi{;l^f5B3*3wiUy~=E8ygBk<}m7l z^~nS|wER+KH=O+*I=!_VhS#9MkVZ%<51IJa!=oZ5BB(f}D$fF|ec+Fsjq(vgmdF)u znMkDvBKUKMSG^RLA|RLk3@5jg#3Co`j+9nal}6lB{RblMs?yRbcO)mA3OBURrrETt zD6OZm-@b$|5$F%}GcUw9bSg8HFob0qAJVb~ATHu0ZWHpq-({5c;J2b>gbzj8sGEEb z6@NBiCJvUC=_`$-`iH`$cw-CjPupQDH9r5O1>(L$*7mFpK8+p!v^|h)4~D|wD-FQz zUbz*isIM_w)D|V)Tmg+tc>2fpjPIG&UzM@{s0YbvW0GIM8X|QgN^pllG_SaZ$ z;3(>jl}4(nMoMSIo3c>p4Zjh8u5Sa++2lddApLWtHaML@e{hT*QYy_Jt>s|-gWQei zOzAECpBm^~|B{}@j=M|mFI`&Nq*o@@Bg&K>C8a@Q@fe&Ae*5CSj2$2gebAG6K|X9z z;Fa7nW5Y?*OfR!qDr!6lPeRlvANzH~^AEThu~hWida^olOWma~+j_nwRdS@B3<4mO zwcTirHz%nxCFqyZf@DZ8VCfT0mX?RJgu9 zdYRvTUw=|=kZ&Ln$e4dCUW40_!mROD_i*Vm)?dA+Vb!=~??IDRP4-KybTYZEdTMoN zf@k=Uw1(g*6An}VsWYnA#Juof8s$>%p>VLL(S(l5k~58G?tb)cx8-@N@ywFr5p-b# zXMAUdO3ScR`buvtI;k|1oMrf>>3bFYakPBNba2%)Cz>uD zlt$4?y()t7V{8{(IVetHQGkyHj*=*yCXwL<^>?Aw2qZ6>|7hG(L0Eu*2`!^_`HQkW+IZ~hf>T+WE>G$MK**j zpb8G#{#%(z+5%Z{I_44De@j2L)XKG4FVTM=hW{bygKJ7#aUj!Y9RG_mwlkQg(fFXB zoKUX8|6A!~au3Ttm3)Yv_*uxGWiX`eCLac;bbBxoH2l{0uy(+<@% zaekYC<}U?|mMl^gn-;xN3t;N`N^M#c9|CB@GV-5^=d<6eBI2CGz%j7obr@r<4XRtq3T(X54q8E_ba#>U0dp5qZcz|l~@38jJ3yE__tmLwt>`5P+T zP+?i{NI!wpNK>W|9N;8_&I)DTx{xf{L_ z^k47urSWps?I-h1J!Sg9IrKlQ{GU^L*>6v&W(TO+xR8R(kMN?M<_q5 z{F3P*l(X%>Smk$4=`Hd*r}Vm-Q3jdX^5Oa)*8HDKdTT%W?9-c4v*y{TF;eyhi2gRp zSiMcHIk)ssjF>G-tu@QpXlVz}KMiMpt$f{&wLDo*Wj&hpXyDQ2Ge^$+R^xNz?dCIe z8QaeQzFQuSeq?!Qt*m~y&wP~8ep$Oid-(nv`8Gx&)D%Wu_sAB5l9ti2DzO=&cvCo<@lv;^na{#eqVz5TOr zVM#x6)XV~$(uZmyqr^)_ThVhS7Rtv{)nyE~hf7$%44=c1d*7ab$2KA?^ z3hOrHECDqpmD*4~uJBUnjQ@?X@!6#}a2onSzj7zPyXuv61o<0?@J??_EKz6Wl=aL~ z_0A@d{Ct~}{BRo^k5&yi=pTP(8rF1$)fX|$v1G#KmWu~5`)iL3{(0Kljb|2~fr-yJe>zxxMo8*A6Mbtq=yv3SgVNZvDC_IAXeriH=2m5O*xt6n zWpbycNX2GN^U_N~{B?h`XTS8)x&I9ey!6sv^Oq{w|6bpK#^>B{nrThfP?(08vQJLl zpNa4p4gwlF%nz*xo^wlYa&5Z)68;tM9CVybE{5lExY$hDS9w2o`X>K6rVNCJ<8Anq z3gJ*PWtb^-<;p;Q*kBV!CMqL@W8E%R?hgAK4#R-_4V!$}NR@s#3M0fx{)dMdj)Ak` ze>m)a75^shrfUdWG@Smqo8>ct1<8OxrA1@s!TN2_2wE^$iYk@-`gTrSU?_-(c+aL3 z2GciFDNGr1nOQc;{0}e1!IV{qN#Ar01)GU4GylW$pGp5rs;28Np-;YsPdOAeGt5k@ zT$%VZQw(;gl$j(na`@S3ZYI8H`S7sDN!MWRh7U#>G z)0GJ}Q~0^JTuLey84h9j6jjCDx&J?${24bQX6}{wE1th1sU$lReK*ga>bP~#WQF#evXpk(o6^};XdpoYN9l1%vphv=Kn0ohnjzrYqFbrnmbH+ zSW~3B$>$LDGHT;@^$b74C+E!ueYZAuKV(Qg#GL8fJ$LtBpAw>ixnm{QrDEWv9znOl*ZSen{nnm6;E!|hi`vstya1O=ud@C z_gOVOlRG_4s^8SRR4pWw6=P~D0pS^?C)ZnXIfp)@r{)3LrlHRNN=9%hCXJrx~lg|&XLJd83)1tdPR+#FgybUqJQ)AczOpF=Ca;~WAmmA}k% zQ}I#n)sw5G@@K*Y5s|rmkZw@gA?jadIHRuBL-&V+Q?-NtR}Bk?$g}#f=BGYP#*oxs zp-@k1=up1Vf={#j-+ZS-QmS?08c~m@4w{z-cb$}VDrC8+*RDa_Wzh9}#E%k_waMC5 zTKcgJxI{ueqeT&(DUi<$ZKjwhYP3{*IkJXj1Jm$7)-CerO+NHxqt2!NyfT#G#>2LR z>4y3_#3kr6^0@>snSV;>ngPS-Y=11Z%(T%rJ6l9axWRfrt3%nC((wzw)bV5@>0mn( z)TV1QP*(L?NDFI0JQMM~GWF+>rKR#|{Xc!lfWpTX$c7TcRe6$TP&8|)`0B)TK`6qx zg-v%)hi;|*42yR@_?!+bHo&SU6|Pwe>XhzJViVe6d^n^^hxGUMnPQm;@8^F=xGU5+tOy2DWuATzEp&`glWj9G!;x>hC{Dk=6kxB1WTCugUt{##8qe&A|fn8 zc*ByThNjasI9+}gJj6Iy ze)mhB6}9Qu(P{EIGQO{BWx|(Mo6_-Rl8fX|Qu9OSl>HluKcj6KTzaYenewu_2Itp^ zRig{lS76;r??)JLe6u`QE-ayRIg{s!vSy~&&{Y1WL(bHrN$78+<|P%5c9)h{wd>xb zwNBTU3CZ@}Z29R*ufIWH@Jm=yrTw8rr*5bICdhE3Z(zRD@j1Z%B;@3;`wc{m^eUf& z67kyfiq|Yii<9cGt85<3(8#Uztc=vtT09 zUBri$TJkYi|8mfSROPRFk)|#TLZksl_MCY&p27HvWKdCx{-xVBg5*dz zV}xhwf_+H3$_j?WBB3mxOq~2Lm71B`q3Eha$I*+nK1oz*j*;`L60pZ@$i$Re8Zvm( z^~I2EI^eo=^(hQ5FdUJlrC%qq$lhooO^y*A4 zQ@TsGOkEq^rLs^YZ6obt4tj_=NuR1SmTcHL{+ z!}DjtrQ%EH&x9j?H;8ZJxk{JI(DR~(OxPbW=GVyOQ1gVG)8oURIRltlBIbMv%fpx( z8hXBtrK^{(US_nZslQaY81frjZdb{?-hf;%A8OubsPaw6muWt%N@A*kzBdt{aA+>g zJ*2*nq5+qA{%Khj4P1N60?p$m2Hw8^K(W=^nQ+-$w?n^4nY_}`Z(UAQP3?pj^{{jC>-hI852&GNARrX56F#zAGx1xjNbT8 zeNyve%zp9BnP)#A?R;2}^j}c>0<=txtiOQ#rpH^$*C^e=<;zs61XQ_kF2S5nNXN-i zVLf5*bs}c(oZ!-quv8i6Ae_3CI(nM|9Ul5;LkX5iTgWd6vyjf8258i};m5V?8ur zwcR4z1lT6dNnVAgUVc&GHbIT_sq4A(@=fT#aBr-7@hU>VK%zts5(CFha* zb*kSvGMtjj$aaf*i z)o0V5(WT~^XoJ*aaBsd%c+>i&&o?!pZ{2A>ynzo zFKp<+=#LeeZtCmV{AS?0k@0+8n-7Vm{sQ7&{i#OZ!+cVqQs+z5_>$wd^l_*))o}e^ zKfY=qXWB$@2U_ertY^3owsP>eI~C5QjSl*?>8LHaQ7a|7sV_EsFPfAwKJ)i-PZ zsLj{@AMGaXEBJptd_$fMU?v^NDXgx?pTgV@3 z6C$p~w75v|B>eapF_E^m4H2&hx5tSs6b=D_C@0!}HN_Qc$0MqO<&Fr5N-!OPh97R% z2u6ZIA==tPA-}Mo){K}4z_6COK0?%rQQ}W>UFG$9F-sO}ZwH+qewb=f9&foBQ(o^V zH)A3W$&LaGg_^wJRTqfLf}(?LTXI?t9>@XNsb4gQqSB@F{)RS)N~Hl1!Bk8Y*a2_! zXod_T+QxRQ3|9hyY`WSF4|32RHarlc`J=?~6MhDTLLoB--b4uhWQaeqp(`?FL&Q&C z{f3a&?+-0%S5Xjecuo5v>GAr5^3DGM119}`FFkyF8A6W`{tc1H2ETN|<45V}ZuKfJ z_v!(OlyE3OIRhLHiAx_~McUSE*xl9^k)SLZ{2&|rB5e+Eq$woulsgxIhj*Vf(@?P}LKASV12>b5rOrykR`d-sM7Yt|@6BMdg^fH$(ENo*>HH5)(1 zBvFI6NK&G*zJec_Mj_L43J>(u60_lbg9Fy8P|_pom_m?{YGCLAv=Tp+Q%#d9>UFS$ zsvPoHC5cKSC0&;P`r$^oSwi59IGWm;WDqimEa~NgkR}AE7$9y!jPfu|TSAX1uMY-e z;71~08iF~PSsj~_C~9apSw84G6iHTfFj+zpLAfkBUHuWVX9Io)>W#aB+wia;lnfBU z7?zQYT(m~&HYLIsBN(0tN+>RaQEOR5Nl5^inK@;0bvQB*(%pu+S6-P$<`n(}szQR{ zML-+GUlH7RnLiOm-ca$qVS?co>XI+%+z^rv-4QU1CF1x&+A+LhdK&=a%@(6PIEOY~ z#pp&=8A!nX1!+{q^rlUj+X$ME2x<)U&@WpVa1e%74x6nEdDE@GVuvjn*pXEUCR*_( z8PyxTaC-z<)>|g!(c2#*#_J~?38uF{%A>bG%7f<60p9d9!3c@!G0F_-G4j|~GEg42!Aaiq202-1a6o~ehY4r`Jt3>dE0h^as2J0ORZFIa zX{3rEYtRUb$Khp&{xb})^m?Zl!F*di7LAg;QA1TN0UgsLyi@#5aew$ZWKG~2H1mgM z3(8N15GLC&rc%`zB?wvSKf`$Y^@dJb3V6Ul+it^-N_Naj>lZSoeu;vfpke)?K9Nu; zLLrhjf0Mx*RV{)?rYW!YlLxP21NDrOi!u#dy$gI*SCv10&OJG|Nk||e z0aBhPA%Q^26KGQ!AWxcvM`A)-=qrTelB5ku$OA$P6tOC5N2${))#}iPinc1&R?*fD zYPDFarrP>L+fhaxe~j(VQXOYdJLUKNuD#AZH$W3>>+kRXGaR^Q@3kLmuf6u#Yp=cb zzBd3Ga)%Cx9K=emP#vu!IRR~?EXt5Tl!fYO9ZYyAfxSoBju(pnObq%12^j$dBZpW` z%?YEAfFh+NrB{qV8LVK+fY1OisFgP6L_^T@;o7Q?dO187$l31E}@{*VL{ zBN!i6gCd4Dp_-OQAp>BrHuy1w=)v&8-AveV;zUO-9>$F(R|Uz0=!`5oQdZMY*gHJL z1yKO6_o!$~mGDz64w9ua3Rt-f2O4~>a7rIj4(ZZ)LdI(K5uAeQbMO=ya*pS8e2SgI zbeqTa#=@V7$85BX!9H=~%!zbA!3q%rJ}W&wJxgGtL(hblas7|UpPrR9e|j7fjGmsD zo{?_wStV8Sye1@|v$BsEpOO?ZPEfOg1^CP=I5TCsTE|sYxw$D;kZ;s@kZ-jA^oi58 zJwt!e8T}g{7Z+y^Odyvvy%y~hb4ky@aY-ZclO~3eM&wTq`ShCd>FG1$q`N*pqy3HY zZzO*vf~_l^qc+%{NtKkVg)exiw$J}qr1?! z0W3tszQ_tbmKh+G>Yzk+_O5I^c$u`6lC=$m8R=_FbU?G$=5jxjT~}rDF%z)Ge($Zf z^%)q;yNT#qHcznK{6JV4XnH2x0J1TyYYf9twpjN=^B=r1b2nU63a;{?;x? z?2efH(h9&8c(nYkP)I2-^-Gx*lh63FnEEIs3xK>#6@`^Uw3niLIw=53V;F$ExEQ9B ze!%|tqJL`|8yi=Z`Sh{q` zGyYxzWkLMcE!bMeoC%RM1wB&eHs9zBQ{OqrJ-dILX%9^ z$QbVkijfC?|G)~Cj+SSs(u!Tt{OMVscZf6x^-cLuh$KewYyUC7twMHR$D3zT(8ls` zin2T;prcC5`_t8*uWaR|5AtEmJlAd{fj&g~@F;(nD)~ErSc@!KfqYIvg}aJJ(q9S* zh^e2lgY=s9Q)&>s&p#$`NU>@~A0e+R3R*@2VqmFn_`}p)oWLsINo)&B(zHh)_JOjX z_JoGvR!N@XRT?qD{I&i+fzA3u6f*^;{ncw_Wu>Q^_1vt_Nhy=nJ}~*gdSuoUQ=jq_ zTVG&V-%b4>-_$2;_N{@vVb-hZSg)rGJ=`MTLO#}iL!a3%qkeRKr|S{ci^{*DH?U{S zPBw;qp(n6M%%(E14-6cv|9*a4ytXf!(CJtL41Fd)SpN+SdPn3ZrA$};X+Bl3^v}ni zG$KD~;`oq}C)iII$)u<~X37WrH*jDN`1wBn3>?Ehp+B&fgoxmURhW}w7X^^1@#!OB z4aNje{y->7e( z=zLF_m{N*=y|;G@4$5HcW8^0of6EGm$Io0gb9`8pK}NQ3DVS=d71T)7hj0feCZ-t} z^i`PkC#rvt6swQ05bI+q3+%DJfy=XCOlRR$ZeY+4@}u-ax8y?qPy)7?eA`JZ>tuL@Y z9>57$hQzN=k&A6#L@=hlilomEjPS_%5Q!1>3CFfCa7_DvgZ4ABGe*ce=tKVsWkgK> zmsYH(t7~lBSn-&FmqX+2qSmW7a6A;{$oA1eL16OvURtrH&#zB-S;BG*0Ar+er2T^x zIi`J+FZ7B$DD6xT7;TN5f517C{*3G@sJyDGwsmaJAIzBgQ399`;T!>LQq1`5K-FL1 zv4PvtI8ww zv#s)SY*yuA|M>XhZ`N0kht+0!jJ@F}NMWiSZdLl?-l#I6_ zD?2xR!P=R+{}ec7L8FgfWNDeTOX~5(;V6xP6DDTYWKT?p=JPM-$)hREM3HDd#+>v2 zH9uk3)mLA+=E|$D4qEVY7@jB__Klv{ADtlP9h8TnR&U-kC^D{_Ndj zmeYBR^$~{4x6f zrIVx94=o*?erwUXQR`cm92z~pWZ&rdm-ddHzchFB{N?du4TD8&8f--?oO)^LLFg zzV99$z5aX0;Q#x^m_N6z8y){YjM4u4$H@P{@zL?`8-qXl_K#8j)ad!QkAeR?W6=Nf z81z3g#{7O|jPdz-%Bb|)b5D+*pS^GN{C6K3J%7dUsQK0(N=DCr^x&xZ_MKzof2d*f z`nffu=YP0k^!)D8<-_jC9lid&*68^k?j1e<-qHDIdwWN(Kj*~g`S-?;o3HFoNq^y14NW_tyOf?64BpUPxted<3*A+yu#V?l25;y&E%%&f@}J9=(7EqH z13zD*^|bx{C$(IL312*9!eeVq_@h%A9@Fr+34f^dU)*5eUE2N*#rNv-CVh{=>)dPV zJNF&d^1CH;?t9F@ufAZyW2a2GNAd6R@vk%KFE*HPSFQ=4sZlt^ggdqUou<9e&Lf(B z(1ah^r=jLQbJ)PobZ9ta!kq_9_~JSf{!HoExnJRHP56S+{fy$>x!0ucR6P3+DQxgN zS&HYyyG{B>6#ht|!j=i|8rJZD2_MKX;WOI)i%Rc{I<7AsH2IG&g_?cCTBf zaEFFN8t&C_zlH}jJfz`a4UcH3^j)WPU7upoug}mhS3{-a`Wl5dXsGR8ukBv1?Ow0# zUa#$5ukBrbRO=nn@Pvk^OxPT+p{Jp?+gzq_gNE9EbFadCHPrU6JE`zN4G(LmbTl7T zcvwTFr}?RaI;Yky=#A~Q@wR9+)tKmKk6@N>O!ismJW#EmTru%qLXnL6m?>K0} zR&8hF2F>r#a7e?w8XnNlZ|A7O$22^l;VBcg#%ri_v?~5qrN8x{<{!~;SVP6rs(9M8 zew*TJD>3ET8Z=bAcPL$LLz=Gm+YTtaSHt}p`sEKReAI+@`0#N9M^ZE_(NNosXuFZ! zny&3c6mLZFM2=|waSczI@D5Gir2X2IVbV8gJDX~>oKM%V=4<<#IyC>7rtj5I>DZ*{ z?UqSz_cYv~;Xw_DG*tW@iogA^rk^xnN4$n*8fyC;TCT&dujM;aOu5bs4RbXt)UZaw z0~#ux8x()%5lug4!jAn4EB+glo*O)qeuLt_p+RA-f5UMD->B{OXt|!(O?46i?3yEvNWzJYe81t>5Lhb5hd_HT3al`sOl|zFGUf zS@XN&O?r2ShDuMjw%6^`b;{)TD*oOYg|+?OA%zcUsP%ib{uV8_Ww*)SqUE+IeSPsJ z{pS4|YW~d!4cw>g^(me{#nY$d`}}f8wEVD!$2B~m;VBdL$7`5j!kZ6ic-Vw}DH>}2 z9g61;#dC+!eTU+^(=z4nRJ?a;{X4b(ou20Bn(*c$ChRZNaIc1nZ$R7GqWHEb{w<1k zP|FVmzZ#ChlW~jTdsk(ZP0MH3AZb}{gA@L zn!n$KH+hwmuPrcLf;+@J=Y+xm9pQ2 z6O>=i#u+%-ln<3z0*8L|stI2`Zo;4JHsNzMCVak3LTkbz13#N-!WRu)p%>MDJ$52@ z%@wOw&BL|$@>OfO3%_E`$~E;@t;zIv+ncD2QDb$wN}f7edR zl~>kOYem8}4dqgIlD z=GEm5rd(6~inYxR^;cB`Im=fzmN(TjH#AmjKI)soinqENEw46&u>6`U4gRL;>Z<1I z#>RTZQ;Qok%&%yyFR!XBZ(7^jSlv`DY?t&^KN`!|TwZMk zLDSb<+1ylJ$>L2?zoEKuMSbJy@->y!0ymj{)vj4lFK}a3qlC3<);88&euZ$F^faxl zHT5fNn`_rpRrBHu(;KV7!1A@xasvsf3r{slTdu zMR~2z``t%BcHP(Ak00Ckk$Lkk-tpW8x39OaF6{l6DU%9bI`&`V*I(Mca8CQ_BjbwR z|8U*AJJwA~eLg8ax$Tc1_|)Z()XaGNPxbfTknrpF-#_-9_($76_s(0N`qX8m-M{a9 z?T%9yeWLykOPXg~{L0(LH{SBuU+;P5qi)A-7cJ|WHR~NedEn3GU%T;|@ z%NxrZYHBN+a*Hte@LYMhx$f3f-B??`s<}A-(u)fV^Gou(d%7dc*Yu(@)8AITS{S+V z%GKsS3*(6lv=&54iVF=S@6)dhoAl21w!EI+zDRp#kGT`5<(a;*t$%Y~f9FloDAJpH zBduO-l~=tr(mhbPQ1EW-=^4n|)Y93Nx2>gfz_h@$p1!t7p8>6nojv_|?UA0%k%7ML zNUK18XLq|-QF*1;7TMa_8u1DXJG|T#T|K?M+vlAtzl8a?$R!M7eUEKM+Ln0Th_`rb zvSnje#B1y9zcDeU?8Cb+ zvbkq##OvAC9qB_2^Q>)H?QIUqY>apYlV6~=yMLgitE*)IV*x@;Z7-+a&j*#FMUh?^>#Y6A$r*928qPtB&Kn#&i-w z16bD$&u^&#x+JH!!AhjEM}NFl^pa!O(c7}La42WU%gyPZ=k@fm<0he{ue~@LTWDfd zU!;GqYap7uI2yY+8oNYd%5chke@D-@JW5C2=1BLT=^@iQ`?eJ3VTk(rI@^5tX8Puq zp}f}K!G4w`+&#Ftg$a3^TY7!|MAN%_+9D{~(%RcuAmW$P#xnhzDe(oHIwM_eIc<3+ zF-X^vK|1kCVqRBIOE7Ju{r*T_YfpDxZ%^NVwY9yauV-_AL4SJ-8_3_-X{Ky%YiHg@ z^rKxnQV{9t>)D=%Rt7AR=z>)aXv zT)^2RMWtkUO=WFC4#o{bSiZI#9q?*e`r7iUPzpmh=;gF_R%{=L^cyv1Rb5$CP+8?& zb4I;}TGlj~*AX%M9~m0xYaz*beHbi5@N%Wkau5kwPGwbLVUbT=LK`7Gl*e22n+Q{aO#D%XL9QHz;_Phpz*&gikNhtH=TNQ~nE; z6YRlW!(ml}cnU&pR;e4a{$WP3bNZ-~-8^nHdPv7=D zs4>6Z5^r@&YX_BFZ_ll|q9@HP$(4D@tU_skc&Wj;vpwCTK# z-rknHt>|!KPCq(rCY)F>=OS47bWXaZQhwt6*MAIh;8@cWqvvJaFq-ik>7Lif#fGa4 zsD`-pM=*`rj4Ex6P$3{s73&DOF^f=sKJrGSQ_?+3x@1X@M&ujeiPnp*PnA7`U0hnY zCbZ}vR#s6ob6cT4yqv;CL-R}*1Iey!pkXosKWg|bH%7J$cJ{GvEkL>veeni*yq4C1 z&aDs>Z=fUMVX4v10Z(EBq@mxdZmRS)_4El3J!(T07ny&X`}>+VMOp?1`y$QY)IeWP zm(f2)ml>6o*V5hE(c>@c=g1c=rrHMff>~az!bJszMFqu$MT>-OR&&+r+Ga$3dB}wt z?&q3^$w*H4;(5gtm@_$r#Y3^5JRcY(;urBll_1WG!TybT1D%^Auxr{|28_Yt3mEgs zO<5}N>hEt6l{zy0#t3Z~J|oiu`==?=6=@wXd^YyY5}BAet@-F8et&Bqp9ADo_H=LR zY#;2C1s_CIVp-&JofOKvC0ap(XNO z;MLYPa$)QmLbSfoYiVoiGq5S349ICU{qo-%yIQ($q(#-+)v|qoX9f0B(?Cn#fCoDo zGpo0+rxo4G&FO0M*KiMUNT$D9cMW;vjhD+RjwrOKHh{!Mh79J*a&C&sdTye!pmz-k zg^4uWbyFdWkhHk~7&XyjuT5DtaaAogh2>^XLO3z#z!lw{n|r$=m<8mVYzTA%<82!3 z#!R9#q7yRd zdF0POn7;<0*H~R%&ur{sSvaW1o`*%HgIp~3xwz1e z2w&O6*!UZ+@ah}5+GBA3a?C#8WM7GG@>=m$Eb$`T$Ml<-vcTJlSp@B<(*%ayKyz1T zn}H1j&cIVyz6K^N%*WT-!HSenO#x=ETF8AioU*bho*;%u4EajpT(uk6E)*Pk0UF?h5 zB|2*@tE{I?_$Wpn>@5A#M~YJ*vG^mBYq`5kXvdk5nWs-%r{AIJafI-hG@B3ikTf)~ z>49(#MSBHfwGz6py|W+tNv~~iGjuc`@cHsaQ3xy^`>|pH#*Or0eR!SnO^t=nHzSdp z2@^+c`P-yizLu2`zth!pl_dMkSd9(2eZ}*FwCMOW!l)dOt@~!RAX_%ESLh)Mn)UeQeU;T5BE@iyV zeoT9{J)lNm^2Wf-?GsZg(w6TvbVXYFBi>*yG-<@xRslWA4sEA$;U#9jZMNNko~`cd z>*-tKt?-*~>24FTY3mUKadQjo?#x6>@M6zdFwnKJ87iu;le&cFJy8>E06AJoq}}5o}1%npi|wlV!aa=;`sgItKIy887~js#gPS=@n0Bixd}}taD;vu58f#(nVh_Htb0A>*l{)0b#a=FbW-uV; zB_>u4!XOx;QN|9#PJ(6CE8d?0B*Ie9rTbzYL}F{FSgXaw>S)S)OP@p!JA-*>vUhu5 zXM4wh2gCW2yyC**i@lmiS9=6x!F$r@m9|M(*1mZtzb&%NqcHgvHLT7EoN4H1e&Sn7 zTpqg&l>wU%<}sE_&x2PG!xi(uIK=W1Jm^WZxaL(teMGz_xE9gdD1ku~m7}S#k#i)+ zCaDIKrgQos74j4>F7#H{+{8HSt23V!YVNgk#pV=xD=VV-eRL`s4JP0=( zx~&s`iPXh!y%+;d#0^3P)6|GwPCsl1P}Gm^mT!gUQhb$0q)lDgGpj3*eR)q0(8{Jg zs(qk}Dd9dH=|RDa?V**~Uh?pqINj4zfMeA~6MgF^^W39teRe zBilFjaJM@m4_Q7#*7OWSmU!58_Yd~cF$F$Qb$gh-+&5Awy$G@hbv33W%JUdD`Fw3rs!B9aTfcS^{;iK<_=h2K_6hTdOSFd+XDR=$L zc9ganvSU!dvB6EA*AYQEItf^kqo_rrh>VXXrs*@HFcD;LNGC-9cGx_dqgAWd)vi6G z^a!we2ufP?F^1fD!Tpgl{67Pzp3NI?9bggWUp!>l@#wd$?NGD_=xp1FB3<*A6D4L0CxsDDofIumZQ#3RqNc`~%>;IYI=s}m8Flm|QVck$L=s}> zg7F+--oj(#uZqGUsFC(azPGA&1yoskXDe4z?xC@z>=4Hl4k-$UN(yoQlxT??5WB^e zZt|Q{)I(>f|$9Q*>H}Jf0fy2m@Ig=@HH+KcjYJbRfwqtOTt$_M3&Ac-fM9 z{Qi)7k?^tCpErJy-IBr1hTF5j@)ru>&D|#T-)G;{FCYCC5;csZ^>jwL+#z7dbc*?uFyn5QP zHRVNw5f(4TpFc#numsi^!o@|fhnrR}%wq=ACBnjZ1eTI9u+%Vcdu!_wFZc3F7$rrE z^NaI~U@Bm-D=94TavPxmYTyQ{?CXK+&t&Hn&BGvd4-Ry8^|RudE4&H?=Xu5Xix%fE zF3cy2qQZqFxIZH24C?GHF3u~=YcFakX=!UI5(f3Q^mX>PHn+np?P!4sO4GaXpU6OVOg`H(`sy=n#51`r!LY5dRm)1 zpmwp)2qS2-LM1k1qQN@F&+rfi8J#$~({KPHHY17_pJOTIeR-hou}#1^2W>t_3R6ubCj18@vHZ2 zzpMKvFW&QkX^*||)W)y>7}ARkDg4IoE!h9RazB@~<&vt~XTKcz-Xll;{DYTPUsmw% zk39d0x4-B4$1c6{8`u24=8=;1ucW^6C3pD34=&$x|K~5P|L6nLuYc~Ro8O*s?1Ini zzt0I(Onk>Rc6D#h;e0SNqzB2HG&N+Ad>Z6@s|M)9)KYaP|%imQ}pYzKJU;o&*-*?+{k7Os^ z^Ypd{?~dgC`+}bJ7lj7v25$XK_a}e#j%yEn`h~BR|M}Uif86`icceBwvVYmz8h^X# z=MNk#`u66$hl^7VIdhNh|8wT@e_nsflaIeV{#V~VKJNER4}Rbq&wc9l%l|R)Q#s+M zTHkiu+0&CgZ(e)i`0n1hUrv1IiXRrdnm;YGj#g9I7_`>_YKKbwuhmX#@q$~byFbEt-tK=$nW|6j~_aG-@pg<{Pwz+A9{7@6Rka!QwlcR zdUPoLo|6ys-S%WCernsLFYSB$^q*$8&dj~Pq3gw;?fKfjKmN!2{_CM{Z=dw-EknQi zWna@pPt9HS{ol-Kx%-)S9ey(N$Tu$d%};m!_6cH-eSX^?X2zok<&5?x?oLTwwdz~XKK|Wh6<=C^%e=c^jqIA={N0`hmi+inFLhO2cw61&>!wit zD0`GU${gj5vPLju*#@>%rPl!75CeArzCQ*& z2>4eq@CnPBloY^|K*OY(7#Q?UdNw}f(>LjuWla{q^l&nYPA&_|Pp$#n8v|qMnHlagsj~@gtTs?ZE(^b_jnQi zb07vjXjwC=lwXq(ufgXSe(;b*2p`8^R4EMFn^^+*U{HT1@XspI@@Rin8FpYX{Nk^b zdAA1Ty}kHLJ=5d)$L;X5JBWMuGz9rspfBs%7r$Uy zz?XvFOJmx<6zwlL7~o%m`j?&5`tbi=hW;$|lz-C^&&B5i8#B++lOW@WjtBU?>?l6R zg8XI2E&T1bpg+rzwY($-E(6>f0}nxcUaRc^U)ctHo(=NLj={o@R~Yl7JOv-WKPX?0 z{!|PE^(%m{;)#IY6`-#&CchH-Rla-xUsVG>4+iC{z>n$y`;P!V70@?; z_6Bmqqcs>nWVv#^{f24fsO}zCHlHq2u^1-F3bJ68qx-ih|#eKeR~?;ZyHA3^zdgWmTXQ-1a# ze%!L&`>?{G_q~TL>wW8j^6vwE@AKs&1@R-6b=%s2AGfWutbceq(2xIs_TKN$2gvvP z0e|3yV7xwn_V&f_YhMHZszK1+zWsn>=-mf;Z(kMU-;VOP9}e){4thQqW8Zzyv#dKG z)c!-?+VSH}zGzcpl8-#Hqe zEcBv3-x;>7?`8z!`CYX4^b0y)<{*CDvc6v!tcTw(v8-n-wckIEINJYVO;G=bX#eL) zN^d^mDfq<5|IasA)-N)&KIG*WXz#bfT0R$X^#A4DU_4(g1RP_}zI*`iO98)LK8e5j zRT97_%Pi}aq=3J#p#4`m0(`IZ0zRbU$GpS%JR6gb_J8NE?~t$G4O`Y93IqB51N#4m zyMyw706qVe5#akT^yiPc3S&I}SZG;)im|8vpNKMFIYMO8{>O;6q0&`=JFv`G*Pt2l8M) zRA$)^9|-av2K|qm3g9oHy)S`Wzx^+z08WpA(Z??xiGhy-4&=}N(n-Mo5zWW%BwF}H zVY?mlc6d?PG=q7GW^Zb=;^IU0^dwA6^I$$$)9L?&V;^!U&r2FIV1B8|e|E1)4-Z?_ zX+x=@U4H(xCjWWJDW7l|^0&t1?~we{%#&vL!!ig9&jQjnEYosvC-+#oiKlwxe4}woyhXVMM!GKDP-JqmX-j?A4h3-6ONcf<|lpTy^8ml{iY; z1*7DhD{D;rr$*LFFynCZQ4NPRJf`7s4NsbIhoxb>hAAd|OzS<`a4D_<6yPpE0l!a} zw+J>qJOT@uC<#SKEGn8^u2fvN!9?P2*91QhzHaOLxU8cXLjUpm_mC#|Ac z*Gu>F4@iMz@62*O?3eRlKlIZjd~JBQj?-s!oIW#T#_2Qb{0e_f$nOIiJfGgJp~}Ul zk@MF-ymw*n9XzFYJ2b5M>#|%UStm2OhWYjBY4-7CR1&3Ffwf3F&_R%lj2yya~U2;`M8dokOAwp6@hhctpbk zW7mHD5`jPBuxIccR=>pI-q){nKIc3K&U4^A2hMZgJO|Em;5-N3S`H)}G5fK%4C`rm z_=SqseQ3Ao6SY^dvnj*AX1DcLJ%)~y(a^>0$Nc?(%YRK2@lAe{e|g>pnCPu)hZN=~G8+gYO6Ghxmc+ z$A2*N*WmN(oCaA2@AnTV{uG5Nr=iosM=XxP8+}d>H~4tf5AprIinrs9;)*SQdU%84 z{hsdYzwg7xW6QnK`03$ZACLMszBgp({ocAaiYvDK>0wXtKE2!Ed-|k?6bSG)#X3D) z7+d8pik}`XQ+fFADaF^Jp(={M2+diAPDk(ee7D!&`|fcKkDOKb4J4c%e!KGFsS}EC zorWcE0L@uN{{%&8@I19a!(j~%omKb^B>YDd?{|(Vz8Vd4-vFAkibCxuAKqfW*Xfgr z_h^}+^XMTB_nk$=8%Q{PDn;==seFAgSMhpp0L@uN13%r-qXyr1N;J$ktMK`R^Bg$O zf%6>rAI5=@x4X`=KJ?c0`ZS;T*Tom^{hRnHmcMR;$bbp%XGiy|*h!WB4g3_#{D#gI zp36^RZ?N8r?-a}T0NRIR_hRS5@E4>B|4&Ezd9E6?56t8F5gXh99osC}B-UF;NAT4- zzoFQWZJEdOBbHAGY_7MGj_8IpXefxWE%SJO#Bzpl3CFrM3cu-yOpBD)pBQL>_NzY8 z@dF(g7ehz4`xePZe9EZb%b{T@$SLXAW8DP}vby{&qa)@!D1MVc z$o;WCK0i2LK*w#O$66EKGCD?`x7`1qO~-Eh4ZOGe>2E$1eTr{5kMhvJp^wiG$Ok9w zdv@+u9hJ(Iq|hc{^XGEMjM z%VJPV)Z|C;A24v)ZWC5%y)sR&KBDPmTJN})*YxV+mbLp`_^lhVQ7$i<{L0-XeM`!@ z)8}QJk?!Nc{I+f8Ef+pidWt9Y%ygFFGcvub3|{wi3qMXpw>tBe3!Z8uF`eblOeg(Y z(pVOSEK|O+%(OeN@Qm~gz{5L!Q-CW5f7NbH&pJDO_qz-ZC${_%;5g@F+As4=<^c&_ zJ7S>Y2z+`DnWVAbaW?s({o0XX@K+tM#z7+m>7Gfiz^&FeQ5pu`q5hwWGAlX0ET(*+ zmfv7aOz~pUOBk1DuIDjSJY|f_lUo*xzrjzo=It(HT+44@{Ea-P@tje<9q=Z6>@(8O zgXcMLo&)FLK!|6M_|X=5Mzi=rRxYlbLsO%CgN0=bbr?e$PCyx($OMUHBXCe4SI#*@ z67%b7+UG+#p^4K@cm3yt_!(*9FmN0ie`C+68?nCtRoY)r z=6sRAKMoi?vI8D!BxZ#Yo z2=E9w1+4OY$9_clOfo_A?U?rJylBebE)rJMc41L|VUYpe;h-`qD_S8M+|2ByOF_3YvCc^h{kLtKS)cSrs|yKD78-n4g954%uAl@T~>BHyC_&g%5-OZLN__d7b3Ug7Iil(XZIVJG7i>SAm%Umjm`QN&(|8E=>IwUVzZfZo2A88@(Q zKVLifdKYW#L77R~5n4d|k~~2igerGh;hnZ)e(VO#2|gevBe0`6vV|@LRuix@@3a>ccCW}h~k#Q5zqqqz-9+%D6 ze7*{SIqnj^ma_0lroD|Z(h}Fk8e2ek+)l>c!`MHr|{*uZa5R!nF>JKK;b zvHGy%)fo!x@PvH#g5|C~qts2DEv*7m8ZceB&Q0>rMrN9u1TZ-d@olb~3@8od76IXU zpiUQ3#ud0pq#Hz|$?Uqie3Iu}m+z(`IaJFRsS7*vgnT=kn(xMEqD+CCj0`uNgUqFF zV)zn)nQl7?epxsEb}2dmMH4dJ39|s9=ip*EE9|-B!@qAIlm|$z_Po-t^E@-t+$)d1um(z>LvD|!Ac2OY-K_OCrF+9_qijl{thGBV#G$EQo$|iy{o;yiM;LCF- znm~GQYG3501Lt_DK2aFOZcPBsXSox=2Q(&Ph^8)_<&MKJfICy9Tj;fYxtp2;8uHK< zhq=&ACI4(UHGiFJ7sa_@=QW%1CA@YidgJ!Rg~QH&-pm2D?X)yf6t=@FHC(D;riNK2 zekV-htO!ApoUMwP)A3Bq2G1<^)Oir7q*5*_CFF;l zi9)#TG@YX&T89AC8;XiR5E7<_od(-Y108eOd3WwCH;qy>7l(7szdP4keJE9HN- z%X23)=DD*?U=S8V2^n}g0taF!-7_-=6hd8IfNqd2L70-6`36&Redb{rY=fE-R$dJ5 zA?iHjk7%0ni8EQD3>2P#X-B~jssQQVmmu2XOs|}u?8=w4Phm!lb1z|+oKIkKu(OWy zFk&K`&eN9X7Mc!A0tIHS^Sp4+lwhrNscYcpp{1zR(?r5`d_OY=o!=8WsVS*9XXcv$ z`9ciA&+am54+_DCOr()qs%Pg%7PJi(G$cUMpjXFH*=90r9I#Gf!LYN{^BLInxD%#l&QM^AJ7K1YPY6Sju`o^7oJsBkzfd{~X(|-rEEL=1 z@rg?cJD-cri_CM(i?uQ@@}l!%HANi^++YSz#uN#Y&<~m6&JUpEFuFBbE;6E=mI^sD zv9_C`D`Vgkc`DrXo*PY>Y^WOJUE4 ztS5(^_ufJ~CMnyUl8NasomLSS40Z`N3TzRWMKcNH8{Jtt0;fsO!FW_##2A_&SkoqXwR=$}lahs(o>kWDDlKv+d==eHzwWHY&EHnZH#Jy$a@V%b8zJ87lC3w%YJ!ppG~ z!^R0uaMKK>MQ%L1S0H?o?yM7qHJSY^fOQnNiPjOf9Mt(hNIfgocd?j&Fs&zgL}D*Q zMQ1zWD4TD}y5VcxIRIf-&M|fZEpQjZl!^stJO|{Tw?}Qz_;xoNI|IPsqHumG290%D z8f!noOqmn0;WSN`!Oeuhm%@z>u)ZTsuu>RUJ|Ud$PF{d0_DV>S?Ld*c0ORf%vKAn9 z92=I+l#!iGw-BkAaK88?VE9N8_g=R1v7Nx34xP-dLbzdglaH*Mi~=YqBKvb#fEP-o zW!zaA(;AzA0vL@DHcx~$i#xg0Z~;iJ0%s`fJhT%!o#?}y=Xe8qF;>=Np?n(F zsp#k-Y%6HJhHpme(~$U;L6YT?Gh(zk-%8|Qgt!8K5cyvY@>85A6F0?8Aiw^h+ZbtS z>685q1vXkgyX=hrF?XS9&Of2EwCB>$9aNs|JdcH13SZ{V%5;-yL?k%(+gPwCxW*z1 zilFMk7%K=MM(2WX`ixAC`6=2G zNwja$oOh2THre@)UCc;u-Upjuf}8C8VV75GkU3khg@Z;tGaGH>q?xYo9*GT1d3Bea zCWb`F>F`%^9V$$QY56cG(qK-2^a;~ui&em}f`u^4w+qfT5!QJWGn+b}gA( z4y413($rjpSdUY|bml?XF~@*tI5jSXLz^oj3(9S59NjFBq6Bv$UPh?IPK9%k0)|2h z(O>8>L~+FsLU>uUxYWUzrxNRI&M)ld7|+4y1<|X~jR8rWHOScok&roNF<~|7u{3f>QhM_R2f{>LT zH<9#-D*?kAA9gl*NOGO29Od+|6CrP;G^Z}+Oq`A7^#fuEPjgJeD}D3@mT zoG2ACD~|I=!#5%Y5lqLZcNi6z5MHm_Ch3hSGlgX^vte3LlZ3*n*n;y}Orf9wAAOkk zg`#)w@;I$znUh4}`>%GHL7+khl`qL^;f9!ZVc7XPwzt45@7G+0c>H z4v;rGDj;uC&P~b`d9uT@)Aj2?n;ECXbYB=akwx%QIP@ZN@`CR3M-sYxhRhx`ViY5^ zFWgr`mPm<@9w|&xkEXJO|ya*4GnSzNvos29*&7y@2WaqG#bvUsC&N?^aQWl*nzLwPWh|&fkVO(HS-Ly>4g?BCu zZk$Xv4I5ulj;#;c1Dk0Xx#5)@H)tAWW+82Yn=zZqIqh9EWY?E^ag)N%zio$8M+Hs1 z5|gMSAd{FyU%rJlLK?kN`Ef9?!_Idssv8KJF}FPV~m(0__$Ap$)T#mVi&5bs z4uWg1@dBUgyxqIe>MRl>NR4?gjo*>)~4*+#p zw25TX6_|*#&AvBGCxCjVhee%oC?>e$pv5qWjL;Pdc`zEO8DNTfE4kly!L8Gu>i9G^Zf2^sqyom^u%J zz&i;{#rH`@>v+L@7QA9+?)%A>!lhw~y z%GF}FRBFyo6Qx4BDZt6#oI4MpB*#r5AO24dl_6rO?xakr;RL95G(!X&a6#YalT6y6dtxzf1&OIm|(+c*}s6jK#)G(Sw>9U=FLTRXloAzDn+SmD= zh8=*8WfZu&UyV}wdAOjVZsI`au+n)5TS7x8Qn2Nh=D_XG!b+g-1&^8S{BS2t->J^$ zqW$_I%CE-*KFi72ht2T~xgNh1L=}j9;TVTX%-Ke{LC;_+%yci{as)w0qTaVFr3dgh z0Kg$9YVt5KC5{J}&V!;{Wh~(guwjc#$MV9ZW+_Ayz7|BGN;|^!e(%$1BhWa&5U02E zjW{iUnZOUZo{1WA^yYHEG!sjVzhn`qIGALcJzmx`p_=9oskbxp>v%MAyE!Q2{6SMR zLgHtsk$o+Qak60mJJ-_vgc!3gD|J&ygaf-I*(rzKrPYWt6|u|#HbY}$C6y*&rzVP` zPQTVobZ#R1vL^cmW4Uo~xI;8ukdqls_h#Zivot(=-FcPK4uwUUT-((AlZ5#8(a*N5vcnDmaGn=Vq74)2m4 zR$oR|VpPdcI^I*99;`X>{ea+5vYl>pXhaM{z#_tZth?X=xKb)EEhD0D5ym*2qWw7# z*A%X|(5RVa8sdyLS=<2N3%V<^Q;;7w9+Q_=jxEPphslxuPkA`AwS%NZ~X=ke`2Nds<%11BqZoZzLU zhX-dB%*w>}eG0Z$Ghl=p3$DxO!Ygui5ciZpKk`D77(@qeKl^ZjAD1%eAitBL;EIB3#i1+$abf#aNP=8 z-$-=lXc*=RPm!EsPY-87?-_sNt!L3fG4*MYlYmW}Uf3&QK)H#5tiJ1J@@*1rFffGo z6Bt7Au}g@HaVP@SCID(2y8yo3k^?5&eiT5 zglXbtuux>FL=0P2o(OXdAcCcF z)3D_16!T>kcIT)KVaH|$rxs$iPKDA(Tz7RCbnIN>riUF`$iQJv%AvI2&B_3XlV=D4 z<`%9$OqvC)kimUR5=9j5PtTo2QBLwmTDr|`>IWRQJ&A25y9o=q0g^WcA_v!AD1qP- zch3l9*Es>kFT}kcj%Oiv`M-%>!ll9_6p10_X1O^F+(fcE3;hON9!ziPbl7>nY;e#f z?onV;<(YdF4G=z_I*y-1vEV{VVN3wyGZ7}`dlz#v;NN;lzX+_wX6YFiXkbNQ7%CA3 z)8sA#cPShIC>nS|zqeDkg+b;vai$nWGs#{YqGW*?{+5FNjtd;|_p(8_yM&z!NQIMy zHPg8sdIn1yAozK>q2)Fpgt^aP6IgJ8xfQ`0B*95Eo9}#-#%5U4Fc?*(;`gE8#n80O zr%8HGW*L&&NXOYEEhI@e=)@sFg0qkmZSpCa8beX5^nylXf-}u?i%=SGlq6LVm}}yc zI1Il#Z6vzao}jBf>c69b!ZT}Os`CqRGQnqa0fgw^ciQ>+;vw57!(e)Yv6sD;d3y!3 zWa(MSp?G*|!c5|Vpi#!4L(KHj7{vUugYIQvh@2N*A07xh zLOv7=``Zng;@(!s%rBpD9^wdi7c?u;P4i1C2%V2BrztJJK{9XQ2}7WhqU0s8(> z;Lcm%8zp-vB-dc$CJ1C|a8j5_%jpW?g<=S%#uwy#7{s43U4Jb?@)2K1el0@sMSy0; zeh)X2+A&)Xnd9Y4!p`?C+nwyWm*CC{MnM8d%0st^s9@*vl!yvi=SXIndGb|%p41}| z{u<5`O3`Z;r-iY!&MoR^cH_Y7bmPCI8}ISE@n6!7d!ya>nRer!OgFFq{v1t5smHN8 zXE%0HKQPoA4K2GU(s}1DNIQ&7YEUzECyH{^w@l-SvJOpLhF%*-nydmTUL7ihoj$l$ zMS@`CgzZi4RBFA2YWKiyCWw5oe5hzwiWJJhZ5=?VWv&;6w@`~4sAJvPGNC8M-#DdMTQm|C>ibKyj%Y+_+E$i5ID6QjfVJ`f5m z5DVyIx}HcPj~~V7T_!X<5>%7I&Qqv{BTKdg(*aDN{{Uo^?P>s+)4&^F=cb{n@s}+`lAOA7 zb);i96duInDlk_UuR?ASCm)Spb_P==4(FWM;NQd@j(digktD;L3Zn;7PZb6YRKQ8N z_#BFw!XayBtoSa&G^&97pJRdIMZ%fR1CT;$NT#S9p0i_>?}*BL3M64-nq2_T zDq;z+F6?c%&Wn2Bw3s*IaiNjJ%c4Xnh9`1Ztkk6a

fA%2ASdY$9#81VE3K1{Vb`VJhE`~JYc0&?f{<1Pj zY9&)~PQe?Sn52?6*QCY7HG`WDCtN3PI8Lp0GovLHtPVRzto%9%7ij+q&Q$#Q%hdtr zVjL=I!0km1H!M3A7(J=n{hOJAu!w$nx?s5T(3&`>MP*E~NzoimLBA4kqf**dH(`qA z4{pUmdNm60#(^|$CSY=S6*ow{yy8sqSc&rzD>8f?xT^^#xKM`qqZFowojJHN0vxHp z$0;=l62t4clhBzNII1! zb{HrkCgl6MBGH7Dr4e=Dhji{iyVKlDP`3_+COJ>;%#V|6Ovo|V(GW^3XFr_}NelCw z-=KwwSjcby14{z)?2<4xM7&i8she`CSzK5>o5~F{M4b$!JPXF=?3CGU%)xGh`rESo9WK+a1x#6W`kHb zE5gnb7ELIW{9G8&>LVd@QGk{yE@Q-bVdqaGSP*zDOfZPUOI$Z2 z4rDoqL4k=9?P{;UNl%TPRCqAqs`U5wq_4hiP=ULY}bx z`zH+xrC6;w;?rVC!iZyco&Tx+cDqe?w)1rk60iKrq=53Xok92$q+u*6 zfRG<{68CWuaR)vQ-{l)wNa%u?I17yDf!hE(+>tN)cc-yV6)sh~><>sJoZhGw8qXK_ zk${`!s-9&SaS<{VCMYc>oX>D8#B11?QP9GJrBtJGU5MTq)x>Z@1IuFndPI@%#NUwM zXa??R)Z%?}?Ek<$7*rR6dvIwQ9|IZbFA;?%gH+m1Jr#&KA)esI!^Cke7Td9qRv3i> z{u$^z9x4dyWcYLqO|C#1JX~;XW01&L>S>M^4Mj81vY42wJhj;B!5q2Ol*IjR ztdl&x=VjB_>)tW|#7Xl!x|v&!)`BT6d$}?&;2NwKPL8@3mc^9O{a!h?d$wo zG<_*A$jH3H*TN=E#%h}ecY9_#7i{)~!vp4sRG52`7@;t(6x`0KgDV^q#EUp1*^E0q z(}jw}MaDFDF6t%B4BsmJodmrCsi8wt&U(N(D6u)F$N>~VH{c6SngaN-_g7t-Ky!&?>eJW82C3||3Mjd{lxW4c`8x>M<3UkWcy z2RlUFz8K!#U9z264CcTKzZm;5p3TdpFc-Jm;da2Ahb|li$`b@G zX3Qd6Dl2O)8j|xDIa-I)BRwt)U*6iq4OYq`Bkn2cac)`xB=7qR<1i6NB zSb~L-9;g!3P4M9GPPznZ|0H+H3}h|_gK$HgLkrVcN^tRCE$hjY)rijI)JcZ1PK}xz zUWOIh#(j0lC?bEsH?BFbSp}1NvD(@;HC*&D*!*cn5KIc#UA78w!I)KQso| z`J=4ZRE!`;2z{sc;aRKCgnblrbV(`k%B6fL+3iP zV678f7s75Uc2y)^%9B_m*}OxGO;4KKe`2eUb>>oLQk>0H%adUjeQ^hFC_!G#*F7hT z7MX!&omT27+}M1b7$j`P-0!c^{D zSb?i|va?^r6jtG6q+H5zz{N}G$CWlxW;u&_-!s8k=>f`c7IWYfN<|()R9j(ZW@ggO zfkruCvh`=rd7A=zCez#tmOY6F5HC4wMOG{x|40p)!=jfzu)`K3@n1#78zb@0v4&tN zveD+Pq8leVdub!f>LNOs!r=T)}?seOkiK{UiqWfN@jx+?^J}4Ur$lK+0UlO)x3^ zTPOb=yyC3ZBJ5kt1>V*YRTs6?29SpBBgQQ>fiJ2=$P4$ESne=Ej9p9r?Kr3jw-ytQ z=j*c_n9Adv&G<4~G&Tcwy^*#BC~$RzbCuTXICEPd0kbWIHe1CUcgA$R4CD04%|l}f z?b(5`oGdFmy}@RMUk7&J6alVRNadfLkFPXtD;m$M*3%rCN2;CeT(U_#7FlfICx@?b z7s2A4X08GnQ`dZn6|PKfnDfvFOtw_G!q`_Fd-4lP=%L^X^Q+=O^=Ev=Rx0Q4$|rn9 zDZC&*8(m2igKeb^;_ftiL{XXGkf_XmiKBHrA$*hp943g$zEpi61?3z6;Zdii{*q={^R&ie7 zQF!{uJ;@Z>nltC1RH<(Vn}fXsJ>Zi)h8*vYP^U=_E?wH0wCTQy{fjK0$IbL2WBBz| z*ZDVG+y>L5fOuK)-4SHsaPTPiVv~ZeTp$SxaJrMc2^-yh^)*d^I}A=e{45CuUmh>?DV0FNH9{;Y?$KQiTm( zxU>+5`EuPeZajPO6N?N(3}2w5LnY?T+lTo$V;9rH4Vxo&coeTj>9jh%j{0F(lD?;N zf_OS7&=kP=FMn^q_zvmd#Sr597y5zGwH>T#7+DzZn7c@m-E^neEtAMqUfkv?)t4VP zl|(+%C$d7hn=7lSzBBWU!G@(O?A#zj1nZHw$rD~+rauy29*EvyjVc;3pvV&u@Rky`Paj_YGLK$fxa|Y3@$aHxtf%O|@FXSg1)pnnr7 zAkt5Y4kjOUUXpVhF2#k;m-wR)a;gn+$AUrOLpD>K2Z6I79XFC;`Et<&K}Hy`O;tf$ z2m$3jYAP-RxbTk{zp}HoRHhrTpkMrI-a*p)HerANO;h;@#7@$V?GUKIm>w%6F-ULv(QaO$Fs!20F6a2X$(S`$(;23W}Pf? zaEEWzugQ%(yk)1QVR%-dELnIw^vz0=j~^w`m6s4$W)hF%7gNqso%r$(IN*E}dD!Z> zdqe}6A7WsC=Yy}#mCT#3mj64Vhj`qH6wxD73c;frcPe+dkfi7r7R))J|Fs6LYj(Jt zt{)e_Ju-m7!S$bTxvzAhzs+F|U5o_S;al;2f%o8x1V%MMD91x3?c?x@&23IMf!mz; zn0w%}wz^aA7Mif>gWC+UhRZ$2E4|Xy2Z?DGC>T4;42Ob_(cb-2vkz| zxra>oCIVz0tXK-uJp~N)&vdma_WJyGgs5KXb5XdoJ8)?byDsQF_)|?M7DK$yL-19L zVJ#INl^X+%D-op&(h1iy*H{1WBxODayPZtt0+8ZPmS+DiZ|?zL=ULu=`{>s5#K)Fo z$>(TUvZN!+Gxm`zJ6j%v(1PtGg_dH6*%my2Q24}72q6I+MoRub5?VGP?2)8|uqmUg zlJI9X11OL}NGUTVlu=qJ@Avn+p65vNfVA)Xc@5Ed#{Jy$y03j*cb{ot-?*A-6pd_m zBkc47%PT*M8=0PMBq$^1RMl##6}5`Cik{jYnT^vODe>g)L#mn=1uFzPfw9p9B972z zp_`|DoP{VnsP2QOhy^t6!~6$$Cth{d+9A4#u)vqenB&jbToQX?h77J*1BL30#CS#( z5!&#Fs(V@c1gOJ$`5G4(9)Q>_derGU^{8huTW7AbB#ni0wH8qNfS=7`#RpSjOwFqoxNxW1HQOnZ_&#sW^yJ+w5?@Xn z>nvkK$;)igq|T@C)0oKsFIZ3(;WmOo3ub~DgE+vamtWVkz7PVtUSJ!<=Pd(Njjfk} zkqLvZD8tUxkC%Ft+Hk*PgTUO=x~5`V(Q@!6V(vqHMic-xSV$-?OLclv@5B|DC<69718rk?6 zp7YSoo$cyOm71Z^)6gdAPj7mm7-!eNTP`+0@-Lt(u_qx6G+@ilVcrO7qu0+b6m7F3 zhO9??AwQ&kw;^P1TD8-a|3>1CE8iP+UoOoJUsKtIMQ!KVTd~qR(>{`;<7sg{18is< z)4R82l{ISQ84H^j?keef66JgAm;oyoxk4<&Qtq$X0K0>65Rf9fP?+Bvt(`){)iY#JoHcoVe2fW0f>g?LL)29y)bYU@)f%;0_#xe1URxwC|^&% z0T9tOcm|k`-%=TYYov4Ytkz1udu;9M_-_Gh@U76FP#lUy?NDx>*H&331{oT+fr7U1 zO}PiL6{inf6y$Hw27QcV937M%s)*gO+`vwQc$llfwnzPzC$9)6+)+>;v#s20tlh4x zCg%@ioy>f~=uQRZQ+bRyQ;x2#w89-sj~;`@$zqNol`@d^K8qd3bUWbV7)EFMGxcq) zgkND%R93Px2)MDu$;qpQ8)eX(szs=#thUmyLKG^Sb||oPO^fPeTj&k3Vd~4$^n@8& zSt&nS(fsHQ#xC{73neZ_5~FI1j%oFyYYk;U>q?I;?o`ETe1sXSRXD5QmhgqP9jb+3 zXNG#=7|Ej8DV6j%Iq&28LBn`CIS(M-r6jrlfaT515}8Yo~rl^v2<%wk5t~e~-I^nV=fH zCRM`HE!n_mHnlnWWuvHGWeTgUWap?FJZ1GW7I)!C!krNWU+dkd?~r%2#K4iB@i{yk zmPX%MFL9nX>zhO;225`{wrXYJS$^*A9KfMSHBAE*blvG1`yh0kS=YH^yJO#d8>#}h z3SyKXt#V7&byZx2y`C-$lIV|6WeZmJX7x?#V)`8F)3T2xXQb`hfj*9imgbBT=%h#3 zb&EQtk>a5!R&mBYlag2+)H23;g}OP5wT?#)Dl`PddLJ7CR$_o06HClrgMv^3OHfA^ zSRA$EFE9PvN1i2w#B5#PiUz=d@*&jmP;wrBa)Ds;BizGw)Y*Z?`J)*vbf+@`+?9Hu zOU0b0Z572u;5RAGB|TM>4&N{746l{W$Z^FS4~j>$+jf`1QLYq{fN1I|V`RhRrk8JS zx7IgIq6F_$Fp0J{kWm&sY)iKDoS$h?OpKqw##Z6RXVFb9M>;jix;Nn9{+SF(C?ZHm zS4jrQPrlr0n~a)Ewg!23FRVC|@@|M<%SAvQ+W3qtd;wo=qp;>K5*KJ`8P^2!lBdUB z+p0*4DKKN{(9sm1giJvp6lY~?%3^BcNTWrF>~uy^0(Y#BPz5k6J2clP3sLPD%Npr4 z)ofS&tRD)RFB>9iYCIbn&aw&68raBqX~=q^H2{U4NM}Vf%doaDI}pE};kCM`$=0q5 zo1VzfiDBX7bh46ED!4KuF5As*uHd@StA^hvU~{?3IxpGd6v`G)? z81*0B4wao=DLw7Z08^=Jn;lxY4re^<+Hwg4LG02jD7{&RE4I7ya&@BK4<}m7rbn}7 z9#kQBFcolfq2-i4E!*zUEyjvvXB84Il!Pp;k{w1S_;sT zDu=U_X#)|7ttMM>Wkx$=8&^v*l9|BQJmRo{^9a2gF#kH~1CE<`%H6>XR~b;X-C4(0 z6vD4z0jcu)3kr=mg$QeuA{4G=_DY*-lPhRQhADJre;ztBW>8pLrkNwvWeAtsilDhS zT{a`Xd4}2x+t2dWwYvPCqhCaqxmi`kf&g9*2Rj4mO;u4(=ikHAri?2mtAA!J3*V6^ zo3NDn89_DcTFtk+p$H4QfA|R9zv>p-L$+4Uyo`ZpXHXn<7wVbk!SX4TEI5mc@seAe z^+>%0cUR?7UNd|+9vTHlCEVaoiZyps0?8}f(3b)7&iqk~zaCIdtt`66C6_MzlDw6?iF1$cQ?qq9gsFhys6^ zqQIqYPXEql9c07uYQd=hVrZUdK(0CnJ2gBSEVJl|*d0&cNlXU>r%DPM$USYL=Xr_S zn%Aphw(q6(%Hyp22aJd$j|w$GEG77-6;Sta0CnEnce^G0cvn+y$^@S*8)HzZp=@lW zf(yq+^cVO4Uc7kGV^rl6yHqatpo`dr#fq3GO50(kVe-_tIR|4fHh{l6u&>ex+{0hhjv(c9LSj_VA_CzntU3w`~Uu|lC zq)(s;hx=&mXnu&bs;Aq)AR|(4+RvRUZKG!T2(DJB4ALjf*?aHsEDSuwcT|}UFj4TO zfO{WyXjzOf_13a8p{-|N?$+OcnNNBRT3~9r2S>_EDQANXX|ltnzp&5;ha}~uL?sgV z%*v>eDq(Q=3hzyi{;G2H_s7?W@p}K<%b2^xXR!?Id9%{#u~wsEhhXyifL?4KLNyFd zu>3SJLQCZNdHgF#J#P)`{jqIKNKDhx{(~MZZe{$E3KI9aiEQDYWHo8>$Lf9wnGDvH znUpD=al+l@`>{aLk#lhGFyp1({d2)E<>^&0$Q|jsNVyfR)x#sMfhIZX9^E5iX1r7O zAK7>}OQKh5T%P_|#%x2<I*DWLUKu7wbm9&`l z(~Y>>gzqPAZRxgWj_vl^+^omiXg{=Kt_bfXwqB~{Zs;f!b81AJpTCf8E(+XCPXd}n z`hEunq_ZzW3x|8xd<^)`0t2R77toV3usB*qqC-_-m;>nlo05H~Zpe*{#zMR6IhR4y zbi=X~_hL;Eh-*Sz87QG&-;*8^w`RfvJNRx*_?gslg+E1Gr(Yq!tr(UIt=Q z!NM}{3~t&LG=gProJNow>u~SOWumK#q)SLvQs?@Ks-e*5tCmo!v*B}rcjLLD8N0LP zt5A=kHe_P<@PWEBm6K{K*dklq9pi&f=DL=?okY9+w zk{yysN$+8o52Vj|VsQrSOn<9wPc#|d<>^io5OlxFWCD;{SDEGIM+UlA?s#yz1p!U; z7B8e0L}n1eF~me4af#BD{5HHO^~vhUnb1%K3e=9n6H2_aD1C_j^rw%@@U5bY^7Ikl zqTe=XfiMp~><6C`$y1S4)PVA`KO`<_vY}9J+45FIq%3U#9ZYOP<}Qu?{d^vJZA~sw zqtF}C&F*aJb#inrh?-!xk{UDO=F^`S0SQ=|$VXDeq#11%hE*wqy0Y5JtnSBQ3|T5i zp2#D$A?w^}npJKJz>B%AD1oZyx*s1hG7X}a0F{!;+VMhiYSK#P=><3!`kj*W>$|@S z5Ucj{7^d^S1$$L6y+jehE_fe{7|hB(eleDURt9i_T3__Ys;L}RRH`YkhPTBGO3^dY4+=JK|pt2aW7j#H64c9y^z-VrpiOJ0Ktz^P>?vTlux5KgJg z$eDMdUtyTlZCL(WPJx2Q-m|myV6_eQCtELkN5QtvC=YCkcSG@du=G#`LYclR4Fi~N z46~sWf@LWUX*<33h9n#)J_sr;=sy?ygQOuhP(ytSH-m)CCtE`6JhR?YQg036Ji_8`x!v3ZxKTA?QYqS?bM{ic!ha0eiN*Cv>5% zE3}m6yMQL@_=h%aUq*OUF;#QBuhPdE(;MfE35o+7pmD7e=~L|{dFdBWkk*6tr1tih zh{!@Sk^1F)b^z|s@wp)CgsQ8O{&enDhkV*A@@~hYQ5F!ZvCDo*U#*$#ozA-0AVTS@ z)uPB}Csqvfy~_j-kJognTLK(CBF@6Bzy$JNecnWs=~Oaz!DUv{ABwCm+!c{r zj3)glohwnJg3o%)t*9R>N_Hh86|^((3EjufQmG}Wb(f2G;<=Vq;;)+?)9lkX%$7%b z{j+AsFwmXeglib{9}mA#sW|#SaY6xeV-L5w6A`>o`@Y7h3g4^{!KyQT-r*+zTylMP zfV>t$0Ivtnmet*XcpJ}l%zZ}gI$B18xNNr`OGpN|Rp<5d>%2XZ10$EFyA}|5xdZR% zCgRJ^{SOst$~w^|3}ra@R3SQWYDqaNsye}d>tArK_3CC7P^PEDrb5g=tgy%>?7f&b zu?kiEDex*6-L8jvV+yYe=I|GqhCE%#r}zTqy*N|KJlUW_|GfaeSxx6s+4V5>1_5i( z(%X$At;lGdw*}nnR2&F%rC<;FtW*CTkTJefNA=-5{o%1dndmUUt4q)T$0ys|os~-S zFk+bF#6UUPvP-he_JRx-BKYBn(L?zdURvx7Br?VDzPjDkJrwm=T{ro!a}(HdC$)fV zi!1T$@;|Ua_-L@FEP-k+o`_$6>c^==Sn{zL|J-s~BZ90XbaIXbbr?x86(PYocp3=Cy6(WbV5<_rr)U~%vQ9^(OA~7)vVnP9Z zC3+Io6!a;2CX`-hZQ$FI~&9lvBH1h1!~}bg%?J14ezajv4pJ;_Oubuj!{ps z(SI&n9VV)(GyGsFv4s~SP?oQpoWzbgHMwPSlE5N&c~jxF$#+r>p--jUEFVA&rW>#k z{~$vMqKHwHf^zByyrlmNYpu{^P;-2~19Sb6S8DU|5v(^Zd{?b@D27*^cyJN^qvayJ7CN!dXkii9NgnFpw~k@?*>Y909l+gG7vx?YTI zEjtY?zBJggbbHboOgmWS^X7BK6ddF|oWNI8vzG4~Ve)a-cn(ic)9y7yBYxrrNY&C4 zqasIL*^R+d0n24-3!Ss^^sJLye@ML5{D8$#^dy5j{ZX4-;j1V+0}`;~Q4_jnwj=gW z%zgRuvd-l&yVZ2YOl=P-HI}=n(}avKYwpQ>s8s&=taH4$EV7Y=yNjoblO`I>%@zM& z^Y7yQo5yF_Y4bRYzfCyZ2~@QSbAovNiDL4fIofu;P?NXC(V#Ji1t z7t&%Qs~WWi@HG?>1n_}q8}iH{{0PF>lP=$BK^Pps4a6 zmoC=0LLQ>p16dy=SphHNS5=LEyAc~_P}tok23KNC1#+({g!e?&an$UN!3w4cbZFN{ z-@oh@7;d`u_evgNr6k(6=a=F$l8W=$p9HcaSMsQs5e&*S0k!246E5^qLj5LjIo;`O z^a9kZp$s2mnCV{_+8r>cY+uXJ0Dvm~Sf6?G*-koYyt zf+kMC>H_nGg|1!?=bMF(;Q_R-NZ1jLkxIvnsJYe2YXK-s^v%RQ>)DPA z1S=$}+LJE6N^05?)V8~mr{icx0mvN8&@8compKNZld!4^w3_-A$AnYIE?JAX;V{uw zG9j+Sfni&my{cZAEnb}sTK6uBszk#Daj(6!c6Cc$h8Gi*O4%osG4sXZ3*XAvbf58( zs-_Re*62n$6%L<7a}o-Q7vU3FmoDz5l`+n971Q#)%bMB__!@*NtQ4Yw%3Q#>!d>f< zb{1B&l$)e`VZPO!Pz~Pozv+%#y6XyhV$qk8IDCj`Gi99xOaGngL#D(5JfzraAH!g$ zz4}?968e_~;Iv_VDhg`OnCnksQix@_+NeaE3-(_KKx;C=mgV$QE!t)VAQqP9MCKF~ zC{9BhyL6xWP|0Q7`?MSGo>C_w0 zils=c4Ls7PG5xO2okm}iap2N;N$ zhPY)V{5D3$DD*OY37jC)Ub>b~SH(jaoK}UwPvir)8Nz{8Bgt{_=OZ#f^_{`1le~q; z(bto8ARbO&ep}9}SwE`;^;6k|N8oAQq<}Up50LybQ%KYYF|hqy ze09Zfu_I`a7LLM>nq@m5UyI>?m^Hr}ktt-(_a0*d}RQtsr z9b*Sk?XB#f7~7TaMQ{N4zjs{5Uns>7I$mq zdqDMY;jzskU6{64vE96N%uvqml^=_AxAsbG5P;$Tr|nVDr~9)Z;(kcEhGJ#(t zF)jEZLuNB7PU&f&zFkl!DBN6RZ1l^X(>OcxZdqSt!;>FgEf~%bYe+_j%0YuVvSJRGoaNh%mNZ839{f6owrWC!#}7`|JgijuA_+NSg$Ybc=f%*1%V@8h1F@reP4pP5z^>|bWJ`Pt_2GxEoO4Ulbo9k|$w_8c~ z2zRGfL8Z_zaNWZx(JFJhpTEP`cOG#q2RzbdsTkC0wt2I;DoMr1)Gae)4iTD6!ZXOm<&+=5q(m0^M>JXl*OgC@-|QQt=J&rvoJBdT6Ex4v?_&er?$R=t}_9vceEqD0K|pciDKd5b%Ni=+Brgid-W z0h5^eDV5eHz$(k%!Akpj!O1Rx3CzA=YYCuZ6hPYB-E07rNaVfcF+2FJ&uWI&G_XW` ze#ZiW6d5nec#y&eHUC0_7A=;=!3dn4HA^_+VAGANn>w++qlY5$0VgZSk@usGV_H^@ zcE~Fa%X*0X^?4giR+X-b_DjpfK7h1A{j}*dv5Q%eVB9$8Y% zv^ZPTu((fQMV10KB)hqSpugqK)`E#EL;A}5?Zxx$R$KoSSlsaU-y!+Ts;!@mRD;X! zfmyZmdJNg5unm*smPk@0c+ght0~v5>)8>k7Kx3396BQl0JkC%VNEgF2uhJ!1bLAAE zXJB)(F0etkU!HMx1dioPR+EtJ$sRnK_PU84Rm**mrsedt1o>CkMA!`zzM2=JTF>u@ zHijhGG>MZ4i+tw6aF*#du{*molpF>V3>Qvf|2NMw{5#w_COm9-+=MG(U3 zqm&a7Mpv5U4`{Uap z+Ew|g!WVSx5Wj%<1{E(D0I`-L?u@tMJrrG5JZ@n^rMfn>72Cqsrkjm?FpV^)rwGoe z6VU}W>jHrlo^I?bZJsU}3o6K-bN_}lC7w*PhC!r!)*fRHwY~NIqnd;C_^Slis22>_ zC_;#n2mB4;LfQg~0@4*H`uo9LMiwO)bCu2l*5EEGS`67(qFu=LiJF2A=nED|J7m)A zUnss_D?+V-M&gwXM1Lx6g*+jFVH>W!_A;6A`C;0bR4977{Sq04L)&$uC0DtJ*DO_K zX=77_H$195|ZHV%21SKbUSv$0VOAt+V5QTvL$ zXj!NDRNPD9IbXP2cku-H6@)G;&^y=I2sX)L*OPv2Z`9`!l(oe1mz8um*YP$Zr=BS7 z3tCTV&lQZ!5~T_!C}b02mr{56vzb|AcEZD0~F;FBj73M zZSH8)j$A=wFhumpb8zMxyj%Q?|)TOc+6;FkzoD--SzW)r1tcrZTGH1V?OFUvmP&KlsaO|VQ|BbG{{)@_X`d!klO(qz{T3QK z>e+lJOT0GLcMF%&2tQ6!9i9oZ#+9l4(yz(u5ea=iB+~WJQG&5Ra*4g%m;M;FYJ;2g zV@!TmB7Nu>vkwftpE8xSR~3sDFZR0)Oz|kk^V$$5D(UgQNeph zaLN0%8tEgBn#a|&Prtl5wCZYDkQ+N#Ad()T92~wv>uE96^FV^owT`OCPM{PG9#k0q z=mZ~PNbFL{w%I@VSo=E7|2`8&Sko5pgupuQ?_6-&?wA(xAw79a=a*2$0fy3xdk51H z=yNGj#>8?43C}l?o)jZR(G8I^h%GHZOp96@1EdrN%A1(6;KrD%0Iq;7KF`^?0NGBDVtOOdUMCE1$Qo&NtiD2L7ggW^ z;3F>DEBF@nl7eRvbo2-8rab)}5-4K?@MAZ(^tzyeedNc8gZpaj6YQaM7x;%Ur8l6^ z;sN&>x$ia1C`9;{AHLCOu6Rh+P982vZ;FSiuQz>7YGccTyps90)#Vfl~PEBO)m&M@&nBMivkCg+GU93?Wp_G6Eoj6e`laV z($AY)fYdgv0%X-`U&r3OjHyzX3SbAm5+S6*=!r-Od}n99pb9?FB0A%4JcleD1UIFh zxsBOx5EyKDPl^fI+$g>d_iyhgfBjrO5M-sdl%EsT;3nCR#C!%ND!%f}-d1V;RFj#L zH8a#0fqTz567y07(G&O*J6}l;){qcy=WKXM1;`!V0kKCmTBAHm$TqRTiR^M#rdlBg ziPJNGWVjR}=&@v%pT{Qt;3aB?O(tesT7vWs$TOYkBk|la^vZ)chJKRA9qE1LV;D6v z?CBPsYtMG1_qN_CVT@{vU43hmpy5ItLPdGHnbKqFN(FFAOh3%343lVhOp$$6Le~8h z6CzV*yp}$0ofhd^=qkJbi^ShTfZ!}DLqIVby9x}Vtd*sjYAHysP^E}1apyxTBJX;% zm7XFAm!hl?RNu=%DDaVmAoy&Ae&MPRgmgG@{-}M2F1$Q^h%hc(o*yQ}xD6?-LPU0~ zAuzMAu-1lrEN;IOA7Z`EiJb0CzpAh$rC*0A!x(tTY|nUr{R!|PK?6bfFZV~l1@i5z zR)-1^v*Q?&v~))_Hjyo2OXru@>gPe3jCAdL7)ZB_Te-7sw@`O_hf*G?eEJG&Aq@RC z&1qRUIP9;q?RDX|w+er?D2zYiY+?Jiaac$YinnsC%y7Y?f3|7+beT&EZ+EsvhepYdyf&$d%41jTwq`AHIEYmw%pN+Oa6jM4FNU;7GwwAEpa-mo0a0p&r{~R` zPDNTD!{X=`2W>5r>@|oaW@{V6A8v3vWj|a;n$%cClDz!{ec>V|`zraoDeb7!+>D?K zbK)MYXpj=P$tM~mVy?(Z^x3emY6f0 z{ezq(QSNcSUy@@8#mO%{g*!J1N||B1<~C$C1)V~7)C;-4ipGX5I00?)!#yo5O7zSbhppNVMhj}$vP<~!_qULP*MSUx?Brg+a=E7yYjrM*9W7p7G`5TJV z(+@8O>CuC~&ea2hNg;p>7j;V?m%e++LLJ2eZV+P5(u>-6A7XLeW5h3R5+}Wr6$jUUQB}s2-bEBQKc#$wc zN zf)fJq=2+ldWCbU-X)y?x25dDS)b{{Sww98kHuP5|rn3h^S?!8_htM74X8W(>btS!H zVQ50iHr>bC_2u)LkF>F_mfx`#3foBx~H}0W@pfO8JNa} zxaBq|d-#~N`fH`t=L(PTmAEoXwoSji%rGSzc;P$=zGoG>p&0f=#KQa zY8GcgT=VxHU51IoHJXvl`=N%>@erVql1X$d3| zJN-mMI{c(#AZD9m0Y1N=nLa>cy!-3|rd;1Z%9x&B{4Ti}-=9m0kYMhsMs z^wIb}>uo>%b z*dBAYLM45h${5gplJhS{v@eE#D0^HCA1^b)C5vJ1q;taz7IlFM2=R{AwrE|vVdf!W zz-EitcAzCB5SvQo?JQvah2($_P~7Kc6agRtEPrtApMmqF7?lN#xmKrSBie}$-^q_q zWvpvt*qa8XSSd~;#M(NGctM9)TCi^m$&t z!kBG&u?fS7rlPP_v~8$5Koq*H?Z0rtNbvk`D$s>@VP*O?oy2)*Hlhj;V5Z*rx28=w4VM9Lv`9q zG4A?|PC~6wGDMpZ5tu{Ot?hPUdpB8BD&;B*`wVy;HCH~cIy;53NIPrv1CUQ5|c7;Cor}@A>Q>GT^u*IkO-DpPH&4~R2Ajsa5YQGf8dTWak5M0 zC?*Q{5tIx{rSe)UKfDj*zY>IlFe|kiun`?si#!9l6Pl}w*+0~Mvg&@zWo&!Xml)$% zQ+_k_8XqB%w!;Pr$9V^GIN89-COVgMcJydOo^%ed{Mg0p1~HyqSeP-+??OR3t-ltV zS2@o#GuTjPv=za|eS0XmRq2$Fq>%_&uwb&GHLvn8V^**Bw(?| zRNjF#T>K}LN%<^@vsPO~lgRx5yc(j$Wkovqonx z-O_=jm3)vgaAM;9JIS06bAJLb5>q&6`&023RrH8+sKU+2e$P+L6KNG0UU={9(ZUNh zoXHd?XvM-&X}-dWnD1GFVVoh!94qCL)#13)=?DQc!s%rT&5y(E_aO-2fO|8D%&MkR zvghb?9!o5fPgR#PU#?3hDoWwua><0&B0i&xmEUNWPDfgzBMyDV7rVLQ3uhKBujCDL zh1i7jAIQSGHtU#vMY=W88+WGPzzJIAzNk(i6x6IKefTWkuo%s^X1I(>b{++oJgrOm z38>Yr%l_2w2B>_3Q4*iIWwd)J8~#!A!ueMHD6#7hP1mp7aKFFWso`NVnaXPr9&1Oyr$7qS?6=p zozD@(qCuhl_2YCi;t~#DkcD(1Jze-jeTA0^#ftFkZhY9*WgMr<#1BveXNE%ZLqs1q zT-yUJr)m*pPO7M;8v3ojRFZ`)`8l$s&v2P;#m{pr--$*FmpvHS<>?<62;%;h6h1=5 zUGxg&K5WZem6}E@X=s{UO@Kq88jOWlW+@ji!)FGerIhzr~oEjiWj8`=u(H?M+gkTGUv~5{u%xF@&)P# zHD9Za_Zlt#leC4T)R55sPoBNEJnN@~b0{~(O~v?Tqhe^`(=hT>{b8~B#)&{ufeC%j zMm*OjgMyW<$GM$*0u0+?^kv*7fj2eul^z=Ke*4c2{549MyP(`*hHA5 z&HlQy1ImJNl4R4qMz-c)_JZJLc=ETDRgZh zZOw|FjHAFckm+xl;SV#yUvm<5>B)JzP^IXD{(2(Sz(O<^;k~k|Hm5EriL$6h zLQ6Ye4L7kC0K~W8QmunT;cKD$jAO)G@u$aNqq`tAg5-2PBzB8 zY;Z!CDJEpxDK^=C=uE)x#1s<3b*4HZ{kyuyAhrR%WQDe9c=yfF;OX!S}WZ?>FDSPw4+`ly#hKq zhecO7UXI5{q>Pj4ZiZ3}`?kSU;k#-4zZBy1<^{qp~)D z&7@rHq2!{hyPx8#I1)$ahaee`Nn-_jwn`@!W$TMaW7#RKBQSl{qYNMeu3%+0aZnR1 z;7A=;`Q*yNz-mTdaZqZml_U&w|>~XZxyR(Rd7X zCDhPiVVK2U%nktX`O7L>_OzeIS6>jbqeJV&j5*nJZ}@3wZFYMRZY2#Qr-XWi-w&Iq zrKzV+>%)Rt>kLs2d!5mz^vW_60rt1FAZ7LVIiU(bh9;KAa0#meDOuvS{=2lvAX2tccbieP@9i@CMz6v6$}5J z1$XkOsYk`Vip;y0nV(Jqk_t&gPgb4^i=aZ;O8T+s7#H^k!b(`Ux(sY%Xx=#KksgcY z0#1g>5suX^Lv5SkeuNUp^CATo8hMV#(#7l_x|v>qK;I#4Fd7vur~~-$q9|xL(2wyx zhi+_EI$92F#Ng1pC0-$$NK3MchL_OjNVa~XjzZ!~{$@`DQB23u94eRQ(dA-YR6aRR zSZ&m}{9B$EU^P;jqb&sGhUTe&+vp&ZNPr`whb^!N)S~nR(m?BGgsst4@ZkCqO@cuN z9s_0Y_pxVaU0<%`_4qK4um<;-@lYlU3m=x>mZZCh>~XMEy4J=TMtKS(iViN3efbn+ zNDFYy(@lUl$=I1m5E*oqzp~LPeyKF%RHxCX%e-hiy4w)^<3DSF6q-d9DytiId3o&! zqzk`ffecBjbUN7m#YzMyYOT|+OgEK533HctdwDj%I^D@UxYp}01!XCAPSX(CJUr`> z+(^_zWK$TQ82e&%Bt+uRP}Qff!lPNch_@uv`dHOi|D0~=a1r=RqtsK#>>0SCLa_Sh{q|c!g5K;&M z9$$dSNz#BephREig;s0-=?R$E+IYHw)klZ4WQAM%vRms;H@2CqORB;_8NU+aEJrFA zae7j0sL`N5!P`ikP)RpHM_4HJrb60Adb5L#_C+z$!8ljP@~fE)Jcgo@Et*az>tO`3?Iy;80&zzxTU9qb0xyu*-kce!@w3Q{y;<|DZ7&l|?&@5v%- zzzs2m0Sr3A7AyM=#On!&Zl`GfL^gqId+}G5lV&we-kSr5q?e?BtqFCt+?s?Z0OaW;HM+++baLr&Z z$gLb|d4>-Tz$=`zQH5KkP^J8$SQ$XkiA`}b!@$=25E<2a&(OD3?5AW91lSgn6B&&& zxJ>RQOq~Komkw)*+!UF$IY?-j6x>_7&@uO-@9MSP|d0XQKom7T1#i*9~J2Uo) zSZPEfX;TBw;Nc4%3`9dPgeMFemOqr9?NHCkWe@`J zyyEzRGE*F&+&5;o`t1BpMwgbR^KfrjtO!c!dMoLVqdtXvbWD`^Vzx5sD)vPzowmIi z(S%SDV_hXA2{nZ^)6Ai84@`fMzFTAINDJjYa#^NXs2`%=LM4^7Qy&%KJF0ZMXGZ+q z+>NA}`8G_Ursj3enw^`wfzX(o>*k=x05tD!PZ3~;KbbbWdk-=!VtzCd_2_FY2;AtA z>@P>Mmyx&%JYcffL&>_x2aSc%i39~v`v-Ib)+KqpqhAE(7(Fx!j2~wPTJ&q? zhw#aC*?m@3y*S)zQMw_RrJt~7Iz^RJ+hlz3%11*uEHI^Q78w=Hmv7q#rL&Nptz4NY zZfRwIFs?{sntenEoIG@8?G|&T>)aSoV?meIQu*4)G|SEhc`Lf2G@5dpvyGxzbh!bYOZkfDP=Do*x28{>-Bx2G6 zJ8eX;qt2$=V6Zga_GkLT`l}=T4%qQyWkA-O**~m!m+Jc)q7>~Vs~=F%P4wtd>L9=0 zf2J>3Q;A7=`uH<$(2EWNruaBZpC&b=#t>ROS*DVUeYii2WiNxqEeXPoJ)XYz{zW(j9L ziD1qD)iziaUMJGr7b_eojb@@5tlXG=@f2Sx&&g_f_+EXK{;kcj$@{%fq4Jma*IFrv zv$ML7Od*sQU7XackmgI|1Zs{tYDFOS$M%CTUDaXDQg2?XFijz(hYeW zc`p&a8d**ePM^XlVv(G9{g&+X!CqKnwa=_BYLcDYc- zU1?<;T|ol}P&08t6PmiGcf4 zg^dqF=A<5(>xxTd4I`eGR|Edswd+d#*a*m*l;n68Xe%tl(?CAB z=)tuSYd-rG9Z0#=IO$m5654?~%{w67CKVudM%#^-<>=Yjq%|{3FUY157jctcr85JU zk%gxdtBzRY;xren+qo6|D^A8kN6*!D;VyoW?LmC-j%1o7V64Hj^uq;Yd3NhGFC37k zH)q6(GyDH-`q08nv10-^8CkqG)8+(N|5e&^nwUjYP&z!~8Ao*+lg6eU z%SQEQo&KDpKUv>xu>c~x!*wQLk~9sot}CHb2T zM6*pSq*dz!xsEIUU9no)<;UkRk)b%+loRrEZ{P93UaEp_O(p|_={UWR>gzf{Q7SQ7!ZV{^>Fd{~ zvkBl#1hY1Dg(jU#N#U|m;JP%$C22sWCbEYq*m7LWG!g9KpL;PsG$HRH)~_)y#R*Bg}Stt1=5@8gjd~Yn%t2d>JJ)n^1_O|81=jkwOlP@2Of^0%O%+J ziOm{Z$2P$5G#%Ye3e-Ukb2?4^P&k5^vOzj_n)Vxc-r>Zh1RmYMSiH{stITczp?kTNr!zbYsna9p?TRg#%$#IjV*8g@ zJfI>R7Q>Xp5#D1>78WRdn&t+huFS;|N9h64)nAHYkj)=?)bp*a=SNL(In`&zRC5f= z@uoP!r{+&_p)_E7(M4@eq0bVH7QdR`;B%AwON6l6chK6>CbQ;2VGq^nxf03B6~Yjx z1zp~7ks5G4G7yf;q_AtKe{dvnf1F^wiVs_jb~FF5f9gji@10?u-nqD#D3n?SKrM1~ zYVAgYQRvV%5n)5mG>=g3Mf3s%gmHq%+8*Ft3Tt^46$Dhn5XXnjZsI)ifG0dY|45d- zp8Pet7uNG@?4cAGr41)Cafx}3I|3-_%(2~V=Pup5d*KaYg>X3pc65MNN4iRf6opw) z>mW(ghk?u4QK4*1-Tbkn?^ zo4&N6*W^H_w3uU=AzL)5tcvQUgfOjibk3VX?K;`>pk6DXpxAeLWGW;Gti!_xSF*Fj z({~FgZqpHC!pxnG?DR8ut#glDH<%fZKijhX*<0PgyP|{ZDH5(0Ai&Ormw0D&g0t2# zK)5AMm&6dI90M=2>II57786RBJ75nV2wy*3Q{{AG@u9wk0t@SkI0cFx(ug)k=Y)Ls z3%~1vjQqWz`#M;|$a;`z5gj2MKkMu-mTISGN=Io?O7#m|gk5?VdH!_0bu{3&(HEeh z3h3~-->BdOrb0tj2UImk8FMU&8CDV~7d5Tn@kX2t!~I?~4zW)dN&K1u9qFxDJhD^G zc?zGa2~bxwK`Q4@)fb^HYVnF1EePQ7ZZ5t^A4A{3QPLOAg>`&#JJWhCY=Mul#BIzr zr*i?$&U_*#$p&QeaYD3m&ex?Hmr0GAKl6==o?IeD{M57fE$^k|J>p3ZP?=tk!EUnF z&qun9F{l5MjXwP!i#vwp&aFqouw_QCNeZT#)xlph{(8f=rT?%tBH42>fd=a7*+{u3 za;`TERZQUQR{B00vLjtvHp|SO?!n`43uZ3oTRcU-6SEdvR}AnZO_UE#^Xh-ab^UEf zY{JDL67hY^bBHiFhlvaBPd6$eL#cp_+-=4d(t{TeZ8nD~4r)5H%c>IKMnMC+rCx`iA}j1cHCI${qp%@^tqFaL?v^nGQTi>WyIc zZ2|>gvdMAt1?i=@*D->7F9^)TZSUOfYwB7H!m+vL&luz@Jn8q&n{?33e(&(fojNsO z1$%cEgR1Y^A{vBbM0%QUQpPlPPro$v<)#UL6&|GLxQ*vY2VU1|E)4vk4~+d)BU_#> zvS&8$#(_*2#rtu#03D73aC#hGf&_HW34*;hMzunX$F7zhOdqp4zlfDhFFe6$)9e20 zr&n^=mh>6de~0V0&8yJTNMOY2rC=-+@ZZqL3I=hix77M-y+rNh*5v5Wvx_3<=~qIL zy;%vOQh~TflX5U%8`jy;HV_lyc|agxR71@>tP@F!JAu93{)AhpaTTOs#%Bm-i1%aJ zj1E3(T}m>122aJ)Rk}lGKzga7dHp~|jI!yrqqnsUIX}Tr+`lC|gZQFdW#eCj{t`9z z#)D{7IDn1b3KvO>sDt0L?mc`d$?G-F~#A0jRV@SnK{QNAsmN76uP~ z6~qF#SrBJ1+(E#eA_O*9aVh{$&p}1fk#0A7Foz`+;;=F3y4Ip81ti-F?YnNZ1bBIC z67gfuJ^GBu#$oS}A|}C2&Sa+{J|acQQ1vkB61HRyGx(>Mv(G!yzXetTWA%HtOXHF* zl1@g^;hoB&8I-R;0t2#hsMl|Rlj`Y*0XWZI8QNFE8nd+Pc@`m7dB5nb92kPV@eA#2 zF%Y4g2ieSTi6%%;!6(|Al0`srdbA1=sPiF3b*ff-&S?%rX1#s+r84mkb|o;%XtS?9o#bfg=fDnK_u2w?v55>#9=K&{F; zA8M%r`~PYL3+h*f4z}bo;4j&juIe*UmGlDJ@>6LP*bkLR$*ifD8qv(lwlp11f=XP^Nr*Q5y<;P~&2_@qE&Iv(#nap~6sB2T+D59@4 zEL6lal-`}8e5q~c@$JQ95!CB2yYTWVQ38Zzl_C+Oq6XC=>2x?F*Ye)L`Fw4v#p%OiLxy$UgmnT>tB|-`UwH5Y=4}!tc zqjl-AlKnrv0K_PdUO3LQTp?hwz#zn((rij+!b4RDvyylyYqr2gI+JB8;8Xxvr-a6| z`mj6A)3it3PL0UNK29NYFf2_lt6OYwJ#{SG(#*z#xtl@fRLhV^KKxX+aGj$n()scn zE_eX8t&l~-dlemAwDZ4sT1OSfmR%wX70d_!c_@rE_z`Oo$f>@(!Qj*yag}Neoxkr6 z6?cfeLNih1Nv($sJtXSZ$W9@dgF?}9cgSrFs$E)@#-bap!0)gnZjUQOOp@2cHM)#0 zdGsM2p^sxaUye(^WbE{Vr(*r~qkl&+4%}}dDR^so&+$&^$qz+*j%4<7-nB)BXfe)Ou2>*Ds~l6$uZlh25$WkIM=)p0~EFs)(dPOD7=!sgRzepe4U(WG^-yw zvcI34*I$Z2t284*Cmxtuogxj@MvG(x!k>L}QPlfRQW?&hhuflFvS!07)L=-wg-Exn zlaNjp@Bq58Rr6)ey9MPKC?1F!!%wDhBJBfxaXNW{ts-Vv-4oTGTA`pOLBS+oJyMDj(+C#M&Iq2~>#NW)sdXsPYU`}1Luq0WV~ z{R$NQ$X0((Q=2G!`OB&DsKGtG2mqD~zyc6sHoUdu;$t_o?xfgj>Q3l|O@lI%x;E)D=ULyA3&(F()v?&Xx4_15B_6vJ^XQae*TYPh!Kqy3YWp zv)Q}T*A57oEKP5ME2^*HQGdGo0E@9gnFiolDXYaWz-9=0N>6zNEPOC5bH&tAj{p28gGn6iII>0Rd7+3QR%j$H<$O34esfy%Aq;qN$HFU-7Ya*8 z0|CE*WtKo9EFu7dwVM2;+k}UZk6u3w3 z;MDn^j;$s|r<}8f6jir4JyqgKqprglHCJZD4|-liN)U12fFNBEuO1GV$Wmhl@$+#k zJptei?wRUgbXg24q3F_Owv;pWa7In=I7@X}7#$fN%KBG=Cp5yePYfkjpc3o=a&Bd| zN9oW3J|L6)N_DeutcL!IE?CQQkVn|HsEc5e)TaI zhk`$dnP;XE7P|aP=ZF(|JfHhh?FgXenA)Q}eH4W+UhbP{?M(2gGESeVqvNpgffn#d zMtT-Z$%Qr`HW)5#&0eMip%}PCFyMh;r5C=GXNou9z*pwQt!4y&hMJK~9{ZZ<`hIPD z2^uZn(-Bm`$7mk3lKR!=m2<)8Z(*n988HQ!$%<`4B zWl**E<(O?kiLgr1oNZHzn+bn*Ed#c!-ifGK^rUySTO;!iH%0e+&X@pQ?MM_P z^Uj-%F2%q@z0Dl zRW-b+JcCq2L0Z#1${w~H`WUZexW#IIYtgG;)wTP&8#&dG92wm=g>QT-0%f+6; z3zB_VF4#1#?U-Jay34v`uDmwPDb*btXSn)M)BQ&NR9h!97gynA; z(kxlExJ&keUh$Eptu0?y*xQQjBoCA}lurS%<`BV}dMJTYTa8bPY+N5}16vVmEQvO~ zbibI)jS*P{Gt!x#owebAM?369imB^w!R?WZS zuf)SGlG#&bWg1?GeG+)%s%J**7L(j%ae^m0k_PO_OFbuzF6h3WYACM;xRi6xxgl+}e>+1A+k@e9(W+(fhn6wqQEvieps0W1}- z)FY6h(;_GCCzJvq^w)+FrdW=xJD@%+68sZ=JsBOQ79Jg@d2}YlV$vE-0TP7jY-K-X z8K2jW+l!+b&0_*aVp*Y?%B_;_yg(aGJ6}@?nY$YAteh3#j zS=Z`SjaXDPC&hB=jiJRod;^2vc!s^ISq@HcF1Vk_RnrVNKL3;1uneK7wSg>sOs>)Z z8vk`I&lyxLAGgkjO^xSHP{vlQ4fS0F84EjCC3~R8z1zGPwlzQ9c*Mg_g80Wn^=$5K)CQE*{OG@Kh7bYQO{re3dm8 z@gKuSdh-RWuz5ySl>*=h6?1$$5P^bxD*fpU(T|6TNtz-~2khqS+Hlq(Nr6Vdt#}LR zW4GEu5(T8Wc1d#vWK9zl!#Yg3xqt!&Bx4R}M&#?oAh^(3o{!mE$Nvm2-zs5@=%OL= zjgDtS*n9Q4+!E+R*2}ahkF}hp5FLhwbXf5qf8qB@#{z{;w?Pf#dN7fX)?GI>WObA* z4?*j8KOX1a87gGrguy#U8gj3nF-1lni&xAh_DzRV6Rq?lGRFI>@YDPh4ebCz1@$vviU` zDANQe*ofE>QR3b`*=CY%!1{7hmAG_b;KX+D8R=!Ia(2G1*1L^e{k>vWmwUR*aDX##AUAfVE=8F*sbrBP1^8u@ zNJq59b6jdQxaVUs5n^itS9YXdJb|Kt8PXNYge;2$xhn-xAqDP3_~?6NR+ZqkqQ391 z5A63?+w2K$f}ImJrrCl_@{>3C1CySKYNk&<(==omjc1*-|04YILQ+8T=({|1%T5*v zqgXR|2Ax>A3n8=pCo zt?^Fy@UT{gjxiTF#DdXiLmlHn&UI_Ha-y2cu1}w!toAPTwcq2vGOaBl$V5+IV5Ed8 z$lEp(QAx4d9eSn^X_I_)Qwjm3z5}m|M=Isx5cq9mCsP_% zqt*v{yTv43Z>L??rlK;T36zb)pcRl_bxdb)8?w)9bWeYw#gdhFH65tR?762 zXLuPc*`K6iIhc7C?8#ydPfDMzDGVb^AMkx&x)m=joI#3xRuq*AwlDpIi+bCpj}*l} zS$zKfCu`cwa7G*O2KW|E_sKc5#_70xT(Ym4z1r`Xsa9lChTHC7}O zQFS7Pz$#p&nI$zOC8~epFGwTq=xBt}y_Z-?$49;E$%S(cfE76y>M^sf9t}Sq;y|-k zKg_$TLEWUglIJnn@*jYRr}zvA`W)!mMC-EAvP?Al@!FhqXQ@aH$)b##hfnFICkgnz z1kDmpANSStUG6z3gT^I%vu=+eGD0q1&dFYH2a4Z){y|1oO`lgZGwB7-X=0LvBk)2| zEgm;g7#}B-uGqr#1w7@mUFRKoWGy>^z10C=Wq)KCrctnuPazO+?Ibd$Gv++~jMZBP zbAyjw5bQ!E>4sVrb9B+{^vs!~9$c{L5O{|9VIOkoDV1mZyv?j(k^PB0B0_SOh{E3y zDCdFVf@oX_*c}uokerVWkrk7<+#CL|@s6V5_tLuEKj+KBK>L``s?pY?nX`wpA;eWp z7vtlcP?{1B%KFL4^R6eyfpP^X21o|IjK4*S<ln+Rp9t;&}$byc! z<5rvDnZ*t_{IKp{0C>8PgG}@H!8+|?M5B=ol@&sA6qVpR39MWSNk9xGY$rt4po@(X zFP&OEco@H!$(DnS$`Zlw&K}Lib5$JP`Y4tZcdX@D0#_BHoLcNVDO(|v?}>;|MP5IY zG}v6wR1ywTBoA7QqNG>aPFWwLq4G3);%t-_x$JwsBRxB@lYda;?CE;|athMtawz~A z65|yNd7uhlNPnqQOqf^{B)t#LmZKDv;vwyKY2;Hi-4{*68LRESX$e;3V_ZB;jT1He zE^+0jqzM0V<{1W>2H6VvhH$=-92&ho7ZsPv!;N(JVBnohAAPo2TDLHO?!> z%tW!7DE3Vk+jnGbtzwkwPM_&hI=`Xx!2@IjaqV~cv%N=t2E0e@MX`UT7|Cs=*-;8% z5(GYhxt-S`?&p2-t@uPeN`wC7@xSkryZNLgz)#xI_d#Q_s`9s6)`sl~)h>|+2?!dKn3ts#sGQ4P!k?yQ!M{kV>;`azuoDv zW7)O@k)*~)l{Fr-Lcab!6+V#9@isk$pbLNW$Rj_RH`#pjgR=8zrdOhPbmuY7MdyzJ zc-zy<;FD4Ftfi^NYj8kDn_T_^g=8g0gDB^5p$sqtTe8SNJCH9##stie;A{>9zF|gH znQlYiz=Pb6X#6(Y?5uYO}Vnp_-79JyrD-Pd1Hn!CIFs3hi9sgbS@p{14 z#}hp0Nv@=rp#m=W%DvYB5a%yO6Px7^$f~G7d9p0;T9XZ-qh&Z*!UepbJO`TPYhIld zC5gh7|M$A$?r7HHeckCF+|lEV_?GmA7zYECsoE6?@y) zAgcZ9nRoI%gT0b7xrgy8i33oJR1yM+Kk|xI^FQIYKBLBzRgAKHbo-^8rAG(y^cp|P z(qCO#K?}VCCARe1+PnnY51h_`i8GIUHl}P%TBm|%gM@^Ihbcf18Y+|Yb-`J^U6pRp z6`CSmligtZ-Vqp+H&UqPL*m;JB0s)>ghl@NqvU{RkzvUN4(U32u$|Vs0MhVpP#AW1 z`p33FqAOVb^oOcHzly8VD8|9C>Qcu~+t>2s3aj6w%chX_LvI{R80IbkocBiQJRwx1 z80czXEo?PNb5jwuFk*Gt*+*qB^=W;xT z!kze7xdF>x2}+2N*lC3IbrDJX&e7bGvu`aL_zKzJkf6?kA9rUq(fwdw^w&C(y#cE4 zOcfu`{>K0L5(#%^6B&6{GZ?-{^7nE&zXQuj?JQ7+9;0$v0%@_XdWlZ#)?PLFF2^Xp zCox_re?;-Z{nSKE*)NS@;6FQ@!0iro)T;Z?l=*iVoHDTBhjNt$JdqZ0yR^3$r_!ie zJ?dtirF~c0MNK7BTP8oSwE@xUZ12)eupQgU{DhYyD!1cm{|+T3N(XfKC6X{P?pnAr ziO|>K$aHx-1JH4vVkX!QoWy(F3p&<5$qeb2{;bq5bEhA5x_vLzr_(DK^>t&2T-P#(yFYNg7>yPYf0Nx_8IcIuq%fwU3aqw3!c z@&d!99|uGny)}znEb}f~7v#c6yDRPEX^pT2$6>TH7w7U)=!T?x$kb_lWz(=qrauP9 zNXX_1SXKXT)+#foNgAX0ck73_xQZ98P&%691V&~e^~{A3HLgrQ-u@_sDm(bPXKJL8 zbD`PS(xUF5-0 zNmScpwt0e57vNiqVM|+pEHOMdUyl2PDAUTUcbPN*wi_y1G)^MRSp8E%p-r6NJ ze1C-6)=?Cx3@kTlLprFm3+S_2U1j3?bv8CW;F`1=U~-~!u&8f%e>@A!bs{MDOXOYi zGQ9$*TtjbPdnBGBEual7<-)}bmE5crMz;Pc^AQ9@UM)k7Y>QkdOWGm#E&wS!>Xd!} zM2wtK9sQ$h$;nU)7NENFtSmd3dY(F#7O|r@`;r+Z+C~rOUMb~AJ?FGKosnG6pMtMs ztVLLKIsF0;DdGDD^d}8TXPPTXij28Oq5WVQ!8V@qIP1@*ctjY5Ere{-3BbzbrV}Ew z4Q0Uc5#gyR9b*h<+?fGQ8yZ>nw0t}Y1mb1W1`-pg!%*~F&Cl%Z6QeQLgLdiq=JIp-NELjCxo z*g2NN-QQXid%ug-)5nYZkInl`X0w!I!k+|7Yo6tXL+apAtSUqi%_(Pa@fXVip;GxE zG0c&?6aZkcI8BayiV^Cg?qfB5h)l$xk4HmH^;tS7T2E$F{T++NA|q*Qv0lDEJztAu z4i~0_@pct!%ApXm#h#je(V=3!?VA|>O&4fhv#L|+6a2=jYNUnWb!YnE1(2*AJKDPh z)}QaF@DK|2?h7hB!Bhe7g6h`vSOy5izzFVq?sj@GyXj}`Ns9%^y&iHbA7DXpKxDS=PJZBVU!2asb@zuw9NmuYA zm9(iT2ha2{$!|ZmE2X9oLo679L25edIy$N&{fVsU#g%iDHkby7WTCzmcb1tvui0(i zf1yXYgH!i;X5tp^jFnZ%r7x5_w}hwvhrBnBkFvy6&C~*6+zrUjEV^EBkqETOT=Ag+{SU4O`Sn! zbjHznuj^E&f#;d`dFT0__xt1fef;!JUA3G#b?Vfqs#A5}&1q#QKkpFBmr)SHCr|^g zrHtlJ+hHAhQD_!iag(rOr3udtoy+wwYQah)75+Jd@kvsP4M$c%gEmzr{t4LB@p3lr zHsK0YLg)xwm%}A&xilBJUbEJ|`c#}_X=soM*<$R8TEIB=9;Stvbh+s?Z;u(kLR0Ei|DFNuijMp4~2mP6`tx)V*_`Nf#PJ_{uvfG{IWLNaOSu`21w>fX`74@>`WsT$U%f| zsSb_6+Im*OmJO23_efRYNuq?R#{a6$}cI(G!488t^Q^K zu}@6$P7c4EHXOTVVNE{XrGCIR0ym-$sIPgM@5RwAG498+F9pY9orWt{@`Z6W0>9iF z8XBkWv<*$>YGNpUi2_f^Ht>fR;W-q^irQ_e*LZRJhvV$q95HnzT^1hng!YVtd)WUiSXxH#?Jh(#HEmK-zN1T=V{jHYR)v``EFXw&ev z*N;OZF>T``XBvJafT8gwO$+nm|DR0=N0|}&4k_{&ln6Zuvf7ku-j0p5nRa*tY2f2? z`L3`U9PZ<15by~(K4oH%11%o&!R>)l0nCu-KJz&KHkgE_5W>@k+kOni;}^+ri53=H zV6jS#4?w=_Yf;rP8oCgBUJxMV*bC(<@dJb|+>G@$nXPOFlA8?6k)y^DiA_oJ_R#OjEP2i zRe5W4^RKac8H7)KVwFS@;v(#un(K68J|tt_g+$6T3=0$N7jgY5gsXPgt20E+`@6^s z7tavx4JcSZIEE}?^Fu>MifV%s?%CN^l*ZE}K|cQb(uE(0B)|}!|F1|Cbg>lSld}5^ zhFQt-W}E^M|0`Ld%^#hg58*&GygkD954_C5EBbitgLWQ~g?vHD8ag;0Kz(n{lFYMr z3w|Y$Pt^5a4Bs*Ac3Bqi+i@#xjYWrNbI9 zGZpH;tGk2PK~Uh+Pg?+xr08!r86C_=K%LK2a7j~YEx7_5{70o`wlkDES}wm~1BU2m z){T2<>ZyhjSBWw5ZU%(u;ftpfXG}aVEZ`ZBw)4VELfA-Ft@~M+>JL#eL?J>x@qwTH z5(t|xDKQ{GT$ScO<`NckwD}D9?+$t;G?EEtaB%*af{_?LWaO*iFHjO-hNQy(C?_VK zB_|3_$q6FD2j%kF;MfvAY+M_}rq8kU*urAi`SdRh{L46FVj+z{o6t~Zlp86N)WyMR z%2mqaAS<@b90n2i7Pk~KSMiTr^ukByaQKKTQxG$TzRC#eqH+$x1WM7HCrN&xfnR!J zOoprlGz}j^{J%1*w*O$hROT1VD40slo?v#%1oL@tE|CcaKOcn&=8ItDzcs;Nun&gi zz^t>4wKJ3C=NuFuB1gMhTUA_Wuz}Ny)}G z@}cbH?1b&E|7<2PcOr{AArkA2MKK}pls)W%?w<^EEOWrPr4cJ3n;6JZxAVaD@tI#Uw~+61Y?E{m{9G5 zfC^OK1NCXW3m;WZ7ZqTm(VT0D> zn(rH=OKtyi_JvFmo&j;|Y5zm+_MhZd4+K*J|0m-w4g-W$krHb|@@c852|OH<|Yg)k&AN2cAg_{{Q`Np@`!D$wRa_v$>S*iE>~5_0wsdr-H+Oc{Yt4=I4H<5&yUUlkwy~?brK3H=r**99NuM!2)934GXq=Yq zZ>{gi=*Z}4>kKAo8JR56S>M&t?NcBS)x0hc@UPP{*K~JfwzhaPn|!`Z);42$dTUGj zn)T^T?Q1fp=47_C`&!pDGzLm^_cS21wy7SZHSdO=#*VIr#;%NJjYaVXTy?JL0T10h zT`lcR2zXmNe5>$xmA7F4`PvxlX=y`AGZWUG_Gy& zH6qNEo_cRa$IV)OPdy^qeO)uBW~F!gx|!VC-7*kt?Cu;0wsrOl1bq#PXNqBM zJtgmN?da^>fU*=sOGmo5mEsP709jv0SEIM1L*&%PCVRUYo4Qe$&0HU7pCoj2f<`-a z5V;!K$RP`McS3H>0NssUE%mJkobD4vrMZQj3jL_>Y64;E!^-CRu7-8>U5)IG4V~z* zX04&6dlmk88>lUcSW5?kJ@vj-%%Jq8S?fe=*v*Kl_jR@~OPgqgNRka=3Pgw}8_+z^ zWVSyDr2PS+RJ-P27fbCv8A?#+=8g{3KF~aHBpQJ16i}n0ACy&~!E3yMbkP$Px#o0M z2`WVr0xH-hN=Q;`L{A2E4-Ibcf!_MYc07Z0k!Xu_FcsB7ndumg(I)+XH&7!WI4J3xcl1}-~c zY80c;f`MKNj-7$5K@}7`5bO}B4GOofZEH+#X(t^Be@#zIs|p1=7;(VfsWY+|-&XHy zZfS2!_jNVa_plMZX*093@V9=t{6X%($VbS}PQhQH1RfC6(cZ(Zr36Jm5f==!K`c!4 zwKlHj=;%hGibMS!zGh-3d(~eUj?NC48}QIMecDX?g~B6A6sCKfZ%tQs2W=Xnz=-^9 zUWZ(4FQFQtltB;#%w#~hPxr)G9S6o5d>Bk9)>YpoV~Db+ec=-_YHXtggEgq{>g-`h z<$Kq(wDv&AbG1wc8yZ@=R3NjUvSeXVrmw4`yE`3bKYeOWMs~*3bjiheU?3tpD?2AE zH!Jr)&kO%)qQDG-f?7sKruy$+QBip~*&vk$_}|D4W3F;H|2w%eF`oS`O_=kvwwBh` zmKoDAZQ@_D7OKmU2sRX&ChyYV@6H4w{ENl^xto}FNg$&&44`V9Su>9)MkpQs`F8z{-1_(6D@Zv&r~#g&Tf#V9qxe#Q`4FpjIxK~u_y$OY2jw6&UD_%fwCP^c7>E( z$&5vObObYYYMS{l*0#d2?n=@5 zz8S5IPnjDNN#ZLlbFGZ@SX(=^xmI>ygS)4cNn1eXDq5ZnE&A4b!xtw@1$%4G>_1S)_j3f9n1 zp8tY}DUQ^~kb#@5-C%%0#lS_~0U!)WmUlt9_hS_;44j)80A%3miU1%3mt_TjFd(JB zZ)*(JKn6@}`M8M;j76>H(N=G#CPBqOczyr~1Cpf%l+)`}v@nqVWB`zXc?$!849uPp z0K$NjUfb+W?U2B} zhw4?B)$g1V0IYudhXEkfOWD7)H3sRk`VjVhi1a>(QD~gC9@R6bs=sVV07&(crNWBg zs$x-nJ*t=Ny{!I;I|G2#Kb#c+QoWSzX=@D9m+GngxP^I9p&wZry0vL> z82Dhp+KBKd37as4O;sU$zH7nLTob|PyU}=tR9X3aI}Xp#im|ACm^Li|)>1!V1K41j zmMAo`Sd;bGSo=8C6qb&pEr;##OcFh=b=b!XU|Tx&*lns}fb?~CMJ~kJ>aEx8B*%N= zAeWUCZBHRNj?3xu?GvRC4a4+Oduouvl#lI`2zo=1a^(;9$pS*HEnTZMdzyeSq=ejN zpCVw873+V^o-V**?QH4L>=^>Wkhl4adsyZY0xS+hQ)8}3x-feZ9P+`Y4$RN2U#e+NfT=AGax-n0f?b9 zW|Cboz3b=Na|KYBA|AERBIu{|);(>{6JW7+clK!Z*#g-3!4`Wy0B*Dc9Cg~~Fr_aJ zVB8%0T+xTo)>VxgG`n3=CL?9SOLhlA?-YO;2ki3%P&Z~gVlR+v832=Z+6w_J1z7-t zCfkb$%BKTZvhDK$@P#61-=LBr3Ih6sR1t(Zh`oXbvDwA%N82mW>~M08##Ko@lr9=q zjRZ~X*OH&@H3G~?=`-7x3ZM**90zHh7^4J)@?dq z0S>kyA7p=_B#}bs5&J~~*t}IK_KO9WSjhKOwEa>RIuA)Rx7sfY78;Xl-$EY#z(Q{x zw_h$PY`L@EeubojDhqNYh2PKi!O&bKAVO<~LHp38*|(86*Q~=d`*sOyrJAFbppnZdX?LmcE`lF1%wGwUcp9AWN z1~pwa%zg*z8FC@b?GW=FO$uR=8 z4gCZK!yj>QdKmf%yXm!)4$col|HR53I_MY;p!HFYn-)993ZOAq`J;n2U+awpcrMBz zM!#?;m0rD#yNdh?U z+>q?xWDupr10*&(CQ6yP056w1QU%xn%!XsK00%(dcaAgx^8hYc&y) zI%Y_U4`Ba9$4p6S1PFCGas~JS#;$YB61&+1@bp)XJV{vx@X!wqWq8*EEcwPUM^ZQ< zZcca16|fN?Z?i+$+VcVK>UKCJWfQ>MP{%w0RJzgY90dX{0;sk+3I$vYP`<=b1YjxH z4A3~lF<-zIfXa9Wr!=kaDuCWdhauo|Z zP{0m=wG$ns04 z+yZtp<#Gp&y`|u0fEA&RDuAf0+W_{jawuzm2SCKL4rT540@z=0EEU1;16aPvA=bYC zA%F|EJCuQc3?S!EjuoU9{R@D~9~>Sj^9;aDmt&<=N;@+1c?WHJl;bV22YnncXUtB( zQJP@WfW3%{7Cb(PZGyuF%131h9u!Phdssb)%OriV4Bs2{bjQ`K|1I#c<*ZQlX2%WyHT(8Wb=*J#pXDQE?zxVe zV9uhx<9O-Ib=-`U=#Z8mPoD`-wjlmaa0Ic%%dCQfZHSg#Yu5AJHXct*x52;;xe)XZ zlt){KkhFnnvR|@BAR)R`1L(cg8es!~B4pu@Eo$IViej(-(_)Qcu`c8slWUDu#Uy7n z(rrCid4rH1lVSBX__aKXXf4T}=*$a8f?5o1&z z5`+JYZ23pBin5sPYh-)#c+pgm9vfa?T$C+`V~fz(r&0>@phvO)L}O!%z<=T^mO>ZU95w}|T|X8s5MHn$Yj4mBxiO$O z2l<|O$TpvvG3*5LwQrqoRrvt=pPNsoj@B0fu;uW4QJFrj^#%{0KT;&X-roH1{5Szz z-bMX>zS`|^wXpxD`7)dLQx8g(%^xGAIh)ry=8r|0ZNIYuBpjZvrgq-0-m+|dJWR;8 zzuDNGxA+UI;gK8mHd-}o3b>7FPIZ!7>k8y;-|8f{Y8#Yr*eTq~Ht42>PI5bW4|(bv z;~dGFd!qoV)10z3?I#=Cb~uIGezH-w+(~ZnHUPj?cR7XIUUpHf!^wq6{O|qs$*UQLKhG#k_oXF-79MolE5#TZ^rO zQQZW#@6taM4;N}&8eJP#ta^}3qd_~0MJD}h?7`4tkx3twvoE@Ml$42QV{6tG)=xka zs?b>LrHJUOD(tZ$q6rbh*F*b;Hz|LngW=W4arDQ+9t_#xO$g`xP`C}^&_fYkb!Xu= z3@!;j&|J8EApXIq!tL}^;-htRA#1}=h!HnawTJ%#1y?2)UIPm^`~8su11sK=n&Mr08b0mKvdLJWEqN8DF}4P~t{CK8GLLp7lD=Ne-L=|h1YdfynQ zP!!Pp?;7z6MFTnOjqwV_0Bzf0*aQuY6?bY@Q;0DN;vDgo8;vy^32?2BSd4I1lOe0r zetK1Rb{k3XeUG@0{JsS~hYyc7xKtfE54|?dW~h}a4b;_77;2?T1LdwY#BXtg25ReM zL;MzBQ1Pz2%@DtZY+_EN8dJjAvkP03b6^q|=}i04M}#e2(E%C=_UWsUhpsemx9m(@%yh zRQvToKqp5UB`T){=;}d+ELHpUaG+PdHMqf8+xmiM@^L?J5H!Tm1@aA;M^2zGsoo{jkx^3#CQ}+TSfnSky2-q7#LC@c^v5r^q;uS>IP& zZDiH~1wWr)K*28%5K!<<0s;ztp@4vbUnC%);1>&^fE$F+3=)1e4aUjO|iT9}hHRmT`?jHlRk$xK^PAAj?n2bqXZ{SvMLx6q*1O^_X$J zLP%m_dw+djkX>S>~0YqiV3S@zCJ1W4Pex!sp z7<;8Q3OTde*e8HO_U$z86hI+gc&V{p0EK+l0i%zgj}!ca2aLM~Bm(Sv%(zFgB>{wY z821WD1-RozPf|0$SppVw-#yQ3z;d%zaEaR|%nE(rq84n1^1$fzR zJO~g!d=|iS9^)aQ#y($BYCIyq0kG^U<52-c04sMHj|ngUo_@jjg@A0FL&Hs*NWE)BsHV!FW4;d!`;*<9c4Egxs zGUS6B!uaHX2?&^k_#DAuG-%H|qK&uMA;&=K#%qkXNmo4C%YJ9PBY;-%!kxyu(uW}c zySE$f37~==^&9UCpn@KsV*FA7*KUJs#;=4+3(H(;d>|TFusy(%c0Wp>9W(7@v;6)En(0rpz zk_O(yB|l?BhDw|CFo7W&DthfgtD$qRZhH}l5RyI^0FxgOq@;5}ul4FcQ!))bf(4J5 zh;j@)QV@wkg!)iHVMJ>UJxY)T2nwV}3mOar4bo*@ezWO{Pyj~X_Td&Y_fLs*JeL1#9*zA*;$aR=E%99XJ`xYW?I8~kgm@Fr z-(`+PCQr3$AwYN ztlx!=&V(3CKKJ-QF+|aMNT6Jy>2c9G;A%gIq4WcBF)dAzE)PJ15DElAFJBxad1f zzQu~mrJ9Sp!|EXOstT9#9df~2@}f)GBZ}xr&85td8DQf|*J+=^uyVNH`yC?Y;HDO^Vk$g}l-b@N@@cA|uPjHfdLb=4HF1l%B zGT>mr$+|0nIv_rstKN1cipo*3!unkkm?Hj*rJ5^Az*wA;yV9V-DYKEseaJOM3?!vE z>19{CfDp*HTXSUyV7oWiT$uu7Qrq(NCKruY%0{cd1^H4j>n1%&3b$susJ2m>Ls8)Q zPn1@NlwC_)S=h6uY}~|kNAgbyZaqC8=lX4~>7@99s!X=R;s$zov}=a&&7}mml$u6)p+*a<4eI@cTtlVfxUeTJ3-D(a-y zU3R8yvN7e?F7B8oZs&USl5iK#aVBnZFy%`Z&v7gTTsq#Wy9x=)xpdt3xr^sG6K`Xa z>%Vf%CpdJQEVa<16E_J@V}f|Q;9)_0o8Tcqd`Pf8h@TO>k{YqIui0gQd}<-8n)j)z z1R9}+(a1YpF7!xhA%{`V6|MyYMy~3sg#@JzE3PVQu2O<>!`j*2rMVW-MD&-T40>^~ z0JiVG6Rt93n-IhHjZAYbValmG4$9<%c%*FQ0%cEWhxV^oAnSwZ|g!E zt2zQAcP?HiV^lP{dfviBX*xCfR?9*eqvElgxpiTZkf%W@{>8#%0W>K0OkYSh*2F^* zS`}x7P+LfF(sMB851|PIG3LEbV1&i~6LtSZ_%X>dN}H`|mp>kwh*@pY#{;F`e}<*M z$FJuFV;<|m(!MTK--|8{OAkixL!*ZLHoBDkF`3g_$%~~C!XSsy23x7>4qZJR2?ii|F$ zZAIz%fUYj7Rr8?R7#UKI3V zKvk(axehd!7B4D`ETC3eJmr2sb7}GLF%_ir)s)W1keG5Fhtd7TrA~sYqG6xcYNf>l zH`~~~94u3=5<$q>s^FUiM+MUl2sV?;d(xsyOHoTYee}?~MN)mB`xgr!mzL{F%LI_i zDUGGd2}nUf@5Bc{HyTH zoib`za0G9M0eEoDl+iE%vHuLlZehM}r;LdS#%w|lK?iUhKF}jD2+boG>5t;Nc}9FN zTjx}`78c?2M?5>sxC)Ey@xR0?^THyxJj4Hl?l#s3 zbareR)_`{(FLOecmU47)?x8Z%BxE_Giyep_;x02yKD*?sExM)5GzGnywI;v2akW-v zN|(W{<+nDr17!fgJRrl%H&!x!HMwS6r{ys&PHey4TmZxwo#Rqec&9OO!bE!HZ&$%N-mNv48-`SEP zbLkCStZuNSs9nl9nP^ftmqum9(_U`9JUV3*#GOrxlKgYZXiZ~%!@36boRGq+4oqZw3 zX*RF1EW9Y%&3)oD1H0?&l_ZaHYOP|iHg;-mwQ}T!uHqkVwN#PuGjC91ma)hstxm(yOf;=MS{JrWI?j?XN>Es)@jlh(0&yQjNH zNq?|GFIBroPe8U~Y|w@$++$L(f+)2CykK&RJL*&_0GJskO`QS&Ho20~debS!(x1+`j_GEd&mYo!+9s%av~sm^W9&&50Iv; zo0dko4-&}XSz5dMeo3J+`tEQa62OJT9rwBq3*gFVUab280W|Vi{q6?^h~I5G7T?-E zP2uiGP<2iz(owY>1q@UzM*&jxW7oOG`!AP{_g?NkB4jw7XWs4>@4sAIzdYJ4-v3_m zvF{SMc>m?9L0Gk0y#KxAbq# zW|ceEeKl!*j&z81o5+jJL62@1K$@8!y04XzTyzYzg|fwz&;9pT zC|gXeIP{weWsAkba;dYZVgl&prXwlIR-s%sJjriVOp+9?Det|uLUt}Pq0~Am=uON`r{1hwQz72Oeh0v9cU91vm^(*Z z_3vj8CQQSA1rrMtQp;WFC8n5HWE53!37h*GN@l-QAuCv!<<^d=@JiKe@Y;k5S;5L> zieW!hG)M~B&3>W6FMwUx_GU$s0J3}8XB|b}SAJ7T2f{%AS4x+Q*=bu_DP1o8fAEsZ)6?(4?UiETMH~lr zSE}O%)_ni{mFld4;+Pa(sWz(=M_5*++N_G3_}+K&E9qj(t4C6jtx`P0BKN1Rt5ki- zCMIN6if33V%4w<00H^phVx&xdtTK~qi%VrfYGsxHP790vSb2I{$XQd#X(8nU8&Y06 zTB)W5%JsgqN;NG^XG(RYnig^?pZofwD`^h%_9E%FyDIa9Hs!x}cjasWWbXPsmH7gw z!(eWX02u{4r-xK>51RKBk{ZWX7AOiNe%mfvdaaUr zjyK+rZ)jPi(sNdH%aKZ@=d5Vkj!LEHtO)IEM48dC@>W&-cuQpq$=!>j#+xds&QLRe z7<1(+0dfH7f6!Lh!F-=s8yZ`+%1)KfTHny1RjyX~6!9*A*`EZ5=9~j;*E9m7G}edlZEW&ZHpoiWsFWhbv`X z8PGPFSJaiM-lK!6xOB=t2?}{Ls)mt5V5Y8;y`l`6qp4N0RTOi4fEQ(rBGgu6rLYAGb#b^Wzk1}eD2te1Zh zinX~lx|)8sIZG88WnbAR&bVr2U#VEzR#z+gN--@vQLXH&yxg+Hrfb#osm!?cs+RZy!snE)!q_DA`-RL_iY2h+kKi3rGc6^k%hNz!ZSX-l?t-kOkoU zYju?Xj@i+Zs;dR$0_@sST_YeLVC=-|r2-rPrjM(a2`B;>mRemaz#z!3ULjy1z|2dk zJp#%AvcIif2{8A!6$7%I`-8}CsMZX(L`t+)Qv%`H+1&M))VQEfv(WvJ>j=NKrkzPu zNHWFObObeg=GGcD>L}OCCfBG@N4Z`-uBJ=2Br--~uC>&xAqBn(0t#z`6yiUtQ9~|7 zxcWQtTrFJ5B~JVK$ynlSiPy)(GGSmVbW)}=kTRIxIJ{`Dngq5b9H&*BV09vnp zow}48499Zo>Sk?eJaz~6Dw2A-VCi_4Ue2ak(wEu*vcHT5KqU!moLmk%n!S`;IjuKQ z=<@yeeIu9FjDf`~2l;*9XN}>C$gx9M9WyG(>OSw7(bye2cBHc4oF|aE{XWMS;pIDP zV}mw^yyTxGFP8K%ojz2G1FZ zW8?7i$1E4d288?`C9rj=v5e+po<~?*HX_JkSpTw-sA-;u#P@lZ#S!=@&DGy5qiE+f zQ->XYS|;=SDF<6Ja~>ai@W@>V>UH6r%h;xQM=0NAY*X$+w(04DW#gd*^Ntw8?6UDT zf-&nr&;%0;Hk41?-te=i`w$qxYJq`@-#I}j-Ns1A>7-4xjDzvGM& zhfQE|p=O!=Etx!pZGXY@m=$sQTQK`4Bo%xVl*}i9&-5D0d8S+FLe29&U4HsF`sBLh zyc#vFlzqJHK+z3jMOWZ=F4`YB7zP9BBWhzZx@nvl>>l3vFCx!s3t@oT@#dYI(rnTnV=3eOgknnub@KxnIK%klfikP zP7=Rn5$^2!TC_=1#cxb~zUu8s+`!`H2!QABnWWBB^F@&+@#2ZrJBM0Z`?_N?cbp{+ zLT++_8XiJ!a^V@|CKsJSZt{GgpvX<;!kpypgcCyhI5B-F$n~YcY~HWodAUu;Gw(4I zo}=F~<2k!11kVk(hvIq5ePMW(eK-iuTFeQ)v5DN-mV66#UV12z-=|RP{HJ0Q7eVq9 zx3i;-_C)zUg*baAe3w`z*{m|65|;>w(|oo>?qpq5t%q|HD}tmBE=#NwpiFaO73gNf zvpYbyT9pO>-5LS7Kr|w88A(;D8kVDgs}e3?wj04l(S+ezgDr6ZEE?Q%V7@r9d_vL`bYW_*{|xIu^}503j|R8Z`quv`jRb9+mkq7I+ioj z23uk=fm};zj7l^FaC`ZLkys+x_(c|1BZM2B=tEN%^da&2dlDNk;2{ddM56#5pLANS zCHe`(71Vx9Vw0q>2d{fBu^B*}qHj5z*aE;~nPzzMxjzqc;7OGWFVrS6qXZ$X4H5N7tU22>p z(uJVL$-^5HyQRt8m7!HVBD1-wRovugy>_m3UDu(42k&yEaow`;7G$3HY1*VSMo!w~ zGe%CDa#E>*n8uR}tyhhlv~&S;wEY-4w@ppUf)%k83|wn5z1NCr5+9FC%R!x`ZK&po z+_afA1Tx`fzL}OQfGX1aS=uZCw2&E_zcEvNOKU#QPB1K(&h=^Vl8G~T7hJX1~A>9Rw%%#Vb78Hcv_Je z!g(Y(2~?mlmtN9v!R@w@T??rz`(xVrrd6)zR zFIdy9rL7bY5PO|~0H^f=$muiLXi3J7rOC+N3W7gjFP z(wYD)H z-cD7nNe-ds?@28bJ)SNDC6%{hwB8(ERp0Hgcytb&#rI-T*kJSMYiTpDz?T$#nnzzp zhVI3;;yN0DHZbXS_344zk#Iz;YN&P>21nZ|n|>bRJ_ni15|6$SThhhdymWExLXUnv z#>e8%l@st|1l27tRkH8#Ed4?#e$Cr@Lnmsv2$SmKBNi>c8DBK?=$lbg``DJ>E$C7~ zNgx~bsYl-;C^et2!+G?}*{tKd15o#_N56tI!$TPwKdiU-FIjv%gy0KHEy%hRd&Zf_ z*mj{u-zG%J>8!Us`Za=hPhi0>JoTZsK99ab5HI{&4|wz&1VsbYe&Nw?#CH(2 zQ&ylWfp!9w&x`|l+~Lu0lAL7v%5OaSE~XWy68+wz?;)yoxNz3-qes7usL7-O4jT0obc%T6s!PjIp)#tRImmx_E#Q#ztm!`1>9!!==T7YuQS&HdfGhty()DR z;E1n0`h5y+1}ty)==UqQ1+a6MM?a+CRe;B9Jo-ZlZUfHfYiuOFBQg;HH zU-#&bDtL1rgniR{`r{P5`8J}Elll=sCy6f0)t?{=VPlWa^XN~5Z24s&S)}tjkNzC! zltZe3SFG~r&kNbG5WtWGkA9S?cZDg9I)!j?V68_LC9V$W<^XOI+#xFhrmqw177UFn zzf7>wZKmHSxI37BmteJ`VE#u1Z{!#%`nt@ce*ookm!ng=l0Eu|tTl@&weEJ0{*fRm zk^Zbgf7KJ8YYl6+tG=;OZZe*%krV1+IP; zXqp08caKN^r$C+cTDE&knu3{tlP>a@bb)5F5pt!+grArLM`M^4^Uw@-gueE6f4L8I`?9a zX_%lgpjr2NOjbcPK>dq6rV)bbfVS@Pm_}j}aDU$nG%?p>ij%ZXpp1WbOuT`kWvyq< z*FC1uf;Iu|vU*Ho1Z@F&eW=GYR?v2!gbO^Tae{UN#rJzm@q%sxa=+v;*#z|g4g1Jr zN|4$Q0qr^AF(pdcV?g6OJf;bPo&g&Dl*g1L=tZE3fAg4<1)T(%2T8yo4nE%lx^Jz= zG*QqeK)KOcQ9Cna@k39@BI(aD^qm0atZArW`@x zAp7iv9@7j#d_xT8+%!|r5RgeY>@npEndmyeZ96=sSqgTl*~^p%)~lg$ECK^l&D%Lz z)=+BZMK?uzOqjQ{>Ov5HCc$G`##~}xjzxJ)-0kob99b96Kvoa4o`}TlH?D*MZ8{;e8LBy;XWlZwPJO1~@F#V|r7;BtR?RTMDKE-ub-8^fnx7HP`D? zq}J!pHPv`b@3GdMs@C_hE35vKwpEvEe|d0P5MWQyRK=h8pQBnnrHw)7u?zDA)3ABc!!p*JVPg*Im;jjfi2 z`1Y?>_Co1!WgA@q@5{0*Ng1y_f?hBVj*7*wS!Ns9!@ONqh1kbO;TKB-pP+u*z+NZr zm!pTGJ(wezO^n~cA(6+<#3(co>Z4~o~z^SNlO7Y7qyN$I+vDx%Uwg-TXpmt|sqdc?a_QGxSI0LI)Rp`4Np*7TL%!Hoy|GSieTY|~>ijyn_0dPK z!kfqI;-w4^CU;fUjTb=278)qGKKkS(!vo`ObrXFtpnkeV#I(5WAmq)_kIvz2oSK9XPtD8)D^|L|apRSX=y0Be7u1+qL z2-|BS>eODHY`1-0mmxA929RZ{qdN{C8nk+SYqdH#mFOE`Z9rHKCHioW2Zp^)+;M$; zMd#Kp>!wM09x`89TqpNQ`r>&~6u)rBXl~$6A-sRcjM3083E$zHF&e6?oq7~{IU;U` zeoyE=gv|41==Wkuto;PTYuSy^rn-4!>#0pE=7Dzm)_Tz<>EZt8>XkNeL%MB8z1+o> zJAVm>>#0r350Eyjp091{C#YJrj{2cUao#?XnworJT;wVYlob~v>B&uztx#fou^V93 zH<4{3Mas8lL}a@FZd_kG5ZNIhnqxQl!pKex!xi(;u3NT8cEL-s;?Ce$;taOpVkC|J zGO}Bw5J)obeF(AE?#RC}$2-9SS%4E_kTmzT$iJUm;7~Glp9drLm(Pwqfav7dNd1*F zqfKw8!trw1fk^$NL?h1|gCq6V&(4#C=$@Y=^*7FrwxQ^v?nwPjiGEm*j?{k&#inT2 z-RPh6b^6cXG3F3Kszd)LHlO+lf_a~sGyuG{fJvZeU2dfQBLwaF62|Dw;M z((p8KR=oUhq{$?4aX=m2ktTBtR(wr1paV6LrV#9hqiv}gcw8_y(i8@B6kQ#Z6IW^c zveC++VhZHKu;*vwooqy!4x?vR4jssQQ62c1J=YRx_JN<3m5Lv8gW?A$)e&iKlpd91 z{gu$lmCFA)OzSL|U!_Hw>E&Bl8SJ|VRCLWfk!EpV4BTEf@3kP>voz97S4QwsyLoR2 zq7S`?Xz0cn(OMT4+!>J}C81|To8FFY#(H^|p6?9@w{>fwaP3>YgM~fnW&d;DAp~O8 zO5?o|qS>@+wFkUnH2X&YOsMb*xa~nNPgn8k5WtKB-aG;H(aw0pD|hw!=mfrIu~)9=^|6;trQW$hzyYu% z(yKi0G_)5z?Ny%l0)Ug#y~^`m2;jQit32;T0Omxm@|4X77`Mf%JY`OREVp;QkS+$e z|2nTzfC2Dqq_ukwFC8N@$}-c97pGU}^baa*3+ zskgLislI%icKNKGnr{x~51)^tW!&Aqx!mD=Oe?)aK*J{3M3EQkat2JMZgp)+vXmmqcV5J3fOCdCD6f7_J@p~){ zTLu49@?#U$aLXB&YhBMo_;!=c*HxW23vK+&2I|}+;Sj0w775GuuyV&(eLU4{9BXYy z%k~CJw0CR1eSs4Au`bPbrz&D?Z_|AHC5#uy5xz^p(G-06lIl+1J*4$I+8=Va?_Q)e zzOI$w$Hz3^0fJA%91wPNf$u(|ZzG68XZ!9K^@$={)#5t@)bM(g0hBSscNlY&KRl`y z$i2t+0MV$Z?Lg6mz6a4Y{z=hUKv0K=VD0_(n5;7Brte{P9lnc`Dl*i!1tY#y5f=*OtenQ|E5G_7 z7qxblQog;2UHl(%srR4lJRpAkZlCF8B>NW+?rmw(d}eO3{fh&-;J;i-4r0!p?|tS8 zkx1MC8JPCk8X_Th|K||=8(SNOLK02*5m5@aAxebH;dtTB2APOXQ9pNYZ-^18Sn;zS zomxYz0J$KY_^XhH4Aj{~13V_SL0MLk8&uPvEGy3~p5D};EGws)mrpb(%WCHM@qd0b z#?RJikn_ilgWxr7DocZ7dmhhny16)S zrOe;i%Cq0j3*^n#S!EGUPS#Ctqvl1)PMNIb2CQ#uR9+go;(O;}0i5!RPC3Qe1b&0S zxkMVox$KELXE{M1=Q8`lPM%Y1{aK_I=M>Y^%X#TopR-cRO{GD^DP~-HqFVV?!YfWBoNcq93uB*_3uKc63R#G^}ocB-X3IPiN z${U>?0c8MPQO=bDDgf?z(n)))_0|A*uXoZOYrVWSyv*+O3RngZa?mN4!F!hjT=$Jr z){eck03&X8%F?lS1%Ufrr@R5t>j9YYjI&7y@Rm;Pa;Llj(N_oXM3u9JDScjmywT2c z1T+9d{LQ&afFIz=InGug&jI%?lLNP_llI8*x+2xy;x z0qs*DpnU{E?IQ?kpJW@*K1q>pc0l`7ij6E(T%F|H1Qu3N3Si-)Gg(j|z=D7Q78D4u zKoDesAjpDb8(=|F23Sxj8~}%(bzTgStn#aguphxSUWiCul*w3=wQ^4m_O_nM zo&o{(1PrjJK!81hAbSKs_9WW?dy+E1o=OR@cQx2+4Hfq27;3c!*}G+l!+8VQ+o;&v zDSfK}z>2bG7&DIBxN( zTC$xw7p85~v5A5p^qEQ$K&UE!crXZ4rBE+7e)xcK0MQ2wV z+#2K+2T`!t!UWp>Gb zC#0CSnA>Sp-aKBcyj4m)ij}vDvuVhO#mZYH*M*<7#1$u@PzQZQuf!E6Cy^)%_3STJ zJ1Xkb3!fFM9Ti8$#t)0-?F#W$J$qBJ+EG#4vUV4%9Tf+|;yK0KQCZ44SzQrU%pFx! z7VFvZn_{)2qATrzqs6>6tA70A&Xi)c2;ffloGHa>5g-noCr6Aa=FX|(dL)66|0RCIep=G#k?A=oJFCZ7S9qe2q~V5V%}d;H>n)A7SEOxZW10VD^~ZH z__dl_yNcEQrO_G}4(o@2*vI|?EF3!C#WG>XWG)9LU zUK-m_%1dLOIQh_T%`lsv>-$azi0_)}UowO$LUGqR{JestZXdNa_}y4LcFt#uri}4d zFh#yWeo2R)w?*-FJ*4!s`>P}y<(U1Nzgkkp!kB?Qtd2Te@9MC+aify_%UJ1i$c9RJ zr7KwJ3ISYMp;8Y(%%MP~D}@^E1}d!+z)EL4;;$FLO2L6w%20CPz$YnU>kIae_4`rl zYLZL()Gr>Dfu@QdMJ`(975LSa5M~?ym7iBaCSr~N-`fsZ{OzQ`xtFv+VmsfkeC?>{!+cP14PKT@M@&=6!XHxGCQeQX6 ze=cd<7$R$Q(%2uQu_G_Ze?Dk*(Nh5qH=Rl2!XOPu_9AThg57yBQwF+ovj9qV`ZWI~ z0s@k~RLTS-dzqxz*te_qLpVFiE&eN5b(LcODy9zzXR82qD#UxWlnl{!>do~nn$>>| z3f-yrz3$9HJA#G4@AYT$dxKD*Cak#6f1?2TDTJ=7oqA7;X7TR=$sZKSo6jVWRrka*~Qe!jBM zJv-P(-7ZA}f{MS@=I3Uy`zFwUCLdriS#(dI;lEEnK=lp+K=qKVd4m6bNnyXHOzqAxZ zFjsCl?AN1&J1#zMDDdmiHa1TVk)L=v%CB?QTXRF8VDec7Q-THU@B8(ML^ybxij8J# zykF-Gx8}7#!L+jqP6-x_wE6XPpp*}!;K_GJ`*lucYb}9-Q_m`x9V~eAbH6?fXmqR; zocW5?ub;<)^8y7ovS6PUXyf@@-1V`IA=mnKzVoSv$|3gCt_Z*WzZiS(uqco3efXIL z6%mlSV#kgh6ni7~n5fuGGyzc%1Xf`|SOHgeS5}dz(WtS+95;YnXO@bv&6H|=o z$tN+Snf|-)^X#tf_j><$y)Kuz=bSlnrk|YXehADEGjHL(GH!mPvOUZiPCACaXNAGMr*qNf9#UgHAhCf;7Ev=cNR)BRb ztt#J-Qq*&lT1lz%6I0YmiG$Wy<1Hy_6&Nv016}(eMLjRH8WiKVHa11ArI@E(F}~nQ zhc8M;H+7i-*T$tN-PR2PnztfFZ2)K9d1R#4_?Hy5QFNM;odc-Aki$^G0 zliDhpx`oPGRi#_#_J>0Mmm*J@&OPFJGH~wsX-G#5<5;z~L5eCz9Qk!zaqRNMLB)4_ z#la;kJbUj_e6J^ti~Ca4KFJ$VyyFBYevm@lxpBx#=wUCRN4$g{)rC^GL6=aB$0_DD zmu@G##GLdJbIME1X^(Epeos-a2(3Q!&U!ILy(*eEW)vq+qEej$E^ycQ*E~@)Tacp8 zd!pDoFhyPPM6vU;6!p5GP>N~W3QhGg#f)@mT0t=%u@*hOJw;uS7+F#jdQ}3}0%|`u zMZF=x^c78v+XYX1%BKF%W+{p%77E_d{Wf=jN(rad#p`Sx5z3Dw;y7^4H6cNKx;wj|MMQPfOOYq!*ryQZZzPwy;{4qcC&mr+pb<$Dr)2<~$2}p3!(=lU81g>#Go=`OJRvdM z8hiywqyJxup_(vy#(m3w9y!NH`lcATH9W5ktdJBCEP!>HzfI!zF^kmq)r8Bz?*JbA|)XzrDFEr4hzqm9geH!8)z zJ+8t9u7GX40=D%8#3aL@pA+!wJv${yOEI)3O~wxttf7Ml4bYOKgPKCG!Z!_^g9bIn z_^z8wyL$$;0tgMImDFKsP#dApc)ex};?eEUP}-}_ok1}IqIhPeb={y?Y@`=1aPQl` z^EI}?E6)V20#9m!d+&AY-|*cK9`wA7g&yAr@NMcJw7MB4p3ObJ_c6V()SQXq_jWZq zXaf>oG+IoTpp9ssmgD+&L4sZsf~STRCF|?$skB(u9gPgyfia=zFf=Z^5+u6~Vo)7u z79`sZvYvZmN>Dj7N!D{;wFd19VSQlwNBr`un#vXwMhjK@!&;4cdcDD*E1&NzpAZo%}Dz=QZYsXDfQ^*V)*c z+Y;pCeL?M=Ch)#AEvVWe8dsh-+TMxU4W$M>6;!=~QY=XJxLe`1d1kUWCw!(>o9Ae{ zUz4*+<8IeBLWAPT<1q>B931RsnUz-jAM)Zwdn&It z=(omJ{gcY;4Y(o$O2xTUx!xc%)}}wC%Jl|$KQUo^s(!t}C^wZ-dA*@gHQ5>HwQXtY z6v&>x3=)ndrcR~yVzigOp8B)^8tqRWNtJy}zkSj8St&9StASzX6u$9f_`fVy_ zupJsjgEH;iRL)@W%(h%tNX-TC8{I=p?9@D=JcfsHapp{X{=SiqUxW1pqku_vToU|srds-qTH7h*txii^PI zNfwPy&BAN$PaI5jLi&R0@oYHO9NFIa71U4SHluS}@FUFszNFaE~Z%=n-0v=P>;{KpJdm=uyti}CF_uNDT z4qp}b4?*EffS40;{}L>i4bV6y?mq$fs5~RX^Ry4)W^Zamt_MDizNr8Ig)gvGqB!%eZpf6x%=m$Cc3^#Wobc4)2Zd*hT`l0Ji^3tejesab@qF zSXoN1l=q?r?2C+TLD^q}@9>=1mI$Pe3C=^YJl?5~hi_kwmDO{69|a06eZw!dJpwIi zD1CY?Eihdn1nMZjH#{?GwiX-HfLvnAIF7*CZW=gcC3D~YfLJbbFPf*z(9a4nHz1>@ zE(4%qS!^!?*|vJ>-Pqm&xKckQBbHAwESe{;dvjl5(GrjJkgmb8+*Da~R+m0N1iGXT z^hgis5jzL~X=Ji`r3S|iW1wI3Ku`iKMYjk6~EZg2vpKqSAC2p(3y#` zve7JWL{$%t{1`FbL zSL**_)eu3v2Un+etQsnaGls5HV%6hjn`HnjIOdxDDWp2P-4w);sEo zJkT4fWbeI_QJ}J@(ISRXG&vNj^h|L_q2~%GCH+>%s&T0K&iF{_Nl=K+k$Scu#;$n> zW7R~)xE;JVqhr-1v`U=t1`0eIt0toXJGZX|YCkttJ%!2;a**S#b8xJhBJp!3Sb%(* zf`wtNaxZhY(HYk#u`I1WJRn32z3c)0kQOM|f6lrk2iwG`ckBq4Xt> zN-On93wtu1kF75rCDPiQNq@F8(DBQt?`Q_!J#Zgdmi|&3xc|_e z@k@UT6@1B)&?)AB>DN%p^~kpUoPM2PkgxVk_4J$M*$$rQTj}p0KNk03@=6`)?+W0i z;QYVS-xI*a>aexx?+fq&Xt+Q9mH_5LpS9_?1ysWWKk08!yAz32kv~te;U7GapS~O! zu#|1MAS!*OCj)l8mA=}O0ku9(=dHrUqnMr9BhuID836EBWco${!2oeDr*9U(9g)E5 z>01OuhUaSOJDI3zT%R8jpT1lCX?q;lk-kR&Z4aN$>H7u50pw(+9}v(TpyhYzhXwQo zSp0PQF#+)aGq$9k5HJv6*2n3**t>YtP=Kt!bUyO7coefcXl?qd1cMR)o@}0eM!;x* zmV46A3K$D8@m~5l0oAy=*7VzZk^alc1a>&-d1mMwT z-1bT5VN2FHNEq|@=2^8VVI}x(M$h7{Blq2pSs~IDtmQPm<<(ie(ds=fefwg3UeDmljAp4ta65zA>K8et#Ak3_rcp#7Q<7+Fmk|M2_C5FztK185ov+HM z!&v2P_0cmKks^VU6hx%o3*oNtKEI55=tK1{Bt*WHQ6He}d)CDIZ)fP{0c+ej{|qq? z-31aiUii3m=80$31H_i+?c@=8012SOY`7aHaOfJ zrI6G8{4%(E{_G#Rklr34(6*092(;DDBU9Ugs0{r)GPON4HX~lwmf|8l^UL5^ylk2- zPCs@`owAN+4DyKUcrrrFEfS+g>|a;n;Am|@Blzq?Tp6-u&8@2&!A1BS!65z z%r8EJssk=t0+ON8pc+DAL>Jl(@}okynhk|YLV^dek}kU~6YW8I9o6vGXC9t?l0eL) ze8(VOSXg$O>C1>1q}NgIli^F@`r4taL@%2Lrf($sJj=by{tztI*RmxjKR+VpugDfGhqoHaRgb2?Hx%hCQ#+N>pkV_AJ zv{SH>B8G*ihl^>qX5x&wQd(wpl<&$q(0R!C%oyz)n;oPre7xc}YEKoP*6J8fxZkN_^Zq+iU`7gnY34$2G>N)#x`)iXl{uZX1? zz@)92dRra{V2a4pP5q$&vs+~9rv8%vp%*iC>z-ZwoPbQZlTgWCeNNlVrXrdhdA47s zzD_#@ptmWL3$t2fB0$R-nVbV?mD2&5CS`ICpjFNU$XSvZEg%En%$J$^dhKigbC*ng zxzE}$nx!VEqd^7dt?gW@SCX>xwt6U0D zxGOVGz;b|#^D?^#SOw62Xl7RdYXJ%}GrI}c0MKu6raqh44AAUUraqh44sg6MQ)UyD znKGNG+zT*zL1teOa1dbF-OPRhjsj#)&eU7_34ru}GanPmD*!21GC8kUS?3(U z<-$zejbvsl0@xfmRrlhxEC;AZozW&$Xn>y)hK zB8_F`Jd`C@wJkVxJ}`^rvGP8=5q*p&Gy=qWqCY$*tCN7Hd*W{2BI_|v++8PT^%uZ;0!0Qeb1eDV^unwFbO@{XZHKkLXVpcou(C7U zbrxjt(+n%ka5oyC#n=8;9)^4Gw^;+}zMo06AZrK=>{ScgnX_tzWX?QxgO&BHS^ntl zRxyJfugIzeg;5$XL{{P0h5njW))Uy#Uv;Z3Op6s-w#!}Ok)*i zMbCc&#Qd(>zzJOaA0k6#&+hs6LF|zjsy+lOCU8K@R)wlNg7gVosQO5QWViW}sO;Brp7rhri%2`;Y=^r|(~z*mA-PWRJz(WQHcUqkLltzL?%(4cQa zT0(xK;T|@iVLfP#*R!!Tky_MHmZ#l&5Qew;Bx{{FgH7B*TzwT4qRu;}UswZU*yNfj z)2{+#cS@a$GAXW$ta%(747g}gElHG@2?E-i6kjx0^Ef|`8lP`c@}j{K>Kgc@NpXcp zTT%n4?!PA02DYyK$TZbiudxhnC?JND3h8bC?2Swhe_#= zB@6}Xium|g!rEI2K>6)VYKm|s0=@OXq!O{@xAyCq!*Ke3l1U{A&G0o~-uossO^5dZ zhYmEUWXgG9cmO#0gh@>os!x8I%Ac03nbb^(dcn`fDjj$X#Y%A~;x&^PRIt8L5Bdv! z5Am8kz>$I*YuwAq-DFZ}=iBzkpNXO{zekPc^`j9FwvL^z{SWJlv$_3G@qCqh^>gp<SUS?AtU8PW%qTLc1v+dFII^xuEfnY%4Onl#N!fI23}EpV zld|j7IKUSQP0FEDdn0q&&o!w1*>VQ~+AWNB_o zSeI&PpzI6lS`8iftU6&ldXBGMyWTK(`%`p1!=`i(<5AxAi^K{K!&iCbbF0&mvb8X= zN~-(}>=(mmmFQn;s?$5HkAO%}&VC&xCQ4Nlz}uI@`eCtTU0HL0y%WRYQ7?Es84<-K z2ZwPovVK2EV-AMVEYX*A%}c@tlW&47cRuk<_b|>g*1r=D4TgcR{vGy&16~b#LUfal zV60yR|Ib~S!{k?n&GdICY~jQluT==hTi6>`NkDl8eS;kwbIyht(vdYARe3W}H!fiYy!KNUT)IcUL{o0Mvx{y#{f+&pId65L@w9QB!X{TzzSgCs@TuzwGm?oI zZKZlAVa9YK_O_MkR>F*FL{Wn7B+ST}4TRKy_9}(5%aWCeV;HR zjhsCM-G?rbuXJhISI{p&*OzwTnB+HFJ&?v=p_Y;hzk9Gg|GlQ2R;{uB`>1pEz-kh(xv?pJc@&#&P>B5(JR5dj_A)8w9n@~Xc3E8n-fUvRx zWCe-?LQVrYfjR?43tA4;38=lGwLq~zodj(LiUH~-s5~LN2LSHULdd~{?Ct>Z0!}1k zGk^Fh5J=||vYB@skz}BXgly((N0b22b?2f*B7fKU;lFF>n4NXS=tAfQg?|$72nh{Gp#ey7hMZg?nq`@SL6eq zx8As0n+Z#!9oTraVNZAcRkMziY2RoywoTkp@Zky!ziXMW8D5s$2e<9f4$Om1!6|{bn0$qiJ3E zJ8Cu;s5aBC$SRv%*Pm|It7WTZbN33TQ30A9nq6N&ZGhpoX6sYZV1W94XX{haaDXAE z+4{tj9p6R6Y<=P>o5Ebm*_D^Up8w;|EC}KbZFMgXE7N zfEMflARuISYI`u+ilLgcW6nM3Eq);TDWTTh_bIX(8OJe?(<- zm2u0rV6C$tn~M?ppwM+nw!RqQ7d~r7ftD?c5%PFvgFmwMRYn%v-ig`#szPv7u!f>9 z`98Y=hM(XG5M5_+a849NZ{=LGW(3QhkI1NPEPmDU`m(!8d zZG4J8NABKMx|EQ+x0Q0=s8+de4p$Gi-qNFz1;cVzRBT6{sCuCD*m_H%+FA(b*AFu@ zq)Ai`R}8nckqwiaKInsBen8^BD>;3UOWWFTDDT}WrymB=Z5>&?n>EYf7`-h{zRI@c zHw=ec`5epEZG*6^Fd}CtiG$cIQBSvxmsS`pUmEYWzD@TWt^sbl1UY-#=RAQ--`0ce zJETd@lZbok*U^4J^`FieE-8qP1{&KwXM~R004@7BXQYUTZU@vXHfI!RRc(kSF3jN$ zCXoKwt8$2cPa2ARlq$;*oHLGL|3&mD-|?tA7#{(at;!KA{u8O1=eLKO`8wYA1t6t1 zHcQo%g=}+6v%X;F3(9k!oAm`VX3@2+W?3+k`d0X>Sr*LXaiGwPX0DCsFC}*?Gt253 zK9Ze=m$A%JVJ%@0&}zJy6?Wk2aIUPJ-)`p1RonhW4n03V*o@s)Z3mZY`}}Q|N+s8z zx8|9pQpq*wo|DY_QZ<)A*N2()rD~sWnq_8vshV03scvTN(qB{VI>j7A-Q)z+4mrh5kl*xS7`Ajxjo4PY+*ixS1={ ze*J}S`ho7|zR1*lhwQN85q=Kdayh6I_pF6FwclWdlaVR>Y! z?=iD1Qpwv;XTCHKMnpIsO3}ZY_0{MIfQAM$H-5EpBf$KV<|hQOD_;D)SvJDum8E4r znTHFd0Vop}nnws|1h8|4c_e`x6x;N(IY9tT)!=&OQ39d?Y8uU>1z<$fdWDY! z&c$YZmpG2aI{koo9Ex?v7!+&6N@ZrHduhI26(&j&WEZtzrFjzAUYb7L&pZvC)JrGF zpevqlPDV2eIS6;s^XBP+R15CYQ_VBP&0h7{&|q^C1nmq;LaIZgd;w@UY|Ed>(~&M`Of1p;d!&Qj*Za3cLvEPY_^R@xSbPc#xPtt zV}9(j7*T8!BI;qiaaS#7V8@;j^@YOvHNg}S_Plu5QZq8&5nIrpq-;XpSlw}bJ( z8fRF$_JMWzu87WLebvL-9lq0(B6=e4>xH^}eYWzou(cHteD=KM9gpvJ_#XW(q7Q9G z_gjNLTQ|eE`r8qGF&_*$=;2+9270DTL_gsL$M&@mT<>{=W4SAxyQhhgO8W?zyDQI7 zFAPm%v|GU&6)jL-iz5vB7h62uuY;@EcinS&u6>W*8Rv3zp=FYnqvgurA|3d1V{&D1 zkt4V7?SIN`Er5+6D=(MxHT`JrrCqt4uc>NL+VuF`X2{$<+sDATeKof^dbvH@ z6Y&!(RzK?Go}-eZa;Ea^Z}GXb*!EN;;b$>c&VqBhK&`!OO;D>Vq@tDrAP2e$;DB@L z)7zwWpjOK}RI7sBmVZ=m zF3q&PBcaCLD44VO6CIrU82#qr=wybL+uzeO%ova>BV4%{9(|Ta<#Ht3dkQgjo|HQT zeb3&JT6prD8Cvd8Bz5m8=2xc)xvqiiam)?kb4Q}O;X%^tY-oFXA-;8q(YZ8)_66#4 z#<=9->e@C=_ zt=5#>9FfVsvAHpqdkCr;V{0@ecdk%|0_?Np<_mZd;7y<00s#pC&(_T?L`T^yWFo*z zLvwkjPv1|>nwM(@CFCGAJa9920Vw<9W>dp`bT zJYBHd5#K+S4~H7N1kc&D;U+i(4ty#4cVazNX^9IKBj(9=9N zwppm~c={secqsT;v*DfvyBp`);OU&*bLFIeCEQcW=klPxChn5Clilts+vYw+cR4iY zeENX?{@;HZ!t}l{mzUP}{|oo@Idc=43qQbp@`<@g9{0Gp)7sJ(z&*{~H_mQ(>i}Pi6B?j(-wfXE>^r_7H<@vIqE2l_~ z-OX=>Ao|+^&)?4HtP4jAAfQuDKCNZ_RLj_H`LerP?$2yIkcHTMM^?+{r0QS@m(VG%8Ab*=L_^?@pw%^{Q^B%{s1$M6|{ta+A-{AR;L!|$>L0P#wP`O zvTCyw(hla2Z$hZ=A?uVWeA;Xk&nJg0GwK_nj=5-TjS|z#cIN?nd7mxz8l-n8C)$ZvVX5 z#>wa_BIZDROuTV&6x|*vA0lMu4~$Ona`S#S z8|78j(D;Mw10gA^_ZxrpF2b4c?Y`ak8w%^_W>2_8mQoc+rBjT5dIh*KGaI#elTm5j zAttuqj=NEfL5_yHo3!D(1bEK@_gHW5q417cYgFUBz2o8C|7D|^fMI^*X}2~vhC0MX_w0YE-=9bnFuM08jm7RAxvy_6B!V&(<)iTx86#>)g~0 zt7BAo5TaE@0qt&TR2;02z1tk<#t@^*7n$9Aa}sA%1yC)d1Fh`W5d*K)X)!~A+RQSl zc_Jl&!}54Oraz$&KO;}G_p5@$FQjOEWi!)o!>9_;3mxmgdnT1%23U>ChTik#T*z8G z#i;BE^>Qv#GVlkZa@5Bb;qho7b8n-P@4r;#10CC8R3%a8uhQiR9S(h-7~7i z&{m6a0`2+MsFnb|T)KQ1>fGx_RZ6s8S=|Q1%RHE@#qd3PEhdb<9JgLxFSsG`u`hsm z$X1JK%nho`>ntIym`qQR#K5=n0E^MPpn~DsZH$FiL&nFtd9R;??*@~ly_baRJ7>Q|4e}PkzU)YeMGf;7(jDF>c3IR2FCkaIhIfNC7M0{BJ zZ(MItDPBUZ@*(ie4=gI(TSy|j`+jdxMczV~_;Y0zwa{BgG`y|*ENYRLkSn*~edQI4 zdcjM`6(&B;Xi+bE3AwTv-aUORYOA*p_SiK(wy0y?LYVkLJuT{#w~$D94;^7qXS{?| zRKR=GK#RKJC8UChU-qs=z2_yQVmZ85y=hS&cngV#_rVm4`k$AO@0j@d^(?B&TSyeV z8y&Z(-@JreW)*yX|Ga82k&gZB?vhR?z;{T4!j@i=Pj`oJY=^?OUV=}v(Uo2+?C2%; zR0Vu@k18DCCE?UT_=d+94)v07YB_xCjxBuBTS7d1NBmou=q(`{zFF4`XLw6sqccw^ zxqYICFNjSk2ul~I76>kZ%;k*9*!gJmdqTpNjN#O_H5}4va z8w>gN#Y0Qr_}B0~-m37PmxSYM;Ttyk|CI3_rec1VqE=pV_h|4PTf3;8m)zZ-!ncMh z@-E}uOhxzOMg6@b?9PX8PLHA?-V!FlcU7&TVP2Z;W-4a2FPiElVb^{5c1|qfV#dR? z?Ya)%igiW!nB^m7yo=>lxvVJPTf$8E?zmG_-HTRwNhoKE zm)0m+>m{N59DMuCDO&F>f#vqXsiOVf5}0Ds;G!em61u~8!4pLIa$A&8bj3@; zPNsO^>Y_?72|EwMHz=v-hPQ-7_}-}cKV`h`Qy8Na@kX^Bw#wOO+|7F(kIx+Y86Cp9 z{zml@7H-bY^U$u7_62B8o6#U|d3mOq-$l7>pR+r~_Nl3XE$gh&aH};$tZ|F@>fj!j za^qv+ckLnHf)|a3+vGdr=KGv$vJG<*oYbAfKY&k`Yy`<>?oyXO$#YxtS58nr#w#m)C=BD^h8#%esl^3eNZ29L;q zmtA6!cPY-9k%4<7jnz(J`g+dp7O{>!^4?pi&rs1Lvy3&n zgYDdLcj!BJuxWoT)L8RqOVk^V5HmL!1M_ftVC1iEo^@1mO>JY~Ja6w9c$d6r477TC zGon6?jDZd>?-#Dad)szn;1X}|&8RDVy0!@QQvS{@_&#H85#9)!@IScqcwrTMqt0V)-xpZpciLODYKrbW)Z?1~-{qzjZ6UX=XNBzrw#7>Y zEjprZ*Y!+|@4N!v;c+cGfwysrM?yS&i%MH`g>R#OJiamT9h}ml7bG;^?e@LHy@X9G zTlA&xO}Fn0(eS;tphbW9M)h+0-eEq}Zq{ND(iTKkRHZ;;ghZ9Tl|K_Y!Om-rrf)b|8cxX_dTMO%3iywOEgo@j(1H4jPyhz!F@!++;9~p2Ne=oT6TpgD?GEIj@2DrCg)Ilu^Q`ddPjY9a5BDm9@ zE*@76SyT@9fuD+J!CzfTgL{1OI-X!WFs*ofHOvdITH*`*Fr|B)3%!Gm6x4)UU+g>8 zwZLBh*Oxlw6x0&Hz4Q2i1#*+7ocry8#|n7M$ge-|GtE9y5F~6|#JfmqjMy;&P0Jcvp2q9%kHw~%gYU=A#B-Q$nXyOdPvgn_tCKhnp@bwA?y;)$yf`Gch zrNyTv7Ss{IMgJXt7DNh&0vOn@psoO}c@G~@P)|TSz?Ap`ZhrcWPT+wHZaZ zY@o=p^A4x){5sTU1%>l~87c;aM`C$gzf$P8az58Wa05YZiO!Ei$B&1Pn3~LizVlhG zm)^!EezrEhfgT=8%rnk!fCVXC!o1M=4Z!V@&;WggOG4I~q1Lw%>T**Ax-r-K4&1F~ zGe1t&wZ03`W+V3igVtK#(=`W(d(Zm5)R<_3JJwqQx@-Kh)WKC&-yr#JBkJ?zK2IZ} zm>U1d%JYGG3mB1H3LtT^5Ci|yUO>15Efo@c`EggvxI9;gwOzzce3I>QiZJ%|0Z-kr z;vVLM7G8HOTK4|Rg^_IG`#)G%SN?vvu%7&_T3BCNe$c`OzOl%$7Y5tZ2^0oU$LnKkdSFWGvBo-IYcDy!L1o*Q`|d4wt@DlW>aGX@j6G~F`F6-gx&z? z`5$a*oY45h;)U8aH69540Z?^>!{KCh2teDX+T{8_dIX@Uw{2>Y338KxHhC&hSNw3IO>F^5SNyWgrnU+)^q!uSj3~EBFdr-~9iD4b z+l7WNi@Nf<;-2KSLI0`_!w!#XY)B_SPPEzP-1{y}&+_?wjDr zskA>2H?jgfi_yLs?$@7$J4v&zhr5*(?&o{kH_?9z`QNi|@$fgYZ*}wMd~Dz8@o#A_ zcl#&RvG0Rhmow0Qi2fqyd;1X&e;@l%4}UxRNe};%_E+8fX@l%%-8^&NwezB;E_1BC z!p)QWxcw^Jl9u#E_BY)8)57f6-TYfWu)pKsA7y{f!~d-PeK&vlYWp3xds=<_UAQH# z{4o0$Zg=_*_HR5qqwGJp{d2AMD!6qWezX7V;YqeXaP!oTv;R$h=7V{p{a@ihT{qMm zYFE`!+HVX)l^GOdSJJ`By{1`dcEuYV2ePDT+3ZU1u0jM!w|w;gw3;l{ zthNT*bI5$V3P-Q>#xQ`qd3Kf590|%m4ZUy$zPkO}fSi@R?JAj^W>(*FIQaem)<#)d z-{|V#A(}T22!Z61exBsc@ z4sN#!e}1lm52T5lqnQrAbte9nVGce_CjKvXcI3PL$9Hq^b!+i|>{myL+dtaoSmyR` zvedz+qILNf9WT25TTF87aQiSiscLj=KV)0K!%}J`)hlHGJ8Seya&M_4nUuvqY@lIle&6cxxG| zNnx}@1rju&T7L#D@}*jzLeQX~Mb$iN%}QHTT{Mwf^lzO2&-ePNqanqMYEu5EZ7{Rj zwa6c19PbusgJVh>Ai45Q#X$j1eZ~U+J_*h+%xMl}!M!-f$&=UO-u|sKg8Y>nu8&7M zcS4VAA@Tr^vz&U!*%Rj>=Pm)vkqI%*JplTVnCE_Q?iC6xviPgceFAu5CvdrQzX0ad znL5q`kgQoaTKCU!;xsitLx9p1&O-utaIxJS=V1Yj0m8OBj|gD??&|40Dxe8KpY6_L z0%#TF|K@yI0FBrJKj(1)%{5#S(RNLAsQ&`ZSfJTm{7T5D@X2Us3~CL_-gj z>qkN^*>jtC?d4KAFuR(r|WD6++Z!C_lj=!~RjsL2476M*- zx<5K6l!12bCvb%vBx|MoXr%jZS%P17GuLa-*P?v}9K4}#_rQ*r*_)kAGIx-!=LaND zo2fa!f<1XXAL&?><@_FV(d$KU*DP@UEd?6Dk1aX>kqks7oif9zloTOAryWjZaD(mN zJC%+4RQ zAEP@UO>@3V;Z-3}uHtiNCHAPV--Dfv`hEiG@}K40>`K=S8p{=V&dpdDfSnBDvmZEl zOpuAbK^q9f1x-nWyCBNB04<I@+AvHPbAJqefq6sklP|U`{(%V$1B}1#Ht|mfPA{ z;FjhLOwOE+DJ__GOv2H_!9IR7a8WG5k zBRg|gQdN|mbi$eGW@L7NF;f^x>@m}s>L&iK6I0RH-BMD!xutY?#hK({ycw=DCJ7^@ z_)c;@qlmloIo*bEKQNOecwe4cT{{#^9hJr+z>VL?j@rx3dm7wC}?<*IBwaX{+55{1|QK-08$ruk>jFl!~Mt1zQMjJjFkddUkQH^0R7 zke5HtE|=)X=Oc~3*D^X8M`u%xe9v~c)DviuTKwq%7L}j~~*Do(o zIc{+5Zi&)g3H8sM!6ikoK@kAP>*z+_S`xs5x+#jGdX(G}NetbsZVAsQG5PQA(L3BLEPC*dnS*jx!lnc>frq`Qdkb43ApmoB{~+}p;Nq)YcI zol!}8ya+*{O{Yo{-GK(_fw)g5!vX>&>U}cGIOsr$^n;jazMmvHtIv8h)U$#wN=Bf8 zy}u}sXGcp$NY&G08iDLV*+RgG(FlmO zDVs|=OYMPbgOf@+gB3Li?XrvX1jr!t1YJWR<`WKzgMv!*L%vd4lh>5AbaigGxNZij zTxqSMfapgAv=#wWa>|+#{jRU3-QwB+@~{zd>Cy;2rYM~eHN|0d7)HA??$$c#104pr z8^U%z>ZZdmlZ9O=-JZjcCM6GwWwpbQMNqD#W1`aEVHiv)$kkit(ZC&s#}O-D>dJ?c zl@ye7U|6)wVdy8(p#}KA?J%?kxb+=+q=P=YEDcMD;;~`ZB zIt(Es6}w0w4@pRgA4xB{NPa>>Uew*^F!;k1!sr9(rACMPgM6>)eCiL62xn)9`k5q7 zOpqY;^FxwysP9So-9@7HhP;5lelZU91xO#T`(&suJfxCO9O_+?y1Pj43W)_E-x)xz zqm27cawwW@>@hyDg0mtI9%3{B6hr}_Zb-+Dq^R@geLt{@K($<6b++Bw%R|vfOPlqaF;J?7v zwg~`wxeu&}Z)~wcZPe?HDGQFs*VOie}%3oe-w|T!1EQK>#^%0O&ik@(_O- zC=O+3KU0pQ3U~?vX)_}jQ~u$sP}+C!5Cboi1|9(9Xq*U9s987h5OCi64&}DaKHLs6 zvrIS7LiJd5`wU7?z3ouaEXo<<*Iu<>QW{KksJ?C~90QrozRejuz_#%KV*j~x z>5D!Ig@Ax_IyqE#cfg-q0lPmMu)A(JqJwDnr9-s^j(rO{5BLbyt1|`Z>1qLSp zi18?Ot`+DQ0HHFL02C*KuG-M{Ux$i>I9iDx(KI8S+ZUdyUr(w&)tqwDq1X|y=6qD@ zQZq!_4Ey=W=Sx}tKdO*^zLYOYij}bbwbK3Qknt@9KKEO?9~DX_MW&6V`k2qaj;PX2 z2>fw1J@6)KKnn+fH#K?~coSZ?8#$ncjAdb}I zr6~yV3HK4E-Y%7mIA#XoOF^xmrqntGtS+rnm=~g{eov5^_OD*b;r|o9e*`J=s;f&1 z_l@0JC$gUttFysdrITEmev+#Pk_UlYfhI}RlsuzbDVy0RT;70A36dOLr-X+&nIJjI zloxk=`e=<<_I#;?ePY^%lppUqFJ`#7& zhjI7x#LWpHl82Ckx0Z5d^C{;-2pRWC+;N_`ulkm@cg6i_rq0Mml5`2Js+G2+gcW*P zTe{*#t!dfN&C|72X%u;OBQWYjl*A%+asOkb^+Ysu8Pl;ej9k}sE-q8KYV38N(m>%_ zhTjnhc0-s#(_1*et}f6UP4Dh8X?pO0^(0+OK@R?SF(o zWG;q3_9ln_wyPWHO+rHfp3bwYo6@z2{P*ar3h~cQorc(MVKi*S409PLclma!>xK5a z{5bg41IPqJN4q+Vbl&~emBzzS(l?>w3&Vo=PLMw91rk@zch;kPfUuPS&0R`VK#5(5 z>(U5l#N_iEQFpKELpPAFy9R;J#M>2{*}cx-9MIUVGNHx2&Z4`SIY4V~2x8qxPzl{X zED|bcfli{}g0*&4q3d^Vz9VJZ^z00?& zO_W zBOsUSn0Nj30p~Rc+%v(ZKB5>TVBNPi^&b2_?+Ct&`vA~7Xd_^=?Uqz-4q-ilZ634l z^IS20;K9~cCFur`c?)E;$G+U@_MBY%&o<>i3OA~-=n3Y1PuSEE#@=$*fsv zp!6VxIa^@?bBC8~u<_t^)x})S;fdxInajHhGx(leZ&O9!`@-MFSHwQW%~#Z$6l9l8 zK3*pkf!mV~$U(Uxvdb4B3sS0&E)(Y9~r^tDf-bGt2g8J#fizn7q*T6A84ddnDR^Vy)!b z5$eXzB8p>X!8qGDWU_;)))3n_QYCdJPEesuN1T8>Y5Rbxp+LUko;OPJ14)Gpd#{bK z-5|9b;!b{L<6_d+EyT*Ronaq9>!QO@+nFY8U2vN=+RlJg{14Buo#o7gJl#jx&a!RN z*xDUxJInEoHq=6!?YyW0_mm3T1!<*N!?L}uE7%;JTZ-)vqwNi2#CBZwrYX2-n{9_e zTy5sqR+7%?MjNYbCG$uO%U7SbEhS+t2uIJ@mO_@Ed9%N@<&ba=1SrX+Zc!4-=djGm zsX!iM!m1MoKpQs*@stN1BO7NcboGsh`o){JWD5ERf?CY7B{y-|y1hEslF`qGh9boF zP}>ZUCACGZZ7Jer>0~@+8-u{#bbwF4+qN;(g4u(vYm8)10B18T!J>rX2oCmg!99k@tD6P6ms>#sZHm-Y!rM_*djcXj=`~d#pTWrl*(4X-ht8T-c zDeYS>fq`HY{R8r1HCrTnbeRqHXfY(%%ND8=WbX#A?b85I$MyAtSy>AetHig@xJZXk z=ALDgZ%yc&v)q=-wzalCFzgw`39zqJhSvENOb(Xlmq0qTo&CvZRubn7QqJO#(KGNF)1{%( z9=U(CGz^Pz7cYRNQ_fPOlmNRV{2q$ffH|s< zk<2SIERo~@OsOa{tne3eBM(f^i5|4wj`l7yWJARFgZ1FqG=;~6CMSU_yDLSzM42BI zRV4XAbER~AnL!r(%dx@@J9}lBVLZi^gw9RNf()86m&PEv(*FQ3rU~dXtIRM#b{q7V zCbVHpvy~C2c$$hbbwSY{ZhCl#VQ zH7PT&_5AM%c%^IxkhB6+yA2?s0jOKYp)Ls(d1Z#!M`ibJ%b6`J=*=86u>{F!wjyFH^rmzz_AI0|Nt zPp1<#PbN`6TmWCd(lYfa#slOSE91$Z%hdNMY0M~Cmzq6OrdB}jAN3^`0JaU6&d)Wc z&Qkr3D?(YB)euYo z?ysO3e(?gxb!(QXK8*QQo!kcl)%_JNE&9MffH@5X9Vg3F0N8%&tFr}Qe7e8FKV=#u z21#FqtUGqMOpa+u)-@PdrtcWC8KQSoVQ#kebIVi&O1IT!DMP&vW*M?U@j({6?LtGV zOm%>kY~#q;;V+cQ-X>aZRWJf0E42ukz1E|EwRJsPa#xTh2{X`A?%;>{Rf;DOM_2;FKdj;DEEb2=|`}XAN$sOJJT*ilH) z7muXqi$_xQg`_9|%6u;z0nqz@x(jOm4?QBb(4qDJx`>M@zwaW$`IGKsx;d-Ss;KvI z8&qAK=oWMa@xYydt>3aU z?Gd0dAayz-<3{e!3!qX#RM{n_p)!Ck&z4=*-8tynq=T%~kZTHjKkM(`SEJ%5ua|A1 z;uiwhFt$jI1`F!yHhuI3KrKAvs)PtJ;gvF)z`rbz5Xn&R{tDT1Et?@3sE1DRghowY zDt(eJX^luip8nDr9w272EIBjSTBj^a@1IB=qEoZ!Lt6$^^F!(kom%ur*kYZ^vVm0F zBjM~i1;>+N8i$p2g7&}G6zw}blHRVOF+#VomeB%*1qgt&^XO2>LF)9OE}O6Ixi#+h zP^Uk1>X1jML%nq36X_gvsmJN!G7jFqJ}oABnXFBg>y@Wvl$0~)0%a{*gPoRrgl}0( zbVTmTBk%gMBBAoMgz1NB3ZWf;DQirjM|7c$**Ca^Hb&oo$|FJ>qejZa140`=QX?Dp zazy~4jfc2}cKV81@a zw94wsmF3^sA*Z)b13*i^_1!3lz6oFbI~MtL(YA=G$vx5E+JWbMeXH*P2267W9DpM9 z%mjWbAP4I?H&lNskifMha2f&^ZMFKwFfi9r8EcFL_UAsD)wdHo#b9Ya*XrBZ-BCCA z&gvT{6o2l$S$(@8*EP#ioIhB7`^uET>dVbbqzrK!Zf^DEQpE2qU2)WTG!C(_X%x*$ zv-;M9t@V3L_KF=-tiBCVeK5pwPztfN+1eSTwLnh*^9n*^rZXUO1&xZiA*gVf@^|>QC7a}&9)#qdB z6aXOL3-lti`=G;tOIDwAjHr(*qH~^PPfWA=oFa)G4b?mKf0I2ijUr}(?+E$ITzp6V zFW*ezOWJMq*-JjI&{N*t|I3%OoAQ!2SbcVo@4Aa`hbLQR_OtqMV)zHgPm0(eBrIcE zeO{F0`sa0mdy}|DSc%nVB|~uH%MdF)!jcNCK0MR%M}mvA(YCx(iX7TwVNw z!v|FzU*XF(GGy z!G&rcq9db@81&qKR-ft&>Z<=f)g>rNCmvXRG?KWNOvN-0>D=2^0~gT#EYwMcKOd4V zS`ELDw8lmHMJJ&<3JJ3sJ_PA6P1a!nr0Wdjz8wIPC5y7_mjg5hu!Q2ZIk?$*T0*Cb zyDQzu`132QhL0q#T`k+dL(gp4Ow@6!fu|k*YU9%3UD3hK`Tj%BLWn6O=O7nnp(pdl z-nJU@NXm4P@yx5^2RzfS8U^@poDqcy63(8a@6 zXVX^yO4Fva{r9Y@iqhV51*!5VRM^0(z9Wg&6v{(=_mC89ReVbO?*JF+j)(L_j8(P( z{$}^eQ1AWUWIPcg$?&zRvlPKy9`c=iMAz3I(e?Zz-H^HfX1zz=JJqU=G5k?i_+yWR zKmJJg6OV>x7pRA~EU~J64A0Jt@$Y*i`~eA1H7&(f+3@=NHy7JZPf9J>Rz)l8AFj+$ z0_`k)Wy=w7RV5_7>mrp%CWKDML*<}wiLlB)HzOZF-_!;uAV80ad22?tP@-KxDBTHA z5hqu(D$YrzGak~zs-AU&!6+0?Z)A?r_BQ~o3~`RqXO>m15{f@pR;+5BJ5Nggvnsxp zBmF#jbG6}N%2TW|ll;fk8K?!G?ufE{%~q?rT+PWJ__er9Hwn>mgewtD=qi?*bQFvPU7mV^%qH^6$$oQi70> z^g%&Z{hPGRhk_`p{z+Qdig@;pRk15VebD|}jez8>9!d`Y@>XXT!GINcR#g)-64zp) zRX;sS%7V4lhjT&nBq|JHCCpgVoN#wn-6_YaB7}m8p;d`d!b!=0!y)7O+g8=eGr#&T z5neDIR1dw|AXkpdi=!v{9C|HsdBy8quD(VM(4nm6_GoSW59zx!0v+156;?J_N$bCI znALg*IqN#iYQ4h=6)jR&Nq5BNL*%e#_`&x7{-w!`n~pzHM_TR34(?Q7{!F{((%a23 ze}B=6)}*vafwS4e>}x9SWOO|Hx`Jf|LZRkL^DPevkXm>dvSpDJm9WC?MjgE3G8-s* z3`8I8Z{0-E3w6;riNa_odQ&Hg*1&Tj)@mXTSA+dlT1}|MV#`C*Tq!p$%UUf`m!L|I zMC&{$4ep$5?`Tb7HjP2}FZJ*#94IUS`Dl6iv1!JUyx2O9aUlC3Yg`iv0{?<3R;=eM zIXPTwh;=x#Rkma%cd*LdTRDi+5i5wj7%Q{zOoFwyR1UZg&#~$Y!?K`jjd%N_(mW>o z)bjL8*0wA_3VQ(@s9t>NQ!IW|!nROH-z->eZQD-x5NQ7qYXb(VLZI^qgzRV_1&3IV z-L*ECn7F3j$Xfg&(qN!Y+ou)3h$3*??aJ_^9BeM$FF9sL)V$MzN^<6z;!7wbd?gew zecdX)L=`LnIk}lyF*g~w)TRvW19&dI_$8@38f#L=l;T(MhhwL1(jx}uS&Sb{dZ@rn zp=L{qmnh_I>=(s2CZ`Ms5ba~Vit|J8w|0%<0?K)1UolTaD9+-aI$O*S7pW_Za;*RVsc!A=YPjN@-EZ`pWOL526@aNjhm7&G4A~qyob|&(rbA1K| zp>0@kcl3~={HXfHz1>Z#@teiH#YzEBK~!-c@z?bmPIsj=xhY@t!vUaYA_M=et|{MI zzR1aHxP?eW# zDJh@3{@JtP5gbP0vN}3vMPv}q=3Zz6AsKBVgLr+6A1Twy1^^(ZIUPe~Fuv0RR~#2b z27VTZto2f@1t1DijL?ch1M@ec+BV)LKrO54C;kH$7A$}6_PO}t{mdhnw~ z@VL7OT0?9Ll*@DXBLj!AI-yZ%WAT49#2KH`^Y;G{_8#C_71`tez3=;`zo8_&m(UZE zKqw)h1VRrTA#{*l6G~_ap`#)yN{574Ku{4-gR+VOifu&&MMavfi)#U_xNAYyuDkp` zXJ+op#r^)D|9zfG=FFTq=ggTiXX?H0lX;dMj*-U`Op0e|Vn^{~1GZB{LIGj20E>u} z5=sQPjmS#EtvxLNf&@dOCx^pgnD&#z)DxW)JR9K$B^mH8LWKaCM0OK)Vi6u;@+}{x zd?qP=iU@GR72qJ4`&|K!0KDP~a2DXbp&kJykzfTr@iM(g$`>xvp8WlVYUL?bFDBt z!o`WH2Vt18+A;jXpRxyg52YS)g*gQ9v@6V;0LQ$->Rrk-mw^FH{0cZH#y>@Tiu znj_3ZtO#FHJhz4In18wg(1`YrMgSih&c1*Vz?THzcm+5f7J!&~yawrO4t`T3fUhG! zd%DNfrg^G{5+ETdeqoGZ?i&Qw0GIg$fN?H!x`waB!~Cgam$}5$a}D!5z+dSyr)&5s zz{z7L>+YoZ#5Cf@i$6u0JibEl5mi56T_tWh5g$?Y1Ck#jJd&fFbqz^75BwJ4RpYWl z{Ym^h>(!!ITmiz4T!^?>Z$Cs^dg%*^(4rTb#&c5}FZG z8pr`bQhc2nI0!t1U&6!&k|c*~3U4Jz%Ni_|q@YRqkfe8^H~1M6af*T$U=k3p2lD5y z7T+3ZAp5*Y@omjKAkc!0v>sO*<-mH^Wf9X4CfeC;puh<5hnWTn6aq{!4HUqC1r~T3 z=)e}Yfh49LuXzS;2mdzHK!G~}HiLt|s`^jeU!NMsXAZ2u=%n}*>@(OEK2`r9;UU6< z0M$@L;3dNI-u}Ly(N33_n0k<(0|h&HTqG@`z~_Wd1rU*cAY2vzmm2}Yh=8XK`yI=S`%6t0puq%Bl27Ut_K+I z6(Bb(05SDkBfwPf3tRyf0F++iaQ5egixX2%jimTY5#}GlQiPFu-{J~G8$^`3!aNMH z+bhiAFg0T8xki|S;4_k_0Vv`Kz$@1ZGu(B>`-hw2b(7*-AWW6%t}yRV>a;7&CjjSN zVSWPm!7B{LXPSnXdV-#DA(DYQGTI0eSqp$AoVRIKNRhzur1&fm;Gz*AlCd+gnGqne z6F>(eKqOr#GT$pecr4iee~kr^S0m%br1)$Es5;&i;07?4x&kns zL^7TzbXWwW5H+sr}{}0RuMJhntpQNNLZL7rZ~cU zBf@NQg~3XqTq}vfN}^mViNZ>vwtIznH!KV>^?3V96c!WZT1*rc6NSZi`pJRwVy6E0 zlY-wOK!TbJh&HgADA#JDu$m~>YND{3sGmG$df<{U^?&6tQ~BA}=vbqH=sEy&P%qOz z6w_amg5L?#+fA*bv%t(WO%UA$pp$8W=%E0EJ+(fFEoy_2n0mafDta3Dg{}Y#0p?#L zz`?pwBoLDnyo3OW7`3v2=rv%jas}7|aJMVKUVulv0wjk8Af}#c1b80&XI%l_1UPoB z0Bxj5pjJ}wdl5kKMD5Yc>7tp_DI<)&2=Ij~z#jm=c?Dp+Fd87H96TbEh+e$JE@CpNr@~YNNgTJ7grGaRqQqW>TH-2G4)&{$Yk&*x`LDd%mqgr z{~7)yca%TJ^4P{*ofP~ajVyN(o~=lkZ2>3Wc=ZpMTRZu#SN~9;Az`onQ9j`HVXywN znRpAg@_%`RS&XSo;Tv1l|iTGvvn;0!g@NZ6-|YAd$wjT`l<67RbSYQYTrz_NdUS? z>_)?`4nQ6{5+3}5t*;q=)i{YF)w+NE&D3X@SmhTSrpe5Xl%OwswlN;37XwEPWj zwFdEti^DZ@BG7?uO8ND8{hSwF)k?^ayAd^WaPVw9Td|BVvCp@%{PRCIs_knG%4$hW zJ%O6-;w(EU8%@k-F&g^`;o~SA1*(pNQ=H$c%a(;w$iJs1M;&(3RHMtd8sH@uUB;yX zq*z|AOTt`|>NHeBP{P$t{uIuc-nB5=rvT^1%l%n;zW>+Ga2g#ZpcZU&(c z0`vb)1f;l)u1;GX)~%WJUr}`jE6&j57t|jgsgtbUY`ib5$<$EhL3XW<(J1;@&1_Ml zT<)1TtY&s2+4hu8<(@NYCb)>};tQ;r3HbBW>hW{9>s2!$MT(HUdrHk32~46F5HG&3 zW{9|TrTS+!gwt!*lV2L-+>sq&KBe_x`fbMWZXZk%4+qY)X5D%j1y=fPP?t+IagP!1 zOOeglbl$;bZx;9~!k0}fuEM6@QCmvTr(+0F#ihlIt@KsZAQt|D@`o#m3yNoxDig)4 zsVmvwt~*OB2~H6J z*BM+uC>7kpl7ctX*--#z0oD=LEH|uoi^(ssY`e&}kiRqBFYA7|#kQyWmxBQB^)nUbL>_D%E-7K1zR*&QmuA=Ji6bsE5tO2M99xt;do`zV;T6pR()W zPUG_kU0`0X2N66#`~U$YGJ!De3BBiOtvceHkJ@IsYTKHJCc{9sSD^=7g_^Fg3g2F9 zo#_fySv=%0+k32OdMRhEcHO@5%H~QNi_KxpD^8{_z+=>%W-*JC?oxMJ8`q)8g}R?>LSvf?A$nEwtn{%tLPFv>>0_y=ibofxkIQo7i_*t+ zH1S)uq>p#gx0R)j?_kp7d#6uO=?Diie!b1E=XZsx=SP~*$MWY>`E&8AaGxXGv9sxY zMYww7v~Yc!h;YQ|J$+jl2JL#J_fX_;r?Rx`ZR&74< z^c{)PaV7Dugy%>+GsUUGkLXx(k`sTC@EM88kCG@S5+urxti}I9V)~ZUx{*`$ghsKdltX-zHbHw*HOoKcWsmtT z&QO!Ob|Fov&tMDJ*{r5hr7eA@{u`VVv`dv4=c1bp!Vd}|)2T9E5dL)^jk;*PV6FB-}5+U?Q&*m|NQI*iWePHQ^$it=&v!RTybip8zzU z{Log_Gy!fU(vQ$P6=0LU{H!IZc$}(J36llbLqyP)3&32r>H~yr0=!D(FyW8@SV7gV z2%pxpeBE8G98ePR0U$@UCWI6L+7TH?=+_otBvpOivXh6W z0*v#ON9!TRo*cALG#NF#%ARBfOM7y*<>zAtcCt);D23bb@q^_?p2_)A*jsRgxa$>` zWeLxo@cfms#UjmhNWv7W+IE#yMi*ziPF^cncai)oVZX}SMOIz19+Ip|k}nayRaxl0 zc?+@*)hDai8pGeGbz@F>!O~BF>~m6*C0=#(Qa#%05A>ZuJMW?i$`53-uTVXe_XnwC zyDuT%CB7=wkUCSE0MA~%JE04Wnd_tWB+3uJSI2Kxzg_@LxH`>O{l1$48p|JE%CqMN zG`GnYrMa3zkWq@P09ampz%7dIFAbVY-zJ!3_pyujNwR zYjEm1!M|eLDIdD6aoGA(YizMFcwdilO`_m4S=TpT;sn2mwd{uMdHH&v?CNh3UKd~= z5vlX{D5uAZ%x~DHPKco;d%Q`xJ1Ns%a!!(pkukMFvpqi2#0!&+R2aOk$0uYL5GJyR zrSqq#4h;#J`MQo{Y1q!Dq>1cgZ}VpF3zyEb{C|0m>_cLP=$YF_eZrZ;ExT|hnJ39) zLZ|1*_LMD_UHY71U(m+T|J_UfluM#8ptDnJd$N}$hqH4{c6(3u(qF>a!?kp&*OP6e zYw7lp!WkkR8FE%;MC<#5&@-YHo;Sqr_7GpTB24@b%ioe3ramsjmxdL}&r0j`*Z!1V zV$whUQ~Gwp=09FGJ6twX_gTJoCgKM}*A|TqJw}?KuNA z?a^Bl?Qa~vxPtT>5o^v^%SsFp5(St+B#qF}wBYF7mY>;*ojy)$*vWQ zJ}f9IoA=L)e9>3Px7%vRQ~VycwyOA8HrwfEsdupqGR5@7#2kXuO|IZ24j^2|RJa7U zmRVm?>7R*ov&6|p`J-xB{=i#8A2mwfx94Q&I*oc)Tv29A#~)9f8p#gB93jqxJh4Oo z{9GbBOI+)cI%@<@yuoUfc7xThO`2bk@_km;P`aP4;9$jN_K!w$czn1FcKlU@%QHe4 zmy?M5NIWJ0&NK0Sf^4GA!FeX4`@}C?HICD2Y$UzKcSBf>cHgiTSq{v3P%GJTEjRyb zZP<-IAj9=6)6R;Fz1zli6 zCKG90V^;qqT%WP*`OP(*0jphmCZ?Z&Q#Copqcz~Mi3F!jNByuldvj7W; zyiGXj3N`@yUUdeG@#pnQ%eU1T#hmFwYlleGw2Hw$W) z36~&WwvzBW9L)s_>z3fzN zhk}~yhs~^Yu&76lkYiIb3tq>OWc`HfrOfpI#X)qH$;jEGW(qQ8xd?L zX_L^4B7#q_CS~$@&K6axc95!_hUHA! zx7NQ2{}P}#7o9+;T}OZ+L^c!Figt#c*K9{@7iZog#i?4zZa}j&AP)T&B<72?4+!u( zk*^6K0}PAgB3dq?l>jWH>dYpvjbsl?CQ?BVy$#DG@&@5`6f$f8lB0g8lh}1gY^4mS>3T|13w!mAUG!vA(a57a;$=xNnXE^yYlRWyGu9Z3F zfOL@-B~I1(*imMGQQ4zt=p^AS0dS&qMWLSyfTO9GN~mLWFy^qd~$0^%9^H5nNZj zc`~V%)Ln%8WJZ2H<>+Ubi0|vc?4+JZeOS%N%}i@THN!L@DEQTS*nPc!D#gr8(TW+b zraCS5I8}EdK#L@N$Gp~T_{0$+q#L=26Y_;vi^B%7n~O*Xte@wOvVBV|`{(||=u3Nr3{}O|wX1{8x zJt?vKZ_zSkQ_---OMkgmrXvQ&YX$Sejn6!LJlC2~HP_Y$U}sZaHnu*XkO^T2 z0}RQKvl(OfLm3%lJZw2fSPeq$ZU!4zDq}Sn5ewO#Y#7eMLR8knWN|dU&}x{v!sjv` z-rTas?lDw`Gi8=#bIZSj>ehC?OwFmSk!J)x>Fq`?aHnP8{|^I~T}#u(w2b89tWLN0ia(oF{uh*aXM*)N;0tBm2*FvaYSuxRshz zYg8GQZ6UH@CpWtl7{?);@M}HDi*(k_9?t?@W#8+~zUa}UcpNlIWy6!eh39R1nk4x) z=3h0~2`mrhpyt+3N{4Yz2ki+Tn&dY`Y0JWjpU5&$IJb%Pa9%V+kYrUg!*>&Zr!ylL zUeaL;aC@%U6LI3w^lkKL=Rf5UcYM8PXG3iv#BsmAm>CKey#TB6B zP<}ci&`pG;BtBY)M21P(>aM?qaHrYTPGvxoUG4f$5}r6>3lT$_6|j1eohs?oNN>X6 zk;CM(J_Blf*)Ygq=eGXmgmY%xw-yzOC!#L?UG_}Z|5(WAzvNVrHIn>h6G}|bTk7(8 ztyKL5X{Sn3qGVfn{IYzR6aQln$Q<2vzC>J}ccqeT<%g7~?Es~{0G8Dtn&2aG-5@9a zrxX%zC7~IiF^LBnIPvOpKj%n50}XmKP`mN*zcQ_V=>`&J6J|6}yYlhBX(23*kgWzQ zYJ(Bw#Q$E8GmKLtY$I$%X4&L#%UWS{nRXFY7iKiG{n|xXT~=r(+IA?4&|`x>r@OlA zVRhM|SAR44V4T@KI6p~t53XX$g@M7N+tcuPI5 z^Z|)okxu**vB)t`Nc5ZI#Fr@&Ey;`S?8I-@ifhP+MZR%@S5)f>i;rN-;Y;ue&RGE* zx&*KEG5|*?@$%M4XrB5iffFw;rK^v25+z-|$;^*@D{LBs|%A22@94ifY>c8CsXAe+iEibGNi_e$!$v2>bsy$aHUd;b(CpU z{a=H#M`Mj|IKis5M1DP6?Ln88$Db=bq~q3{k|HV{tlCKcjP`Ltr8e=Pd?HKSK!cNn zw=wa9uQ@^a;=W3}K;lOY3Q87ITz0wTs&<2)2|seBn zc<2pk=LBoeA%t`C3BoHR4qF&VbCojkgF_5zooK5?k4GK7h3nr;%19vT9wdOk#J+(Hk1>Ae3N}Mc+AbgUu+A%GO+JDTzlPbmE4%iN{HNn#9-EIB`Sir%!IQ zth7dihT3}Vf&XyjzNwOx;#hN-)x3s956)=n#7!gC=?KH=*tQhwM(BuzkL^LEh%jD& z!9*S;$oc2k@kCxBykIP{xtWD^+UHTytV!5~cL*evv|Z$l5LG zq`5XRt4vjAxH+%Mt){ATn-lkdROc;fFdPjw?o1G?7(SN>KCp2=0d62Nhfu`Q#ocI! zf{~4weu7T)xmdG&$sG=AnrLvezT0MJ?Nf$$mlMakzXXo);R;MCk6O>1U6LpUhFV??m{jH3b^B65N75tcjpJwtnx(I=LhCp)R5 zQAEbCgz!;FHcQg^cNtR|7-2^@Gr}Kpuj^+YGu0U9#4SXa zZmPvGuqHUqCbBy_x*w4Rgc1Qp5?J&E8YTNPw^3w$G(&CnNWDirrP;Pj zQ}+Ce6So9b-8WG0QAa3GOE-BQ>Z48*`Gg=Fx1&Dh<7FtKX$=AXMI?uil?w2SeZ9yM z0X%{ry>v9*sOdbyECHA~HQh`ogL%=XhB-SHkWO-6VK7~ zErPg%nKVT+OueaiyO}ujX15V;kjl7cvaNcG=9*+UQN!6I@16@iIfre=j%c%g2_Pl@ zAp8aiIgjP)hSfaQ?T;<-!?K;yeTdQ&%#E41N+aWtY2H@K=E0JMlb$j}EV34}n{BXr ztX5=1$xC!STa}5Do8&riH;9r?A%&TRi6h*CU7~2L6{wdqPWqL3F@O>XkWKNQ}HqlW4;!0Lt9z z#I1xxulbM|c^62F3G*p6awic*n z&k#;fsJIppk?Jb}m@2ejNNnLiq1fEgY4d}Hr8ha^_;`KL?zu`R&}&;T%5sFliAiy5 zvfm|32BqR$l5wal`lzhlWPJ(W2+8VCGHuvm0w*iQqoia3Ce9f{PdSe(E+h-%Xi;Hw z&4S(>jNgc2-NcJ-Vl)kfPbt1zS2X8NT)KMIo0xv09bY251HI&ZwBkxA|CR6p+wFGo ze2v-`Rj7yUcDr~9*$l`n=!I@`e6Y$yqI~2yhUf86jPOSBMNE^cMhjS+fb#QUN~X1ef7t_*YPFA-Pb?T0>Z6 zx?@}R(pIg3UpymAQ7>Btn4*bS_jcN<$rbsnMC8RXGU-LTci+3+a6@G1|4pRbonqn; zQ3pSYh_P>KZ2Cky`q-QYjgs1(MT*;nm%3`kR+nm+VLxkC`hIv zebA*%Og}Z8xaWoTQ_vm;Ik~2poeG6vLaq&=m7;K;q0l@`p}Cq^lG6cS>C+Z}AMFZ)Hy>$V7I?d?NVW>^lTlLF8eA z3^YSF5P6euM1XsVd`pnqD?>nOS%na!gAU<$J?tTeB^f{2vOYnk14I5nqy?clz2T`k zT9}UcQi-M`omhUQ(7vvFH?m|Pe<}yWJVGZ)=?=lCZkIo0@@G5Lp4vm^7=jF_Pd!cK zCc;tyUL~@faIXNTh)C{U0X`yvR$G4B1K?6vf{1WTgkhzS=v%?-4EBCJXsc*KB!%}^ zC4vKPMWdQd)uB-LhwG;NsXrL=?x6aEbSO2|)1#n2wi+x@!Jw_0ZC;6Lk76h8C)%T5 zT^J8~3_iUGU12=v5D|KMt7!rpC4$Yjl4}lwaK)`~3ay?K;2aUUeJiocL0?;z+~RF5 zk`IPqYn({y6l3$9lV$2LAu{$C=s>YjoaP#2OM$gkIA6^;Ce``f|yT#w7egka-E09jrFh32_2+Bhr?TZPeNs zwaUz}-yu}zj+V3cxmxecTuo(r4?$*6aT>kIdNY|siRVg)j*r2 z1Q~e;uP1UJ;T{3D5;;teCLByJYC{vY`Pej6SDGWdg6zt`as6_!CbywlYldBqxgrzO z&w3~BUog)fD9kaW9Q2#hMpz6bLZ8d&DZoS`OptSC8_nkhweIp|6mT^^XN#-5yu3f@ zZq9ja$+ff~-RK5%=1M2-cbE@&4(5ZfyBvnM9I5P}Tq4H_vIHB1SZ%u#x(I++Z5I

acLrawDzd?(5t&{GgmZoAJ2 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

-B?uY*@EJ2K$%jXAG#7WzK) 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%0AkMus!1o9G}+34V*l~@k3qQ870oVn1kO- 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"gOIV+&v%L?|f|vv*_PB zfdbCopo>3nGS5-wV)4P8+`;hKX(yOuA$roB{(+J7MVyt+M$4e>*FTCGOyPf1jt(VhiaJuOA?#&-6MZ-1JW zb6V0}X#h@jR|1GrLcvc<2feXUwyFSI47)i=Nr27w;iY19i2bibpDm5^G6%!kH4+y{7wG6J(*;SY*&wRIy#?m z-|COQwP=I;)+G=^^hWos#`#w|8t0ET&iPh+|M55ZbN4NGU*B4Eo2z-esTYm&uXHrd zA8njdb9|qg-MOpTom1dok+Bl~P@qL=$&RrASd2|@HKK8MWn?tRSeWL07(@p1}Z#w^QG|Ay!`(TZ43uAX=8Y+NgH>yYU3mS zU$pU2&Dt2&Oq>DtUzARC;?rjwoh)vQlWF584w((w_yWwg3tqv7OkNvbfZn;_-Nzu) zI+q|6q@XW&KgR(n=qKXZkTks?O>`b?3i`)9|1`%(q>~Yk7oZO>_@yp>8zo+{gkur% zslCg7&lieJb%}{qr8It=}!uJPET(z z1?3F6M0v(N)h1JI|Dc-oM~RD0<5;1K2RWhD7p>HbkLVv$XisnpHFS}F0;cmx{qu8E zig^Z%?H<|(cz02W0>d0by10symvL;<#p^jqaU^v?7cSbxk=Mm7octL_O&9la0w%cV zc3ps*FG6=+^f^=OpK+b5WPR(`@zDv|vFHodIrnSkiOSEL9#{3a&6)|P^ z&|UO%j%ReyjTwqgCTW!mRMW-hau5`Y76Ftlp5VAd7bBefImf&%n68T-;Mk`NfYrs{ z;&@y-Yth$SGpoOI?P!ZspsWvNnP}CqW7NC1)yPQ6~~#nV77)}f}uYlQ7Kxyfe&rg z?Ty?5I1CA8Ev9=zpWyhoE|Q%5J;!Ht!Tbz;ljC0)!^P_K;@5KZ0}iR=#c$!{zj6Fh zkFkmg^ej}^_r8$AzW4t=g?*<}KTQhz_fF6J?^oE1q-#)hO$s~jz7;EAz(M2ue@S6~ z#?>4vU}|oh|1T-*uen}$g?;D?D{PNOVg*bS8t4DN751Tg{{OVXJ~1fl=v1e$k7V!Y zMBn9(!|$j(+5ySGi{nd>|KQcIMJRX_!X(juzAJdwBiFugK|pb0l}r3i%ntq?y?TKf zVd=yw=bcUL`|_`WLN8E|O#>4H|Li_JclG`kw-!ts9xZ>-;fW&-Yd`e(Lr*=l3-*l? zr$ySzitPTet^_CTJzSrMlI&nn<^n#_lvUIF#kor)ReO+xY`sjL!by$T< zU(%_Ep?+VMnl~l>Eb$s^&EkQ^OL!$3HAc}v{?gZRFjX$$d;W5%t0Rh*`TN$6C_03< zRLox<>RV}Vsg;Kv7A@^rqDB!obR%-O3>l@1H&x%&m1sY7=~7pbhV4iyitANHM=ee0 z{?TDLUvy%kuWNhaW9vJ2yy&u}mv>&eRF99@6sfCGbnLlQ=$e1}v3hb`^AP!AJHEA! zrLK+>RC26q;MfzGsuTTd);~?tNgBZ@I@u3{b<|ha9ajfUEN(Qa$Cq_=xEXtKbNj}+ zx~=u6*zE9;75*u2xYnQQo8dl3iPM@V&wu~)<{9+&Fbx~y=oYv9joz2#`2*KtW-JneK$h5Mi9 zQ@X#Z`D1Rd20D$=RyPxp@8FuH(8i7z>BY72*ZG1Q%fa{?Mmg4*^P8u`)qg?jo37n2 zX&ojJ#7jM;+SG_rFKlkBd+nmQE}K#Jfs5mt*0gQ{6*PEVb4$j$L`mz8xynd*NF2|; zv&}qq$kJVWayaf%gYqJNuajYDu3+@&7LMN#H^5rO9J(fKT$<2ZYR#s&h_x|H^O$df zQM7Bqe`#*jAd>JBO@iu)qRnH`)rl@iu`SIns?^q{2{%#O;xGBeG&g*l*Ba7**IuT1 z5RXRD_PFms5JZuF_#zgTQG{!xA#5~fJ6flx`BOUwqK#cn4yoj&%_W=5UFIplrrj~j z<#8AMU^SP&A`FLy_2mb<_H~}$gDiZ-xluFIFbhNon#rKKo2H2X{6EcfK)x z{LW5uFB~iEq6ROR$GTKy;Y6s~1i8NIq-GQqn`ba1=h1`)X6&wBygLmp%U)p=Nv9$GVpGbR4pDnP%+2>dh#6&B4aK}|DA~! zsXt9<;|9LheyHaDT`kRX<94I^zr>gCS)#VRJ7Hwr^XCc89L9vU-DAJLx zjmdru9kABj>Kf}(2~F_({DVURn7miy91DRcx-TJYsN!np0r%aWV;r$_yIbGAKfcX~ zpJc`D{`=`}EIxY{oep+UEgwjTgI=qNf55+al;#R7dV+}jgBmrbBYIGG5g}xe+e?ov z9V&?a;kcJgWb&YA1nase*fsbe=*g&qS@xp%BYZNb5l5*X4RE{zo)a_%AEyCJd#>)dpl7vlwmSMZzAD{;D^BQnO%#11aa5$4kD^b8 zDxfzb)4y#Qu1=M51NKM@t?J!RHK>nPn#7EvPlub#k5P34qeRhXU{HiEbN+Wm%ngaI zmVVZKq339I`jFF)H4*u_&>naD_|uQQCUI=Dc>R3%pbfaSLQL=lUzsM=I3v6hMSt%{ zoOcUjnT{Eb7cRbnVr*r`>NlDqqyl>ECK;jA-@S z+}YTr0dUm)uXgR;fCgcpe`~5(ANo$1XOsMaOTXKgTpHwvF^ayo;4T!Q&VRpg+vdD6 z<4-m!w`x@S2mDmEN<`5Q-BXD~dv5`OJ=J)*g_K@xa^z|C-M>oD815e#b4AgQ#f(i# z@h4%FY*h5Kch59xwr25R2mOB3Wg)2@M^u# z6fAE{!Ql(1;E07&pgD;pi>Bbn)+soubqbDlQ}CkyYzmHf9)f?~X$f>0MaKu?I^p@I zip;MtRnO<_{NH>Jis0{@2+u9@MgRC@T|4EUZaqihng`tVA#SBd;+?*I(PsDlJAduV z`}W>2?yeI@y65kj@z4GD-&Jwf2Vd)+-yYug&+qWXBmez7miQZPqrb!*gZ}!QP_XHL z&0qTmzw2Ic^*3cwHWiHPp!|c!HJ5KBhCR2q(MS8o^&24kx%wNS>lZ5j8NVsBD}RUY zf7|94EdLkH_22b~E7#_3w!UQj{mgyMvwLMRo3EwPh1|-iN;NlK>s~qCy>c7>O_huJ z`pT(ls+e0@DU&Umt8%kcURlXxR`T=LvzhwJYOX$8EpdCQn#i@5&bkXaU0z_x&89w z*w(ShsKz&{#dI`9o=h@RuND~Z;&`>3u4xR^=V=?VO1TzgtNA%5h##Y$uFpg}r&HUv zZPAOB%3eCeR3|g#SrIB9BY&!vNilfk+7utKGf+RHpw>(S)+mgIc7x(kwytkoKaBSzbY3^PwnxMcXMg($bDUY9HjBqHAM)$OTe>rt+>dp0+l z6GcR#{0LdbNJO>S^l+*Y(azy=(MWr~ny*8~5@LHRxu{;Nm1zaz&SC||sGix&RA%xp zxP331n@Y_V>PbePE#yaeA;fGf3p8M< zLP34X)oBOCqH4WXo|=k=hm%{zCMHHlk`trbca9B@CP%k#-?lwsFiXsKlpYfUOtE+Z zCaRY+rV?N+{Nvs~LO_Pfdlt6d&x3N=&8` zZh7@4Y4gCKlrw5D533NnB)upo=KcPtI-TAqiGlR1_->^eVMBTjgsut$r~|RGKU1k|>l6D^rr?3M?jSmx3x6a#5yS&5806 z1nJr7WM#IVF*-H@>*U3h2C-K>A~C}@c5tCWv0r|Is$#RTB{rHXLGeoeX^AL@XZr_sJuz6@> za%|+X(E81zs?-GRR4QL!c%w`q#Ykq;3_nlwH6~Qb((z|%j&d|0;)nRw3~1O= zh5R(ayjYn*`9$f89$r;0<)&aA&*87Ca2nK=%?E8uX0p*WEOyAE6O381`Kr2SQW&ffZ5iIQrI?wTmM(#8jHRdY@T_F( zg6Yp?S7kI}ULbffspj<27V3?vh!@%^NoX{e*`15FRO%DM6JulBw&xffs6rxoXO2&n zOIuQ};y3Z8t0~4MQ!^D}!VtC>IzWy}Z#s?8B85}xztk-XBM&JcM5|~a>%P}AnaaSb zwbGxnrM&6SnN)4Yus}XDbAGZ=L2FcsnPd&U=QI`=1)lBe?dx~nUN5~+&DLuf5LAU( zqYR9K;y39~^_ndz*-(_L`DrJt#QuhKHjNKOwQ1y?a6)UnB1CG;Rjad*fn%uZ zs(!EIA)hRa4*MV}1GlZY?6Qano2b*wVpJ|<;cAwx?LxUrKCtEuxx9Obt5e;HE};&&VX1V_C;@QS;>J#ALJw zBVq<%QiXB^6X|sjqiWKN7vha0~rQH_*9h z1`PR7k#P{~DPiP*duShU7DXeaYMM2g&zFV}2h*^+nKjc@T489)xP2VCKRJV#o1U30 zgRp^Qm`pa=)#OaMyvu2Juh?lKFtj+Agb*rBy;at?D$0R$BQXYi3Q_0ggp3&~Ahv-l z05zbUM?!kwXn~BsH24drlP60{$~)*%TEAaNtYn0lFyNZ>p;XndZvT zI1))3d;4su#3#1_s3e}8I5Z^<^YU>>9@9l5#c+BYQJjW={3MwAC_9YSq5}(MPv~l) zR?$Mqz%0x?VDRo)%;N~?W%DhSXJg{<8McZu#tds1)Hdah1TrO`M7##`M*fB*TC%V= znHz)S~IRBzw?L-q+^ch;Dc(~e5#s_HnFgH z%Ty}1Mol$OPerEM8w#RY%gTyvv_nWDmlcOL0jJ)+l$*NUGxVPNvB#tgN+59c-;0MT zNQ4GKT%r~e5JFIxQaLyT2q?%glhsqS060}diRmOX8P$w0q>GTK=`2{D(VE3!z?V=f zH8YK{KTAjxgz?DGcH6!L&LKH=2sEZ;>)hW4VS!E!lG0a6+92wg*K zX-scS@mVLJyi|3AB(F_U&=R7gRi+sX2vyY;W=QTCvuDlHqlgh2WpmyVb8xLxu46Jr z+b4&GvM}OMesYh1(WphfkW`w^n_0)~SEyAg7#WjKm3QMFKvrjYj4+XP=~y(&7|{$M zQMoSr7k7p~OM5_LbnZmeOewnuI?v2Va}2LSpwrzcW_kv`mivMZi13k+DU?@I=K@G3 zqOjMhQbt%oAopf#$+;d(xEY5A1IZ(QiKPZOHA-d)e6olwovoX_5un1%Jbmkna%Rg) zF3eV|Vij{qIq+g+3y_e7W0T^0DVE8`c7aCCucL80WoLtQ*~&&A+Pm5LK%n^ z315|~^xq3H%~mvBD5s+m{wpR8fuY%RUY#JPka=@CIW0=rtD-p(Jy5x3v?j{!TP4s3 z1(`3?tRI9;%so+dkLbYJ)8J7k*Z~Q;iHfPq2<6im4HxhPd8h_~_@<=^98cPmi1s5B zR83|Um?4#v_(x5sF<2}(6_Ko^smK{Ip5w1VJ;O44vcbj{Mv)KNVv*M`&d#tkuU z!5_=;i4s*nYBgzkwvy}9kQ#>3Fv2&Gfg5;~PYJp)eb~2ZU^P^i$^zMvncYn{`$g>O z*}^V4w@o5|LIOMV4S<{>CDG;-Mmi=T{zK>0!eFUKd8Sl!=Ha^_a2|ABL8qHIkqnPe z#DG&X-;IwXG{?5?9NIjFb7XS+=+G8yP%klv`5 zx#zY!S-Tx-mKrjhSj?qr%(9e|n6FSq`|p~D2Yu6|^`WpzZ64}1Us_G36>d7`-bJKj zt(oSS_MUn?JaUSfD?E+)wa}#$3&mnS*|&P_RNp`#GHle8NYKEasF1oFo?nfy2QW7J zcqz;s1gLd`P)J?1H|Z_U+TIdMgN|$7(In|I&Tb@H?6D9i7ia4OwV5H4PjU)lKeTFH zo*S5q8@YOL6^)!KHc*E=Y;x&H6i5#3b+F1cPn-rR@NKyugGDbkZW84-h?2F{viDU4 zVh~VQopPM@>YqOSgF`J>Sp~=}0EF=RA+;o~&~M-$XGT+jv~Y4d!uU%LZy8B$h5>O| zB*(Tz>oGSs5=O}Z^M}pq9$vpCSDZ9NB&w8$vSd?;=Wcyr);Uj_?6avs=Ye!k8Hpgz znDw}pEaAMy4y4_?g^T4hHUA)59B5;rCp#<7k;w)ENaD~j5LH9=2W`%PK>|^|I+IBS zUSQloefXZ51qZ_1rpyGm2iHF?tolAwfAYzIkjiIk|mk>%`FTB%wnuC|m7bbHyUy8QU?`;vVb11BP+H zE8jp;0#Me9D4m(JHmOrc6)Y{>P}s&2mY{yqwGKSi@Ui1qV+ugPh=(e{8aZbKkuXF{ z4dIHrq{fg*c4RA~0_Sy5Jb1#begY1Z;J?+l>Zibd4GTr$u- z^ajW#HM0gsMM+HER37xY(BVMP2s}pLs{7Ob|m9xuwPDF3S%0&8myS>?oOiW{bNN#iiZy^^Ml8P}K zD8pnG49p;14QqOHCYS*!P%YnqnBu|erMWHc_My$2w_TdtGBmbza&+s^*5T3T5h{K- z;TTgv!XK;p9i}%C<8izg7w5S|P#&vN5k?Dk(sa--^BQIhBAqSS-CpL7R^kg87l!jQ ziodHOgTW+ZxQATDlWML`*PaE>2ld>-*h!+S=F+z4wiq^kf@+$V;)y1Tc`4Wtr^Efg zOZa)VL9U>zEQIfH&}=E9N%C%aS!05$ueX0-&)PMEd+;s>2KDx$@SQhQvoN)Ux_c5!9e21&d~MSwoi_ZLdbU*RW7~$u(A^;-VNoVzxPn^DM?E#YedGFJ>a9* zLbN2sq{#4q<&4y9gz+YMGE-0nf3BSFRR%^F%Bc%EpZ8EL?zsx#YV$v)Ljb~2iqV9+ zeKL;G(;VdR%6DOQH5E2GWHh2NTU51IYjSLdo(A$A)aorZL|18;Sl8{ zPDUmcC_6foS5;2SPhM)1l->HPF4c|)mE zWa?{!;r$6BHxABPYfT;omP8q&uLVeB6HcKbIcZIfW?GrKe}K@FsL~)9WENGOnPMWt z%$Lo>nuPg)^ycyhW;DRad z!WW9jrC?3jz!oYpD6WC@irC-~lhKEJ2LvEB?$Jq+EI1cF5E?TXGGUogL#6D9g6gp{ z$w+V`%x!!zf0GszcWwfOIXt;Db))0St=ouWZB+m|xB)z5tj%M0%vhL1GLPQkO&?x= z=?GAI(r3kNcBI?HIA+nwQ8Kh;B%Y2y+P$HPeSLr+b0C+>W{&vo0~C_-@yT?O=4qx7 z6prz^1cr0XdioHgF~X#FhTY^A3^q$T0zNsp)#Wiuo4r@8;n#G|6hR*|@Z7teM-goW zWvGPUCh;C1a~wUR?k2?&RH%^WdZmA5(hvqIbvYQDvRhCVDuq17rE0^&f>e6 z%A?&%r1hZGpbJC)YN50ILBrMZUJE+XVY)9H)ROT`T1&j!8>Sqhdb!SQ?eYKbg@}qE zGYielVpLeXWG|$ExnG*KD5JMQjPV(+bmMpJ3i=d^=JR|`g?5Tp{+lDGn4;ifhKKt6~a z;!+f*alXsbS1r#&CYCDEu*y8@hVE%>NVGtEQW2lYBCD$zs6qeYe96sCnR?njwsm82 z$5uk^+jnf024kwt^1}AxWr8O$ie5$VR6J_I4D3D)G+%X5fw`yHK&E+Cy=d%DDiJHgyYD1y5YBtB!->%sx~KV1w71WV$Lyx+1nEr-i;6ikPEW87TU8XH)% z7S#(1WRM&JtuW(yOEHOn-&_Psf<_4)5*Z*<3ljhj6#iGZLzqecGD5B?WEnqMi)V?kCiR-+*-UoF z#QH|e$S21+Pa}h9xi7G>_n1$mNKW0OctKD)y?uT1P2lE&+K_VO;=%UhS|FXou!yic zvFYR-L3`3HZMs@qSz_@9c8Q82B8a<~X*9}wNQ6EOZ;`ysFcSDDam@4)9PenjfS-au zjNx(=8&it-igS#;hD~ot?HMo6(@KeZvK=hsB!V%!zZn#Sq*eqb_8Y?5VF`y05faYB z-|W2ufN;M_gXgkfU7_7z);Br0oefQ4Ev>LPpvS^SBGQTZG(iz5&JdUnbK3_i;6|lk z&>b-@a$6jpY>NKL@nlAV5~r1)g!ei(kAd!7(q^uN`Up2Dqs1BWkd1*g$xlKhPS@dK zmYX!dpB85kNNq~qH#pDfccLZCKY982+NDZQjw$c_D9#LUKJS8s(tR_0bPlP2h*m_r z;ZY?7T6acMdc-WD2@;`^0*dEkl!T~cFAY_!?PsB(K};0J#q6Qob)s7c4;)w160MSc z46L=lnkS1w=8WEGmdX zx&x!5m106}aiARMOfa_<7JO00KoLc&1Yt+9@?=XWl@!0LD{&9wiR=?n#T}(G5QM}9 zZK8DWgCI^>Ug9`Y&Unk2alBdcp+%d(Kp_2*G9MWy@&^qGEoilJ&a6v_1vrW^HlK+R z8IIsI(q7mTW7Pidcdax>mv}#;G#R`W$vr5^z`+m@BE{fjMtP1w{aN7Kp+M7ucpAx= zlfmNil3XxY`Fc*TgiZ`PYp^UHwD==~1$^qWzNou#o}F2!`LYjLPCYjTOVkDh$&=Cw zuJA;sY6024sxqCf6r4*9N9SdenCU~4aUwh+GSd(<^OIx|k2hf;1+<)mPJ-!uA{UvP zaxHq?)+n%=r2mX!l{K^*q5>XZK@3LX1`BdF3O4&H3Hq0_CP@u*gI$ut<2#Z{J0*(+ zV=mR_VUz|wRhZTXOq*=M(@Zm5Ugje3=E1boGC2m?yZW?%&F_0wz;6m zDo94LVhbS{Q8&3n4aWvwOT$7G=#ZQsu7g*ezzR!T(46G&Ivyo-I9tSEb|d>-^UMnb z+NpII?j6}23g~+-r~gVW^3tftsu?dl}?(HZ?JwJ$)=4A|PethrrMzN~%JI76(YqlG=e0hMad$Oc1Ea@)19$ z752mMx4{X?k)Z3kNXaxC>o*J)np?p~Jk5w#ZD<_4Wz>o+^~@{`;1jIn>z7(4Bw3M0 zCnPUHsN`yV0}JLdc0alNSX!*raac<36P5#G^2o)M;<&n`V>-|XF7s6_NRyW>&M}wI z&0A)Qf`Mu=Uw850CUTk@RO*v+J`!XNn%hrW6I4N9HLz;K@QwvFlfVKRG3HP~?k@}8 z$(PGuSa1tGV0w&2S2CkQlg-QTcvFc|3>rh9XU(8bJ8+8!2~nfBEJWba2Y^bg8M;B* z`vhqh>md6A+gT)J*=FeJT4u8ok){jKiL5Rn3VFH4 zKriz5^n2e+lU642HAtA`Dlouo)v}yz2nAU`VDPt*s9V zWqDAjOOZzqBWbu=35bGdK6GlRwc)I;O_&%eY)H}$9A5$#Cp4=iA~13U`j0!*dgCy>WWAzKQA{39Cc!Xcg$^jkYx zog))23gE(W@&%SyLmDp%viPlef+a2#fN{fi;n=~m*IlZVY<2WfROOf#+nZ+`9 zEz=I?RsqbXw&L@2 z;9O$bOnfXyJW&?ZlGJmkE8B3YE6pq#UN7Nbax)mMh&pp_I1syl+Zu?_dCvWMo99OQ z&0}JGFI7Hy*(7YNWn^Uew`fl}CIaU`x=e$>Fgl)fDD|1*7=edW(elBJMdwPGKQmc} zrA*-Dy|{Jzo(bQnOI(Xuo~!mTGPDK&4TrIgL9j~l$a?+9?woUmsmGdNNanT^l zU{W}HmCoWMhLcwaX;G(SNm!_-4-1aP5Y(;W@Jo)Qr8I}ayUsJH@qxVLuh1%KBbnwU z(h}(!M%<*l#0os&l?<+2y4!9vJc3z}IPv-;^> z9!hJp2j(9%%TJ`!hr~6(57CFUf9c{-!#bC-3sIzVh^g&bf9S%*!mr-D<;-eX*ls-_ zvroS>y98EV1vguMUqV*lRWAem#F`dYy$C@EI*BtQ) zJ2jao5}G?*6voGNyv3^|l}rf1g_J!8X`0x#?8-RgLRyk@%G+%RAq*{{xd?UC4Yn#K z_hJyV8|l=I6-`N+sNl;*;$ zv9xAsmBA`phStv%cD!818csifPDsU*3z4d2J`_d+hZ%%1mI5?DOtQ`*(`MY|94h9L zH+De=n7J6XMF`QAmaP#$5uW}*_o78qCH)JOC?2UHRNx&LlRYkg9gT%CWQAh6m}Xk2 zgZ#2GiB)_BSijD{p-GTe-j-0Co7&`dfVNr~X3k^t3)yNz=WZ2rkfTpQsEF($DInZA z`AV(dj2=Qel6U5Nf(gJQAU?*|)Td^2C$Omqm9B+9|NPW%fZ zR0f(4B@w0UQvd~6;9LZnO`1irKiMft{SrUfusGcfGicp_@;icWA=kSGz=|0Ny<5`} zybT)kK{%y{lAU2`Y7YA`d=-*1%&{p{rg5+tk$7)TQy^HPQLro+lt7j5nnx!lbNd7y zUG4V})#vkBTodD1NRZv=rs1)M3~Q{Gb{3)w=vqI7?~J#V_oB5&E)@a7bMebLrmR;U zY+JQEGe5k3Tq4q=Q??#pP%NE_E={3bv+`=g^!N^Arq?8ZU;?F6lgm4jGBF3c<{H7+ zyv$dkSIW#pHdBhbAIr_fkHq`UjOkqu%%Hatku}KG*7P&K+I!ojTSvDKZyp`m9@Qv@ zNn-!?X@%?*REe(DxM$4Jgk%}ZXj&_qgQtH12ns&C`7xu75^xSlzB}^ z{tb(W=nO8_e97!q^c@6b&Tj8r??vvK05$QVu#cTrqu%DRc%F4SAZm|Jx88bu*4eYU>(0)Fliie~k7SgwXprGyz1#=MnxL}iR$NBGB5vbKB>&ZAHER7Vm z#rU~Oh9%DyFSn!u0#1om;BwR|QWWz)tOdE$TGlry+QV33(fr1fo$T5>`+gUz5B=b#}Ol%rE zG|Zaw%a=kR68qey#bVbECy9*+3Q1D)o5s$8=mh|*#7(0&iBU%(1R%i!~T4Wpyt)5s>-#*TeT+R+v$qf>cuJ2PY1QDsEq ze0CnA3Hb_JUUJL8mD+4RLk&Pc@1&e4vqCg9;oN*)E!fiIejKI^*CqD5Q%OkbOm!{P zWTfY$f<+1Z5?gN?HS;yO{OomR(iMqi`po34&(#nFKRuQO1fo_-a}Z_ z&NWzWF2}{|8q4vwt)c*n%Ceuyup|pvAzYCL`a%~9LdfAKdDcorQ&Z_FSprR*;ALXa zkgNd|0kOk@ta3Cdi{lq;S)wHr!^tbQZ5>T+8r!%@F<0ZAP{kSoW8s|jd4}P33=fY^ zOhg5k$5eIW`5GofX;&oqBZ8|Wi=i9nbd>643lxk2Mhmx%Lzdo#mXSo$q_hmLxHzSv z)Ut34m!Vrz{i{i8av`HAFK=)G*ck*pwpXugujxvz*Ai`|ieV>MSGyS*Wi|A3^ClBM zdL=i7?F}Xg9I|;FfxtFebV)-B(WH8{SqmIyuJZfcC?PH+0vbnZ$%L@_Oz?;(A|SVr z9Q@ie%`sB5%?|I+nr52C#+k*rF&ieek}H@$*4ZO7TJ%|zsU1`>%0xZ2Oq3Whnrp&I zdjSM^bUFk8&GF);tciHnM^vB%D7+BETu( zhGGT=z|+L$S*RU+eLfjX^P!w-X3bJl%opHyLfmGg+~lbY-svf~85%}>-IgyP7FjCh zv#Sh=`^>#Sb8FaS2vx;SI&R-8EG?@`-hfk_M!pT@-~+*d=3OVpyMmrGlg+yBi6ywa7UXOX#-5VZjI{ur8xQ_N@VJdvEVsFFEltg0 zwOBX173vCV)kz7}`l_&(jnWPO6Y;oVVsxVfRR%&*+Gose3*4k-+c{3G;n$goXC!}P zXwND$!~@#{IIE3JJEf}GUJgkXpE=@`jbIyP1#V@S^4VEA5|k^(T<%eHeK4j!R@WGU zD9x3%paYF97>m+Dy2#6q7O^c6ZJb%Gf`3+v6#^q^50S=sU(w)H4^a{S?0TWO7?$22w*#BU_aMB2I$bHbT_&{VtT+G92pVKhIf zg!j!Zo-vJuWD=f~8{C&J?15}35Dk#G9%lo#E}PH+Ch){MaOU!LP)M{M)6_|NjqIw` z4zI|MPcj3-F#9TITZ?YP;P>I7#2u%Afe9It9BzDsv>@(HWX8!-9QHf6h}SH0#QbKY zQ(!R&nmk83I3WX1*eWC2Wo*0K$PY(gDQ(%{G0R=Da|;bef_Xok7Vn#z-=wS~9OR2a zGKhGsqS2@_enn&s`UTg~j9;bg64or4Z^{K3MKh+aNMd4vmB${ksTeT;R&lyWSTOim z?0xBohG)hQ|5S<`93`SEk4*AnW`6x>G(0j|oDC8CCYJw-K5`d8Q<755Fndne9-NA@S(=Yir?EhF0#rGMO(T$+?2?|@+3L#mMWrt^*=3+bZ-B1Oa{RbwPQIUWbsjpPu2mTMJaO7U_X zNSS?2`|kg(C)hQ0j-n>l-G2DSzH-g!6r7aeP3~n;863ZR}tg-Z33t5TR z9sgOD0IO6@ICf(nnVXv?catsapDu(URq3u}+9liiep` z$(iXvhz!DEE%wROHvyE%EE%=bOtTH+d|8qw-Cjfn6=aZ;xaKya(HiVcBXW=#<;f>$ zpjcaC0Aiey*JxPwkAunc{O&7{k=y298VWvs8 zd6)C4hb7{$qg#L|E5M|aMWwXQsSC?n6?Phvjq@cH3e2TA#m7tVyB6m>Z-rdsL3ygs z0v2KnvWlH#nvjC7*yk(kBBgLWgA;_cmOQfj86;`J5EE5yIl1%0Hojm%2#i(aQh1*|Ih8?PNzUzdy39G)4Dbupj3V|RDd@Y9WUNFb zT3+VH%--cbab93tdw$kBm>1((>6u;$zT*DeCPwZn}`4=EK5mCKqkoyTlziGzGnkh^;e z-kAdN zK#>wY(C*{-dVp}j!j+J58dZDgkL=h!WE;(x>e(_nGR9`GEpb21E!deH0iTzHP_rG8 zJYvv_9N4cR1aMh4_J**4q?VVl|6aed<KXncrbXd(C+0XH0=78%(=i4!3wG zZ1eVcrS2R*{pK0bm>@nSwxWp{7U#^%@s%rpz4G8pKvK&pC%MbT&$tU^L=p#~=dfW@ z!j{or&=qUe_^oFFF~V>Gyvd~x)*}F=DK<#!k z)+8BX1Q!5Q(HCmI^+E9&q)n@L(G6UZm2qx^W|zX_7ExGR!2`JR<=@fX4`I8`h9eAL zhz6Q`YzLk}1qPyfSNZ=JW(WA&YyAIf7vMB647aPpv#N^Aqk> z%9(j?&Ew!xzMRiBBnHXqFmXjrqf1$Fny^T6x=*}QBwfpz@PJt)Rtq1Ds>wxz9xV23 zKVW2#L5&dKsWq}B)RHD6*?oibBJ>nKA8?~-k>>4}^*zSW)(V+CERYcld0PS+VqTW8 zV%(600zK0BinLfgKt8A6J*YCH%Sa4yXMl}FbZIy-h2_q&_ZZjHMT5(>B}>Z2Kv z>jCP;-chDZszT~D+LP@UJYfd$C~K^7j$N&h>KPXeH&!&wp4CW}57K5Co^+fufaH8@)#69MZGJUL7s5Ggnv`cc+a6MNmefnt? zkp-^QJn@f)JCNS59~qLg^QK9?ns&ihvr(A}v$Y(vh)*n}gZ6CkNQa2NTNz@BwhTG+mYkpX{~FGg~!pj#o9=Y}3}ShNu}|w?uz6RuM{< zmYw*4-baXagU)<_Ech2r{LXe38oc1`||d8OgCKH{D)kw`gljV7SDdy19DbIqu2v z?V}sEjBas{wPF$yGOX^y`mC=eOlBLTXh$$nzj+fdn{jqvQq%q!=lPS*FYW#AlbXvW z2fLeQOSiMBloAda)Ra0EYxCiZx0wwNxXpY7o@AmcHb@$>x7^p#VgxHcAs~ZMPX;h8 z*e5uN2NMq*1_)5nJ4>za86RWDKV)A7XCVTJst3l<&*VKX#rvHQ>@5$bn{+F&93^Hl zeainZr(G}!z1N%gG-7aumRm}X=|tUeTT18od8Dv$hxQa)=s+IcwqxsL)242W@CZzX z=$g&u=d|=l$to`8o>9aVGryHdWJk4yHEEtbp-7~gP$l=a5o=(15IB*@*bA||TY;*l z4WtkRfvp>8{Ll|Bqix4uELjtP>P9dzo-q!^( zxI)C;k)^gOm$qR{8e8~tQ5Di@m{C!RUm65u`&6_|BbJF~Y7$x%?vh*Euor}C8pnLo zSd7~8#4qYGXNwt02yQpH;eXp7G`Tht`Mf^dC?Q3vVjgfHf?-s94I%9oGrCNhz$zd* z!|ZHdW!u>qK~?Le5I`U$!W^gK7QeaILaOwOk{JMgJ&A6$_!)4!8lKbK4O-}tV5A$U zsj>{ssj@a0oGQC?3r1Mcd3vfSqXVY4ARfTrMjth4;R6V1xA}DKS29D#&EMj8iV?7Q z9?Q$c#F`y_%^_qwUSy>qDhOP}XeUV;O-aD6Za;Zumn?$S_J46+y7R$1ZZo{6jEvSr z1LK=6pBNh++MGn%Pmp`Zk4KGd7?n=rSEPn7QFe_jzP7N897@_z05M;#gbXl@Ww(;Z zhLf46DAqefM>HlT(Kz=)cl z!eYTEskjY09hi`v<|b%iSlEm0X|vFQDFh9@|Cct)Q}1NCi8B3EqN5+9L!%s>VFI8P z98_Utgmx}a(~P=hq+61x<{Rn|o`X1AQYBCbXloWL8GZRJX&iHGCc`MRcRPDdD#B~Z z1*HWP??+^f#

`8B47D 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