Disable unrolling for now

This commit is contained in:
Cacodemon345
2025-09-15 11:47:03 +00:00
parent 1d8877fba7
commit fe28a8bb62
8 changed files with 2 additions and 46 deletions

View File

@@ -114,6 +114,7 @@ int codegen_can_unroll_full(codeblock_t *block, ir_data_t *ir, uint32_t next_pc,
static inline int
codegen_can_unroll(codeblock_t *block, ir_data_t *ir, uint32_t next_pc, uint32_t dest_addr)
{
return 0;
if (block->flags & CODEBLOCK_BYTE_MASK)
return 0;

View File

@@ -16,8 +16,6 @@
#include "codegen_ops_mmx_arith.h"
#include "codegen_ops_helpers.h"
extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
#define ropParith(func) \
uint32_t rop##func(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), \
uint32_t fetchdat, uint32_t op_32, uint32_t op_pc) \
@@ -39,9 +37,6 @@ extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
uop_##func(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q); \
} \
\
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__); \
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat); \
uop_CALL_FUNC(ir, codegen_print_mmx); \
return op_pc + 1; \
}

View File

@@ -16,8 +16,6 @@
#include "codegen_ops_mmx_cmp.h"
#include "codegen_ops_helpers.h"
extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
#define ropPcmp(func) \
uint32_t rop##func(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), \
uint32_t fetchdat, uint32_t op_32, uint32_t op_pc) \
@@ -39,9 +37,6 @@ extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
uop_##func(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q); \
} \
\
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__); \
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat); \
uop_CALL_FUNC(ir, codegen_print_mmx); \
return op_pc + 1; \
}

View File

@@ -38,9 +38,6 @@ ropMOVD_r_d(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
uop_MOVZX(ir, IREG_MM(dest_reg), IREG_temp0);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
uint32_t
@@ -67,9 +64,6 @@ ropMOVD_d_r(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
uop_MEM_STORE_REG(ir, ireg_seg_base(target_seg), IREG_eaaddr, IREG_temp0);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
@@ -92,9 +86,6 @@ ropMOVQ_r_q(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
uop_MEM_LOAD_REG(ir, IREG_MM(dest_reg), ireg_seg_base(target_seg), IREG_eaaddr);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
@@ -118,8 +109,5 @@ ropMOVQ_q_r(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
uop_MEM_STORE_REG(ir, ireg_seg_base(target_seg), IREG_eaaddr, IREG_MM(src_reg));
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}

View File

@@ -37,8 +37,6 @@ ropPAND(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t fetc
uop_AND(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
uint32_t
@@ -61,8 +59,6 @@ ropPANDN(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t fet
uop_ANDN(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
uint32_t
@@ -85,8 +81,6 @@ ropPOR(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t fetch
uop_OR(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}
uint32_t
@@ -109,8 +103,5 @@ ropPXOR(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t fetc
uop_XOR(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q);
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
return op_pc + 1;
}

View File

@@ -16,7 +16,6 @@
#include "codegen_ops_mmx_pack.h"
#include "codegen_ops_helpers.h"
extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
#define ropPpack(func) \
uint32_t rop##func(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), \
uint32_t fetchdat, uint32_t op_32, uint32_t op_pc) \
@@ -38,9 +37,6 @@ extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
uop_##func(ir, IREG_MM(dest_reg), IREG_MM(dest_reg), IREG_temp0_Q); \
} \
\
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__); \
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat); \
uop_CALL_FUNC(ir, codegen_print_mmx); \
return op_pc + 1; \
}

View File

@@ -16,7 +16,6 @@
#include "codegen_ops_mmx_shift.h"
#include "codegen_ops_helpers.h"
extern void codegen_print_mmx(const char* str, uint32_t fetchdat);
uint32_t
ropPSxxW_imm(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t fetchdat, UNUSED(uint32_t op_32), uint32_t op_pc)
{
@@ -40,9 +39,6 @@ ropPSxxW_imm(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
return 0;
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
codegen_mark_code_present(block, cs + op_pc + 1, 1);
return op_pc + 2;
}
@@ -69,9 +65,6 @@ ropPSxxD_imm(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
return 0;
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
codegen_mark_code_present(block, cs + op_pc + 1, 1);
return op_pc + 2;
}
@@ -98,9 +91,6 @@ ropPSxxQ_imm(codeblock_t *block, ir_data_t *ir, UNUSED(uint8_t opcode), uint32_t
return 0;
}
uop_LOAD_FUNC_ARG_IMM(ir, 0, (uintptr_t)__func__);
uop_LOAD_FUNC_ARG_IMM(ir, 1, fetchdat);
uop_CALL_FUNC(ir, codegen_print_mmx);
codegen_mark_code_present(block, cs + op_pc + 1, 1);
return op_pc + 2;
}

View File

@@ -201,7 +201,7 @@ static const uint8_t native_requested_sizes[9][8] =
[REG_DOUBLE][IREG_SIZE_Q >> IREG_SIZE_SHIFT] = 1,
[REG_FPU_ST_DOUBLE][IREG_SIZE_Q >> IREG_SIZE_SHIFT] = 1,
[REG_POINTER][(sizeof(void *) == 4) ? (IREG_SIZE_L >> IREG_SIZE_SHIFT) : (IREG_SIZE_Q >> IREG_SIZE_SHIFT)] = 1
[REG_POINTER][IREG_SIZE_Q >> IREG_SIZE_SHIFT] = 1
};
void