diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2015-06-03 23:09:53 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2015-06-05 01:37:59 +0200 |
commit | 4decd76d71d6972a59bf0a16d0dea0c83490d001 (patch) | |
tree | 47795fad3c68a225f1dd5bbbafea3dd72822da09 /target-s390x/cpu.h | |
parent | a1f12d855b6ec79a640fa6a74d12884f1646ecfe (diff) | |
download | qemu-4decd76d71d6972a59bf0a16d0dea0c83490d001.zip |
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 <aurelien@aurel32.net>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x/cpu.h')
-rw-r--r-- | target-s390x/cpu.h | 25 |
1 files 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) { |