tcg: make tcg_allowed global

Change the tcg_enabled() and make sure user build still enable tcg
even x86 softmmu disable tcg.

Signed-off-by: Yang Zhong <yang.zhong@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Yang Zhong 2017-07-03 18:12:12 +08:00 committed by Paolo Bonzini
parent 290dae4678
commit 8e2b72990e
4 changed files with 9 additions and 7 deletions

View File

@ -23,6 +23,8 @@
#include "exec/exec-all.h"
#include "exec/memory-internal.h"
bool tcg_allowed;
/* exit the current TB, but without causing any exception to be raised */
void cpu_loop_exit_noexc(CPUState *cpu)
{

View File

@ -33,7 +33,6 @@
#include "qemu/main-loop.h"
unsigned long tcg_tb_size;
static bool tcg_allowed = true;
#ifndef CONFIG_USER_ONLY
/* mask must never be zero, except for A20 change call */

View File

@ -784,6 +784,7 @@ static void tb_htable_init(void)
size. */
void tcg_exec_init(unsigned long tb_size)
{
tcg_allowed = true;
cpu_gen_init();
page_init();
tb_htable_init();
@ -795,11 +796,6 @@ void tcg_exec_init(unsigned long tb_size)
#endif
}
bool tcg_enabled(void)
{
return tcg_ctx.code_gen_buffer != NULL;
}
/*
* Allocate a new translation block. Flush the translation buffer if
* too many translation blocks or too much generated code.

View File

@ -76,8 +76,13 @@ int qemu_openpty_raw(int *aslave, char *pty_name);
sendto(sockfd, buf, len, flags, destaddr, addrlen)
#endif
extern bool tcg_allowed;
void tcg_exec_init(unsigned long tb_size);
bool tcg_enabled(void);
#ifdef CONFIG_TCG
#define tcg_enabled() (tcg_allowed)
#else
#define tcg_enabled() 0
#endif
void cpu_exec_init_all(void);
void cpu_exec_step_atomic(CPUState *cpu);