[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/5] target/s390x: Do not modify cpu state in s390_cpu_get_psw_ma
From: |
Richard Henderson |
Subject: |
[PATCH 2/5] target/s390x: Do not modify cpu state in s390_cpu_get_psw_mask |
Date: |
Mon, 14 Jun 2021 20:07:41 -0700 |
We want to use this function for debugging, and debug should
not modify cpu state (even non-architectural cpu state) lest
we introduce heisenbugs.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/s390x/helper.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index d311903b94..559fc3573f 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -321,12 +321,12 @@ uint64_t s390_cpu_get_psw_mask(CPUS390XState *env)
uint64_t r = env->psw.mask;
if (tcg_enabled()) {
- env->cc_op = calc_cc(env, env->cc_op, env->cc_src, env->cc_dst,
- env->cc_vr);
+ uint64_t cc = calc_cc(env, env->cc_op, env->cc_src,
+ env->cc_dst, env->cc_vr);
+ assert(cc <= 3);
r &= ~PSW_MASK_CC;
- assert(!(env->cc_op & ~3));
- r |= (uint64_t)env->cc_op << 44;
+ r |= cc << 44;
}
return r;
--
2.25.1
- [PATCH 0/5] linux-user/s390x: Fix psw.mask handling in signals, Richard Henderson, 2021/06/14
- [PATCH 2/5] target/s390x: Do not modify cpu state in s390_cpu_get_psw_mask,
Richard Henderson <=
- [PATCH 1/5] target/s390x: Expose load_psw and get_psw_mask to cpu.h, Richard Henderson, 2021/06/14
- [PATCH 4/5] target/s390x: Use s390_cpu_{set_psw, get_psw_mask} in gdbstub, Richard Henderson, 2021/06/14
- [PATCH 5/5] linux-user/s390x: Save and restore psw.mask properly, Richard Henderson, 2021/06/14
- [PATCH 3/5] target/s390x: Improve s390_cpu_dump_state vs cc_op, Richard Henderson, 2021/06/14