OSDN Git Service

[VM][I386] .
authorK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 10 May 2019 15:09:30 +0000 (00:09 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 10 May 2019 15:09:30 +0000 (00:09 +0900)
source/src/vm/mame/emu/cpu/i386/i386ops.c
source/src/vm/mame/emu/cpu/i386/i386priv.h

index 928bfbb..681437a 100644 (file)
@@ -657,7 +657,7 @@ static void I386OP(mov_rm8_i8)(i386_state *cpustate)        // Opcode 0xc6
 
 static void I386OP(mov_r32_cr)(i386_state *cpustate)        // Opcode 0x0f 20
 {
-#if 0
+#if 1
        UINT32 oldpc = cpustate->pc;
        UINT8 modrm = FETCH(cpustate);
        //if(modrm < 0xc0) {
@@ -771,7 +771,7 @@ static void I386OP(mov_r32_dr)(i386_state *cpustate)        // Opcode 0x0f 21
 
 static void I386OP(mov_cr_r32)(i386_state *cpustate)        // Opcode 0x0f 22
 {
-#if 0
+#if 1
        UINT32 oldpc = cpustate->pc;
        UINT8 modrm = FETCH(cpustate);
        if(modrm < 0xc0) {
index d3b6ffe..bc6881d 100644 (file)
@@ -680,7 +680,7 @@ INLINE int i386_limit_check(i386_state *cpustate, int seg, UINT32 offset, UINT32
                        if(offset < size) size = offset;
                        if(/*(cpustate->sreg[seg].limit != 0) && */(((offset - size) <= cpustate->sreg[seg].limit) || ((cpustate->sreg[seg].d)?0:((offset + size - 1) > 0xffff))))
                        {
-                               logerror("Limit check at 0x%08x failed. Segment %04x, limit %08x, offset %08x (expand-down)\n",cpustate->pc,cpustate->sreg[seg].selector,cpustate->sreg[seg].limit,offset);
+                               logerror("Limit check at 0x%08x failed. Segment %04x, limit %08x, offset %08x (expand-down)\n",cpustate->prev_pc,cpustate->sreg[seg].selector,cpustate->sreg[seg].limit,offset);
                                return 1;
                        }
                }
@@ -688,7 +688,7 @@ INLINE int i386_limit_check(i386_state *cpustate, int seg, UINT32 offset, UINT32
                {
                        if(((offset + size - 1) > cpustate->sreg[seg].limit) /*&& (cpustate->sreg[seg].limit != 0)*/)
                        {
-                               logerror("Limit check at 0x%08x failed. Segment %04x, limit %08x, offset %08x\n",cpustate->pc,cpustate->sreg[seg].selector,cpustate->sreg[seg].limit,offset);
+                               logerror("Limit check at 0x%08x failed. Segment %04x, limit %08x, offset %08x\n",cpustate->prev_pc,cpustate->sreg[seg].selector,cpustate->sreg[seg].limit,offset);
                                return 1;
                        }
                }