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


Reply via email to