target-s390x: PER instruction-fetch nullification event support
For the instruction-fetch nullification event, we just reuse the existing instruction-fetch code and trigger the exception immediately in that case. There is no need to save the CPU state in the TCG code as it has been saved by the previous instruction before calling the per_check_exception helper. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
2f54394997
commit
83bb161299
@ -625,6 +625,18 @@ void HELPER(per_ifetch)(CPUS390XState *env, uint64_t addr)
|
||||
if ((env->cregs[9] & PER_CR9_EVENT_IFETCH) && get_per_in_range(env, addr)) {
|
||||
env->per_address = addr;
|
||||
env->per_perc_atmid = PER_CODE_EVENT_IFETCH | get_per_atmid(env);
|
||||
|
||||
/* If the instruction has to be nullified, trigger the
|
||||
exception immediately. */
|
||||
if (env->cregs[9] & PER_CR9_EVENT_NULLIFICATION) {
|
||||
CPUState *cs = CPU(s390_env_get_cpu(env));
|
||||
|
||||
env->int_pgm_code = PGM_PER;
|
||||
env->int_pgm_ilen = get_ilen(cpu_ldub_code(env, addr));
|
||||
|
||||
cs->exception_index = EXCP_PGM;
|
||||
cpu_loop_exit(cs);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user