From 4decd76d71d6972a59bf0a16d0dea0c83490d001 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Wed, 3 Jun 2015 23:09:53 +0200 Subject: [PATCH] target-s390x: add a cpu_mmu_idx_to_asc function Use constants to define the MMU indexes, and add a function to do the reverse conversion of cpu_mmu_index. Signed-off-by: Aurelien Jarno Reviewed-by: Richard Henderson Signed-off-by: Alexander Graf --- target-s390x/cpu.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index adb9a84237..584e74b89a 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -302,15 +302,20 @@ static inline CPU_DoubleU *get_freg(CPUS390XState *cs, int nr) #define CR0_LOWPROT 0x0000000010000000ULL #define CR0_EDAT 0x0000000000800000ULL +/* MMU */ +#define MMU_PRIMARY_IDX 0 +#define MMU_SECONDARY_IDX 1 +#define MMU_HOME_IDX 2 + static inline int cpu_mmu_index (CPUS390XState *env) { switch (env->psw.mask & PSW_MASK_ASC) { case PSW_ASC_PRIMARY: - return 0; + return MMU_PRIMARY_IDX; case PSW_ASC_SECONDARY: - return 1; + return MMU_SECONDARY_IDX; case PSW_ASC_HOME: - return 2; + return MMU_HOME_IDX; case PSW_ASC_ACCREG: /* Fallthrough: access register mode is not yet supported */ default: @@ -318,6 +323,20 @@ static inline int cpu_mmu_index (CPUS390XState *env) } } +static inline uint64_t cpu_mmu_idx_to_asc(int mmu_idx) +{ + switch (mmu_idx) { + case MMU_PRIMARY_IDX: + return PSW_ASC_PRIMARY; + case MMU_SECONDARY_IDX: + return PSW_ASC_SECONDARY; + case MMU_HOME_IDX: + return PSW_ASC_HOME; + default: + abort(); + } +} + static inline void cpu_get_tb_cpu_state(CPUS390XState* env, target_ulong *pc, target_ulong *cs_base, int *flags) { -- 2.11.4.GIT