TSX: improve transaction repeat handling

Handle status 0 as fatal.
This commit is contained in:
Nekotekina 2020-10-19 00:43:40 +03:00
parent a5eb11d79f
commit 44c90c060a

View File

@ -285,6 +285,10 @@ asmjit::Label asmjit::build_transaction_enter(asmjit::X86Assembler& c, asmjit::L
c.test(x86::eax, _XABORT_EXPLICIT); c.test(x86::eax, _XABORT_EXPLICIT);
c.jnz(fallback); c.jnz(fallback);
// Don't repeat on weird zero status
c.test(x86::eax, x86::eax);
c.jz(fallback);
// Count an attempt without RETRY flag as 65 normal attempts and continue // Count an attempt without RETRY flag as 65 normal attempts and continue
c.push(x86::rax); c.push(x86::rax);
c.not_(x86::eax); c.not_(x86::eax);