Diff for /np2/i386c/ia32/resolve.c between versions 1.1 and 1.5

version 1.1, 2003/12/08 00:55:31 version 1.5, 2004/01/27 15:53:56
Line 32 Line 32
 #include "ia32.mcr"  #include "ia32.mcr"
   
   
 static DWORD (*calc_ea_dst_tbl[0x100])(void);  DWORD (*calc_ea_dst_tbl[0x100])(void);
 static DWORD (*calc_ea32_dst_tbl[0x100])(void);  DWORD (*calc_ea32_dst_tbl[0x100])(void);
   
   
   #if defined(DEBUG) || !defined(IA32_INLINE_CALC_EA)
 DWORD  DWORD
 calc_ea_dst(DWORD op)  calc_ea_dst(DWORD op)
 {  {
   
           __ASSERT(op < 0x100);
   
         if (!CPU_INST_AS32)          if (!CPU_INST_AS32)
                 return ((*calc_ea_dst_tbl[op])() & 0xffff);                  return ((*calc_ea_dst_tbl[op])() & 0xffff);
         return (*calc_ea32_dst_tbl[op])();          return (*calc_ea32_dst_tbl[op])();
 }  }
   #endif  /* IA32_INLINE_CALC_EA */
   
   
 /*  /*
Line 352  ea32_sib(void) Line 355  ea32_sib(void)
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         GET_PCBYTE(op);          GET_PCBYTE(op);
         dst = 0;        /* compiler happy */  
   
         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 372  ea32_sib(void) Line 374  ea32_sib(void)
                 CPU_INST_SEGREG_INDEX = DS_FIX;                  CPU_INST_SEGREG_INDEX = DS_FIX;
                 GET_PCDWORD(dst);                  GET_PCDWORD(dst);
                 break;                  break;
   
           default:
                   dst = 0;        /* compiler happy */
                   ia32_panic("ea32_sib: invalid base = %d", base);
                   break;
         }          }
         if (idx != 4)          if (idx != 4)
                 dst += CPU_REGS_DWORD(idx) << scale;                  dst += CPU_REGS_DWORD(idx) << scale;
Line 452  ea32_sib_disp8(void) Line 459  ea32_sib_disp8(void)
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         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_disp32(void) Line 557  ea32_sib_disp32(void)
         DWORD base, idx, scale;          DWORD base, idx, scale;
   
         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;

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


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