@@ -29,7 +29,7 @@
#include "qom/object.h"
int tcg_tb_size;
-static bool tcg_allowed = true;
+bool tcg_allowed;
static int tcg_init(MachineState *ms)
{
@@ -830,6 +830,7 @@ static void tcg_handle_interrupt(CPUState *cpu, int mask)
size. */
void tcg_exec_init(unsigned long tb_size)
{
+ tcg_allowed = true;
cpu_gen_init();
page_init();
tb_htable_init();
@@ -844,11 +845,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.
@@ -35,6 +35,7 @@
#include "trace/control.h"
#include "glib-compat.h"
+bool tcg_allowed = true;
int singlestep;
unsigned long mmap_min_addr;
unsigned long guest_base;
@@ -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);
@@ -38,7 +38,7 @@
#include "glib-compat.h"
char *exec_path;
-
+bool tcg_allowed = true;
int singlestep;
static const char *filename;
static const char *argv0;
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> --- accel/tcg/tcg-all.c | 2 +- accel/tcg/translate-all.c | 6 +----- bsd-user/main.c | 1 + include/qemu-common.h | 7 ++++++- linux-user/main.c | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-)