For unknown reasons, this patch fixes Beyond Good and Evil and Metroid intro in 32-bit mode only. Yeah, I have some work to do on the JIT.

Also adds some minor stuff like memory card write notification, plus some minor SSSE3 optimizations.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@179 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-08-11 19:35:38 +00:00
parent 93429219ab
commit 29102ecbc6
15 changed files with 183 additions and 50 deletions

View File

@ -974,8 +974,7 @@ namespace Gen
void MOVD_xmm(X64Reg dest, const OpArg &arg) {WriteSSEOp(64, 0x6E, true, dest, arg, 0);}
void MOVQ_xmm(X64Reg dest, OpArg arg) {
if (dest > 7)
{
#ifdef _M_X64
// Alternate encoding
// This does not display correctly in MSVC's debugger, it thinks it's a MOVD
arg.operandReg = dest;
@ -984,14 +983,13 @@ namespace Gen
Write8(0x0f);
Write8(0x6E);
arg.WriteRest(0);
} else {
#else
arg.operandReg = dest;
arg.WriteRex(false);
Write8(0xF3);
Write8(0x0f);
Write8(0x7E);
arg.WriteRest(0);
}
#endif
}
void MOVD_xmm(const OpArg &arg, X64Reg src) {WriteSSEOp(64, 0x7E, true, src, arg, 0);}