[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 21/32] target/s390x: Fix translator_fake_ld length
|
From: |
Richard Henderson |
|
Subject: |
[PATCH 21/32] target/s390x: Fix translator_fake_ld length |
|
Date: |
Fri, 5 Apr 2024 00:24:48 -1000 |
The ilen value extracted from ex_value is the length of the
EXECUTE instruction itself, and so is the increment to the pc.
However, the length of the synthetic insn is located in the
opcode like all other instructions.
Cc: qemu-s390x@nongnu.org
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/s390x/tcg/translate.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 4d308860f3..c1614b8264 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -6201,11 +6201,11 @@ static const DisasInsn *extract_insn(CPUS390XState
*env, DisasContext *s)
/* Extract the values saved by EXECUTE. */
insn = s->ex_value & 0xffffffffffff0000ull;
ilen = s->ex_value & 0xf;
+ op = insn >> 56;
/* Register insn bytes with translator so plugins work. */
be_insn = cpu_to_be64(insn);
- translator_fake_ld(&s->base, &be_insn, ilen);
- op = insn >> 56;
+ translator_fake_ld(&s->base, &be_insn, get_ilen(op));
} else {
insn = ld_code2(env, s, pc);
op = (insn >> 8) & 0xff;
--
2.34.1
- Re: [PATCH 14/32] plugins: Use DisasContextBase for qemu_plugin_tb_vaddr, (continued)
- [PATCH 19/32] disas: Use translator_st to get disassembly data, Richard Henderson, 2024/04/05
- [PATCH 17/32] accel/tcg: Return bool from TranslatorOps.disas_log, Richard Henderson, 2024/04/05
- [PATCH 16/32] accel/tcg: Provide default implementation of disas_log, Richard Henderson, 2024/04/05
- [PATCH 20/32] accel/tcg: Introduce translator_fake_ld, Richard Henderson, 2024/04/05
- [PATCH 18/32] disas: Split disas.c, Richard Henderson, 2024/04/05
- [PATCH 22/32] target/s390x: Disassemble EXECUTEd instructions, Richard Henderson, 2024/04/05
- [PATCH 21/32] target/s390x: Fix translator_fake_ld length,
Richard Henderson <=
- [PATCH 23/32] target/hexagon: Use translator_ldl in pkt_crosses_page, Richard Henderson, 2024/04/05
- [PATCH 24/32] target/microblaze: Use translator_ldl, Richard Henderson, 2024/04/05
- [PATCH 26/32] target/avr: Use translator_ldl, Richard Henderson, 2024/04/05
- [PATCH 27/32] target/cris: Use translator_ld* in cris_fetch, Richard Henderson, 2024/04/05
- [PATCH 30/32] target/rx: Use translator_ld*, Richard Henderson, 2024/04/05