[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 23/71] target/arm: Add syn_smetrap
From: |
Richard Henderson |
Subject: |
[PATCH v2 23/71] target/arm: Add syn_smetrap |
Date: |
Tue, 7 Jun 2022 13:32:18 -0700 |
This will be used for raising various traps for SME.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/arm/syndrome.h | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h
index 0cb26dde7d..4002766302 100644
--- a/target/arm/syndrome.h
+++ b/target/arm/syndrome.h
@@ -48,6 +48,7 @@ enum arm_exception_class {
EC_AA64_SMC = 0x17,
EC_SYSTEMREGISTERTRAP = 0x18,
EC_SVEACCESSTRAP = 0x19,
+ EC_SMETRAP = 0x1d,
EC_INSNABORT = 0x20,
EC_INSNABORT_SAME_EL = 0x21,
EC_PCALIGNMENT = 0x22,
@@ -68,6 +69,13 @@ enum arm_exception_class {
EC_AA64_BKPT = 0x3c,
};
+typedef enum {
+ SME_ET_AccessTrap,
+ SME_ET_Streaming,
+ SME_ET_NotStreaming,
+ SME_ET_InactiveZA,
+} SMEExceptionType;
+
#define ARM_EL_EC_SHIFT 26
#define ARM_EL_IL_SHIFT 25
#define ARM_EL_ISV_SHIFT 24
@@ -206,6 +214,12 @@ static inline uint32_t syn_sve_access_trap(void)
return EC_SVEACCESSTRAP << ARM_EL_EC_SHIFT;
}
+static inline uint32_t syn_smetrap(SMEExceptionType etype, bool is_16bit)
+{
+ return (EC_SMETRAP << ARM_EL_EC_SHIFT)
+ | (is_16bit ? 0 : ARM_EL_IL) | etype;
+}
+
static inline uint32_t syn_pactrap(void)
{
return EC_PACTRAP << ARM_EL_EC_SHIFT;
--
2.34.1
- [PATCH v2 18/71] target/arm: Export bfdotadd from vec_helper.c, (continued)
- [PATCH v2 18/71] target/arm: Export bfdotadd from vec_helper.c, Richard Henderson, 2022/06/07
- [PATCH v2 19/71] target/arm: Add isar_feature_aa64_sme, Richard Henderson, 2022/06/07
- [PATCH v2 15/71] target/arm: Move expand_pred_b to vec_internal.h, Richard Henderson, 2022/06/07
- [PATCH v2 26/71] target/arm: Add SMCR_ELx, Richard Henderson, 2022/06/07
- [PATCH v2 12/71] target/arm: Rename sve_zcr_len_for_el to sve_vqm1_for_el, Richard Henderson, 2022/06/07
- [PATCH v2 14/71] target/arm: Export sve contiguous ldst support functions, Richard Henderson, 2022/06/07
- [PATCH v2 16/71] target/arm: Use expand_pred_b in mve_helper.c, Richard Henderson, 2022/06/07
- [PATCH v2 21/71] target/arm: Implement TPIDR2_EL0, Richard Henderson, 2022/06/07
- [PATCH v2 22/71] target/arm: Add SMEEXC_EL to TB flags, Richard Henderson, 2022/06/07
- [PATCH v2 23/71] target/arm: Add syn_smetrap,
Richard Henderson <=
- [PATCH v2 24/71] target/arm: Add ARM_CP_SME, Richard Henderson, 2022/06/07
- [PATCH v2 25/71] target/arm: Add SVCR, Richard Henderson, 2022/06/07
- [PATCH v2 27/71] target/arm: Add SMIDR_EL1, SMPRI_EL1, SMPRIMAP_EL2, Richard Henderson, 2022/06/07
- [PATCH v2 28/71] target/arm: Add PSTATE.{SM,ZA} to TB flags, Richard Henderson, 2022/06/07
- [PATCH v2 29/71] target/arm: Add the SME ZA storage to CPUARMState, Richard Henderson, 2022/06/07
- [PATCH v2 20/71] target/arm: Add ID_AA64SMFR0_EL1, Richard Henderson, 2022/06/07
- [PATCH v2 33/71] target/arm: Generalize cpu_arm_{get,set}_vq, Richard Henderson, 2022/06/07