mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-06 22:10:49 +00:00
f
This commit is contained in:
@@ -65,9 +65,9 @@ void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Address ptr, Xbyak::Reg
|
|||||||
code.mov(tmp, 1);
|
code.mov(tmp, 1);
|
||||||
if (ptr.is64bitDisp()) {
|
if (ptr.is64bitDisp()) {
|
||||||
// if tmp is on eax, use ebx, otherwise use eax!
|
// if tmp is on eax, use ebx, otherwise use eax!
|
||||||
auto const other_tmp = tmp == Xbyak::util::eax
|
auto const other_tmp = tmp.cvt32() == Xbyak::util::eax
|
||||||
? Xbyak::util::ebx
|
? Xbyak::util::rbx
|
||||||
: Xbyak::util::eax;
|
: Xbyak::util::rax;
|
||||||
code.push(other_tmp);
|
code.push(other_tmp);
|
||||||
code.mov(other_tmp, ptr.getDisp());
|
code.mov(other_tmp, ptr.getDisp());
|
||||||
/*code.lock();*/ code.xchg(other_tmp, tmp);
|
/*code.lock();*/ code.xchg(other_tmp, tmp);
|
||||||
@@ -86,9 +86,9 @@ void EmitSpinLockLock(Xbyak::CodeGenerator& code, Xbyak::Address ptr, Xbyak::Reg
|
|||||||
code.mov(tmp, 1);
|
code.mov(tmp, 1);
|
||||||
if (ptr.is64bitDisp()) {
|
if (ptr.is64bitDisp()) {
|
||||||
// if tmp is on eax, use ebx, otherwise use eax!
|
// if tmp is on eax, use ebx, otherwise use eax!
|
||||||
auto const other_tmp = tmp == Xbyak::util::eax
|
auto const other_tmp = tmp.cvt32() == Xbyak::util::eax
|
||||||
? Xbyak::util::ebx
|
? Xbyak::util::rbx
|
||||||
: Xbyak::util::eax;
|
: Xbyak::util::rax;
|
||||||
code.push(other_tmp);
|
code.push(other_tmp);
|
||||||
code.mov(other_tmp, ptr.getDisp());
|
code.mov(other_tmp, ptr.getDisp());
|
||||||
/*code.lock();*/ code.xchg(other_tmp, tmp);
|
/*code.lock();*/ code.xchg(other_tmp, tmp);
|
||||||
|
|||||||
Reference in New Issue
Block a user