Diff for /np2/i386c/ia32/cpu.c between versions 1.26 and 1.27

version 1.26, 2011/01/15 17:17:23 version 1.27, 2012/01/08 11:32:16
Line 54  int ctx_index = 0; Line 54  int ctx_index = 0;
 int cpu_inst_trace = 0;  int cpu_inst_trace = 0;
 #endif  #endif
   
   #if defined(DEBUG)
   int cpu_debug_rep_cont = 0;
   CPU_REGS cpu_debug_rep_regs;
   #endif
   
   
 void  void
 exec_1step(void)  exec_1step(void)
Line 84  exec_1step(void) Line 89  exec_1step(void)
   
                         buf[0] = '\0';                          buf[0] = '\0';
                         for (i = 0; i < len; i++) {                          for (i = 0; i < len; i++) {
                                 snprintf(tmp, sizeof(tmp), "%02x ", d->opcode[i]);                                  snprintf(tmp, sizeof(tmp), "%02x ", d->opbyte[i]);
                                 milstr_ncat(buf, tmp, sizeof(buf));                                  milstr_ncat(buf, tmp, sizeof(buf));
                         }                          }
                         for (; i < 8; i++) {                          for (; i < 8; i++) {
Line 94  exec_1step(void) Line 99  exec_1step(void)
   
                         buf[0] = '\0';                          buf[0] = '\0';
                         for (; i < d->nopbytes; i++) {                          for (; i < d->nopbytes; i++) {
                                 snprintf(tmp, sizeof(tmp), "%02x ", d->opcode[i]);                                  snprintf(tmp, sizeof(tmp), "%02x ", d->opbyte[i]);
                                 milstr_ncat(buf, tmp, sizeof(buf));                                  milstr_ncat(buf, tmp, sizeof(buf));
                                 if ((i % 8) == 7) {                                  if ((i % 8) == 7) {
                                         VERBOSE(("             : %s", buf));                                          VERBOSE(("             : %s", buf));
Line 154  exec_1step(void) Line 159  exec_1step(void)
   
         /* 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) {
   #if defined(DEBUG)
                   cpu_debug_rep_cont = 0;
   #endif
                 (*insttable_1byte[CPU_INST_OP32][op])();                  (*insttable_1byte[CPU_INST_OP32][op])();
 #if defined(IA32_SUPPORT_DEBUG_REGISTER)  #if defined(IA32_SUPPORT_DEBUG_REGISTER)
                 goto check_break_point;                  goto check_break_point;
Line 164  exec_1step(void) Line 172  exec_1step(void)
   
         /* rep */          /* rep */
         CPU_WORKCLOCK(5);          CPU_WORKCLOCK(5);
   #if defined(DEBUG)
           if (!cpu_debug_rep_cont) {
                   cpu_debug_rep_cont = 1;
                   cpu_debug_rep_regs = CPU_STATSAVE.cpu_regs;
           }
   #endif
         if (!CPU_INST_AS32) {          if (!CPU_INST_AS32) {
                 if (CPU_CX != 0) {                  if (CPU_CX != 0) {
                         if (!(insttable_info[op] & REP_CHECKZF)) {                          if (!(insttable_info[op] & REP_CHECKZF)) {
                                 /* rep */                                  /* rep */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_CX == 0)                                          if (--CPU_CX == 0) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;
Line 181  exec_1step(void) Line 199  exec_1step(void)
                                 /* repe */                                  /* repe */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_CX == 0 || CC_NZ)                                          if (--CPU_CX == 0 || CC_NZ) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;
Line 192  exec_1step(void) Line 214  exec_1step(void)
                                 /* repne */                                  /* repne */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_CX == 0 || CC_Z)                                          if (--CPU_CX == 0 || CC_Z) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;
Line 207  exec_1step(void) Line 233  exec_1step(void)
                                 /* rep */                                  /* rep */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_ECX == 0)                                          if (--CPU_ECX == 0) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;
Line 218  exec_1step(void) Line 248  exec_1step(void)
                                 /* repe */                                  /* repe */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_ECX == 0 || CC_NZ)                                          if (--CPU_ECX == 0 || CC_NZ) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;
Line 229  exec_1step(void) Line 263  exec_1step(void)
                                 /* repne */                                  /* repne */
                                 for (;;) {                                  for (;;) {
                                         (*insttable_1byte[CPU_INST_OP32][op])();                                          (*insttable_1byte[CPU_INST_OP32][op])();
                                         if (--CPU_ECX == 0 || CC_Z)                                          if (--CPU_ECX == 0 || CC_Z) {
   #if defined(DEBUG)
                                                   cpu_debug_rep_cont = 0;
   #endif
                                                 break;                                                  break;
                                           }
                                         if (CPU_REMCLOCK <= 0) {                                          if (CPU_REMCLOCK <= 0) {
                                                 CPU_EIP = CPU_PREV_EIP;                                                  CPU_EIP = CPU_PREV_EIP;
                                                 break;                                                  break;

Removed from v.1.26  
changed lines
  Added in v.1.27


RetroPC.NET-CVS <cvs@retropc.net>