From f4727c4ddb265384c8f53597f8bbf964af2eb2df Mon Sep 17 00:00:00 2001 From: Merry Date: Sun, 11 Dec 2022 17:07:40 +0000 Subject: [PATCH] backend/arm64/{a32,a64}_address_space: Fix wrapped functions --- src/dynarmic/backend/arm64/a32_address_space.cpp | 6 +++--- src/dynarmic/backend/arm64/a64_address_space.cpp | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/dynarmic/backend/arm64/a32_address_space.cpp b/src/dynarmic/backend/arm64/a32_address_space.cpp index 77d2b7ad..84acde3f 100644 --- a/src/dynarmic/backend/arm64/a32_address_space.cpp +++ b/src/dynarmic/backend/arm64/a32_address_space.cpp @@ -55,7 +55,7 @@ static void* EmitWrappedReadCallTrampoline(oaknut::CodeGenerator& code, T* this_ void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); + code.MOV(X1, Xscratch0); code.LDR(Xscratch0, l_addr); code.BLR(Xscratch0); code.MOV(Xscratch0, X0); @@ -110,8 +110,8 @@ static void* EmitWrappedWriteCallTrampoline(oaknut::CodeGenerator& code, T* this void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); - code.LDR(X2, Xscratch1); + code.MOV(X1, Xscratch0); + code.MOV(X2, Xscratch1); code.LDR(Xscratch0, l_addr); code.BLR(Xscratch0); ABI_PopRegisters(code, save_regs, 0); diff --git a/src/dynarmic/backend/arm64/a64_address_space.cpp b/src/dynarmic/backend/arm64/a64_address_space.cpp index 3fe11dd4..9731b341 100644 --- a/src/dynarmic/backend/arm64/a64_address_space.cpp +++ b/src/dynarmic/backend/arm64/a64_address_space.cpp @@ -55,7 +55,7 @@ static void* EmitWrappedReadCallTrampoline(oaknut::CodeGenerator& code, T* this_ void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); + code.MOV(X1, Xscratch0); code.LDR(Xscratch0, l_addr); code.BLR(Xscratch0); code.MOV(Xscratch0, X0); @@ -110,8 +110,8 @@ static void* EmitWrappedWriteCallTrampoline(oaknut::CodeGenerator& code, T* this void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); - code.LDR(X2, Xscratch1); + code.MOV(X1, Xscratch0); + code.MOV(X2, Xscratch1); code.LDR(Xscratch0, l_addr); code.BLR(Xscratch0); ABI_PopRegisters(code, save_regs, 0); @@ -193,7 +193,7 @@ static void* EmitWrappedRead128CallTrampoline(oaknut::CodeGenerator& code, A64:: void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); + code.MOV(X1, Xscratch0); code.LDR(Xscratch0, l_addr); code.BLR(Xscratch0); code.FMOV(D0, X0); @@ -275,7 +275,7 @@ static void* EmitWrappedWrite128CallTrampoline(oaknut::CodeGenerator& code, A64: void* target = code.ptr(); ABI_PushRegisters(code, save_regs, 0); code.LDR(X0, l_this); - code.LDR(X1, Xscratch0); + code.MOV(X1, Xscratch0); code.FMOV(X2, D0); code.FMOV(X3, V0.D()[1]); code.LDR(Xscratch0, l_addr);