summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2016-09-06 04:55:17 +1200
committerGitHub <noreply@github.com>2016-09-06 04:55:17 +1200
commitd29dae207a2e36f206cf55cceaaccdefdc284ea1 (patch)
treef3e9ddaf92d747d2d7d69dbbc00965ea82328783 /Source
parent0119f1302faa0b6b27eeec68b68bb5e487eb50f4 (diff)
parentc51faa41f5e748f3c12e9ea572425ad7762c867e (diff)
Merge pull request #4078 from comex/alwaysUseMemFuncs-for-write
Don't use the fast path when there are watchpoints enabled, for writes too
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp b/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp
index e08b60b7f9..7fe72851ef 100644
--- a/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp
+++ b/Source/Core/Core/PowerPC/JitCommon/Jit_Util.cpp
@@ -255,7 +255,7 @@ FixupBranch EmuCodeBlock::CheckIfSafeAddress(const OpArg& reg_value, X64Reg reg_
void EmuCodeBlock::SafeLoadToReg(X64Reg reg_value, const Gen::OpArg& opAddress, int accessSize,
s32 offset, BitSet32 registersInUse, bool signExtend, int flags)
{
- bool slowmem = (flags & SAFE_LOADSTORE_FORCE_SLOWMEM) != 0;
+ bool slowmem = (flags & SAFE_LOADSTORE_FORCE_SLOWMEM) != 0 || jit->jo.alwaysUseMemFuncs;
registersInUse[reg_value] = false;
if (jit->jo.fastmem && !(flags & SAFE_LOADSTORE_NO_FASTMEM) && !slowmem)
@@ -305,7 +305,7 @@ void EmuCodeBlock::SafeLoadToReg(X64Reg reg_value, const Gen::OpArg& opAddress,
}
FixupBranch exit;
- if (!jit->jo.alwaysUseMemFuncs && !slowmem)
+ if (!slowmem)
{
u32 mem_mask = Memory::ADDR_MASK_HW_ACCESS;
@@ -528,7 +528,7 @@ void EmuCodeBlock::SafeWriteRegToReg(OpArg reg_value, X64Reg reg_addr, int acces
BitSet32 registersInUse, int flags)
{
bool swap = !(flags & SAFE_LOADSTORE_NO_SWAP);
- bool slowmem = (flags & SAFE_LOADSTORE_FORCE_SLOWMEM) != 0;
+ bool slowmem = (flags & SAFE_LOADSTORE_FORCE_SLOWMEM) != 0 || jit->jo.alwaysUseMemFuncs;
// set the correct immediate format
reg_value = FixImmediate(accessSize, reg_value);