Constrained transactions

A constrained transaction begins with a TBEGINC instructions and, as with a nonconstrained transaction, ends normally with a TEND instruction and may abort for many system-defined reasons.

The key difference is that, in the absence of repeated interruptions or other constraint violations, a constrained transaction is assured of eventual completion. Thus, it does not need a fall-back path.

The TBEGINC instruction always completes with CC=0 so it does not need a conditional branch following it.

The following restrictions apply to constrained transactions only:

Because there is no condition code other than 0 and no need for a conditional branch after the TBEGINC, a constrained transaction has no fall-back path. Therefore, you must be prepared for running in an environment that does not support constrained transactions (bit CVTTXC not on).

Upon abort, control flows to the TBEGINC instruction.