Diff for /np2/i386c/ia32/resolve.c between versions 1.3 and 1.4

version 1.3, 2004/01/07 14:49:42 version 1.4, 2004/01/23 14:33:26
Line 71  static DWORD Line 71  static DWORD
 ea_bx_si(void)  ea_bx_si(void)
 {  {
   
         PROFILE_INC_EA16(0);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (CPU_BX + CPU_SI);          return (CPU_BX + CPU_SI);
 }  }
Line 82  ea_bx_si_disp8(void) Line 80  ea_bx_si_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(1);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX + CPU_SI);          return (adrs + CPU_BX + CPU_SI);
Line 94  ea_bx_si_disp16(void) Line 90  ea_bx_si_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(2);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX + CPU_SI);          return (adrs + CPU_BX + CPU_SI);
Line 105  static DWORD Line 99  static DWORD
 ea_bx_di(void)  ea_bx_di(void)
 {  {
   
         PROFILE_INC_EA16(3);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (CPU_BX + CPU_DI);          return (CPU_BX + CPU_DI);
 }  }
Line 116  ea_bx_di_disp8(void) Line 108  ea_bx_di_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(4);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX + CPU_DI);          return (adrs + CPU_BX + CPU_DI);
Line 128  ea_bx_di_disp16(void) Line 118  ea_bx_di_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(5);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX + CPU_DI);          return (adrs + CPU_BX + CPU_DI);
Line 139  static DWORD Line 127  static DWORD
 ea_bp_si(void)  ea_bp_si(void)
 {  {
   
         PROFILE_INC_EA16(6);  
   
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (CPU_BP + CPU_SI);          return (CPU_BP + CPU_SI);
 }  }
Line 150  ea_bp_si_disp8(void) Line 136  ea_bp_si_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(7);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP + CPU_SI);          return (adrs + CPU_BP + CPU_SI);
Line 162  ea_bp_si_disp16(void) Line 146  ea_bp_si_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(8);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP + CPU_SI);          return (adrs + CPU_BP + CPU_SI);
Line 173  static DWORD Line 155  static DWORD
 ea_bp_di(void)  ea_bp_di(void)
 {  {
   
         PROFILE_INC_EA16(9);  
   
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (CPU_BP + CPU_DI);          return (CPU_BP + CPU_DI);
 }  }
Line 184  ea_bp_di_disp8(void) Line 164  ea_bp_di_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(10);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP + CPU_DI);          return (adrs + CPU_BP + CPU_DI);
Line 196  ea_bp_di_disp16(void) Line 174  ea_bp_di_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(11);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP + CPU_DI);          return (adrs + CPU_BP + CPU_DI);
Line 207  static DWORD Line 183  static DWORD
 ea_si(void)  ea_si(void)
 {  {
   
         PROFILE_INC_EA16(12);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_SI;          return CPU_SI;
 }  }
Line 218  ea_si_disp8(void) Line 192  ea_si_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(13);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_SI);          return (adrs + CPU_SI);
Line 230  ea_si_disp16(void) Line 202  ea_si_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(14);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_SI);          return (adrs + CPU_SI);
Line 241  static DWORD Line 211  static DWORD
 ea_di(void)  ea_di(void)
 {  {
   
         PROFILE_INC_EA16(15);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_DI;          return CPU_DI;
 }  }
Line 252  ea_di_disp8(void) Line 220  ea_di_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(16);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_DI);          return (adrs + CPU_DI);
Line 264  ea_di_disp16(void) Line 230  ea_di_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(17);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_DI);          return (adrs + CPU_DI);
Line 276  ea_disp16(void) Line 240  ea_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(18);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs;          return adrs;
Line 288  ea_bp_disp8(void) Line 250  ea_bp_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(19);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP);          return (adrs + CPU_BP);
Line 300  ea_bp_disp16(void) Line 260  ea_bp_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(20);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return (adrs + CPU_BP);          return (adrs + CPU_BP);
Line 311  static DWORD Line 269  static DWORD
 ea_bx(void)  ea_bx(void)
 {  {
   
         PROFILE_INC_EA16(21);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_BX;          return CPU_BX;
 }  }
