[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/14] target/s390x: Make MC raise specification exception when c
From: |
Ilya Leoshkevich |
Subject: |
[PATCH 05/14] target/s390x: Make MC raise specification exception when class >= 16 |
Date: |
Tue, 18 Jul 2023 23:21:06 +0200 |
MC requires bit positions 8-11 (upper 4 bits of class) to be zeros,
otherwise it must raise a specification exception.
Cc: qemu-stable@nongnu.org
Fixes: 20d143e2cab8 ("s390x/tcg: Implement MONITOR CALL")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
target/s390x/tcg/excp_helper.c | 2 +-
target/s390x/tcg/translate.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/target/s390x/tcg/excp_helper.c b/target/s390x/tcg/excp_helper.c
index 228aa9f2373..3da337f7c72 100644
--- a/target/s390x/tcg/excp_helper.c
+++ b/target/s390x/tcg/excp_helper.c
@@ -639,7 +639,7 @@ void monitor_event(CPUS390XState *env,
void HELPER(monitor_call)(CPUS390XState *env, uint64_t monitor_code,
uint32_t monitor_class)
{
- g_assert(monitor_class <= 0xff);
+ g_assert(monitor_class <= 0xf);
if (env->cregs[8] & (0x8000 >> monitor_class)) {
monitor_event(env, monitor_code, monitor_class, GETPC());
diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 2d7cc8963b4..4b32c2333c2 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -3184,9 +3184,9 @@ static DisasJumpType op_lcbb(DisasContext *s, DisasOps *o)
static DisasJumpType op_mc(DisasContext *s, DisasOps *o)
{
- const uint16_t monitor_class = get_field(s, i2);
+ const uint8_t monitor_class = get_field(s, i2);
- if (monitor_class & 0xff00) {
+ if (monitor_class & 0xf0) {
gen_program_exception(s, PGM_SPECIFICATION);
return DISAS_NORETURN;
}
--
2.41.0
- [PATCH 00/14] target/s390x: Miscellaneous TCG fixes, part 2, Ilya Leoshkevich, 2023/07/18
- [PATCH 01/14] target/s390x: Make CKSM raise an exception if R2 is odd, Ilya Leoshkevich, 2023/07/18
- [PATCH 02/14] target/s390x: Fix CLM with M3=0, Ilya Leoshkevich, 2023/07/18
- [PATCH 03/14] target/s390x: Fix CONVERT TO LOGICAL/FIXED with out-of-range inputs, Ilya Leoshkevich, 2023/07/18
- [PATCH 04/14] target/s390x: Fix ICM with M3=0, Ilya Leoshkevich, 2023/07/18
- [PATCH 05/14] target/s390x: Make MC raise specification exception when class >= 16,
Ilya Leoshkevich <=
- [PATCH 06/14] tcg/{i386, s390x}: Add earlyclobber to the op_add2's first output, Ilya Leoshkevich, 2023/07/18
- [PATCH 07/14] target/s390x: Fix assertion failure in VFMIN/VFMAX with reserved type, Ilya Leoshkevich, 2023/07/18
- [PATCH 08/14] tests/tcg/s390x: Test CKSM, Ilya Leoshkevich, 2023/07/18
- [PATCH 10/14] tests/tcg/s390x: Test CLM, Ilya Leoshkevich, 2023/07/18
- [PATCH 09/14] tests/tcg/s390x: Test CLGEBR and CGEBRA, Ilya Leoshkevich, 2023/07/18
- [PATCH 11/14] tests/tcg/s390x: Test ICM, Ilya Leoshkevich, 2023/07/18