Signed-off-by: Richard Henderson <richard.hender...@linaro.org> --- target/arm/internals.h | 1 + target/arm/ptw.c | 1 + target/arm/tcg/tlb_helper.c | 1 + 3 files changed, 3 insertions(+)
diff --git a/target/arm/internals.h b/target/arm/internals.h index 805f4a1876..7a42f8be0b 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -756,6 +756,7 @@ struct ARMMMUFaultInfo { bool s1ns; bool ea; bool dirtybit; /* FEAT_S1PIE, FEAT_S2PIE */ + bool gcs; }; /** diff --git a/target/arm/ptw.c b/target/arm/ptw.c index 3c84f0f024..ce9626b627 100644 --- a/target/arm/ptw.c +++ b/target/arm/ptw.c @@ -2393,6 +2393,7 @@ static bool get_phys_addr_lpae(CPUARMState *env, S1Translate *ptw, fi->stage2 = regime_is_stage2(mmu_idx); } fi->s1ns = fault_s1ns(ptw->in_space, mmu_idx); + fi->gcs = regime_is_gcs(mmu_idx); return true; } diff --git a/target/arm/tcg/tlb_helper.c b/target/arm/tcg/tlb_helper.c index ae2acd6727..37c7651799 100644 --- a/target/arm/tcg/tlb_helper.c +++ b/target/arm/tcg/tlb_helper.c @@ -78,6 +78,7 @@ static inline uint64_t merge_syn_data_abort(uint32_t template_syn, /* Form ISS2 at the top of the syndrome. */ syn |= (uint64_t)fi->dirtybit << 37; + syn |= (uint64_t)fi->gcs << 40; return syn; } -- 2.43.0