From: Aurelien Jarno Date: Fri, 12 Jun 2015 22:45:54 +0000 (+0200) Subject: target-s390x: add get_per_atmid function X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=a8f931a931f8866abdb2f836d0fb6fb7d2606645;p=qmiga%2Fqemu.git target-s390x: add get_per_atmid function This function returns the ATMID field that is stored in the per_perc_atmid lowcore entry. Signed-off-by: Aurelien Jarno Signed-off-by: Alexander Graf --- diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index c18d81b4c4..7cc96e7ca3 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -380,6 +380,18 @@ static inline int get_ilen(uint8_t opc) #define PER_CODE_EVENT_STORE_REAL 0x0800 #define PER_CODE_EVENT_NULLIFICATION 0x0100 +/* Compute the ATMID field that is stored in the per_perc_atmid lowcore + entry when a PER exception is triggered. */ +static inline uint8_t get_per_atmid(CPUS390XState *env) +{ + return ((env->psw.mask & PSW_MASK_64) ? (1 << 7) : 0) | + ( (1 << 6) ) | + ((env->psw.mask & PSW_MASK_32) ? (1 << 5) : 0) | + ((env->psw.mask & PSW_MASK_DAT)? (1 << 4) : 0) | + ((env->psw.mask & PSW_ASC_SECONDARY)? (1 << 3) : 0) | + ((env->psw.mask & PSW_ASC_ACCREG)? (1 << 2) : 0); +} + #ifndef CONFIG_USER_ONLY /* In several cases of runtime exceptions, we havn't recorded the true instruction length. Use these codes when raising exceptions in order