]> git.proxmox.com Git - mirror_qemu.git/commit
target/arm: Provide accessor functions for HCR_EL2.{IMO, FMO, AMO}
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 14 Aug 2018 16:17:21 +0000 (17:17 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 14 Aug 2018 16:17:21 +0000 (17:17 +0100)
commitac656b166b57332ee397e9781810c956f4f5fde5
tree36baeb879d72c7921d792157648909022f57f641
parent7556edfb4d7bf0583c852c8cfc49ef494c41dd8a
target/arm: Provide accessor functions for HCR_EL2.{IMO, FMO, AMO}

The IMO, FMO and AMO bits in HCR_EL2 are defined to "behave as
1 for all purposes other than direct reads" if HCR_EL2.TGE
is set and HCR_EL2.E2H is 0, and to "behave as 0 for all
purposes other than direct reads" if HCR_EL2.TGE is set
and HRC_EL2.E2H is 1.

To avoid having to check E2H and TGE everywhere where we test IMO and
FMO, provide accessors arm_hcr_el2_imo(), arm_hcr_el2_fmo()and
arm_hcr_el2_amo().  We don't implement ARMv8.1-VHE yet, so the E2H
case will never be true, but we include the logic to save effort when
we eventually do get to that.

(Note that in several of these callsites the change doesn't
actually make a difference as either the callsite is handling
TGE specially anyway, or the CPU can't get into that situation
with TGE set; we change everywhere for consistency.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180724115950.17316-5-peter.maydell@linaro.org
hw/intc/arm_gicv3_cpuif.c
target/arm/cpu.h
target/arm/helper.c