1
0
Fork 0

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:
Sjoerd van der Berg 2003-04-17 18:31:16 +00:00
parent 2abe0736f6
commit 53c514eb2e
2 changed files with 11 additions and 14 deletions

View file

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

View file

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