Diff for /np2/i386c/ia32/exception.c between versions 1.13 and 1.14

version 1.13, 2004/03/02 16:36:28 version 1.14, 2004/03/08 12:56:22
Line 85  exception(int num, int error_code) Line 85  exception(int num, int error_code)
   
         switch (num) {          switch (num) {
         case DE_EXCEPTION:      /* (F) 除算エラー */          case DE_EXCEPTION:      /* (F) 除算エラー */
           case DB_EXCEPTION:      /* (F/T) デバッグ */
         case BR_EXCEPTION:      /* (F) BOUND の範囲外 */          case BR_EXCEPTION:      /* (F) BOUND の範囲外 */
         case UD_EXCEPTION:      /* (F) 無効オペコード */          case UD_EXCEPTION:      /* (F) 無効オペコード */
         case NM_EXCEPTION:      /* (F) デバイス使用不可 (FPU が無い) */          case NM_EXCEPTION:      /* (F) デバイス使用不可 (FPU が無い) */
           case MF_EXCEPTION:      /* (F) 浮動小数点エラー */
   #if CPU_FAMILY >= 5
           case MC_EXCEPTION:      /* (A) マシンチェック */
   #endif
   #if CPU_FAMILY >= 6
           case XF_EXCEPTION:      /* (F) ストリーミング SIMD 拡張命令 */
   #endif
                 CPU_EIP = CPU_PREV_EIP;                  CPU_EIP = CPU_PREV_EIP;
                 /*FALLTHROUGH*/                  /*FALLTHROUGH*/
         case DB_EXCEPTION:      /* (F/T) デバッグ */  
         case NMI_EXCEPTION:     /* (I) NMI 割り込み */          case NMI_EXCEPTION:     /* (I) NMI 割り込み */
         case BP_EXCEPTION:      /* (T) ブレークポイント */          case BP_EXCEPTION:      /* (T) ブレークポイント */
         case OF_EXCEPTION:      /* (T) オーバーフロー */          case OF_EXCEPTION:      /* (T) オーバーフロー */
Line 116  exception(int num, int error_code) Line 123  exception(int num, int error_code)
                 errorp = 1;                  errorp = 1;
                 break;                  break;
   
         case MF_EXCEPTION:      /* (F) 浮動小数点エラー */  
                 CPU_EIP = CPU_PREV_EIP;  
                 errorp = 0;  
                 break;  
   
 #if CPU_FAMILY >= 5  
         case MC_EXCEPTION:      /* (A) マシンチェック */  
                 CPU_EIP = CPU_PREV_EIP;  
                 errorp = 0;  
                 break;  
 #endif  
   
 #if CPU_FAMILY >= 6  
         case XF_EXCEPTION:      /* (F) ストリーミング SIMD 拡張命令 */  
                 CPU_EIP = CPU_PREV_EIP;  
                 errorp = 0;  
                 break;  
 #endif  
   
         default:          default:
                 ia32_panic("exception: unknown exception (%d)", num);                  ia32_panic("exception: unknown exception (%d)", num);
                 break;                  break;
Line 143  exception(int num, int error_code) Line 131  exception(int num, int error_code)
         if (CPU_STAT_EXCEPTION_COUNTER >= 2) {          if (CPU_STAT_EXCEPTION_COUNTER >= 2) {
                 if (dftable[exctype[CPU_STAT_PREV_EXCEPTION]][exctype[num]]) {                  if (dftable[exctype[CPU_STAT_PREV_EXCEPTION]][exctype[num]]) {
                         num = DF_EXCEPTION;                          num = DF_EXCEPTION;
                           errorp = 1;
                           error_code = 0;
                 }                  }
         }          }
         CPU_STAT_PREV_EXCEPTION = num;          CPU_STAT_PREV_EXCEPTION = num;
Line 150  exception(int num, int error_code) Line 140  exception(int num, int error_code)
         VERBOSE(("exception: ---------------------------------------------------------------- end"));          VERBOSE(("exception: ---------------------------------------------------------------- end"));
   
         INTERRUPT(num, 0, errorp, error_code);          INTERRUPT(num, 0, errorp, error_code);
   #if defined(IA32_SUPPORT_DEBUG_REGISTER)
           if (num != BP_EXCEPTION) {
                   if (CPU_INST_OP32) {
                           set_eflags(REAL_EFLAGREG|RF_FLAG, RF_FLAG);
                   }
           }
   #endif
         CPU_STAT_EXCEPTION_COUNTER_CLEAR();          CPU_STAT_EXCEPTION_COUNTER_CLEAR();
         siglongjmp(exec_1step_jmpbuf, 1);          siglongjmp(exec_1step_jmpbuf, 1);
 }  }

Removed from v.1.13  
changed lines
  Added in v.1.14


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