Try for some fixes

This commit is contained in:
Cacodemon345
2025-09-15 15:56:00 +00:00
parent fe28a8bb62
commit 0a22140c70
3 changed files with 4 additions and 13 deletions

View File

@@ -30,12 +30,6 @@ static struct {
int TOP;
} codegen_instructions[MAX_INSTRUCTION_COUNT];
void
codegen_print_mmx(const char* str, uint32_t fetchdat)
{
pclog("MMX results: %016llX, %016llX, %016llX, %016llX, %016llX, %016llX, %016llX, %016llX (%s, fetchdat 0x%08X)\n", (unsigned long long)cpu_state.MM[0].q, (unsigned long long)cpu_state.MM[1].q, (unsigned long long)cpu_state.MM[2].q, (unsigned long long)cpu_state.MM[3].q, (unsigned long long)cpu_state.MM[4].q, (unsigned long long)cpu_state.MM[5].q, (unsigned long long)cpu_state.MM[6].q, (unsigned long long)cpu_state.MM[7].q, str, fetchdat);
}
int
codegen_get_instruction_uop(codeblock_t *block, uint32_t pc, int *first_instruction, int *TOP)
{
@@ -746,12 +740,9 @@ codegen_skip:
else
uop_MOV_IMM(ir, IREG_pc, op_pc + pc_off);
uop_MOV_IMM(ir, IREG_oldpc, old_pc);
if (op_32 != last_op_32)
uop_MOV_IMM(ir, IREG_op32, op_32);
if (op_ea_seg != last_op_ea_seg)
uop_MOV_PTR(ir, IREG_ea_seg, (void *) op_ea_seg);
if (op_ssegs != last_op_ssegs)
uop_MOV_IMM(ir, IREG_ssegs, op_ssegs);
uop_MOV_IMM(ir, IREG_op32, op_32);
uop_MOV_PTR(ir, IREG_ea_seg, (void *) op_ea_seg);
uop_MOV_IMM(ir, IREG_ssegs, op_ssegs);
uop_CALL_INSTRUCTION_FUNC(ir, op, fetchdat);
codegen_flags_changed = 0;
codegen_mark_code_present(block, cs + cpu_state.pc, 8);

View File

@@ -53,6 +53,7 @@ duplicate_uop(ir_data_t *ir, uop_t *uop, int offset)
new_uop->imm_data = uop->imm_data;
new_uop->p = uop->p;
new_uop->pc = uop->pc;
new_uop->is_a16 = uop->is_a16;
if (uop->jump_dest_uop != -1) {
new_uop->jump_dest_uop = uop->jump_dest_uop + offset;

View File

@@ -114,7 +114,6 @@ 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;