Diff for /np2/i286x/i286xs.cpp between versions 1.2 and 1.6

version 1.2, 2003/10/19 14:56:15 version 1.6, 2004/02/18 20:11:36
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "i286.h"  #include        "cpucore.h"
 #include        "i286x.h"  #include        "i286x.h"
 #include        "i286xadr.h"  #include        "i286xadr.h"
 #include        "memory.h"  
 #include        "i286x.mcr"  #include        "i286x.mcr"
 #include        "i286xea.mcr"  #include        "i286xea.mcr"
   
Line 1401  I286 div_ea8(void) { Line 1400  I286 div_ea8(void) {
                                         movzx   ebp, byte ptr I286_REG[eax]                                          movzx   ebp, byte ptr I286_REG[eax]
                                         GET_NEXTPRE2                                          GET_NEXTPRE2
                                         jmp             divcheck                                          jmp             divcheck
                                 MEMORY_EA8(22)                                  MEMORY_EA8(17)
                                         movzx   ebp, byte ptr I286_MEM[ecx]                                          movzx   ebp, byte ptr I286_MEM[ecx]
                                         jmp             divcheck                                          jmp             divcheck
                                 EXTMEM_EA8                                  EXTMEM_EA8
Line 1433  I286 idiv_ea8(void) { Line 1432  I286 idiv_ea8(void) {
                                         movsx   ebp, byte ptr I286_REG[eax]                                          movsx   ebp, byte ptr I286_REG[eax]
                                         GET_NEXTPRE2                                          GET_NEXTPRE2
                                         jmp             idivcheck                                          jmp             idivcheck
                                 MEMORY_EA8(25)                                  MEMORY_EA8(20)
                                         movsx   ebp, byte ptr I286_MEM[ecx]                                          movsx   ebp, byte ptr I286_MEM[ecx]
                                         jmp             idivcheck                                          jmp             idivcheck
                                 EXTMEM_EA8                                  EXTMEM_EA8
Line 1576  I286 imul_ea16(void) { Line 1575  I286 imul_ea16(void) {
 I286 div_ea16(void) {  I286 div_ea16(void) {
   
                 __asm {                  __asm {
                                 PREPART_EA16(17)                                  PREPART_EA16(22)
                                         movzx   ebp, word ptr I286_REG[eax*2]                                          movzx   ebp, word ptr I286_REG[eax*2]
                                         GET_NEXTPRE2                                          GET_NEXTPRE2
                                         jmp             divcheck                                          jmp             divcheck
Line 1609  I286 div_ea16(void) { Line 1608  I286 div_ea16(void) {
 I286 idiv_ea16(void) {  I286 idiv_ea16(void) {
   
                 __asm {                  __asm {
                                 PREPART_EA16(20)                                  PREPART_EA16(25)
                                         movsx   ebp, word ptr I286_REG[eax*2]                                          movsx   ebp, word ptr I286_REG[eax*2]
                                         GET_NEXTPRE2                                          GET_NEXTPRE2
                                         jmp             idivcheck                                          jmp             idivcheck
Line 1793  I286 call_far_ea16(void) { Line 1792  I286 call_far_ea16(void) {
                                 lea             ecx, [edi + ebp]                                  lea             ecx, [edi + ebp]
                                 call    i286_memoryread_w                                  call    i286_memoryread_w
                                 mov             I286_CS, ax                                  mov             I286_CS, ax
                                 and             eax, 0000ffffh                                  movzx   eax, ax
                                   test    byte ptr (I286_MSW), MSW_PE
                                   jne             short call_far_pe
                                 shl             eax, 4                                  // make segreg                                  shl             eax, 4                                  // make segreg
                                 mov             CS_BASE, eax  call_far_base:  mov             CS_BASE, eax
                                 RESET_XPREFETCH                                  RESET_XPREFETCH
                                 ret                                  ret
                                 align   4  
                 register_eareg16:  call_far_pe:    push    offset call_far_base
                                   jmp             i286x_selector
   
   register_eareg16:
                                 INT_NUM(6)                                  INT_NUM(6)
                 }                  }
 }  }
Line 1838  I286 jmp_far_ea16(void) { Line 1842  I286 jmp_far_ea16(void) {
                                 lea             ecx, [edi + ebp]                                  lea             ecx, [edi + ebp]
                                 call    i286_memoryread_w                                  call    i286_memoryread_w
                                 mov             I286_CS, ax                                  mov             I286_CS, ax
                                 and             eax, 0000ffffh                                  movzx   eax, ax
                                   test    byte ptr (I286_MSW), MSW_PE
                                   jne             short jmp_far_pe
                                 shl             eax, 4                                  // make segreg                                  shl             eax, 4                                  // make segreg
                                 mov             CS_BASE, eax  jmp_far_base:   mov             CS_BASE, eax
                                 RESET_XPREFETCH                                  RESET_XPREFETCH
                                 ret                                  ret
                                 align   4  
                 register_eareg16:  jmp_far_pe:             push    offset jmp_far_base
                                   jmp             i286x_selector
   
   register_eareg16:
                                 INT_NUM(6)                                  INT_NUM(6)
                 }                  }
 }  }

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


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