• P
    target/arm: Provide accessor functions for HCR_EL2.{IMO, FMO, AMO} · ac656b16
    Peter Maydell 提交于
    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: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20180724115950.17316-5-peter.maydell@linaro.org
    ac656b16
cpu.h 105.8 KB