1
0
Fork 0

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:
Sjoerd van der Berg 2003-11-11 08:15:52 +00:00
parent aebbee499f
commit 37f7aa5de5
4 changed files with 8 additions and 6 deletions

View file

@ -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);
}

View file

@ -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 */

View file

@ -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);
}

View file

@ -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 */