fix WIN64 checks to _WIN64
This commit is contained in:
@@ -57,7 +57,7 @@ static inline void call_long(uintptr_t func)
|
||||
|
||||
static inline void load_param_1_32(codeblock_t *block, uint32_t param)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0xb9); /*MOVL $fetchdat,%ecx*/
|
||||
#else
|
||||
addbyte(0xbf); /*MOVL $fetchdat,%edi*/
|
||||
@@ -66,7 +66,7 @@ static inline void load_param_1_32(codeblock_t *block, uint32_t param)
|
||||
}
|
||||
static inline void load_param_1_reg_32(int reg)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
if (reg & 8)
|
||||
addbyte(0x44);
|
||||
addbyte(0x89); /*MOV ECX, EAX*/
|
||||
@@ -82,7 +82,7 @@ static inline void load_param_1_reg_32(int reg)
|
||||
static inline void load_param_1_64(codeblock_t *block, uint64_t param)
|
||||
{
|
||||
addbyte(0x48);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0xb9); /*MOVL $fetchdat,%ecx*/
|
||||
#else
|
||||
addbyte(0xbf); /*MOVL $fetchdat,%edi*/
|
||||
@@ -93,7 +93,7 @@ static inline void load_param_1_64(codeblock_t *block, uint64_t param)
|
||||
|
||||
static inline void load_param_2_32(codeblock_t *block, uint32_t param)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0xba); /*MOVL $fetchdat,%edx*/
|
||||
#else
|
||||
addbyte(0xbe); /*MOVL $fetchdat,%esi*/
|
||||
@@ -102,7 +102,7 @@ static inline void load_param_2_32(codeblock_t *block, uint32_t param)
|
||||
}
|
||||
static inline void load_param_2_reg_32(int reg)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
if (reg & 8)
|
||||
addbyte(0x44);
|
||||
addbyte(0x89); /*MOV EDX, EAX*/
|
||||
@@ -117,7 +117,7 @@ static inline void load_param_2_reg_32(int reg)
|
||||
static inline void load_param_2_64(codeblock_t *block, uint64_t param)
|
||||
{
|
||||
addbyte(0x48);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0xba); /*MOVL $fetchdat,%edx*/
|
||||
#else
|
||||
addbyte(0xbe); /*MOVL $fetchdat,%esi*/
|
||||
@@ -128,7 +128,7 @@ static inline void load_param_2_reg_64(int reg)
|
||||
{
|
||||
if (reg & 8)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x4c); /*MOVL EDX,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | REG_EDX | ((reg & 7) << 3));
|
||||
@@ -140,7 +140,7 @@ static inline void load_param_2_reg_64(int reg)
|
||||
}
|
||||
else
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x48); /*MOVL EDX,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | REG_EDX | ((reg & 7) << 3));
|
||||
@@ -156,7 +156,7 @@ static inline void load_param_3_reg_32(int reg)
|
||||
{
|
||||
if (reg & 8)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x45); /*MOVL R8,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | ((reg & 7) << 3));
|
||||
@@ -168,7 +168,7 @@ static inline void load_param_3_reg_32(int reg)
|
||||
}
|
||||
else
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x41); /*MOVL R8,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | ((reg & 7) << 3));
|
||||
@@ -183,7 +183,7 @@ static inline void load_param_3_reg_64(int reg)
|
||||
{
|
||||
if (reg & 8)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x4d); /*MOVL R8,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | ((reg & 7) << 3));
|
||||
@@ -195,7 +195,7 @@ static inline void load_param_3_reg_64(int reg)
|
||||
}
|
||||
else
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x49); /*MOVL R8,reg*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xc0 | ((reg & 7) << 3));
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
@@ -70,7 +70,7 @@ void codegen_init()
|
||||
long pagemask = ~(pagesize - 1);
|
||||
#endif
|
||||
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
codeblock = VirtualAlloc(NULL, BLOCK_SIZE * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
#else
|
||||
codeblock = malloc(BLOCK_SIZE * sizeof(codeblock_t));
|
||||
@@ -295,7 +295,7 @@ void codegen_block_start_recompile(codeblock_t *block)
|
||||
|
||||
block_pos = BLOCK_GPF_OFFSET;
|
||||
#ifdef OLD_GPF
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x48); /*XOR RCX, RCX*/
|
||||
addbyte(0x31);
|
||||
addbyte(0xc9);
|
||||
|
||||
@@ -51,7 +51,7 @@ host_reg_def_t codegen_host_reg_list[CODEGEN_HOST_REGS] =
|
||||
|
||||
host_reg_def_t codegen_host_fp_reg_list[CODEGEN_HOST_FP_REGS] =
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
/*Windows x86-64 calling convention preserves XMM6-XMM15*/
|
||||
{REG_XMM6, 0},
|
||||
{REG_XMM7, 0},
|
||||
@@ -123,7 +123,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
||||
*misaligned_offset = (uint8_t)((uintptr_t)&block_write_data[block_pos] - (uintptr_t)misaligned_offset) - 1;
|
||||
host_x86_PUSH(block, REG_RAX);
|
||||
host_x86_PUSH(block, REG_RDX);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_SUB64_REG_IMM(block, REG_RSP, 0x20);
|
||||
//host_x86_MOV32_REG_REG(block, REG_ECX, uop->imm_data);
|
||||
#else
|
||||
@@ -155,7 +155,7 @@ static void build_load_routine(codeblock_t *block, int size, int is_float)
|
||||
host_x86_CALL(block, (void *)readmemql);
|
||||
host_x86_MOVQ_XREG_REG(block, REG_XMM_TEMP, REG_RAX);
|
||||
}
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_ADD64_REG_IMM(block, REG_RSP, 0x20);
|
||||
#endif
|
||||
host_x86_POP(block, REG_RDX);
|
||||
@@ -221,7 +221,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
||||
*misaligned_offset = (uint8_t)((uintptr_t)&block_write_data[block_pos] - (uintptr_t)misaligned_offset) - 1;
|
||||
host_x86_PUSH(block, REG_RAX);
|
||||
host_x86_PUSH(block, REG_RDX);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_SUB64_REG_IMM(block, REG_RSP, 0x28);
|
||||
if (size == 4 && is_float)
|
||||
host_x86_MOVD_REG_XREG(block, REG_EDX, REG_XMM_TEMP); //data
|
||||
@@ -248,7 +248,7 @@ static void build_store_routine(codeblock_t *block, int size, int is_float)
|
||||
host_x86_CALL(block, (void *)writememll);
|
||||
else if (size == 8)
|
||||
host_x86_CALL(block, (void *)writememql);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_ADD64_REG_IMM(block, REG_RSP, 0x28);
|
||||
#else
|
||||
host_x86_ADD64_REG_IMM(block, REG_RSP, 0x8);
|
||||
@@ -317,7 +317,7 @@ void codegen_backend_init()
|
||||
build_loadstore_routines(&codeblock[block_current]);
|
||||
|
||||
codegen_gpf_rout = &codeblock[block_current].data[block_pos];
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_XOR32_REG_REG(block, REG_ECX, REG_ECX);
|
||||
host_x86_XOR32_REG_REG(block, REG_EDX, REG_EDX);
|
||||
#else
|
||||
|
||||
@@ -803,7 +803,7 @@ static int codegen_FP_ENTER(codeblock_t *block, uop_t *uop)
|
||||
host_x86_TEST32_REG_IMM(block, REG_ECX, 0xc);
|
||||
branch_offset = host_x86_JZ_long(block);
|
||||
host_x86_MOV32_ABS_IMM(block, &cpu_state.oldpc, uop->imm_data);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOV32_REG_IMM(block, REG_ECX, 7);
|
||||
#else
|
||||
host_x86_MOV32_REG_IMM(block, REG_EDI, 7);
|
||||
@@ -822,7 +822,7 @@ static int codegen_MMX_ENTER(codeblock_t *block, uop_t *uop)
|
||||
host_x86_TEST32_REG_IMM(block, REG_ECX, 0xc);
|
||||
branch_offset = host_x86_JZ_long(block);
|
||||
host_x86_MOV32_ABS_IMM(block, &cpu_state.oldpc, uop->imm_data);
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOV32_REG_IMM(block, REG_ECX, 7);
|
||||
#else
|
||||
host_x86_MOV32_REG_IMM(block, REG_EDI, 7);
|
||||
@@ -852,7 +852,7 @@ static int codegen_LOAD_FUNC_ARG0(codeblock_t *block, uop_t *uop)
|
||||
|
||||
if (REG_IS_W(src_size))
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOVZX_REG_32_16(block, REG_ECX, src_reg);
|
||||
#else
|
||||
host_x86_MOVZX_REG_32_16(block, REG_EDI, src_reg);
|
||||
@@ -888,7 +888,7 @@ static int codegen_LOAD_FUNC_ARG3(codeblock_t *block, uop_t *uop)
|
||||
|
||||
static int codegen_LOAD_FUNC_ARG0_IMM(codeblock_t *block, uop_t *uop)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOV32_REG_IMM(block, REG_ECX, uop->imm_data);
|
||||
#else
|
||||
host_x86_MOV32_REG_IMM(block, REG_EDI, uop->imm_data);
|
||||
@@ -897,7 +897,7 @@ static int codegen_LOAD_FUNC_ARG0_IMM(codeblock_t *block, uop_t *uop)
|
||||
}
|
||||
static int codegen_LOAD_FUNC_ARG1_IMM(codeblock_t *block, uop_t *uop)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOV32_REG_IMM(block, REG_EDX, uop->imm_data);
|
||||
#else
|
||||
host_x86_MOV32_REG_IMM(block, REG_ESI, uop->imm_data);
|
||||
@@ -928,7 +928,7 @@ static int codegen_LOAD_SEG(codeblock_t *block, uop_t *uop)
|
||||
if (!REG_IS_W(src_size))
|
||||
fatal("LOAD_SEG %02x %p\n", uop->src_reg_a_real, uop->p);
|
||||
#endif
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
host_x86_MOV16_REG_REG(block, REG_CX, src_reg);
|
||||
host_x86_MOV64_REG_IMM(block, REG_EDX, (uint64_t)uop->p);
|
||||
#else
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
#define BITMAP windows_BITMAP
|
||||
#include <windows.h>
|
||||
#undef BITMAP
|
||||
@@ -752,7 +752,7 @@ static inline void voodoo_generate(uint8_t *code_block, voodoo_t *voodoo, voodoo
|
||||
addbyte(0x6f);
|
||||
addbyte(0x07 | (3 << 3));
|
||||
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
addbyte(0x48); /*MOV RDI, RCX (voodoo_state)*/
|
||||
addbyte(0x89);
|
||||
addbyte(0xcf);
|
||||
@@ -3428,7 +3428,7 @@ void voodoo_codegen_init(voodoo_t *voodoo)
|
||||
{
|
||||
int c;
|
||||
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
voodoo->codegen_data = VirtualAlloc(NULL, sizeof(voodoo_x86_data_t) * BLOCK_NUM * 4, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
#else
|
||||
voodoo->codegen_data = mmap(0, sizeof(voodoo_x86_data_t) * BLOCK_NUM*4, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_ANON|MAP_PRIVATE, 0, 0);
|
||||
@@ -3458,7 +3458,7 @@ void voodoo_codegen_init(voodoo_t *voodoo)
|
||||
|
||||
void voodoo_codegen_close(voodoo_t *voodoo)
|
||||
{
|
||||
#if WIN64
|
||||
#if _WIN64
|
||||
VirtualFree(voodoo->codegen_data, 0, MEM_RELEASE);
|
||||
#else
|
||||
munmap(voodoo->codegen_data, sizeof(voodoo_x86_data_t) * BLOCK_NUM*4);
|
||||
|
||||
Reference in New Issue
Block a user