tcommit

Transaction Commit

TCOMMIT

Commits the current transaction.

Pseudocode Operation

if PSTATE.TME == TRUE then
  Commit the current transaction
  if transaction fails then
    ABORT_TRANSACTION
  else
    Continue to next instruction
else
  UNDEFINED

Encoding

Binary Layout
11010101000000110011
31:12
0000
11:8
011
7:5
11111
4:0
 
Format System
Opcode 0xD503307F

Operands

Related

More in TME (Transactional)

Reference

Instruction Forms

Encoding Instruction ISA Bit pattern
0xD503307F TCOMMIT A64 11010101000000110011 | 0000 | 011 | 11111

Description

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.

Operation

if !IsTMEEnabled() then UNDEFINED;

if TSTATE.depth == 0 then
    UNDEFINED;

if TSTATE.depth == 1 then
    CommitTransactionalWrites();
    ClearExclusiveLocal(ProcessorID());

TSTATE.depth = TSTATE.depth - 1;