Skip to content

Commit

Permalink
target-s390x: PER instruction-fetch nullification event support
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Alexander Graf <[email protected]>
  • Loading branch information
aurel32 authored and agraf committed Jun 17, 2015
1 parent 2f54394 commit 83bb161
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions target-s390x/misc_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 83bb161

Please sign in to comment.