Disable unrolling for now
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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; \
|
||||
}
|
||||
|
||||
|
||||
@@ -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; \
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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; \
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user