提交 4106f26e 编写于 作者: R Richard Henderson 提交者: Laurent Vivier

target/m68k: Rename DISAS_UPDATE and gen_lookup_tb

The name gen_lookup_tb is at odds with tcg_gen_lookup_and_goto_tb.
For these cases, we do indeed want to exit back to the main loop.
Similarly, DISAS_UPDATE performs no actual update, whereas DISAS_EXIT
does what it says.
Signed-off-by: NRichard Henderson <richard.henderson@linaro.org>
Message-Id: <20180512050250.12774-6-richard.henderson@linaro.org>
Signed-off-by: NLaurent Vivier <laurent@vivier.eu>
上级 8aaf7da9
...@@ -198,7 +198,7 @@ static void do_writebacks(DisasContext *s) ...@@ -198,7 +198,7 @@ static void do_writebacks(DisasContext *s)
/* is_jmp field values */ /* is_jmp field values */
#define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */ #define DISAS_JUMP DISAS_TARGET_0 /* only pc was modified dynamically */
#define DISAS_UPDATE DISAS_TARGET_1 /* cpu state was modified dynamically */ #define DISAS_EXIT DISAS_TARGET_1 /* cpu state was modified dynamically */
#if defined(CONFIG_USER_ONLY) #if defined(CONFIG_USER_ONLY)
#define IS_USER(s) 1 #define IS_USER(s) 1
...@@ -1446,11 +1446,11 @@ static void gen_jmpcc(DisasContext *s, int cond, TCGLabel *l1) ...@@ -1446,11 +1446,11 @@ static void gen_jmpcc(DisasContext *s, int cond, TCGLabel *l1)
} }
/* Force a TB lookup after an instruction that changes the CPU state. */ /* Force a TB lookup after an instruction that changes the CPU state. */
static void gen_lookup_tb(DisasContext *s) static void gen_exit_tb(DisasContext *s)
{ {
update_cc_op(s); update_cc_op(s);
tcg_gen_movi_i32(QREG_PC, s->pc); tcg_gen_movi_i32(QREG_PC, s->pc);
s->is_jmp = DISAS_UPDATE; s->is_jmp = DISAS_EXIT;
} }
#define SRC_EA(env, result, opsize, op_sign, addrp) do { \ #define SRC_EA(env, result, opsize, op_sign, addrp) do { \
...@@ -4604,7 +4604,7 @@ DISAS_INSN(move_to_sr) ...@@ -4604,7 +4604,7 @@ DISAS_INSN(move_to_sr)
return; return;
} }
gen_move_to_sr(env, s, insn, false); gen_move_to_sr(env, s, insn, false);
gen_lookup_tb(s); gen_exit_tb(s);
} }
DISAS_INSN(move_from_usp) DISAS_INSN(move_from_usp)
...@@ -4680,7 +4680,7 @@ DISAS_INSN(cf_movec) ...@@ -4680,7 +4680,7 @@ DISAS_INSN(cf_movec)
reg = DREG(ext, 12); reg = DREG(ext, 12);
} }
gen_helper_cf_movec_to(cpu_env, tcg_const_i32(ext & 0xfff), reg); gen_helper_cf_movec_to(cpu_env, tcg_const_i32(ext & 0xfff), reg);
gen_lookup_tb(s); gen_exit_tb(s);
} }
DISAS_INSN(m68k_movec) DISAS_INSN(m68k_movec)
...@@ -4705,7 +4705,7 @@ DISAS_INSN(m68k_movec) ...@@ -4705,7 +4705,7 @@ DISAS_INSN(m68k_movec)
} else { } else {
gen_helper_m68k_movec_from(reg, cpu_env, tcg_const_i32(ext & 0xfff)); gen_helper_m68k_movec_from(reg, cpu_env, tcg_const_i32(ext & 0xfff));
} }
gen_lookup_tb(s); gen_exit_tb(s);
} }
DISAS_INSN(intouch) DISAS_INSN(intouch)
...@@ -5749,7 +5749,7 @@ DISAS_INSN(to_macsr) ...@@ -5749,7 +5749,7 @@ DISAS_INSN(to_macsr)
TCGv val; TCGv val;
SRC_EA(env, val, OS_LONG, 0, NULL); SRC_EA(env, val, OS_LONG, 0, NULL);
gen_helper_set_macsr(cpu_env, val); gen_helper_set_macsr(cpu_env, val);
gen_lookup_tb(s); gen_exit_tb(s);
} }
DISAS_INSN(to_mask) DISAS_INSN(to_mask)
...@@ -6144,9 +6144,9 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb) ...@@ -6144,9 +6144,9 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb)
tcg_gen_lookup_and_goto_ptr(); tcg_gen_lookup_and_goto_ptr();
break; break;
default: default:
case DISAS_UPDATE: case DISAS_EXIT:
update_cc_op(dc); /* We updated CC_OP and PC in gen_exit_tb, but also modified
/* indicate that the hash table must be used to find the next TB */ other state that may require returning to the main loop. */
tcg_gen_exit_tb(NULL, 0); tcg_gen_exit_tb(NULL, 0);
break; break;
case DISAS_NORETURN: case DISAS_NORETURN:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册