[dynarmic] remove redundant lock prefix on spinlock

This commit is contained in:
lizzie 2025-07-27 18:42:39 +01:00 committed by crueter
parent 5befdacee3
commit 34d8fe96b4

View file

@ -16,15 +16,14 @@ namespace Dynarmic {
void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Reg64 ptr, Xbyak::Reg32 tmp) { void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Reg64 ptr, Xbyak::Reg32 tmp) {
Xbyak::Label start, loop; Xbyak::Label start, loop;
code.jmp(start); code.jmp(start, code.T_NEAR);
code.L(loop); code.L(loop);
code.pause(); code.pause();
code.L(start); code.L(start);
code.mov(tmp, 1); code.mov(tmp, 1);
code.lock(); /*code.lock();*/ code.xchg(code.dword[ptr], tmp);
code.xchg(code.dword[ptr], tmp);
code.test(tmp, tmp); code.test(tmp, tmp);
code.jnz(loop); code.jnz(loop, code.T_NEAR);
} }
void EmitSpinLockUnlock(Xbyak::CodeGenerator& code, Xbyak::Reg64 ptr, Xbyak::Reg32 tmp) { void EmitSpinLockUnlock(Xbyak::CodeGenerator& code, Xbyak::Reg64 ptr, Xbyak::Reg32 tmp) {