Commit current transaction
This instruction commits the current transaction. If the current transaction is an outer transaction, then Transactional state is exited, and all state modifications performed transactionally are committed to the architectural state. TCOMMIT takes no inputs and returns no value.
Execution of TCOMMIT is UNDEFINED in Non-transactional state.
Variants: FEAT_TME (ARMv9.0)
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
CRm | op2 | Rt |
---|
TCOMMIT
if !IsFeatureImplemented(FEAT_TME) then EndOfDecode(Decode_UNDEF);
if !IsTMEEnabled() then UNDEFINED; if TSTATE.depth == 0 then UNDEFINED; if TSTATE.depth == 1 then CommitTransactionalWrites(); ClearExclusiveLocal(ProcessorID()); TSTATE.depth = TSTATE.depth - 1;