From a9a26b93f98a1f6d17daa747894ffe7b381b1fab Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sat, 9 Jan 2016 19:57:28 +0100 Subject: [PATCH] ee: directly call EMMS from dispatcher Until we completely remove MMX from the recompiler --- pcsx2/x86/ix86-32/iR5900-32.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pcsx2/x86/ix86-32/iR5900-32.cpp b/pcsx2/x86/ix86-32/iR5900-32.cpp index 49f655f397..55d2eaec26 100644 --- a/pcsx2/x86/ix86-32/iR5900-32.cpp +++ b/pcsx2/x86/ix86-32/iR5900-32.cpp @@ -534,6 +534,7 @@ static DynGenFunc* _DynGen_EnterRecompiledCode() static DynGenFunc* _DynGen_DispatchBlockDiscard() { u8* retval = xGetPtr(); + xEMMS(); xCALL(dyna_block_discard); xJMP(ExitRecompiledCode); return (DynGenFunc*)retval; @@ -542,6 +543,7 @@ static DynGenFunc* _DynGen_DispatchBlockDiscard() static DynGenFunc* _DynGen_DispatchPageReset() { u8* retval = xGetPtr(); + xEMMS(); xCALL(dyna_page_reset); xJMP(ExitRecompiledCode); return (DynGenFunc*)retval; @@ -869,13 +871,6 @@ void R5900::Dynarec::OpcodeImpl::recBREAK() // Size is in dwords (4 bytes) void recClear(u32 addr, u32 size) { - // necessary since recompiler doesn't call femms/emms -#ifdef _MSC_VER - __asm emms; -#else - __asm__ __volatile__("emms"); -#endif - if ((addr) >= maxrecmem || !(recLUT[(addr) >> 16] + (addr & ~0xFFFFUL))) return; addr = HWADDR(addr);