graphic: 0.958 arm: 0.924 architecture: 0.870 semantic: 0.852 device: 0.842 ppc: 0.814 performance: 0.784 register: 0.750 vnc: 0.702 peripherals: 0.692 files: 0.665 x86: 0.537 hypervisor: 0.520 socket: 0.513 PID: 0.508 debug: 0.497 virtual: 0.488 TCG: 0.475 VMM: 0.451 assembly: 0.380 network: 0.369 risc-v: 0.368 kernel: 0.358 permissions: 0.349 i386: 0.339 boot: 0.272 user-level: 0.266 KVM: 0.167 mistranslation: 0.142 LoadVM assert on ARM_FEATURE_M for Cortex M3 Description of problem: This appears to be a similar issue to https://gitlab.com/qemu-project/qemu/-/issues/1775 and https://gitlab.com/qemu-project/qemu/-/issues/1658 When running `loadvm` qemu aborts with this error: "qemu/target/arm/helper.c:12383: arm_security_space_below_el3: Assertion `!arm_feature(env, ARM_FEATURE_M)' failed." I've traced the error to `pmu_counter_enabled` in `qemu\target\arm\helper.c:1172` [uint64_t mdcr_el2 = arm_mdcr_el2_eff(env)](https://gitlab.com/qemu-project/qemu/-/blob/v8.2.0/target/arm/helper.c?ref_type=tags#L1172) (link is to 8.2.0 release tag) The issue is caused by attempting to get the MDCR_EL2 register prior to checking if the CPU has ARM_FEATURE_PMU support. A simple fix seems to be to check for `ARM_PMU_ENABLED` and returning early if it is not enabled. Steps to reproduce: 1. Start emulation and connect monitor 2. savevm 3. Loadvm Additional information: See screenshot for stack trace ![armCortexM3LoadVMStackTrace](/uploads/fcfd927f4d373922715c8787dbb9cc26/armCortexM3LoadVMStackTrace.png)