Line 322  ea_bx_disp8(void) Line 278  ea_bx_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA16(22);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX);          return (adrs + CPU_BX);
Line 334  ea_bx_disp16(void) Line 288  ea_bx_disp16(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA16(23);  
   
         GET_PCWORD(adrs);          GET_PCWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return (adrs + CPU_BX);          return (adrs + CPU_BX);
Line 367  static DWORD Line 319  static DWORD
 ea32_eax(void)  ea32_eax(void)
 {  {
   
         PROFILE_INC_EA32(0);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_EAX;          return CPU_EAX;
 }  }
Line 377  static DWORD Line 327  static DWORD
 ea32_ecx(void)  ea32_ecx(void)
 {  {
   
         PROFILE_INC_EA32(1);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_ECX;          return CPU_ECX;
 }  }
Line 387  static DWORD Line 335  static DWORD
 ea32_edx(void)  ea32_edx(void)
 {  {
   
         PROFILE_INC_EA32(2);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_EDX;          return CPU_EDX;
 }  }
Line 397  static DWORD Line 343  static DWORD
 ea32_ebx(void)  ea32_ebx(void)
 {  {
   
         PROFILE_INC_EA32(3);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_EBX;          return CPU_EBX;
 }  }
Line 409  ea32_sib(void) Line 353  ea32_sib(void)
         DWORD op, dst;          DWORD op, dst;
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         PROFILE_INC_EA32(4);  
   
         GET_PCBYTE(op);          GET_PCBYTE(op);
   
         base = op & 7;          base = op & 7;
         idx = (op >> 3) & 7;          idx = (op >> 3) & 7;
         scale = (op >> 6) & 3;          scale = (op >> 6) & 3;
   
         switch (base) {          switch (base) {
         case 0: case 1: case 2: case 3: case 6: case 7:          case 0: case 1: case 2: case 3: case 6: case 7:
                 CPU_INST_SEGREG_INDEX = DS_FIX;                  CPU_INST_SEGREG_INDEX = DS_FIX;
Line 439  ea32_sib(void) Line 381  ea32_sib(void)
         }          }
         if (idx != 4)          if (idx != 4)
                 dst += CPU_REGS_DWORD(idx) << scale;                  dst += CPU_REGS_DWORD(idx) << scale;
         PROFILE_INC_SIB0(op);  
         return dst;          return dst;
 }  }
   
Line 448  ea32_disp32(void) Line 389  ea32_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(5);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs;          return adrs;
Line 459  static DWORD Line 398  static DWORD
 ea32_esi(void)  ea32_esi(void)
 {  {
   
         PROFILE_INC_EA32(6);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_ESI;          return CPU_ESI;
 }  }
Line 469  static DWORD Line 406  static DWORD
 ea32_edi(void)  ea32_edi(void)
 {  {
   
         PROFILE_INC_EA32(7);  
   
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return CPU_EDI;          return CPU_EDI;
 }  }
Line 480  ea32_eax_disp8(void) Line 415  ea32_eax_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(8);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EAX;          return adrs + CPU_EAX;
Line 492  ea32_ecx_disp8(void) Line 425  ea32_ecx_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(9);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_ECX;          return adrs + CPU_ECX;
Line 504  ea32_edx_disp8(void) Line 435  ea32_edx_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(10);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EDX;          return adrs + CPU_EDX;
Line 516  ea32_ebx_disp8(void) Line 445  ea32_ebx_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(11);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EBX;          return adrs + CPU_EBX;
Line 530  ea32_sib_disp8(void) Line 457  ea32_sib_disp8(void)
         DWORD op;          DWORD op;
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         PROFILE_INC_EA32(12);  
   
         GET_PCBYTE(op);          GET_PCBYTE(op);
         GET_PCBYTESD(adrs);  
   
         base = op & 7;          base = op & 7;
         idx = (op >> 3) & 7;          idx = (op >> 3) & 7;
         scale = (op >> 6) & 3;          scale = (op >> 6) & 3;
   
           GET_PCBYTESD(adrs);
   
         switch (base) {          switch (base) {
         case 0: case 1: case 2: case 3: case 6: case 7:          case 0: case 1: case 2: case 3: case 6: case 7:
                 CPU_INST_SEGREG_INDEX = DS_FIX;                  CPU_INST_SEGREG_INDEX = DS_FIX;
Line 549  ea32_sib_disp8(void) Line 475  ea32_sib_disp8(void)
         }          }
         if (idx != 4)          if (idx != 4)
                 adrs += CPU_REGS_DWORD(idx) << scale;                  adrs += CPU_REGS_DWORD(idx) << scale;
         PROFILE_INC_SIB1(op);  
         return CPU_REGS_DWORD(base) + adrs;          return CPU_REGS_DWORD(base) + adrs;
 }  }
   
