mirror of
https://github.com/pound-emu/ballistic.git
synced 2026-01-31 01:15:21 +01:00
99 lines
4.6 KiB
XML
99 lines
4.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<?xml-stylesheet type="text/xsl" encoding="UTF-8" href="iform.xsl" version="1.0"?>
|
|
<!DOCTYPE instructionsection PUBLIC "-//ARM//DTD instructionsection //EN" "iform-p.dtd">
|
|
<!-- Copyright (c) 2010-2022 Arm Limited or its affiliates. All rights reserved. -->
|
|
<!-- This document is Non-Confidential. This document may only be used and distributed in accordance with the terms of the agreement entered into by Arm and the party that Arm delivered this document to. -->
|
|
|
|
<instructionsection id="TCANCEL" title="TCANCEL -- A64" type="instruction">
|
|
<docvars>
|
|
<docvar key="instr-class" value="system" />
|
|
<docvar key="isa" value="A64" />
|
|
<docvar key="mnemonic" value="TCANCEL" />
|
|
</docvars>
|
|
<heading>TCANCEL</heading>
|
|
<desc>
|
|
<brief>
|
|
<para>Cancel current transaction</para>
|
|
</brief>
|
|
<authored>
|
|
<para>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.</para>
|
|
</authored>
|
|
</desc>
|
|
<alias_list howmany="0"></alias_list>
|
|
<classes>
|
|
<iclass name="System" oneof="1" id="iclass_system" no_encodings="1" isa="A64">
|
|
<docvars>
|
|
<docvar key="instr-class" value="system" />
|
|
<docvar key="isa" value="A64" />
|
|
<docvar key="mnemonic" value="TCANCEL" />
|
|
</docvars>
|
|
<iclassintro count="1"></iclassintro>
|
|
<arch_variants>
|
|
<arch_variant name="FEAT_TME" feature="FEAT_TME" />
|
|
</arch_variants>
|
|
<regdiagram form="32" psname="aarch64/instrs/system/tme/tcancel">
|
|
<box hibit="31" width="8" settings="8">
|
|
<c>1</c>
|
|
<c>1</c>
|
|
<c>0</c>
|
|
<c>1</c>
|
|
<c>0</c>
|
|
<c>1</c>
|
|
<c>0</c>
|
|
<c>0</c>
|
|
</box>
|
|
<box hibit="23" width="3" name="opc" settings="3">
|
|
<c>0</c>
|
|
<c>1</c>
|
|
<c>1</c>
|
|
</box>
|
|
<box hibit="20" width="16" name="imm16" usename="1">
|
|
<c colspan="16"></c>
|
|
</box>
|
|
<box hibit="4" width="3" name="op2" settings="3">
|
|
<c>0</c>
|
|
<c>0</c>
|
|
<c>0</c>
|
|
</box>
|
|
<box hibit="1" width="2" name="LL" settings="2">
|
|
<c>0</c>
|
|
<c>0</c>
|
|
</box>
|
|
</regdiagram>
|
|
<encoding name="TCANCEL_EX_exception" oneofinclass="1" oneof="1" label="">
|
|
<docvars>
|
|
<docvar key="instr-class" value="system" />
|
|
<docvar key="isa" value="A64" />
|
|
<docvar key="mnemonic" value="TCANCEL" />
|
|
</docvars>
|
|
<asmtemplate><text>TCANCEL #</text><a link="sa_imm" hover="16-bit unsigned immediate [0-65535] (field "imm16")"><imm></a></asmtemplate>
|
|
</encoding>
|
|
<ps_section howmany="1">
|
|
<ps name="aarch64/instrs/system/tme/tcancel" mylink="aarch64.instrs.system.tme.tcancel" enclabels="" sections="1" secttype="noheading">
|
|
<pstext mayhavelinks="1" section="Decode" rep_section="decode">if !<a link="impl-shared.HaveTME.0" file="shared_pseudocode.xml" hover="function: boolean HaveTME()">HaveTME</a>() then UNDEFINED;
|
|
boolean retry = (imm16<15> == '1');
|
|
bits(15) reason = imm16<14:0>;</pstext>
|
|
</ps>
|
|
</ps_section>
|
|
</iclass>
|
|
</classes>
|
|
<explanations scope="all">
|
|
<explanation enclist="TCANCEL_EX_exception" symboldefcount="1">
|
|
<symbol link="sa_imm"><imm></symbol>
|
|
<account encodedin="imm16">
|
|
<intro>
|
|
<para>Is a 16-bit unsigned immediate, in the range 0 to 65535, encoded in the "imm16" field.</para>
|
|
</intro>
|
|
</account>
|
|
</explanation>
|
|
</explanations>
|
|
<ps_section howmany="1">
|
|
<ps name="aarch64/instrs/system/tme/tcancel" mylink="execute" enclabels="" sections="1" secttype="Operation">
|
|
<pstext mayhavelinks="1" section="Execute" rep_section="execute">if !<a link="impl-aarch64.IsTMEEnabled.0" file="shared_pseudocode.xml" hover="function: boolean IsTMEEnabled()">IsTMEEnabled</a>() then UNDEFINED;
|
|
|
|
if TSTATE.depth > 0 then
|
|
<a link="impl-aarch64.FailTransaction.4" file="shared_pseudocode.xml" hover="function: FailTransaction(TMFailure cause, boolean retry, boolean interrupt, bits(15) reason)">FailTransaction</a>(<a link="TMFailure_CNCL" file="shared_pseudocode.xml" hover="enumeration TMFailure { TMFailure_CNCL, TMFailure_DBG, TMFailure_ERR, TMFailure_NEST, TMFailure_SIZE, TMFailure_MEM, TMFailure_TRIVIAL, TMFailure_IMP }">TMFailure_CNCL</a>, retry, FALSE, reason);</pstext>
|
|
</ps>
|
|
</ps_section>
|
|
</instructionsection>
|