|
|
| version 1.3, 2004/01/13 16:38:49 | version 1.5, 2004/01/15 15:50:33 |
|---|---|
| Line 199 show_profile_ea(void) | Line 199 show_profile_ea(void) |
| #ifdef IA32_INSTRUCTION_TRACE | #ifdef IA32_INSTRUCTION_TRACE |
| static FILE *fp = NULL; | static FILE *fp = NULL; |
| BOOL cpu_inst_trace = FALSE; | |
| static const char *opcode_1byte[2][256] = { | static const char *opcode_1byte[2][256] = { |
| /* 16bit */ | /* 16bit */ |
| Line 650 exec_1step(void) | Line 651 exec_1step(void) |
| DWORD eip = CPU_EIP; | DWORD eip = CPU_EIP; |
| int num = 0; | int num = 0; |
| int i; | int i; |
| BOOL t = cpu_inst_trace; | |
| if (fp == NULL) { | if ((CPU_CS == 0x0018) && (eip >= 0x0000b42c) && (eip <= 0x0000b435)) { |
| t = FALSE; | |
| } | |
| if ((fp == NULL) && t) { | |
| fp = fopen("ia32trace.txt", "a"); | fp = fopen("ia32trace.txt", "a"); |
| } | } |
| fprintf(fp, "%04x:%08x:", CPU_CS, CPU_EIP); | if (fp && t) { |
| fprintf(fp, "%04x:%08x:", CPU_CS, eip); | |
| } | |
| #endif | #endif |
| for (prefix = 0; prefix < MAX_PREFIX; prefix++) { | for (prefix = 0; prefix < MAX_PREFIX; prefix++) { |
| Line 662 exec_1step(void) | Line 670 exec_1step(void) |
| #ifdef IA32_INSTRUCTION_TRACE | #ifdef IA32_INSTRUCTION_TRACE |
| eip++; | eip++; |
| if (fp) { | if (fp && t) { |
| opcode[num++] = op; | opcode[num++] = op; |
| fprintf(fp, " %02x", op); | fprintf(fp, " %02x", op); |
| } | } |
| Line 682 exec_1step(void) | Line 690 exec_1step(void) |
| PROFILE_INC_INST_1BYTE(op); | PROFILE_INC_INST_1BYTE(op); |
| #ifdef IA32_INSTRUCTION_TRACE | #ifdef IA32_INSTRUCTION_TRACE |
| if (fp) { | if (fp && t) { |
| BYTE op2 = 0; | BYTE op2 = 0; |
| if ((op == 0x0f) | if ((op == 0x0f) |
| || (op >= 0x80 && op <= 0x83) | || (op >= 0x80 && op <= 0x83) |