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:
Eduardo Habkost 2020-12-12 16:55:16 +01:00
parent 69483f3115
commit 035ba06c2e
1 changed files with 18 additions and 5 deletions

View File

@ -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;