TSX: new fallback method (time-based)

Basically, using timestamp counter.
Rewritten vm::reservation_op with the same principle.
Rewritten another transaction helper.
Add two new settings for configuring fallbacks.
Two limits are specified in nanoseconds (first and second).
Fix PUTLLC reload logic (prevent reusing garbage).
This commit is contained in:
Nekotekina
2020-10-31 01:52:24 +03:00
parent 80530e8aef
commit 86fc842c89
12 changed files with 263 additions and 79 deletions
+1 -1
View File
@@ -2074,7 +2074,7 @@ void spursJobchainPopUrgentCommand(spu_thread& spu)
const auto jc = vm::unsafe_ptr_cast<CellSpursJobChain_x00>(+ctxt->jobChain);
const bool alterQueue = ctxt->unkFlag0;
vm::reservation_op(jc, [&](CellSpursJobChain_x00& op)
vm::reservation_op(spu, jc, [&](CellSpursJobChain_x00& op)
{
const auto ls = reinterpret_cast<CellSpursJobChain_x00*>(ctxt->tempAreaJobChain);