i286: fault on invalid sreg access (nw)

--
80186 likely faults, 8086 unknown
This commit is contained in:
cracyc 2014-04-02 22:09:40 +00:00
parent e8b628402e
commit ce0e645b4a

View File

@ -1424,6 +1424,17 @@ reg.base = BASE(desc); (void)(r); reg.limit = LIMIT(desc); }
i_outsw();
break;
case 0x8c: // i_mov_wsreg
m_modrm = fetch();
if((m_modrm & 0x38) > 0x18)
{
logerror("%s: %06x: Mov Sreg - Invalid register\n", tag(), pc());
throw TRAP(FAULT_UD, (UINT16)-1);
}
PutRMWord(m_sregs[(m_modrm & 0x38) >> 3]);
CLKM(MOV_RS,MOV_MS);
break;
case 0x8e: // i_mov_sregw
m_modrm = fetch();
m_src = GetRMWord();