[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 27/33] target/cris: Use translator_ld* in cris_fetch
From: |
Richard Henderson |
Subject: |
[PATCH v2 27/33] target/cris: Use translator_ld* in cris_fetch |
Date: |
Wed, 24 Apr 2024 16:31:25 -0700 |
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/cris/translate.c | 25 ++++++++-----------------
1 file changed, 8 insertions(+), 17 deletions(-)
diff --git a/target/cris/translate.c b/target/cris/translate.c
index b5410189d4..bb2d6612ba 100644
--- a/target/cris/translate.c
+++ b/target/cris/translate.c
@@ -222,37 +222,28 @@ static int sign_extend(unsigned int val, unsigned int
width)
}
static int cris_fetch(CPUCRISState *env, DisasContext *dc, uint32_t addr,
- unsigned int size, unsigned int sign)
+ unsigned int size, bool sign)
{
int r;
switch (size) {
case 4:
- {
- r = cpu_ldl_code(env, addr);
+ r = translator_ldl(env, &dc->base, addr);
break;
- }
case 2:
- {
+ r = translator_lduw(env, &dc->base, addr);
if (sign) {
- r = cpu_ldsw_code(env, addr);
- } else {
- r = cpu_lduw_code(env, addr);
+ r = (int16_t)r;
}
break;
- }
case 1:
- {
+ r = translator_ldub(env, &dc->base, addr);
if (sign) {
- r = cpu_ldsb_code(env, addr);
- } else {
- r = cpu_ldub_code(env, addr);
+ r = (int8_t)r;
}
break;
- }
default:
- cpu_abort(CPU(dc->cpu), "Invalid fetch size %d\n", size);
- break;
+ g_assert_not_reached();
}
return r;
}
@@ -2868,7 +2859,7 @@ static unsigned int crisv32_decoder(CPUCRISState *env,
DisasContext *dc)
int i;
/* Load a halfword onto the instruction register. */
- dc->ir = cris_fetch(env, dc, dc->pc, 2, 0);
+ dc->ir = cris_fetch(env, dc, dc->pc, 2, 0);
/* Now decode it. */
dc->opcode = EXTRACT_FIELD(dc->ir, 4, 11);
--
2.34.1
- [PATCH v2 13/33] plugins: Use DisasContextBase for qemu_plugin_insn_haddr, (continued)
- [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, 2024/04/24
- [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 <=
- [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
- [PATCH v2 32/33] target/s390x: Use translator_lduw in get_next_pc, Richard Henderson, 2024/04/24
- Re: [PATCH v2 00/33] accel/tcg: Improve disassembly for target and plugin, Philippe Mathieu-Daudé, 2024/04/29