--- np2/i386c/ia32/cpu.c 2005/02/04 05:32:24 1.21 +++ np2/i386c/ia32/cpu.c 2005/03/12 12:32:54 1.24 @@ -1,4 +1,4 @@ -/* $Id: cpu.c,v 1.21 2005/02/04 05:32:24 yui Exp $ */ +/* $Id: cpu.c,v 1.24 2005/03/12 12:32:54 monaka Exp $ */ /* * Copyright (c) 2002-2003 NONAKA Kimihiro @@ -12,8 +12,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES @@ -34,6 +32,10 @@ #include "inst_table.h" +#if defined(ENABLE_TRAP) +#include "steptrap.h" +#endif + sigjmp_buf exec_1step_jmpbuf; @@ -55,41 +57,6 @@ int cpu_inst_trace = 0; #endif -// #define IPTRACE (1 << 14) - -#if defined(TRACE) && IPTRACE -static UINT trpos = 0; -static UINT32 trcs[IPTRACE]; -static UINT32 treip[IPTRACE]; - -void iptrace_out(void) { - - FILEH fh; - UINT s; - UINT32 cs; - UINT32 eip; - char buf[32]; - - s = trpos; - if (s > IPTRACE) { - s -= IPTRACE; - } - else { - s = 0; - } - fh = file_create_c("his.txt"); - while(s < trpos) { - cs = trcs[s & (IPTRACE - 1)]; - eip = treip[s & (IPTRACE - 1)]; - s++; - SPRINTF(buf, "%.4x:%.8x\r\n", cs, eip); - file_write(fh, buf, strlen(buf)); - } - file_close(fh); -} -#endif - - void exec_1step(void) { @@ -99,12 +66,8 @@ exec_1step(void) CPU_PREV_EIP = CPU_EIP; CPU_STATSAVE.cpu_inst = CPU_STATSAVE.cpu_inst_default; -#if defined(TRACE) && IPTRACE -if (CPU_CS == 0x000c) { - trcs[trpos & (IPTRACE - 1)] = CPU_CS; - treip[trpos & (IPTRACE - 1)] = CPU_EIP; - trpos++; -} +#if defined(ENABLE_TRAP) + steptrap(CPU_CS, CPU_EIP); #endif #if defined(IA32_INSTRUCTION_TRACE)