@@ -975,17 +975,22 @@ static CPAccessResult pmreg_access_ccntr(CPUARMState *env,
return pmreg_access(env, ri, isread);
}
-static inline bool arm_ccnt_enabled(CPUARMState *env)
+static inline bool pmu_counter_enabled(CPUARMState *env, uint8_t counter)
{
/* Does not check PMCCFILTR_EL0, which is handled by pmu_counter_filtered */
-
- if (!(env->cp15.c9_pmcr & PMCRE) || !(env->cp15.c9_pmcnten & (1 << 31))) {
+ if (!(env->cp15.c9_pmcr & PMCRE) ||
+ !(env->cp15.c9_pmcnten & (1 << counter))) {
return false;
}
return true;
}
+static inline bool arm_ccnt_enabled(CPUARMState *env)
+{
+ return pmu_counter_enabled(env, 31);
+}
+
/* Returns true if the counter corresponding to the passed-in pmevtyper or
* pmccfiltr value is filtered using the current state */
static inline bool pmu_counter_filtered(CPUARMState *env, uint64_t pmxevtyper)
Signed-off-by: Aaron Lindsay <alindsay@codeaurora.org> --- target/arm/helper.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)