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 v32.13, AdvSIMD v29.05, pseudocode v2020-12, sve v2020-12 ; Build timestamp: 2020-12-16T16:53
Copyright © 2010-2020 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.