[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 24/26] target-s390x: PER instruction-fetch nullificat
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PULL 24/26] target-s390x: PER instruction-fetch nullification event support |
Date: |
Wed, 17 Jun 2015 12:43:07 +0200 |
From: Aurelien Jarno <address@hidden>
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 <address@hidden>
Signed-off-by: Alexander Graf <address@hidden>
---
target-s390x/misc_helper.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
index 73d0193..8eac0e1 100644
--- a/target-s390x/misc_helper.c
+++ b/target-s390x/misc_helper.c
@@ -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
--
1.7.12.4
- [Qemu-devel] [PULL 13/26] target-s390x: mvc_fast_memset: access memory through softmmu, (continued)
- [Qemu-devel] [PULL 13/26] target-s390x: mvc_fast_memset: access memory through softmmu, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 08/26] target-s390x: wire up DIAG IPL in TCG mode, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 02/26] s390/ioinst: fix endianness in ioinst_schib_valid, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 18/26] target-s390x: basic PER event handling, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 10/26] target-s390x: wire up I/O instructions in TCG mode, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 21/26] translate-all: fix watchpoints if retranslation not possible, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 14/26] target-s390x: mvc_fast_memmove: access memory through softmmu, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 22/26] target-s390x: PER storage-alteration event support, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 25/26] target-s390x: PER: add Breaking-Event-Address register, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 19/26] target-s390x: PER successful-branching event support, Alexander Graf, 2015/06/17
- [Qemu-devel] [PULL 24/26] target-s390x: PER instruction-fetch nullification event support,
Alexander Graf <=
- [Qemu-devel] [PULL 17/26] target-s390x: add get_per_in_range function, Alexander Graf, 2015/06/17
- Re: [Qemu-devel] [PULL 00/26] s390 patch queue 2015-06-17, Christian Borntraeger, 2015/06/17
- Re: [Qemu-devel] [PULL 00/26] s390 patch queue 2015-06-17, Peter Maydell, 2015/06/17