target/arm: Mask PMOVSR writes based on supported counters
authorAaron Lindsay <aclindsa@gmail.com>
Wed, 10 Oct 2018 20:37:23 +0000 (16:37 -0400)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 16 Oct 2018 16:14:55 +0000 (17:14 +0100)
This is an amendment to my earlier patch:
    commit 7ece99b17e832065236c07a158dfac62619ef99b
    Author: Aaron Lindsay <alindsay@codeaurora.org>
    Date:   Thu Apr 26 11:04:39 2018 +0100

target/arm: Mask PMU register writes based on PMCR_EL0.N

Signed-off-by: Aaron Lindsay <alindsay@codeaurora.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20181010203735.27918-3-aclindsa@gmail.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.c

index 138a1f15405eb2e59d6690e715ae796b45cf85b8..7a53098888dc0e72613e1c29785e0104f359582d 100644 (file)
@@ -1179,6 +1179,7 @@ static void pmcntenclr_write(CPUARMState *env, const ARMCPRegInfo *ri,
 static void pmovsr_write(CPUARMState *env, const ARMCPRegInfo *ri,
                          uint64_t value)
 {
+    value &= pmu_counter_mask(env);
     env->cp15.c9_pmovsr &= ~value;
 }