Line 558  ea32_ebp_disp8(void) Line 483  ea32_ebp_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(13);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return adrs + CPU_EBP;          return adrs + CPU_EBP;
Line 570  ea32_esi_disp8(void) Line 493  ea32_esi_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(14);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_ESI;          return adrs + CPU_ESI;
Line 582  ea32_edi_disp8(void) Line 503  ea32_edi_disp8(void)
 {  {
         SDWORD adrs;          SDWORD adrs;
   
         PROFILE_INC_EA32(15);  
   
         GET_PCBYTESD(adrs);          GET_PCBYTESD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EDI;          return adrs + CPU_EDI;
Line 594  ea32_eax_disp32(void) Line 513  ea32_eax_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(16);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EAX;          return adrs + CPU_EAX;
Line 606  ea32_ecx_disp32(void) Line 523  ea32_ecx_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(17);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_ECX;          return adrs + CPU_ECX;
Line 618  ea32_edx_disp32(void) Line 533  ea32_edx_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(18);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EDX;          return adrs + CPU_EDX;
Line 630  ea32_ebx_disp32(void) Line 543  ea32_ebx_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(19);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EBX;          return adrs + CPU_EBX;
Line 644  ea32_sib_disp32(void) Line 555  ea32_sib_disp32(void)
         DWORD op;          DWORD op;
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         PROFILE_INC_EA32(20);  
   
         GET_PCBYTE(op);          GET_PCBYTE(op);
         GET_PCDWORD(adrs);  
   
         base = op & 7;          base = op & 7;
         idx = (op >> 3) & 7;          idx = (op >> 3) & 7;
         scale = (op >> 6) & 3;          scale = (op >> 6) & 3;
   
           GET_PCDWORD(adrs);
   
         switch (base) {          switch (base) {
         case 0: case 1: case 2: case 3: case 6: case 7:          case 0: case 1: case 2: case 3: case 6: case 7:
                 CPU_INST_SEGREG_INDEX = DS_FIX;                  CPU_INST_SEGREG_INDEX = DS_FIX;
Line 663  ea32_sib_disp32(void) Line 573  ea32_sib_disp32(void)
         }          }
         if (idx != 4)          if (idx != 4)
                 adrs += CPU_REGS_DWORD(idx) << scale;                  adrs += CPU_REGS_DWORD(idx) << scale;
         PROFILE_INC_SIB2(op);  
         return CPU_REGS_DWORD(base) + adrs;          return CPU_REGS_DWORD(base) + adrs;
 }  }
   
Line 672  ea32_ebp_disp32(void) Line 581  ea32_ebp_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(21);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = SS_FIX;          CPU_INST_SEGREG_INDEX = SS_FIX;
         return adrs + CPU_EBP;          return adrs + CPU_EBP;
Line 684  ea32_esi_disp32(void) Line 591  ea32_esi_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(22);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_ESI;          return adrs + CPU_ESI;
Line 696  ea32_edi_disp32(void) Line 601  ea32_edi_disp32(void)
 {  {
         DWORD adrs;          DWORD adrs;
   
         PROFILE_INC_EA32(23);  
   
         GET_PCDWORD(adrs);          GET_PCDWORD(adrs);
         CPU_INST_SEGREG_INDEX = DS_FIX;          CPU_INST_SEGREG_INDEX = DS_FIX;
         return adrs + CPU_EDI;          return adrs + CPU_EDI;

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


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