[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 27/32] target/cris: Use translator_ld* in cris_fetch
From: |
Richard Henderson |
Subject: |
[PATCH 27/32] target/cris: Use translator_ld* in cris_fetch |
Date: |
Fri, 5 Apr 2024 00:24:54 -1000 |
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
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
- Re: [PATCH 20/32] accel/tcg: Introduce translator_fake_ld, (continued)
- [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, 2024/04/05
- [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 <=
- [PATCH 30/32] target/rx: Use translator_ld*, Richard Henderson, 2024/04/05
- [PATCH 25/32] target/i386: Use translator_ldub for everything, Richard Henderson, 2024/04/05
- [PATCH 32/32] target/s390x: Use translator_lduw in get_next_pc, Richard Henderson, 2024/04/05
- [PATCH 29/32] target/riscv: Use translator_ld* for everything, Richard Henderson, 2024/04/05
- [PATCH 31/32] target/xtensa: Use translator_ldub in xtensa_insn_len, Richard Henderson, 2024/04/05