Fixes to SMSW/LMSW and LAR
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@938
This commit is contained in:
parent
2abe0736f6
commit
53c514eb2e
2 changed files with 11 additions and 14 deletions
|
@ -399,7 +399,7 @@ switch (inst.code.op) {
|
|||
CPU_SGDT(limit,base);
|
||||
SaveMw(inst.rm_eaa,limit);
|
||||
SaveMd(inst.rm_eaa+2,base);
|
||||
break;
|
||||
goto nextopcode;
|
||||
}
|
||||
case 1: /* SIDT */
|
||||
{
|
||||
|
@ -407,26 +407,23 @@ switch (inst.code.op) {
|
|||
CPU_SIDT(limit,base);
|
||||
SaveMw(inst.rm_eaa,limit);
|
||||
SaveMd(inst.rm_eaa+2,base);
|
||||
break;
|
||||
goto nextopcode;
|
||||
}
|
||||
case 2: /* LGDT */
|
||||
CPU_LGDT(LoadMw(inst.rm_eaa),LoadMd(inst.rm_eaa+2)&((inst.code.op == O_GRP7w) ? 0xFFFFFF : 0xFFFFFFFF));
|
||||
break;
|
||||
goto nextopcode;
|
||||
case 3: /* LIDT */
|
||||
CPU_LIDT(LoadMw(inst.rm_eaa),LoadMd(inst.rm_eaa+2)&((inst.code.op == O_GRP7w) ? 0xFFFFFF : 0xFFFFFFFF));
|
||||
break;
|
||||
goto nextopcode;
|
||||
case 4: /* SMSW */
|
||||
{
|
||||
Bitu word;CPU_SMSW(word);
|
||||
SaveMw(inst.rm_eaa,word);
|
||||
inst.op1.d=word;
|
||||
break;
|
||||
}
|
||||
case 6: /* LMSW */
|
||||
{
|
||||
Bitu word=LoadMw(inst.rm_eaa);
|
||||
CPU_LMSW(word);
|
||||
break;
|
||||
}
|
||||
CPU_LMSW(inst.op1.w);
|
||||
goto nextopcode;
|
||||
default:
|
||||
LOG(LOG_ERROR|LOG_CPU,"Group 7 Illegal subfunction %X",inst.rm_index);
|
||||
}
|
||||
|
|
|
@ -181,8 +181,8 @@ static OpCode OpCodeTable[1024]={
|
|||
{L_MODRM ,0xb ,0 ,M_GRP },{L_MODRM ,0xc ,0 ,M_GRP },
|
||||
|
||||
/* 0x100 - 0x107 */
|
||||
{L_MODRM ,O_GRP6w ,0 ,0 },{L_MODRM ,O_GRP7w ,0 ,0 },
|
||||
{0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 },
|
||||
{L_MODRM ,O_GRP6w ,S_Ew ,M_Ew },{L_MODRM ,O_GRP7w ,S_Ew ,M_Ew },
|
||||
{L_MODRM ,O_LAR ,S_Gw ,M_Ew },{0 ,0 ,0 ,0 },
|
||||
{0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 },
|
||||
{0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 },
|
||||
/* 0x108 - 0x10f */
|
||||
|
@ -538,8 +538,8 @@ static OpCode OpCodeTable[1024]={
|
|||
|
||||
|
||||
/* 0x300 - 0x307 */
|
||||
{L_MODRM ,O_GRP6d ,S_Ew ,M_Ew },{L_MODRM ,O_GRP7d ,0 ,0 },
|
||||
{L_MODRM ,O_LAR ,S_Gw ,M_Ew },{0 ,0 ,0 ,0 },
|
||||
{L_MODRM ,O_GRP6d ,S_Ew ,M_Ew },{L_MODRM ,O_GRP7d ,S_Ew ,M_Ew },
|
||||
{L_MODRM ,O_LAR ,S_Gd ,M_Ed },{0 ,0 ,0 ,0 },
|
||||
{0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 },
|
||||
{0 ,0 ,0 ,0 },{0 ,0 ,0 ,0 },
|
||||
/* 0x308 - 0x30f */
|
||||
|
|
Loading…
Add table
Reference in a new issue