win32 port (initial patch by kazu)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@692 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2004-03-31 23:37:16 +00:00
parent bb27c19087
commit 67b915a5dd
33 changed files with 1160 additions and 763 deletions

View file

@ -141,7 +141,7 @@ int tlb_set_page(CPUState *env, uint32_t vaddr, uint32_t paddr, int prot,
#if defined(__powerpc__)
#define USE_DIRECT_JUMP
#endif
#if defined(__i386__)
#if defined(__i386__) && !defined(_WIN32)
#define USE_DIRECT_JUMP
#endif
@ -322,13 +322,19 @@ do {\
#elif defined(__i386__) && defined(USE_DIRECT_JUMP)
#ifdef _WIN32
#define ASM_PREVIOUS_SECTION ".section .text\n"
#else
#define ASM_PREVIOUS_SECTION ".previous\n"
#endif
/* we patch the jump instruction directly */
#define JUMP_TB(opname, tbparam, n, eip)\
do {\
asm volatile (".section \".data\"\n"\
asm volatile (".section .data\n"\
"__op_label" #n "." stringify(opname) ":\n"\
".long 1f\n"\
".previous\n"\
ASM_PREVIOUS_SECTION \
"jmp __op_jmp" #n "\n"\
"1:\n");\
T0 = (long)(tbparam) + (n);\