This instruction exits Transactional state and discards all state modifications that were performed transactionally. Execution continues at the instruction that follows the TSTART instruction of the outer transaction. The destination register of the TSTART instruction of the outer transaction is written with the immediate operand of TCANCEL.
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 | 0 | 0 | 1 | 1 | imm16 | 0 | 0 | 0 | 0 | 0 |
TCANCEL #<imm>
if !HaveTME() then UNDEFINED; boolean retry = (imm16<15> == '1'); bits(15) reason = imm16<14:0>;
CheckTMEEnabled(); if TSTATE.depth > 0 then FailTransaction(TMFailure_CNCL, retry, FALSE, reason);
Internal version only: isa v30.44, AdvSIMD v27.08, pseudocode v8.5-2019-06_rc2-5-g22901f2, sve v2019-06_rc4 ; Build timestamp: 2019-06-26T22:04
Copyright © 2010-2019 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.