Improve tracing prints
This commit is contained in:
parent
057b80f8cc
commit
f5232543f5
|
@ -1229,22 +1229,26 @@ u32 execute_store_cpsr_body(u32 _cpsr, u32 store_mask, u32 address)
|
|||
}
|
||||
|
||||
#ifdef TRACE_INSTRUCTIONS
|
||||
void trace_instruction(u32 pc)
|
||||
void trace_instruction(u32 pc, u32 mode)
|
||||
{
|
||||
printf("Executed %x\n", pc);
|
||||
if (mode)
|
||||
printf("Executed arm %x\n", pc);
|
||||
else
|
||||
printf("Executed thumb %x\n", pc);
|
||||
}
|
||||
|
||||
#define emit_trace_instruction(pc) \
|
||||
#define emit_trace_instruction(pc, mode) \
|
||||
generate_save_flags(); \
|
||||
ARM_STMDB_WB(0, ARMREG_SP, 0x500C); \
|
||||
arm_load_imm_32bit(reg_a0, pc); \
|
||||
arm_load_imm_32bit(reg_a1, mode); \
|
||||
generate_function_call(trace_instruction); \
|
||||
ARM_LDMIA_WB(0, ARMREG_SP, 0x500C); \
|
||||
generate_restore_flags();
|
||||
#define emit_trace_thumb_instruction(pc) \
|
||||
emit_trace_instruction(pc)
|
||||
emit_trace_instruction(pc, 0)
|
||||
#define emit_trace_arm_instruction(pc) \
|
||||
emit_trace_instruction(pc)
|
||||
emit_trace_instruction(pc, 1)
|
||||
#else
|
||||
#define emit_trace_thumb_instruction(pc)
|
||||
#define emit_trace_arm_instruction(pc)
|
||||
|
|
|
@ -2346,19 +2346,23 @@ u32 execute_store_cpsr_body(u32 _cpsr, u32 store_mask, u32 address)
|
|||
generate_function_call(mips_cheat_hook);
|
||||
|
||||
#ifdef TRACE_INSTRUCTIONS
|
||||
void trace_instruction(u32 pc)
|
||||
void trace_instruction(u32 pc, u32 mode)
|
||||
{
|
||||
printf("Executed %x\n", pc);
|
||||
if (mode)
|
||||
printf("Executed arm %x\n", pc);
|
||||
else
|
||||
printf("Executed thumb %x\n", pc);
|
||||
}
|
||||
|
||||
#define emit_trace_instruction(pc) \
|
||||
#define emit_trace_instruction(pc, mode) \
|
||||
emit_save_regs(false); \
|
||||
generate_load_imm(reg_a0, pc); \
|
||||
generate_load_imm(reg_a1, mode); \
|
||||
genccall(&trace_instruction); \
|
||||
mips_emit_nop(); \
|
||||
emit_restore_regs(false)
|
||||
#define emit_trace_thumb_instruction(pc) emit_trace_instruction(pc)
|
||||
#define emit_trace_arm_instruction(pc) emit_trace_instruction(pc)
|
||||
#define emit_trace_thumb_instruction(pc) emit_trace_instruction(pc, 0)
|
||||
#define emit_trace_arm_instruction(pc) emit_trace_instruction(pc, 1)
|
||||
#else
|
||||
#define emit_trace_thumb_instruction(pc)
|
||||
#define emit_trace_arm_instruction(pc)
|
||||
|
|
|
@ -529,22 +529,22 @@ typedef enum
|
|||
generate_mov(ireg, rv) \
|
||||
|
||||
#ifdef TRACE_INSTRUCTIONS
|
||||
void function_cc trace_instruction(u32 pc)
|
||||
void function_cc trace_instruction(u32 pc, u32 mode)
|
||||
{
|
||||
printf("Executed %x\n", pc);
|
||||
if (mode)
|
||||
printf("Executed arm %x\n", pc);
|
||||
else
|
||||
printf("Executed thumb %x\n", pc);
|
||||
}
|
||||
|
||||
#define emit_trace_thumb_instruction(pc) \
|
||||
x86_emit_push_reg(eax); \
|
||||
x86_emit_push_reg(ecx); \
|
||||
x86_emit_push_reg(edx); \
|
||||
x86_emit_mov_reg_imm(eax, pc); \
|
||||
generate_function_call(trace_instruction); \
|
||||
x86_emit_pop_reg(edx); \
|
||||
x86_emit_pop_reg(ecx); \
|
||||
x86_emit_pop_reg(eax);
|
||||
#define emit_trace_instruction(pc, mode) \
|
||||
x86_emit_mov_reg_imm(reg_a0, pc); \
|
||||
x86_emit_mov_reg_imm(reg_a1, mode); \
|
||||
generate_function_call(trace_instruction);
|
||||
#define emit_trace_arm_instruction(pc) \
|
||||
emit_trace_thumb_instruction(pc)
|
||||
emit_trace_instruction(pc, 1)
|
||||
#define emit_trace_thumb_instruction(pc) \
|
||||
emit_trace_instruction(pc, 0)
|
||||
#else
|
||||
#define emit_trace_thumb_instruction(pc)
|
||||
#define emit_trace_arm_instruction(pc)
|
||||
|
|
Loading…
Reference in New Issue