Diff for /np2/i386c/ia32/ia32.mcr between versions 1.1 and 1.3

version 1.1, 2003/12/08 00:55:31 version 1.3, 2004/01/15 15:49:15
Line 392  do { \ Line 392  do { \
   
 #define _ADCDWORD(r, d, s) \  #define _ADCDWORD(r, d, s) \
 do { \  do { \
         (r) = (CPU_FLAGL & C_FLAG) + (s) + (d); \          DWORD __c = (CPU_FLAGL & C_FLAG); \
           (r) = (s) + (d) + __c; \
         CPU_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80000000; \          CPU_OV = ((r) ^ (s)) & ((r) ^ (d)) & 0x80000000; \
         CPU_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \          CPU_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \
         if ((r) < (s)) { \          if ((!__c && (r) < (s)) || (__c && (r) <= (s))) { \
                 CPU_FLAGL |= C_FLAG; \                  CPU_FLAGL |= C_FLAG; \
         } \          } \
         if ((r) == 0) { \          if ((r) == 0) { \
Line 430  do { \ Line 431  do { \
   
 #define _DWORD_SBB(r, d, s) \  #define _DWORD_SBB(r, d, s) \
 do { \  do { \
         (r) = (d) - (s) - (CPU_FLAGL & C_FLAG); \          DWORD __c = (CPU_FLAGL & C_FLAG); \
           (r) = (d) - (s) - __c; \
         CPU_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80000000; \          CPU_OV = ((d) ^ (r)) & ((d) ^ (s)) & 0x80000000; \
         CPU_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \          CPU_FLAGL = (BYTE)(((r) ^ (d) ^ (s)) & A_FLAG); \
         if ((d) < (s)) { \          if ((d) < (s) + __c) { \
                 CPU_FLAGL |= C_FLAG; \                  CPU_FLAGL |= C_FLAG; \
         } \          } \
         if ((r) == 0) { \          if ((r) == 0) { \
Line 816  do { \ Line 818  do { \
   
 #define PUSH0_32(reg) \  #define PUSH0_32(reg) \
 do { \  do { \
         if (!CPU_STAT_SS32) { \          if (CPU_STAT_SS32) { \
                 REGPUSH0_32_16(reg); \  
         } else { \  
                 REGPUSH0_32(reg); \                  REGPUSH0_32(reg); \
           } else { \
                   REGPUSH0_32_16(reg); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
Line 847  do { \ Line 849  do { \
 #define SP_PUSH0_32(reg) \  #define SP_PUSH0_32(reg) \
 do { \  do { \
         DWORD esp = CPU_ESP; \          DWORD esp = CPU_ESP; \
         if (!CPU_STAT_SS32) { \          if (CPU_STAT_SS32) { \
                 CPU_SP -= 4; \  
                 cpu_vmemorywrite_d(CPU_SS_INDEX, CPU_SP, esp); \  
         } else { \  
                 CPU_ESP -= 4; \                  CPU_ESP -= 4; \
                 cpu_vmemorywrite_d(CPU_SS_INDEX, CPU_ESP, esp); \                  cpu_vmemorywrite_d(CPU_SS_INDEX, CPU_ESP, esp); \
           } else { \
                   CPU_SP -= 4; \
                   cpu_vmemorywrite_d(CPU_SS_INDEX, CPU_SP, esp); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
Line 905  do { \ Line 907  do { \
   
 #define POP0_32(reg) \  #define POP0_32(reg) \
 do { \  do { \
         if (!CPU_STAT_SS32) { \          if (CPU_STAT_SS32) { \
                 REGPOP0_32_16(reg); \  
         } else { \  
                 REGPOP0_32(reg); \                  REGPOP0_32(reg); \
           } else { \
                   REGPOP0_32_16(reg); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
Line 923  do { \ Line 925  do { \
   
 #define ESP_POP0_32(reg) \  #define ESP_POP0_32(reg) \
 do { \  do { \
         if (!CPU_STAT_SS32) { \          if (CPU_STAT_SS32) { \
                 (reg) = cpu_vmemoryread_d(CPU_SS_INDEX, CPU_SP); \  
         } else { \  
                 (reg) = cpu_vmemoryread_d(CPU_SS_INDEX, CPU_ESP); \                  (reg) = cpu_vmemoryread_d(CPU_SS_INDEX, CPU_ESP); \
           } else { \
                   (reg) = cpu_vmemoryread_d(CPU_SS_INDEX, CPU_SP); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
Line 944  do { \ Line 946  do { \
   
 #define JMPNEAR(clock) \  #define JMPNEAR(clock) \
 do { \  do { \
         WORD __ip; \          DWORD __ip; \
         CPU_WORKCLOCK(clock); \          CPU_WORKCLOCK(clock); \
         __ip = __CWDE(cpu_codefetch_w(CPU_EIP)); \          __ip = __CWDE(cpu_codefetch_w(CPU_EIP)); \
         __ip += 2; \          __ip += 2; \

Removed from v.1.1  
changed lines
  Added in v.1.3


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