mirror of https://github.com/xemu-project/xemu.git
tcg: cpu_exec_{enter,exit} helpers
Move invocation of CPUClass.cpu_exec_*() to separate helpers, to make it easier to refactor that code later. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Claudio Fontana <cfontana@suse.de> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20201212155530.23098-10-cfontana@suse.de> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
69483f3115
commit
035ba06c2e
|
@ -236,9 +236,22 @@ static void cpu_exec_nocache(CPUState *cpu, int max_cycles,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void cpu_exec_step_atomic(CPUState *cpu)
|
static void cpu_exec_enter(CPUState *cpu)
|
||||||
{
|
{
|
||||||
CPUClass *cc = CPU_GET_CLASS(cpu);
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
|
|
||||||
|
cc->cpu_exec_enter(cpu);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void cpu_exec_exit(CPUState *cpu)
|
||||||
|
{
|
||||||
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
|
|
||||||
|
cc->cpu_exec_exit(cpu);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cpu_exec_step_atomic(CPUState *cpu)
|
||||||
|
{
|
||||||
TranslationBlock *tb;
|
TranslationBlock *tb;
|
||||||
target_ulong cs_base, pc;
|
target_ulong cs_base, pc;
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
|
@ -257,11 +270,11 @@ void cpu_exec_step_atomic(CPUState *cpu)
|
||||||
|
|
||||||
/* Since we got here, we know that parallel_cpus must be true. */
|
/* Since we got here, we know that parallel_cpus must be true. */
|
||||||
parallel_cpus = false;
|
parallel_cpus = false;
|
||||||
cc->cpu_exec_enter(cpu);
|
cpu_exec_enter(cpu);
|
||||||
/* execute the generated code */
|
/* execute the generated code */
|
||||||
trace_exec_tb(tb, pc);
|
trace_exec_tb(tb, pc);
|
||||||
cpu_tb_exec(cpu, tb);
|
cpu_tb_exec(cpu, tb);
|
||||||
cc->cpu_exec_exit(cpu);
|
cpu_exec_exit(cpu);
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* The mmap_lock is dropped by tb_gen_code if it runs out of
|
* The mmap_lock is dropped by tb_gen_code if it runs out of
|
||||||
|
@ -713,7 +726,7 @@ int cpu_exec(CPUState *cpu)
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
|
|
||||||
cc->cpu_exec_enter(cpu);
|
cpu_exec_enter(cpu);
|
||||||
|
|
||||||
/* Calculate difference between guest clock and host clock.
|
/* Calculate difference between guest clock and host clock.
|
||||||
* This delay includes the delay of the last cycle, so
|
* This delay includes the delay of the last cycle, so
|
||||||
|
@ -775,7 +788,7 @@ int cpu_exec(CPUState *cpu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cc->cpu_exec_exit(cpu);
|
cpu_exec_exit(cpu);
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue