Skip to content

Commit

Permalink
target/arm: Hoist pc_next to a local variable in thumb_tr_translate_insn
Browse files Browse the repository at this point in the history
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
rth7680 authored and pm215 committed Dec 15, 2021
1 parent bf9dd2a commit 0bb72bc
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions target/arm/translate.c
Expand Up @@ -9618,25 +9618,25 @@ static void thumb_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu)
{
DisasContext *dc = container_of(dcbase, DisasContext, base);
CPUARMState *env = cpu->env_ptr;
uint32_t pc = dc->base.pc_next;
uint32_t insn;
bool is_16bit;

if (arm_pre_translate_insn(dc)) {
dc->base.pc_next += 2;
dc->base.pc_next = pc + 2;
return;
}

dc->pc_curr = dc->base.pc_next;
insn = arm_lduw_code(env, &dc->base, dc->base.pc_next, dc->sctlr_b);
dc->pc_curr = pc;
insn = arm_lduw_code(env, &dc->base, pc, dc->sctlr_b);
is_16bit = thumb_insn_is_16bit(dc, dc->base.pc_next, insn);
dc->base.pc_next += 2;
pc += 2;
if (!is_16bit) {
uint32_t insn2 = arm_lduw_code(env, &dc->base, dc->base.pc_next,
dc->sctlr_b);

uint32_t insn2 = arm_lduw_code(env, &dc->base, pc, dc->sctlr_b);
insn = insn << 16 | insn2;
dc->base.pc_next += 2;
pc += 2;
}
dc->base.pc_next = pc;
dc->insn = insn;

if (dc->pstate_il) {
Expand Down

0 comments on commit 0bb72bc

Please sign in to comment.