diff options
Diffstat (limited to 'src/ARMJIT_x64/ARMJIT_LoadStore.cpp')
-rw-r--r-- | src/ARMJIT_x64/ARMJIT_LoadStore.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/ARMJIT_x64/ARMJIT_LoadStore.cpp b/src/ARMJIT_x64/ARMJIT_LoadStore.cpp index b27efdd..cf0bd23 100644 --- a/src/ARMJIT_x64/ARMJIT_LoadStore.cpp +++ b/src/ARMJIT_x64/ARMJIT_LoadStore.cpp @@ -283,8 +283,6 @@ void Compiler::Comp_MemAccess(int rd, int rn, const ComplexOperand& op2, int siz } else { - PushRegs(false); - u32 maskedDataRegion; if (addrIsStatic) @@ -309,6 +307,8 @@ void Compiler::Comp_MemAccess(int rd, int rn, const ComplexOperand& op2, int siz if (flags & memop_Store) { + PushRegs(false); + MOV(32, R(ABI_PARAM2), rdMapped); ABI_CallFunction((void(*)())func); @@ -320,6 +320,8 @@ void Compiler::Comp_MemAccess(int rd, int rn, const ComplexOperand& op2, int siz if (!addrIsStatic) MOV(32, rdMapped, R(RSCRATCH3)); + PushRegs(false); + ABI_CallFunction((void(*)())func); PopRegs(false); |