diff options
-rw-r--r-- | src/ARMJIT_A64/ARMJIT_LoadStore.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/ARMJIT_A64/ARMJIT_LoadStore.cpp b/src/ARMJIT_A64/ARMJIT_LoadStore.cpp index ba1bf00..8aa1409 100644 --- a/src/ARMJIT_A64/ARMJIT_LoadStore.cpp +++ b/src/ARMJIT_A64/ARMJIT_LoadStore.cpp @@ -827,12 +827,15 @@ void Compiler::T_Comp_PUSH_POP() } ARM64Reg sp = MapReg(13); - s32 offset = Comp_MemAccessBlock(13, regs, !load, !load, !load, false); + s32 offset = Comp_MemAccessBlock(13, regs, !load, !load, !load, false, false); - if (offset > 0) + if (offset) + { + if (offset > 0) ADD(sp, sp, offset); else SUB(sp, sp, -offset); + } } void Compiler::T_Comp_LDMIA_STMIA() |