| version 1.1, 2003/12/08 00:55:31 | version 1.12, 2004/02/20 16:09:04 | 
| Line 33 | Line 33 | 
 |  |  | 
 | #include "inst_table.h" | #include "inst_table.h" | 
 |  |  | 
| jmp_buf exec_1step_jmpbuf; |  | 
|  | sigjmp_buf exec_1step_jmpbuf; | 
|  |  | 
|  | int cpu_inst_trace = 0; | 
|  |  | 
 |  |  | 
 | void | void | 
 | exec_1step(void) | exec_1step(void) | 
 | { | { | 
| BYTE op; | int prefix; | 
|  | UINT32 op; | 
 |  |  | 
 | CPU_PREV_EIP = CPU_EIP; | CPU_PREV_EIP = CPU_EIP; | 
 |  | CPU_STATSAVE.cpu_inst = CPU_STATSAVE.cpu_inst_default; | 
 |  |  | 
| cpu_inst = cpu_inst_default; | #if defined(IA32_INSTRUCTION_TRACE) | 
|  | if (cpu_inst_trace) { | 
|  | char buf[256]; | 
|  | UINT32 eip = CPU_EIP; | 
|  | int rv; | 
|  |  | 
|  | rv = disasm(&eip, buf, sizeof(buf) - 1); | 
|  | if (rv == 0) { | 
|  | VERBOSE(("%04x:%08x: %s", CPU_CS, CPU_EIP, buf)); | 
|  | } | 
|  | } | 
|  | #endif | 
 |  |  | 
| for (;;) { | for (prefix = 0; prefix < MAX_PREFIX; prefix++) { | 
 | GET_PCBYTE(op); | GET_PCBYTE(op); | 
 |  |  | 
 | /* prefix */ | /* prefix */ | 
| Line 54  exec_1step(void) | Line 71  exec_1step(void) | 
 | } | } | 
 | break; | break; | 
 | } | } | 
 |  | if (prefix == MAX_PREFIX) { | 
 |  | EXCEPTION(UD_EXCEPTION, 0); | 
 |  | } | 
 |  |  | 
 | /* normal / rep, but not use */ | /* normal / rep, but not use */ | 
 | if (!(insttable_info[op] & INST_STRING) || !CPU_INST_REPUSE) { | if (!(insttable_info[op] & INST_STRING) || !CPU_INST_REPUSE) { |