Diff for /np2/i386c/ia32/ia32.mcr between versions 1.25 and 1.29

version 1.25, 2008/03/22 04:03:07 version 1.29, 2011/12/21 18:07:57
Line 1 Line 1
 /*      $Id$    */  
   
 /*  /*
  * Copyright (c) 2002-2003 NONAKA Kimihiro   * Copyright (c) 2002-2003 NONAKA Kimihiro
  * All rights reserved.   * All rights reserved.
Line 74  do { \ Line 72  do { \
   
 #define CPU_HALT() \  #define CPU_HALT() \
 do { \  do { \
         CPU_REMCLOCK = -1; \          CPU_REMCLOCK = -1; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define IRQCHECKTERM() \  #define IRQCHECKTERM() \
Line 89  do { \ Line 87  do { \
 /*  /*
  * instruction pointer   * instruction pointer
  */   */
 /* コードフェッチに使用するので、OpSize の影響を受けてはいけない */  /* コードフェッチに使用するので、OpSize の影響を受けてはいけない */
 #define _ADD_EIP(v) \  #define _ADD_EIP(v) \
 do { \  do { \
         UINT32 __tmp_ip = CPU_EIP + (v); \          UINT32 __tmp_ip = CPU_EIP + (v); \
Line 697  do { \ Line 695  do { \
  */   */
 #define REGPUSH(reg, clock) \  #define REGPUSH(reg, clock) \
 do { \  do { \
         UINT16 new_sp = CPU_SP - 2; \          UINT16 __new_sp = CPU_SP - 2; \
         CPU_WORKCLOCK(clock); \          CPU_WORKCLOCK(clock); \
         cpu_vmemorywrite_w(CPU_SS_INDEX, new_sp, reg); \          cpu_vmemorywrite_w(CPU_SS_INDEX, __new_sp, reg); \
         CPU_SP = new_sp; \          CPU_SP = __new_sp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define REGPUSH_32(reg, clock) \  #define REGPUSH_32(reg, clock) \
 do { \  do { \
         UINT32 new_esp = CPU_ESP - 4; \          UINT32 __new_esp = CPU_ESP - 4; \
         CPU_WORKCLOCK(clock); \          CPU_WORKCLOCK(clock); \
         cpu_vmemorywrite_d(CPU_SS_INDEX, new_esp, reg); \          cpu_vmemorywrite_d(CPU_SS_INDEX, __new_esp, reg); \
         CPU_ESP = new_esp; \          CPU_ESP = __new_esp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define REGPUSH0(reg) \  #define REGPUSH0(reg) \
 do { \  do { \
         UINT16 new_sp = CPU_SP - 2; \          UINT16 __new_sp = CPU_SP - 2; \
         cpu_vmemorywrite_w(CPU_SS_INDEX, new_sp, (UINT16)reg); \          cpu_vmemorywrite_w(CPU_SS_INDEX, __new_sp, (UINT16)reg); \
         CPU_SP = new_sp; \          CPU_SP = __new_sp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 /* Operand Size == 16 && Stack Size == 32 */  /* Operand Size == 16 && Stack Size == 32 */
 #define REGPUSH0_16_32(reg) \  #define REGPUSH0_16_32(reg) \
 do { \  do { \
         UINT32 new_esp = CPU_ESP - 2; \          UINT32 __new_esp = CPU_ESP - 2; \
         cpu_vmemorywrite_w(CPU_SS_INDEX, new_esp, (UINT16)reg); \          cpu_vmemorywrite_w(CPU_SS_INDEX, __new_esp, (UINT16)reg); \
         CPU_ESP = new_esp; \          CPU_ESP = __new_esp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 /* Operand Size == 32 && Stack Size == 16 */  /* Operand Size == 32 && Stack Size == 16 */
 #define REGPUSH0_32_16(reg) \  #define REGPUSH0_32_16(reg) \
 do { \  do { \
         UINT16 new_sp = CPU_SP - 4; \          UINT16 __new_sp = CPU_SP - 4; \
         cpu_vmemorywrite_d(CPU_SS_INDEX, new_sp, reg); \          cpu_vmemorywrite_d(CPU_SS_INDEX, __new_sp, reg); \
         CPU_SP = new_sp; \          CPU_SP = __new_sp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define REGPUSH0_32(reg) \  #define REGPUSH0_32(reg) \
 do { \  do { \
         UINT32 new_esp = CPU_ESP - 4; \          UINT32 __new_esp = CPU_ESP - 4; \
         cpu_vmemorywrite_d(CPU_SS_INDEX, new_esp, reg); \          cpu_vmemorywrite_d(CPU_SS_INDEX, __new_esp, reg); \
         CPU_ESP = new_esp; \          CPU_ESP = __new_esp; \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define PUSH0_16(reg) \  #define PUSH0_16(reg) \
Line 829  do { \ Line 827  do { \
  */   */
 #define SP_PUSH_16(reg) \  #define SP_PUSH_16(reg) \
 do { \  do { \
         UINT16 sp = CPU_SP; \          UINT16 __sp = CPU_SP; \
         if (!CPU_STAT_SS32) { \          if (!CPU_STAT_SS32) { \
                 REGPUSH0(sp); \                  REGPUSH0(__sp); \
         } else { \          } else { \
                 REGPUSH0_16_32(sp); \                  REGPUSH0_16_32(__sp); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define ESP_PUSH_32(reg) \  #define ESP_PUSH_32(reg) \
 do { \  do { \
         UINT32 sp = CPU_ESP; \          UINT32 __esp = CPU_ESP; \
         if (!CPU_STAT_SS32) { \          if (!CPU_STAT_SS32) { \
                 REGPUSH0_32_16(sp); \                  REGPUSH0_32_16(__esp); \
         } else { \          } else { \
                 REGPUSH0_32(sp); \                  REGPUSH0_32(__esp); \
         } \          } \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define SP_POP_16(reg) \  #define SP_POP_16(reg) \
 do { \  do { \
         UINT32 sp; \          UINT32 __sp; \
         if (!CPU_STAT_SS32) { \          if (!CPU_STAT_SS32) { \
                 sp = CPU_SP; \                  __sp = CPU_SP; \
         } else { \          } else { \
                 sp = CPU_ESP; \                  __sp = CPU_ESP; \
         } \          } \
         CPU_SP = cpu_vmemoryread_w(CPU_SS_INDEX, sp); \          CPU_SP = cpu_vmemoryread_w(CPU_SS_INDEX, __sp); \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
 #define ESP_POP_32(reg) \  #define ESP_POP_32(reg) \
 do { \  do { \
         UINT32 sp; \          UINT32 __esp; \
         if (!CPU_STAT_SS32) { \          if (!CPU_STAT_SS32) { \
                 sp = CPU_SP; \                  __esp = CPU_SP; \
         } else { \          } else { \
                 sp = CPU_ESP; \                  __esp = CPU_ESP; \
         } \          } \
         CPU_ESP = cpu_vmemoryread_d(CPU_SS_INDEX, sp); \          CPU_ESP = cpu_vmemoryread_d(CPU_SS_INDEX, __esp); \
 } while (/*CONSTCOND*/ 0)  } while (/*CONSTCOND*/ 0)
   
   

Removed from v.1.25  
changed lines
  Added in v.1.29


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