Temporary tweak to reinstate a change that disappeared when sse2.cc was removed.
The 64 bit variant of MOVNTI was not decoded. The proper fix for this is to work on fetchdecode64.cc to call a 64 bit variant of SSE instructions or fail it with a invalid op. A careful check needs to be done with the AMD manuals to determine if there are any other SSE instructions that have a special 64 bit decoding.
This commit is contained in:
parent
04888a1039
commit
b2622c5d04
@ -1315,8 +1315,19 @@ void BX_CPU_C::MOVNTI_MdGd(bxInstruction_c *i)
|
||||
UndefinedOpcode(i);
|
||||
}
|
||||
|
||||
Bit32u val32 = BX_READ_32BIT_REG(i->nnn());
|
||||
write_virtual_dword(i->seg(), RMAddr(i), &val32);
|
||||
#if BX_SUPPORT_X86_64
|
||||
if (i->os64L()) {
|
||||
Bit64u val64 = BX_READ_64BIT_REG(i->nnn());
|
||||
write_virtual_qword(i->seg(), RMAddr(i), &val64);
|
||||
}
|
||||
else {
|
||||
Bit32u val32 = BX_READ_32BIT_REG(i->nnn());
|
||||
write_virtual_dword(i->seg(), RMAddr(i), &val32);
|
||||
}
|
||||
#else
|
||||
Bit32u val32 = BX_READ_32BIT_REG(i->nnn());
|
||||
write_virtual_dword(i->seg(), RMAddr(i), &val32);
|
||||
#endif
|
||||
|
||||
#else
|
||||
BX_INFO(("MOVNTI_MdGd: SSE2 not supported in current configuration"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user