[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 21/33] target/s390x: Fix translator_fake_ld length
From: |
Richard Henderson |
Subject: |
[PATCH v2 21/33] target/s390x: Fix translator_fake_ld length |
Date: |
Wed, 24 Apr 2024 16:31:19 -0700 |
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.
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 2eb787e401..95d4d6ebc3 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -6200,11 +6200,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
- [PATCH v2 16/33] accel/tcg: Provide default implementation of disas_log, (continued)
- [PATCH v2 16/33] accel/tcg: Provide default implementation of disas_log, Richard Henderson, 2024/04/24
- [PATCH v2 14/33] plugins: Use DisasContextBase for qemu_plugin_tb_vaddr, Richard Henderson, 2024/04/24
- [PATCH v2 13/33] plugins: Use DisasContextBase for qemu_plugin_insn_haddr, Richard Henderson, 2024/04/24
- [PATCH v2 15/33] plugins: Merge alloc_tcg_plugin_context into plugin_gen_tb_start, Richard Henderson, 2024/04/24
- [PATCH v2 19/33] disas: Use translator_st to get disassembly data, Richard Henderson, 2024/04/24
- [PATCH v2 22/33] target/s390x: Disassemble EXECUTEd instructions, Richard Henderson, 2024/04/24
- [PATCH v2 23/33] target/hexagon: Use translator_ldl in pkt_crosses_page, Richard Henderson, 2024/04/24
- [PATCH v2 20/33] accel/tcg: Introduce translator_fake_ld, Richard Henderson, 2024/04/24
- [PATCH v2 18/33] disas: Split disas.c, Richard Henderson, 2024/04/24
- [PATCH v2 21/33] target/s390x: Fix translator_fake_ld length,
Richard Henderson <=
- [PATCH v2 24/33] target/microblaze: Use translator_ldl, Richard Henderson, 2024/04/24
- [PATCH v2 27/33] target/cris: Use translator_ld* in cris_fetch, Richard Henderson, 2024/04/24
- [PATCH v2 33/33] accel/tcg: Remove cpu_ldsb_code / cpu_ldsw_code, Richard Henderson, 2024/04/24
- [PATCH v2 25/33] target/i386: Use translator_ldub for everything, Richard Henderson, 2024/04/24
- [PATCH v2 26/33] target/avr: Use translator_lduw, Richard Henderson, 2024/04/24
- [PATCH v2 29/33] target/riscv: Use translator_ld* for everything, Richard Henderson, 2024/04/24
- [PATCH v2 30/33] target/rx: Use translator_ld*, Richard Henderson, 2024/04/24
- [PATCH v2 28/33] target/cris: Use cris_fetch in translate_v10.c.inc, Richard Henderson, 2024/04/24
- [PATCH v2 31/33] target/xtensa: Use translator_ldub in xtensa_insn_len, Richard Henderson, 2024/04/24