diff --git a/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp b/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp index 5c105fedd8..48e07de507 100644 --- a/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp +++ b/src/dynarmic/src/dynarmic/common/spin_lock_x64.cpp @@ -64,7 +64,7 @@ void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Address ptr, Xbyak::Reg : Xbyak::util::rax; code.push(other_tmp); code.mov(other_tmp, ptr.getDisp()); - /*code.lock();*/ code.xchg(other_tmp, tmp); + /*code.lock();*/ code.xchg(code.dword[other_tmp], tmp); code.pop(other_tmp); } else { /*code.lock();*/ code.xchg(ptr, tmp); @@ -85,7 +85,7 @@ void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Address ptr, Xbyak::Reg : Xbyak::util::rax; code.push(other_tmp); code.mov(other_tmp, ptr.getDisp()); - /*code.lock();*/ code.xchg(other_tmp, tmp); + /*code.lock();*/ code.xchg(code.dword[other_tmp], tmp); code.pop(other_tmp); } else { /*code.lock();*/ code.xchg(ptr, tmp);