From 87ee489f7ddf860ed4353cc9ebcc494299062147 Mon Sep 17 00:00:00 2001 From: OBattler Date: Fri, 30 Apr 2021 19:30:35 +0200 Subject: [PATCH] And now for the new recompiler. --- src/codegen_new/codegen_backend_x86-64_ops.c | 4 ++-- src/codegen_new/codegen_reg.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/codegen_new/codegen_backend_x86-64_ops.c b/src/codegen_new/codegen_backend_x86-64_ops.c index 784bfa03d..bf3b77112 100644 --- a/src/codegen_new/codegen_backend_x86-64_ops.c +++ b/src/codegen_new/codegen_backend_x86-64_ops.c @@ -32,7 +32,7 @@ static inline void call(codeblock_t *block, uintptr_t func) codegen_alloc_bytes(block, 5); diff = func - (uintptr_t)&block_write_data[block_pos + 5]; - if (diff >= -0x80000000 && diff < 0x7fffffff) + if (diff >= -0x80000000ULL && diff < 0x7fffffffULL) { codegen_addbyte(block, 0xE8); /*CALL*/ codegen_addlong(block, (uint32_t)diff); @@ -53,7 +53,7 @@ static inline void jmp(codeblock_t *block, uintptr_t func) codegen_alloc_bytes(block, 5); diff = func - (uintptr_t)&block_write_data[block_pos + 5]; - if (diff >= -0x80000000 && diff < 0x7fffffff) + if (diff >= -0x80000000ULL && diff < 0x7fffffffULL) { codegen_addbyte(block, 0xe9); /*JMP*/ codegen_addlong(block, (uint32_t)diff); diff --git a/src/codegen_new/codegen_reg.c b/src/codegen_new/codegen_reg.c index c8ad46cea..4a866ae8b 100644 --- a/src/codegen_new/codegen_reg.c +++ b/src/codegen_new/codegen_reg.c @@ -512,7 +512,7 @@ void codegen_reg_write_imm(codeblock_t *block, ir_reg_t ir_reg, uint32_t imm_dat case REG_DWORD: if ((uintptr_t)p < 256) - codegen_direct_write_32_imm_stack(block, (int)p, imm_data); + codegen_direct_write_32_imm_stack(block, (int)(intptr_t)p, imm_data); else codegen_direct_write_32_imm(block, p, imm_data); break;