diff options
| author | Scott Mansell <phiren@gmail.com> | 2016-09-06 04:55:17 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-09-06 04:55:17 +1200 |
| commit | d29dae207a2e36f206cf55cceaaccdefdc284ea1 (patch) | |
| tree | f3e9ddaf92d747d2d7d69dbbc00965ea82328783 /Source | |
| parent | 0119f1302faa0b6b27eeec68b68bb5e487eb50f4 (diff) | |
| parent | c51faa41f5e748f3c12e9ea572425ad7762c867e (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.cpp | 6 |
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); |
