Diff for /np2/i386c/ia32/ia32.mcr between versions 1.2 and 1.4

version 1.2, 2003/12/22 18:00:31 version 1.4, 2004/01/23 14:33:26
Line 117  do { \ Line 117  do { \
 #define SET_EIP(v) \  #define SET_EIP(v) \
 do { \  do { \
         DWORD __new_ip = (v); \          DWORD __new_ip = (v); \
         if (!CPU_INST_OP32) { \          if (!CPU_STATSAVE.cpu_inst_default.op_32) {\
                 __new_ip &= 0x0000ffff; \                  __new_ip &= 0x0000ffff; \
         } \          } \
         if (__new_ip > CPU_STAT_CS_LIMIT) { \          if (__new_ip > CPU_STAT_CS_LIMIT) { \
                   VERBOSE(("SET_EIP: new_ip = %08x, limit = %08x", __new_ip, CPU_STAT_CS_LIMIT)); \
                 EXCEPTION(GP_EXCEPTION, 0); \                  EXCEPTION(GP_EXCEPTION, 0); \
         } \          } \
         CPU_EIP = __new_ip; \          CPU_EIP = __new_ip; \
Line 129  do { \ Line 130  do { \
 #define ADD_EIP(v) \  #define ADD_EIP(v) \
 do { \  do { \
         DWORD __tmp_ip = CPU_EIP + (v); \          DWORD __tmp_ip = CPU_EIP + (v); \
         if (!CPU_INST_OP32) { \          if (!CPU_STATSAVE.cpu_inst_default.op_32) {\
                 __tmp_ip &= 0x0000ffff; \                  __tmp_ip &= 0x0000ffff; \
         } \          } \
         if (__tmp_ip > CPU_STAT_CS_LIMIT) { \          if (__tmp_ip > CPU_STAT_CS_LIMIT) { \
                   VERBOSE(("SET_EIP: new_ip = %08x, limit = %08x", __tmp_ip, CPU_STAT_CS_LIMIT)); \
                 EXCEPTION(GP_EXCEPTION, 0); \                  EXCEPTION(GP_EXCEPTION, 0); \
         } \          } \
         CPU_EIP = __tmp_ip; \          CPU_EIP = __tmp_ip; \
Line 392  do { \ Line 394  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 433  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) { \

Removed from v.1.2  
changed lines
  Added in v.1.4


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