mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
tcg: Introduce tcg_op_buf_count and tcg_op_buf_full
The method by which we count the number of ops emitted is going to change. Abstract that away into some inlines. Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
0a7df5da98
commit
fe700adb3d
19 changed files with 79 additions and 113 deletions
|
@ -1673,7 +1673,6 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
{
|
||||
CPUState *cs = CPU(cpu);
|
||||
CPUMBState *env = &cpu->env;
|
||||
uint16_t *gen_opc_end;
|
||||
uint32_t pc_start;
|
||||
int j, lj;
|
||||
struct DisasContext ctx;
|
||||
|
@ -1688,8 +1687,6 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
dc->tb = tb;
|
||||
org_flags = dc->synced_flags = dc->tb_flags = tb->flags;
|
||||
|
||||
gen_opc_end = tcg_ctx.gen_opc_buf + OPC_MAX_SIZE;
|
||||
|
||||
dc->is_jmp = DISAS_NEXT;
|
||||
dc->jmp = 0;
|
||||
dc->delayed_branch = !!(dc->tb_flags & D_FLAG);
|
||||
|
@ -1732,7 +1729,7 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
check_breakpoint(env, dc);
|
||||
|
||||
if (search_pc) {
|
||||
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf;
|
||||
j = tcg_op_buf_count();
|
||||
if (lj < j) {
|
||||
lj++;
|
||||
while (lj < j)
|
||||
|
@ -1795,10 +1792,10 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
break;
|
||||
}
|
||||
} while (!dc->is_jmp && !dc->cpustate_changed
|
||||
&& tcg_ctx.gen_opc_ptr < gen_opc_end
|
||||
&& !singlestep
|
||||
&& (dc->pc < next_page_start)
|
||||
&& num_insns < max_insns);
|
||||
&& !tcg_op_buf_full()
|
||||
&& !singlestep
|
||||
&& (dc->pc < next_page_start)
|
||||
&& num_insns < max_insns);
|
||||
|
||||
npc = dc->pc;
|
||||
if (dc->jmp == JMP_DIRECT || dc->jmp == JMP_DIRECT_CC) {
|
||||
|
@ -1848,7 +1845,7 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
gen_tb_end(tb, num_insns);
|
||||
|
||||
if (search_pc) {
|
||||
j = tcg_ctx.gen_opc_ptr - tcg_ctx.gen_opc_buf;
|
||||
j = tcg_op_buf_count();
|
||||
lj++;
|
||||
while (lj <= j)
|
||||
tcg_ctx.gen_opc_instr_start[lj++] = 0;
|
||||
|
@ -1864,9 +1861,8 @@ gen_intermediate_code_internal(MicroBlazeCPU *cpu, TranslationBlock *tb,
|
|||
#if DISAS_GNU
|
||||
log_target_disas(env, pc_start, dc->pc - pc_start, 0);
|
||||
#endif
|
||||
qemu_log("\nisize=%d osize=%td\n",
|
||||
dc->pc - pc_start, tcg_ctx.gen_opc_ptr -
|
||||
tcg_ctx.gen_opc_buf);
|
||||
qemu_log("\nisize=%d osize=%d\n",
|
||||
dc->pc - pc_start, tcg_op_buf_count());
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue