linux-user: create a dummy per arch cpu_loop.c

Create a cpu_loop-common.h for future use by
these new files and use it in the existing
main.c

Introduce target_cpu_copy_regs():
declare the function in cpu_loop-common.h
and an empty function for each target,
to move all the cpu_loop prologues to this function.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20180411185651.21351-2-laurent@vivier.eu>
This commit is contained in:
Laurent Vivier
2018-04-11 20:56:33 +02:00
parent cb6ac802ef
commit cd71c08964
24 changed files with 588 additions and 15 deletions

View File

@@ -33,9 +33,9 @@
#include "qemu/timer.h"
#include "qemu/envlist.h"
#include "elf.h"
#include "exec/log.h"
#include "trace/control.h"
#include "target_elf.h"
#include "cpu_loop-common.h"
char *exec_path;
@@ -50,17 +50,6 @@ unsigned long mmap_min_addr;
unsigned long guest_base;
int have_guest_base;
#define EXCP_DUMP(env, fmt, ...) \
do { \
CPUState *cs = ENV_GET_CPU(env); \
fprintf(stderr, fmt , ## __VA_ARGS__); \
cpu_dump_state(cs, stderr, fprintf, 0); \
if (qemu_log_separate()) { \
qemu_log(fmt, ## __VA_ARGS__); \
log_cpu_state(cs, 0); \
} \
} while (0)
/*
* When running 32-on-64 we should make sure we can fit all of the possible
* guest address space into a contiguous chunk of virtual host memory.
@@ -4736,6 +4725,8 @@ int main(int argc, char **argv, char **envp)
tcg_prologue_init(tcg_ctx);
tcg_region_init();
target_cpu_copy_regs(env, regs);
#if defined(TARGET_I386)
env->cr[0] = CR0_PG_MASK | CR0_WP_MASK | CR0_PE_MASK;
env->hflags |= HF_PE_MASK | HF_CPL_MASK;
@@ -5125,8 +5116,6 @@ int main(int argc, char **argv, char **envp)
env->sregs[WINDOW_START] = regs->windowstart;
env->pc = regs->pc;
}
#else
#error unsupported target CPU
#endif
#if defined(TARGET_ARM) || defined(TARGET_M68K)