Fix opcode group 6
Fix POP R/M have to change sp before the r/m lookup Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1429
This commit is contained in:
parent
aebbee499f
commit
37f7aa5de5
4 changed files with 8 additions and 6 deletions
|
@ -36,7 +36,6 @@
|
|||
Bitu loadval;
|
||||
if (rm >= 0xc0 ) {GetEArw;loadval=*earw;}
|
||||
else {GetEAa;loadval=LoadMw(eaa);}
|
||||
break;
|
||||
switch (which) {
|
||||
case 0x02:CPU_LLDT(loadval);break;
|
||||
case 0x03:CPU_LTR(loadval);break;
|
||||
|
@ -44,6 +43,7 @@
|
|||
case 0x05:CPU_VERW(loadval);break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
LOG(LOG_CPU,LOG_ERROR)("GRP6:Illegal call %2X",which);
|
||||
}
|
||||
|
|
|
@ -307,9 +307,10 @@
|
|||
}
|
||||
CASE_D(0x8f) /* POP Ed */
|
||||
{
|
||||
Bit32u val=Pop_32();
|
||||
GetRM;
|
||||
if (rm >= 0xc0 ) {GetEArd;*eard=Pop_32();}
|
||||
else {GetEAa;SaveMd(eaa,Pop_32());}
|
||||
if (rm >= 0xc0 ) {GetEArd;*eard=val;}
|
||||
else {GetEAa;SaveMd(eaa,val);}
|
||||
break;
|
||||
}
|
||||
CASE_D(0x91) /* XCHG ECX,EAX */
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
Bitu loadval;
|
||||
if (rm >= 0xc0 ) {GetEArw;loadval=*earw;}
|
||||
else {GetEAa;loadval=LoadMw(eaa);}
|
||||
break;
|
||||
switch (which) {
|
||||
case 0x02:CPU_LLDT(loadval);break;
|
||||
case 0x03:CPU_LTR(loadval);break;
|
||||
|
@ -44,6 +43,7 @@
|
|||
case 0x05:CPU_VERW(loadval);break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
LOG(LOG_CPU,LOG_ERROR)("GRP6:Illegal call %2X",which);
|
||||
}
|
||||
|
|
|
@ -511,9 +511,10 @@
|
|||
}
|
||||
CASE_W(0x8f) /* POP Ew */
|
||||
{
|
||||
Bit16u val=Pop_16();
|
||||
GetRM;
|
||||
if (rm >= 0xc0 ) {GetEArw;*earw=Pop_16();}
|
||||
else {GetEAa;SaveMw(eaa,Pop_16());}
|
||||
if (rm >= 0xc0 ) {GetEArw;*earw=val;}
|
||||
else {GetEAa;SaveMw(eaa,val);}
|
||||
break;
|
||||
}
|
||||
CASE_B(0x90) /* NOP */
|
||||
|
|
Loading…
Add table
Reference in a new issue