a64_emit_x64_memory: Fix bug in 128 bit exclusive write fallback
This commit is contained in:
parent
5ea2b49ef0
commit
0fd32c5fa4
1 changed files with 2 additions and 2 deletions
|
@ -167,7 +167,7 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||||
|
|
||||||
code.align();
|
code.align();
|
||||||
exclusive_write_fallbacks[std::make_tuple(128, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
exclusive_write_fallbacks[std::make_tuple(128, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
||||||
ABI_PushCallerSaveRegistersAndAdjustStack(code);
|
ABI_PushCallerSaveRegistersAndAdjustStackExcept(code, HostLoc::RAX);
|
||||||
if (value_idx != 1) {
|
if (value_idx != 1) {
|
||||||
code.movaps(xmm1, Xbyak::Xmm{value_idx});
|
code.movaps(xmm1, Xbyak::Xmm{value_idx});
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||||
code.mov(code.ABI_PARAM2, Xbyak::Reg64{vaddr_idx});
|
code.mov(code.ABI_PARAM2, Xbyak::Reg64{vaddr_idx});
|
||||||
}
|
}
|
||||||
code.call(memory_exclusive_write_128);
|
code.call(memory_exclusive_write_128);
|
||||||
ABI_PopCallerSaveRegistersAndAdjustStack(code);
|
ABI_PopCallerSaveRegistersAndAdjustStackExcept(code, HostLoc::RAX);
|
||||||
code.ret();
|
code.ret();
|
||||||
PerfMapRegister(exclusive_write_fallbacks[std::make_tuple(128, vaddr_idx, value_idx)], code.getCurr(), "a64_write_fallback_128");
|
PerfMapRegister(exclusive_write_fallbacks[std::make_tuple(128, vaddr_idx, value_idx)], code.getCurr(), "a64_write_fallback_128");
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue