diff --git a/src/dynarmic/backend/arm64/fpsr_manager.cpp b/src/dynarmic/backend/arm64/fpsr_manager.cpp index 8c697f5c..1a1c323e 100644 --- a/src/dynarmic/backend/arm64/fpsr_manager.cpp +++ b/src/dynarmic/backend/arm64/fpsr_manager.cpp @@ -21,7 +21,7 @@ void FpsrManager::Spill() { return; code.LDR(Wscratch0, Xstate, state_fpsr_offset); - code.MSR(oaknut::SystemReg::FPSR, Xscratch1); + code.MRS(Xscratch1, oaknut::SystemReg::FPSR); code.ORR(Wscratch0, Wscratch0, Wscratch1); code.STR(Wscratch0, Xstate, state_fpsr_offset); @@ -32,7 +32,7 @@ void FpsrManager::Load() { if (fpsr_loaded) return; - code.MRS(XZR, oaknut::SystemReg::FPSR); + code.MSR(oaknut::SystemReg::FPSR, XZR); fpsr_loaded = true; }