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

version 1.2, 2003/10/17 07:17:20 version 1.6, 2003/12/12 01:04:40
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        "i286xs.h"  #include        "i286xs.h"
 #include        "i286xrep.h"  #include        "i286xrep.h"
 #include        "i286xcts.h"  #include        "i286xcts.h"
 #include        "memory.h"  
 #include        "pccore.h"  #include        "pccore.h"
 #include        "bios.h"  #include        "bios.h"
 #include        "iocore.h"  #include        "iocore.h"
Line 94  I286 v30pop_ss(void) {       // 17: pop  Line 93  I286 v30pop_ss(void) {       // 17: pop 
                                 shl             eax, 4                                  // make segreg                                  shl             eax, 4                                  // make segreg
                                 mov             SS_BASE, eax                                  mov             SS_BASE, eax
                                 mov             SS_FIX, eax                                  mov             SS_FIX, eax
                                 cmp             i286reg.prefix, 0               // 00/06/24                                  cmp             i286core.s.prefix, 0    // 00/06/24
                                 je              noprefix                                  je              noprefix
                                 call    removeprefix                                  call    removeprefix
                                 pop             eax                                  pop             eax
Line 204  I286 v30mov_seg_ea(void) {      // 8E: m Line 203  I286 v30mov_seg_ea(void) {      // 8E: m
                 segsetr:ret                  segsetr:ret
   
                                 align   4                                  align   4
                 setss:  cmp             i286reg.prefix, 0               // 00/05/13                  setss:  cmp             i286core.s.prefix, 0    // 00/05/13
                                 je              noprefix                                  je              noprefix
                                 pop             eax                                  pop             eax
                                 call    eax                                             // eax<-offset removeprefix                                  call    eax                                             // eax<-offset removeprefix
Line 992  static void v30patching(void (*dst[])(vo Line 991  static void v30patching(void (*dst[])(vo
   
 #define V30PATCHING(a, b)       v30patching(a, b, sizeof(b)/sizeof(V30PATCH_T))  #define V30PATCHING(a, b)       v30patching(a, b, sizeof(b)/sizeof(V30PATCH_T))
   
 void v30init(void) {  void v30xinit(void) {
   
         CopyMemory(v30op, i286op, sizeof(v30op));          CopyMemory(v30op, i286op, sizeof(v30op));
         V30PATCHING(v30op, v30patch_op);          V30PATCHING(v30op, v30patch_op);
Line 1002  void v30init(void) { Line 1001  void v30init(void) {
         V30PATCHING(v30op_repe, v30patch_repe);          V30PATCHING(v30op_repe, v30patch_repe);
 }  }
   
 LABEL void v30(void) {  LABEL void v30x(void) {
   
         __asm {          __asm {
                                 pushad                                  pushad
                                 mov             ebx, dword ptr (i286reg.prefetchque)                                  mov             ebx, dword ptr (i286core.s.prefetchque)
                                 movzx   esi, I286_IP                                  movzx   esi, I286_IP
   
                                 cmp             I286_TRAP, 0                                  cmp             I286_TRAP, 0
Line 1017  LABEL void v30(void) { Line 1016  LABEL void v30(void) {
                                 align   4                                  align   4
 v30_mnlp:               movzx   eax, bl  v30_mnlp:               movzx   eax, bl
                                 call    v30op[eax*4]                                  call    v30op[eax*4]
                                 cmp             nevent.remainclock, 0                                  cmp             I286_REMCLOCK, 0
                                 jg              v30_mnlp                                  jg              v30_mnlp
                                 mov             dword ptr (i286reg.prefetchque), ebx                                  mov             dword ptr (i286core.s.prefetchque), ebx
                                 mov             I286_IP, si                                  mov             I286_IP, si
                                 popad                                  popad
                                 ret                                  ret
Line 1028  v30_mnlp:  movzx eax, bl Line 1027  v30_mnlp:  movzx eax, bl
 v30_dma_mnlp:   movzx   eax, bl  v30_dma_mnlp:   movzx   eax, bl
                                 call    v30op[eax*4]                                  call    v30op[eax*4]
                                 call    dmap_i286                                  call    dmap_i286
                                 cmp             nevent.remainclock, 0                                  cmp             I286_REMCLOCK, 0
                                 jg              v30_dma_mnlp                                  jg              v30_dma_mnlp
                                 mov             dword ptr (i286reg.prefetchque), ebx                                  mov             dword ptr (i286core.s.prefetchque), ebx
                                 mov             I286_IP, si                                  mov             I286_IP, si
                                 popad                                  popad
                                 ret                                  ret
Line 1042  v30_trapping: movzx eax, bl Line 1041  v30_trapping: movzx eax, bl
                                 je              v30notrap                                  je              v30notrap
                                 mov             ecx, 1                                  mov             ecx, 1
                                 call    i286x_localint                                  call    i286x_localint
 v30notrap:              mov             dword ptr (i286reg.prefetchque), ebx  v30notrap:              mov             dword ptr (i286core.s.prefetchque), ebx
                                 mov             I286_IP, si                                  mov             I286_IP, si
                                 popad                                  popad
                                 ret                                  ret
         }          }
 }  }
   
 LABEL void v30_step(void) {  LABEL void v30x_step(void) {
   
         __asm {          __asm {
                                 pushad                                  pushad
                                 mov             ebx, dword ptr (i286reg.prefetchque)                                  mov             ebx, dword ptr (i286core.s.prefetchque)
                                 movzx   esi, I286_IP                                  movzx   esi, I286_IP
   
                                 movzx   eax, bl                                  movzx   eax, bl
Line 1064  LABEL void v30_step(void) { Line 1063  LABEL void v30_step(void) {
                                 mov             ecx, 1                                  mov             ecx, 1
                                 call    i286x_localint                                  call    i286x_localint
 nexts:  nexts:
                                 mov             dword ptr (i286reg.prefetchque), ebx                                  mov             dword ptr (i286core.s.prefetchque), ebx
                                 mov             I286_IP, si                                  mov             I286_IP, si
   
                                 call    dmap_i286                                  call    dmap_i286

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


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