[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/15] target-s390x: PER store-using-real-address ev
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH 13/15] target-s390x: PER store-using-real-address event support |
Date: |
Sat, 13 Jun 2015 00:46:01 +0200 |
This PER event happens each time the STURA or STURG instructions are
used. As they use helpers, we can just save the event in the PER code
there, if enabled.
Cc: Richard Henderson <address@hidden>
Cc: Alexander Graf <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>
---
target-s390x/mem_helper.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c
index d03f9fd..3ccbeb9 100644
--- a/target-s390x/mem_helper.c
+++ b/target-s390x/mem_helper.c
@@ -1105,6 +1105,14 @@ void HELPER(stura)(CPUS390XState *env, uint64_t addr,
uint64_t v1)
CPUState *cs = CPU(s390_env_get_cpu(env));
stl_phys(cs->as, get_address(env, 0, 0, addr), (uint32_t)v1);
+
+ if ((env->psw.mask & PSW_MASK_PER) &&
+ (env->cregs[9] & PER_CR9_EVENT_STORE) &&
+ (env->cregs[9] & PER_CR9_EVENT_STORE_REAL)) {
+ /* PSW is saved just before calling the helper. */
+ env->per_address = env->psw.addr;
+ env->per_perc_atmid = PER_CODE_EVENT_STORE_REAL | get_per_atmid(env);
+ }
}
void HELPER(sturg)(CPUS390XState *env, uint64_t addr, uint64_t v1)
@@ -1112,6 +1120,14 @@ void HELPER(sturg)(CPUS390XState *env, uint64_t addr,
uint64_t v1)
CPUState *cs = CPU(s390_env_get_cpu(env));
stq_phys(cs->as, get_address(env, 0, 0, addr), v1);
+
+ if ((env->psw.mask & PSW_MASK_PER) &&
+ (env->cregs[9] & PER_CR9_EVENT_STORE) &&
+ (env->cregs[9] & PER_CR9_EVENT_STORE_REAL)) {
+ /* PSW is saved just before calling the helper. */
+ env->per_address = env->psw.addr;
+ env->per_perc_atmid = PER_CODE_EVENT_STORE_REAL | get_per_atmid(env);
+ }
}
/* load real address */
--
2.1.4
- [Qemu-devel] [PATCH 01/15] softmmu: provide tlb_vaddr_to_host function for user mode, (continued)
- [Qemu-devel] [PATCH 01/15] softmmu: provide tlb_vaddr_to_host function for user mode, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 06/15] target-s390x: add get_per_atmid function, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 07/15] target-s390x: add get_per_in_range function, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 11/15] translate-all: fix watchpoints if retranslation not possible, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 04/15] target-s390x: mvc_fast_memmove: access memory through softmmu, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 03/15] target-s390x: mvc_fast_memset: access memory through softmmu, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 09/15] target-s390x: PER successful-branching event support, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 10/15] target-s390x: PER instruction-fetch event support, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 08/15] target-s390x: basic PER event handling, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 14/15] target-s390x: PER instruction-fetch nullification event support, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 13/15] target-s390x: PER store-using-real-address event support,
Aurelien Jarno <=
- [Qemu-devel] [PATCH 15/15] target-s390x: PER: add Breaking-Event-Address register, Aurelien Jarno, 2015/06/12
- [Qemu-devel] [PATCH 12/15] target-s390x: PER storage-alteration event support, Aurelien Jarno, 2015/06/12
- Re: [Qemu-devel] [PATCH 00/15] target-s390x: add Program-Event Recording feature, Alexander Graf, 2015/06/16