<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE register_page SYSTEM "registers.dtd">
<!-- Copyright (c) 2010-2026 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. -->
<!--The data contained in this document is preliminary and subject to change or correction following further review. -->
<?xml-stylesheet href="one_register.xsl" type="text/xsl" ?>







<register_page>
  <registers>
  
    <register execution_state="AArch32" is_register="True" is_internal="True" is_stub_entry="False">
      <reg_short_name>HSR</reg_short_name>
        
        <reg_long_name>Hyp Syndrome Register</reg_long_name>



      
            <reg_condition otherwise="UNDEFINED">when FEAT_AA32EL2 is implemented</reg_condition>
      




          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        



    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="AArch64-esr_el2.xml">ESR_EL2</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>AArch64</mapped_execution_state>
    <mapped_from_startbit>31</mapped_from_startbit>
    <mapped_from_endbit>0</mapped_from_endbit>
    <mapped_to_startbit>31</mapped_to_startbit>
    <mapped_to_endbit>0</mapped_to_endbit>
    <mapped_from_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_from_rangeset>
    <mapped_to_rangeset output="31:0">
      <range>
        <msb>31</msb>
        <lsb>0</lsb>
      </range>
    </mapped_to_rangeset>

      </reg_mapping>

      </reg_mappings>

        <reg_purpose>
          
    
      <purpose_text>
        <para>Holds syndrome information for an exception taken to Hyp mode.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
            <reg_group>Virt</reg_group>
            <reg_group>Exception</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>If EL2 is not implemented, this register is <arm-defined-word>RES0</arm-defined-word> from EL3.</para>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>HSR is a 32-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="32">
  <text_before_fields><para>Execution in any Non-secure PE mode other than Hyp mode makes this register <arm-defined-word>UNKNOWN</arm-defined-word>.</para>
<para>When an <arm-defined-word>UNPREDICTABLE</arm-defined-word> instruction is treated as <arm-defined-word>UNDEFINED</arm-defined-word>, and the exception is taken to EL2, the value of HSR is <arm-defined-word>UNKNOWN</arm-defined-word>. The value written to HSR must be consistent with a value that could be created as a result of an exception from the same Exception level that generated the exception as a result of a situation that is not <arm-defined-word>UNPREDICTABLE</arm-defined-word> at that Exception level, in order to avoid the possibility of a privilege violation.</para></text_before_fields>
  <field id="fieldset_0-31_26" has_partial_fieldset="False" is_linked_to_partial_fieldset="True" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
    <field_name>EC</field_name>
    <field_msb>31</field_msb>
    <field_lsb>26</field_lsb>
    <rel_range>31:26</rel_range>
    <field_description order="before">
      <para>Exception Class. Indicates the reason for the exception that this register holds information about. Possible values of this field are:</para>
    </field_description>
    <field_description order="after"><para>All other EC values are reserved by Arm, and:</para>
<list type="unordered">
<listitem><content>Unused values in the range <binarynumber>0b000000</binarynumber> - <binarynumber>0b101100</binarynumber> (<hexnumber>0x00</hexnumber> - <hexnumber>0x2C</hexnumber>) are reserved for future use for synchronous exceptions.</content>
</listitem><listitem><content>Unused values in the range <binarynumber>0b101101</binarynumber> - <binarynumber>0b111111</binarynumber> (<hexnumber>0x2D</hexnumber> - <hexnumber>0x3F</hexnumber>) are reserved for future use, and might be used for synchronous or asynchronous exceptions.</content>
</listitem></list>
<para>The effect of programming this field to a reserved value is that behavior is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b000000</field_value>
        <field_value_description>
          <para>Unknown reason.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="exceptions with an unknown reason" linked_field_id="fieldset_0-24_0_0"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000001</field_value>
        <field_value_description><para>Trapped WFI or WFE instruction execution.</para>
<para>Conditional WFE and WFI instructions that fail their condition code check do not cause an exception.</para></field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from a WFI or WFE instruction" linked_field_id="fieldset_0-24_0_1"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000011</field_value>
        <field_value_description>
          <para>Trapped MCR or MRC access with (coproc==<binarynumber>0b1111</binarynumber>) that is not reported using EC value <binarynumber>0b000000</binarynumber>.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an MCR or MRC access" linked_field_id="fieldset_0-24_0_2"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000100</field_value>
        <field_value_description>
          <para>Trapped MCRR or MRRC access with (coproc==<binarynumber>0b1111</binarynumber>) that is not reported using EC value <binarynumber>0b000000</binarynumber>.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an MCRR or MRRC access" linked_field_id="fieldset_0-24_0_3"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000101</field_value>
        <field_value_description>
          <para>Trapped MCR or MRC access with (coproc==<binarynumber>0b1110</binarynumber>).</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an MCR or MRC access" linked_field_id="fieldset_0-24_0_2"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000110</field_value>
        <field_value_description><para>Trapped LDC or STC access.</para>
<para>The only architected uses of these instructions are:</para>
<list type="unordered">
<listitem><content>
<para>An STC to write data to memory from <register_link state="AArch32" id="AArch32-dbgdtrrxint.xml">DBGDTRRXint</register_link>.</para>
</content>
</listitem><listitem><content>
<para>An LDC to read data from memory to <register_link state="AArch32" id="AArch32-dbgdtrtxint.xml">DBGDTRTXint</register_link>.</para>
</content>
</listitem></list></field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an LDC or STC instruction" linked_field_id="fieldset_0-24_0_4"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b000111</field_value>
        <field_value_description><para>Access to Advanced SIMD or floating-point functionality trapped by a <register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.{TASE, TCP10} control.</para>
<para>Excludes exceptions generated because Advanced SIMD and floating-point are not implemented. These are reported with EC value <binarynumber>0b000000</binarynumber>.</para></field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an access to SIMD or floating-point functionality, resulting from HCPTR" linked_field_id="fieldset_0-24_0_5"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b001000</field_value>
        <field_value_description>
          <para>Trapped VMRS access, from ID group trap, that is not reported using EC value <binarynumber>0b000111</binarynumber>.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an MCR or MRC access" linked_field_id="fieldset_0-24_0_2"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b001100</field_value>
        <field_value_description>
          <para>Trapped MRRC access with (coproc==<binarynumber>0b1110</binarynumber>).</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an MCRR or MRRC access" linked_field_id="fieldset_0-24_0_3"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b001110</field_value>
        <field_value_description>
          <para>Illegal exception return to AArch32 state.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an Illegal state or PC alignment fault" linked_field_id="fieldset_0-24_0_9"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b010001</field_value>
        <field_value_description>
          <para>Exception on SVC instruction execution in AArch32 state routed to EL2.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from HVC or SVC instruction execution" linked_field_id="fieldset_0-24_0_6"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b010010</field_value>
        <field_value_description>
          <para>HVC instruction execution in AArch32 state, when HVC is not disabled.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from HVC or SVC instruction execution" linked_field_id="fieldset_0-24_0_6"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b010011</field_value>
        <field_value_description>
          <para>Trapped execution of SMC instruction in AArch32 state.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from SMC instruction execution" linked_field_id="fieldset_0-24_0_7"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b100000</field_value>
        <field_value_description>
          <para>Prefetch Abort from a lower Exception level.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from a Prefetch Abort" linked_field_id="fieldset_0-24_0_8"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b100001</field_value>
        <field_value_description>
          <para>Prefetch Abort taken without a change in Exception level.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from a Prefetch Abort" linked_field_id="fieldset_0-24_0_8"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b100010</field_value>
        <field_value_description>
          <para>PC alignment fault exception.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from an Illegal state or PC alignment fault" linked_field_id="fieldset_0-24_0_9"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b100100</field_value>
        <field_value_description>
          <para>Data Abort exception from a lower Exception level.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from a Data Abort" linked_field_id="fieldset_0-24_0_10"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b100101</field_value>
        <field_value_description>
          <para>Data Abort exception taken without a change in Exception level.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="ISS" linked_field_condition="Exception from a Data Abort" linked_field_id="fieldset_0-24_0_10"/>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-25_25" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
    <field_name>IL</field_name>
    <field_msb>25</field_msb>
    <field_lsb>25</field_lsb>
    <rel_range>25</rel_range>
    <field_description order="before">
      <para>Instruction length bit. Indicates the size of the instruction that has been trapped to Hyp mode. When this bit is valid, possible values of this bit are:</para>
    </field_description>
    <field_description order="after"><para>This field is <arm-defined-word>RES1</arm-defined-word> and not valid for the following cases:</para>
<list type="unordered">
<listitem><content>When the EC value is <binarynumber>0b000000</binarynumber>, indicating an exception with an unknown reason.</content>
</listitem><listitem><content>Prefetch Aborts.</content>
</listitem><listitem><content>Data Abort exceptions for which the HSR.ISS.ISV field is 0.</content>
</listitem><listitem><content>When the EC value is <binarynumber>0b001110</binarynumber>, indicating an Illegal state exception.</content>
</listitem></list>
<para>The IL field is not valid and is <arm-defined-word>UNKNOWN</arm-defined-word> on an exception from a PC alignment fault.</para></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>16-bit instruction trapped.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>32-bit instruction trapped.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Warm">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-24_0" has_partial_fieldset="True" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
    <field_name>ISS</field_name>
    <field_msb>24</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>24:0</rel_range>
    <field_description order="before">
      <para>Instruction Specific Syndrome. Architecturally, this field can be defined independently for each defined Exception class. However, in practice, some ISS encodings are used for more than one Exception class.</para>
    </field_description>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_0" length="25">
        <fields_condition>When exceptions with an unknown reason</fields_condition>
        <fields_instance>exceptions with an unknown reason</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_0-24_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>24</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>24:0</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <text_after_fields><para>This EC value is used for all exceptions that are not covered by any other EC value. This includes exceptions that are generated in the following situations:</para>
<list type="unordered">
<listitem><content>The attempted execution of an instruction bit pattern that has no allocated instruction or is not accessible in the current PE mode in the current Security state, including:<list type="unordered">
<listitem><content>A read access using a System register encoding pattern that is not allocated for reads or that does not permit reads in the current PE mode and Security state.</content>
</listitem><listitem><content>A write access using a System register encoding pattern that is not allocated for writes or that does not permit writes in the current PE mode and Security state.</content>
</listitem><listitem><content>Instruction encodings that are unallocated.</content>
</listitem><listitem><content>Instruction encodings for instructions not implemented in the implementation.</content>
</listitem></list>
</content>
</listitem><listitem><content>In Debug state, the attempted execution of an instruction bit pattern that is not accessible in Debug state.</content>
</listitem><listitem><content>In Non-debug state, the attempted execution of an instruction bit pattern that is not accessible in Non-debug state.</content>
</listitem><listitem><content>The attempted execution of a short vector floating-point instruction.</content>
</listitem><listitem><content>In an implementation that does not include Advanced SIMD and floating-point functionality, an attempted access to Advanced SIMD or floating-point functionality under conditions where that access would be permitted if that functionality was present. This includes the attempted execution of an Advanced SIMD or floating-point instruction, and attempted accesses to Advanced SIMD and floating-point System registers.</content>
</listitem><listitem><content>An exception generated because of the value of one of the <register_link state="AArch32" id="AArch32-sctlr.xml">SCTLR</register_link>.{ITD, SED, CP15BEN} control bits.</content>
</listitem><listitem><content>Attempted execution of:<list type="unordered">
<listitem><content>An HVC instruction when disabled by <register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.HCD, <register_link state="AArch32" id="AArch32-scr.xml">SCR</register_link>.HCE, or <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.HCE.</content>
</listitem><listitem><content>An SMC instruction when disabled by <register_link state="AArch32" id="AArch32-scr.xml">SCR</register_link>.SCD or <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.SMD.</content>
</listitem><listitem><content>An HLT instruction when disabled by <register_link state="ext" id="ext-edscr.xml">EDSCR</register_link>.HDE.</content>
</listitem></list>
</content>
</listitem><listitem><content>An HVC instruction when disabled by <register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.HCD, <register_link state="AArch32" id="AArch32-scr.xml">SCR</register_link>.HCE, or <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.HCE. An SMC instruction when disabled by <register_link state="AArch32" id="AArch32-scr.xml">SCR</register_link>.SCD or <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.SMD. An HLT instruction when disabled by <register_link state="ext" id="ext-edscr.xml">EDSCR</register_link>.HDE.</content>
</listitem><listitem><content>An exception generated because of the attempted execution of an MSR (Banked register) or MRS (Banked register) instruction that would access a Banked register that is not accessible from the Security state and PE mode at which the instruction was executed.</content>
</listitem></list>
<note><para>An exception is generated only if the <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> behavior of the instruction is that it is <arm-defined-word>UNDEFINED</arm-defined-word>, see <xref linkend="#CEGFJHCD">'MSR (banked register) and MRS (banked register)'</xref>.</para></note><list type="unordered">
<listitem><content>Attempted execution, in Debug state, of:<list type="unordered">
<listitem><content>A DCPS1 instruction in Non-secure state from EL0 when EL2 is using AArch32 and the value of <register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TGE is 1.</content>
</listitem><listitem><content>A DCPS2 instruction at EL1 or EL0 when EL2 is not implemented, or when EL3 is using AArch32 and the value of <register_link state="AArch32" id="AArch32-scr.xml">SCR</register_link>.NS is 0, or when EL3 is using AArch64 and the value of <register_link state="AArch64" id="AArch64-scr_el3.xml">SCR_EL3</register_link>.NS is 0.</content>
</listitem><listitem><content>A DCPS3 instruction when EL3 is not implemented, or when the value of <register_link state="ext" id="ext-edscr.xml">EDSCR</register_link>.SDD is 1.</content>
</listitem></list>
</content>
</listitem><listitem><content>In Debug state when the value of <register_link state="ext" id="ext-edscr.xml">EDSCR</register_link>.SDD is 1, the attempted execution at EL2, EL1, and EL0 of an instruction that is configured to trap to EL3.</content>
</listitem></list>
<para><xref linkend="#BEIDIJHJ">'Undefined Instruction exception, when the value of HCR.TGE is 1'</xref> describes the configuration settings for a trap that returns an EC value of <binarynumber>0b000000</binarynumber>.</para></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When exceptions with an unknown reason</fields_condition>
        <fieldat id="fieldset_0-24_0_0-24_0" msb="24" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_1" length="25">
        <fields_condition>When Exception from a WFI or WFE instruction</fields_condition>
        <fields_instance>Exception from a WFI or WFE instruction</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_1-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_1-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_1-19_1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>19</field_msb>
          <field_lsb>1</field_lsb>
          <rel_range>19:1</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_1-0_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>TI</field_name>
          <field_msb>0</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>0</rel_range>
          <field_description order="before">
            <para>Trapped instruction. Possible values of this bit are:</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>WFI trapped.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>WFE trapped.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields>
          <para><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.{TWE, TWI} describe the configuration settings for this trap.</para>
        </text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from a WFI or WFE instruction</fields_condition>
        <fieldat id="fieldset_0-24_0_1-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_1-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_1-19_1" msb="19" lsb="1"/>
        <fieldat id="fieldset_0-24_0_1-0_0" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_2" length="25">
        <fields_condition>When Exception from an MCR or MRC access</fields_condition>
        <fields_instance>Exception from an MCR or MRC access</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_2-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-19_17" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Opc2</field_name>
          <field_msb>19</field_msb>
          <field_lsb>17</field_lsb>
          <rel_range>19:17</rel_range>
          <field_description order="before"><para>The Opc2 value from the issued instruction.</para>
<para>For a trapped VMRS access, holds the value <binarynumber>0b000</binarynumber>.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-16_14" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Opc1</field_name>
          <field_msb>16</field_msb>
          <field_lsb>14</field_lsb>
          <rel_range>16:14</rel_range>
          <field_description order="before"><para>The Opc1 value from the issued instruction.</para>
<para>For a trapped VMRS access, holds the value <binarynumber>0b111</binarynumber>.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-13_10" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CRn</field_name>
          <field_msb>13</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>13:10</rel_range>
          <field_description order="before"><para>The CRn value from the issued instruction.</para>
<para>For a trapped VMRS access, holds the reg field from the VMRS instruction encoding.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-9_9" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>9</field_msb>
          <field_lsb>9</field_lsb>
          <rel_range>9</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_2-8_5" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Rt</field_name>
          <field_msb>8</field_msb>
          <field_lsb>5</field_lsb>
          <rel_range>8:5</rel_range>
          <field_description order="before">
            <para>The Rt value from the issued instruction, the general-purpose register used for the transfer.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-4_1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CRm</field_name>
          <field_msb>4</field_msb>
          <field_lsb>1</field_lsb>
          <rel_range>4:1</rel_range>
          <field_description order="before"><para>The CRm value from the issued instruction.</para>
<para>For a trapped VMRS access, holds the value <binarynumber>0b0000</binarynumber>.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_2-0_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Direction</field_name>
          <field_msb>0</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>0</rel_range>
          <field_description order="before">
            <para>Indicates the direction of the trapped instruction.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Write to System register space. MCR instruction.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Read from System register space. MRC or VMRS instruction.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The following fields describe configuration settings for traps from an MCR or MCR access using coproc <binarynumber>0b1111</binarynumber> that are reported using EC value <binarynumber>0b000011</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.{TID1, TID2, TID3}, for Non-secure accesses to the ID registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TIDCP, for Non-secure accesses to lockdown, DMA, and TCM operations at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.{TSW, TPC, TPU}, for Non-secure execution of cache maintenance instructions at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TTLB, for Non-secure execution of TLB maintenance instructions at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TAC, for Non-secure accesses to the Auxiliary Control Register at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.{TPM, TPMCR}, for Non-secure accesses to Performance Monitors registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TAM, for Non-secure accesses to Activity Monitors System registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TCPAC, for Non-secure accesses to the CPACR at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.{TRVM, TVM}, for Non-secure accesses to virtual memory control registers at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hstr.xml">HSTR</register_link>.T&lt;n&gt;, for Non-secure accesses to System registers in the (coproc == 1111) encoding space at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TTRF, for Non-secure accesses to trace filter control registers from System register, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-cnthctl.xml">CNTHCTL</register_link>.PL1PCEN, for Non-secure accesses to the Generic Timer registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr2.xml">HCR2</register_link>.TERR, for Non-secure accesses to the RAS error record registers at EL1, trapped to EL2.</content>
</listitem></list>
<para>The following fields describe configuration settings for traps from an MCR or MRC access using coproc <binarynumber>0b1110</binarynumber> that are reported using EC value <binarynumber>0b000101</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TID0, for Non-secure accesses to the Primary device identification registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TTA, for Non-secure accesses to trace System registers from System register, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDRA, for Non-secure accesses to Debug ROM registers from System register, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDOSA, for Non-secure accesses to powerdown debug System registers from System register, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDA, for Non-secure accesses to debug System registers from System register, trapped to EL2.</content>
</listitem></list>
<para>The following fields describes configuration settings for traps from a VMSR or VMRS access that are reported using EC value <binarynumber>0b001000</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TID0, for Non-secure accesses to the Primary device identification registers at EL1, for ID group traps trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TID3, for Non-secure accesses to the Detailed feature identification registers at EL0 and EL1, for ID group traps trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.{TCP10, TCP11}, for Non-secure accesses to <register_link state="AArch32" id="AArch32-fpscr.xml">FPSCR</register_link>, <register_link state="AArch32" id="AArch32-fpsid.xml">FPSID</register_link>, <register_link state="AArch32" id="AArch32-fpexc.xml">FPEXC</register_link>, <register_link state="AArch32" id="AArch32-mvfr0.xml">MVFR0</register_link>, <register_link state="AArch32" id="AArch32-mvfr1.xml">MVFR1</register_link>, and <register_link state="AArch32" id="AArch32-mvfr2.xml">MVFR2</register_link>, trapped to EL2.</content>
</listitem></list></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from an MCR or MRC access</fields_condition>
        <fieldat id="fieldset_0-24_0_2-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_2-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_2-19_17" msb="19" lsb="17"/>
        <fieldat id="fieldset_0-24_0_2-16_14" msb="16" lsb="14"/>
        <fieldat id="fieldset_0-24_0_2-13_10" msb="13" lsb="10"/>
        <fieldat id="fieldset_0-24_0_2-9_9" msb="9" lsb="9"/>
        <fieldat id="fieldset_0-24_0_2-8_5" msb="8" lsb="5"/>
        <fieldat id="fieldset_0-24_0_2-4_1" msb="4" lsb="1"/>
        <fieldat id="fieldset_0-24_0_2-0_0" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_3" length="25">
        <fields_condition>When Exception from an MCRR or MRRC access</fields_condition>
        <fields_instance>Exception from an MCRR or MRRC access</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_3-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-19_16" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Opc1</field_name>
          <field_msb>19</field_msb>
          <field_lsb>16</field_lsb>
          <rel_range>19:16</rel_range>
          <field_description order="before">
            <para>The Opc1 value from the issued instruction.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-15_14" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>15</field_msb>
          <field_lsb>14</field_lsb>
          <rel_range>15:14</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_3-13_10" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Rt2</field_name>
          <field_msb>13</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>13:10</rel_range>
          <field_description order="before">
            <para>The Rt2 value from the issued instruction, the second general-purpose register used for the transfer.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-9_9" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>9</field_msb>
          <field_lsb>9</field_lsb>
          <rel_range>9</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_3-8_5" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Rt</field_name>
          <field_msb>8</field_msb>
          <field_lsb>5</field_lsb>
          <rel_range>8:5</rel_range>
          <field_description order="before">
            <para>The Rt value from the issued instruction, the first general-purpose register used for the transfer.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-4_1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CRm</field_name>
          <field_msb>4</field_msb>
          <field_lsb>1</field_lsb>
          <rel_range>4:1</rel_range>
          <field_description order="before">
            <para>The CRm value from the issued instruction.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_3-0_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Direction</field_name>
          <field_msb>0</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>0</rel_range>
          <field_description order="before">
            <para>Indicates the direction of the trapped instruction.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Write to System register space. MCRR instruction.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Read from System register space. MRRC instruction.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The following fields describe configuration settings for traps from an MCRR or MRRC access using coproc <binarynumber>0b1111</binarynumber> that are reported using EC value <binarynumber>0b000100</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.{TRVM, TVM}, for Non-secure accesses to virtual memory control registers at EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TPM, for Non-secure accesses to Performance Monitors registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TAM, for Non-secure accesses to Activity Monitors System registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-cnthctl.xml">CNTHCTL</register_link>.{PL1PCEN, PL1PCTEN}, for Non-secure accesses to the Generic Timer registers at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hstr.xml">HSTR</register_link>.T&lt;n&gt;, for Non-secure accesses to System registers in the (coproc == 1111) encoding space at EL0 and EL1, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcr2.xml">HCR2</register_link>.TERR, for Non-secure accesses to the RAS error record registers at EL1, trapped to EL2.</content>
</listitem></list>
<para>The following fields describe configuration settings for traps from an MCRR or MRRC access using coproc <binarynumber>0b1110</binarynumber> that are reported using EC value <binarynumber>0b001100</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TTA, for Non-secure accesses to trace System registers from System register, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDRA, for Non-secure accesses to Debug ROM registers from System register, trapped to EL2.</content>
</listitem></list></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from an MCRR or MRRC access</fields_condition>
        <fieldat id="fieldset_0-24_0_3-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_3-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_3-19_16" msb="19" lsb="16"/>
        <fieldat id="fieldset_0-24_0_3-15_14" msb="15" lsb="14"/>
        <fieldat id="fieldset_0-24_0_3-13_10" msb="13" lsb="10"/>
        <fieldat id="fieldset_0-24_0_3-9_9" msb="9" lsb="9"/>
        <fieldat id="fieldset_0-24_0_3-8_5" msb="8" lsb="5"/>
        <fieldat id="fieldset_0-24_0_3-4_1" msb="4" lsb="1"/>
        <fieldat id="fieldset_0-24_0_3-0_0" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_4" length="25">
        <fields_condition>When Exception from an LDC or STC instruction</fields_condition>
        <fields_instance>Exception from an LDC or STC instruction</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_4-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-19_12" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>imm8</field_name>
          <field_msb>19</field_msb>
          <field_lsb>12</field_lsb>
          <rel_range>19:12</rel_range>
          <field_description order="before">
            <para>The immediate value from the issued instruction.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-11_9" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>11</field_msb>
          <field_lsb>9</field_lsb>
          <rel_range>11:9</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_4-8_5" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Rn</field_name>
          <field_msb>8</field_msb>
          <field_lsb>5</field_lsb>
          <rel_range>8:5</rel_range>
          <field_description order="before"><para>The Rn value from the issued instruction. Valid only when AM[2] is 0, indicating an immediate form of the LDC or STC instruction.</para>
<para>When AM[2] is 1, indicating a literal form of the LDC or STC instruction, this field is <arm-defined-word>UNKNOWN</arm-defined-word>.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-4_4" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Offset</field_name>
          <field_msb>4</field_msb>
          <field_lsb>4</field_lsb>
          <rel_range>4</rel_range>
          <field_description order="before">
            <para>Indicates whether the offset is added or subtracted:</para>
          </field_description>
          <field_description order="after">
            <para>This bit corresponds to the U bit in the instruction encoding.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Subtract offset.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Add offset.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-3_1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>AM</field_name>
          <field_msb>3</field_msb>
          <field_lsb>1</field_lsb>
          <rel_range>3:1</rel_range>
          <field_description order="before">
            <para>Addressing mode. The permitted values of this field are:</para>
          </field_description>
          <field_description order="after"><para>The values <binarynumber>0b101</binarynumber> and <binarynumber>0b111</binarynumber> are reserved. The effect of programming this field to a reserved value is that behavior is <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word>.</para>
<para>Bit [2] in this subfield indicates the instruction form, immediate or literal.</para>
<para>Bits [1:0] in this subfield correspond to the bits {P, W} in the instruction encoding.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b000</field_value>
              <field_value_description>
                <para>Immediate unindexed.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001</field_value>
              <field_value_description>
                <para>Immediate post-indexed.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010</field_value>
              <field_value_description>
                <para>Immediate offset.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011</field_value>
              <field_value_description>
                <para>Immediate pre-indexed.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b100</field_value>
              <field_value_description><para>Literal unindexed.</para>
<para>LDC instruction in A32 instruction set only.</para>
<para>For a trapped STC instruction or a trapped T32 LDC instruction this encoding is reserved.</para></field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b110</field_value>
              <field_value_description><para>Literal offset.</para>
<para>LDC instruction only.</para>
<para>For a trapped STC instruction, this encoding is reserved.</para></field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_4-0_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>Direction</field_name>
          <field_msb>0</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>0</rel_range>
          <field_description order="before">
            <para>Indicates the direction of the trapped instruction.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Write to memory. STC instruction.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Read from memory. LDC instruction.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields>
          <para><register_link state="AArch32" id="AArch32-hdcr.xml">HDCR</register_link>.TDA describes the configuration settings for the trap that is reported using EC value <binarynumber>0b000110</binarynumber>.</para>
        </text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from an LDC or STC instruction</fields_condition>
        <fieldat id="fieldset_0-24_0_4-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_4-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_4-19_12" msb="19" lsb="12"/>
        <fieldat id="fieldset_0-24_0_4-11_9" msb="11" lsb="9"/>
        <fieldat id="fieldset_0-24_0_4-8_5" msb="8" lsb="5"/>
        <fieldat id="fieldset_0-24_0_4-4_4" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-24_0_4-3_1" msb="3" lsb="1"/>
        <fieldat id="fieldset_0-24_0_4-0_0" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_5" length="25">
        <fields_condition>When Exception from an access to SIMD or floating-point functionality, resulting from HCPTR</fields_condition>
        <fields_instance>Exception from an access to SIMD or floating-point functionality, resulting from HCPTR</fields_instance>
        <text_before_fields>
          <para>Excludes exceptions that occur because Advanced SIMD and floating-point functionality is not implemented, or because the value of <register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TGE or <register_link state="AArch64" id="AArch64-hcr_el2.xml">HCR_EL2</register_link>.TGE is 1. These are reported with EC value <binarynumber>0b000000</binarynumber>.</para>
        </text_before_fields>
        <field id="fieldset_0-24_0_5-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_5-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_5-19_6" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>19</field_msb>
          <field_lsb>6</field_lsb>
          <rel_range>19:6</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_5-5_5" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>TA</field_name>
          <field_msb>5</field_msb>
          <field_lsb>5</field_lsb>
          <rel_range>5</rel_range>
          <field_description order="before">
            <para>Indicates trapped use of Advanced SIMD functionality.</para>
          </field_description>
          <field_description order="after"><para>Any use of an Advanced SIMD instruction that is not also a floating-point instruction that is trapped to Hyp mode because of a trap configured in the <register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link> sets this bit to 1.</para>
<para>For a list of these instructions, see <xref linkend="#CJAHFFIE">'Controls of Advanced SIMD operation that do not apply to floating-point operation'</xref>.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Exception was not caused by trapped use of Advanced SIMD functionality.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Exception was caused by trapped use of Advanced SIMD functionality.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_5-4_4" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>4</field_msb>
          <field_lsb>4</field_lsb>
          <rel_range>4</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_5-3_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>coproc</field_name>
          <field_msb>3</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>3:0</rel_range>
          <field_description order="before">
            <para>When the HSR.TA field returns the value 1, this field returns the value <binarynumber>0b1010</binarynumber>. Otherwise, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The following fields describe the configuration settings for the traps that are reported using EC value <binarynumber>0b000111</binarynumber>:</para>
<list type="unordered">
<listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.{TCP11, TCP10}, for Non-secure accesses to the SIMD and floating-point registers, trapped to EL2.</content>
</listitem><listitem><content><register_link state="AArch32" id="AArch32-hcptr.xml">HCPTR</register_link>.TASE, for Non-secure accesses to Advanced SIMD functionality, trapped to EL2.</content>
</listitem></list></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from an access to SIMD or floating-point functionality, resulting from HCPTR</fields_condition>
        <fieldat id="fieldset_0-24_0_5-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_5-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_5-19_6" msb="19" lsb="6"/>
        <fieldat id="fieldset_0-24_0_5-5_5" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-24_0_5-4_4" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-24_0_5-3_0" msb="3" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_6" length="25">
        <fields_condition>When Exception from HVC or SVC instruction execution</fields_condition>
        <fields_instance>Exception from HVC or SVC instruction execution</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_6-24_16" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>24</field_msb>
          <field_lsb>16</field_lsb>
          <rel_range>24:16</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_6-15_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>imm16</field_name>
          <field_msb>15</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>15:0</rel_range>
          <field_description order="before"><para>The value of the immediate field from the HVC or SVC instruction.</para>
<para>For an HVC instruction, this is the value of the imm16 field of the issued instruction.</para>
<para>For an SVC instruction:</para>
<list type="unordered">
<listitem><content>If the instruction is unconditional, then:<list type="unordered">
<listitem><content>For the T32 instruction, this field is zero-extended from the imm8 field of the instruction.</content>
</listitem><listitem><content>For the A32 instruction, this field is the bottom 16 bits of the imm24 field of the instruction.</content>
</listitem></list>
</content>
</listitem><listitem><content>For the T32 instruction, this field is zero-extended from the imm8 field of the instruction. For the A32 instruction, this field is the bottom 16 bits of the imm24 field of the instruction.</content>
</listitem><listitem><content>If the instruction is conditional, this field is <arm-defined-word>UNKNOWN</arm-defined-word>.</content>
</listitem></list></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The HVC instruction is unconditional, and a conditional SVC instruction generates an exception only if it passes its condition code check. Therefore, the syndrome information for these exceptions does not require conditionality information.</para>
<para><xref linkend="#BEIJJBDG">'Supervisor Call exception, when the value of HCR.TGE is 1'</xref> describes the configuration settings for the trap reported with EC value <binarynumber>0b010001</binarynumber>.</para></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from HVC or SVC instruction execution</fields_condition>
        <fieldat id="fieldset_0-24_0_6-24_16" msb="24" lsb="16"/>
        <fieldat id="fieldset_0-24_0_6-15_0" msb="15" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_7" length="25">
        <fields_condition>When Exception from SMC instruction execution</fields_condition>
        <fields_instance>Exception from SMC instruction execution</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_7-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Condition code valid. Possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>When an A32 instruction is trapped, CV is set to 1.</para>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether CV is set to 1 or set to 0. For more information, see the description of the COND field.</para>
<para>This field is valid only if CCKNOWNPASS is 1, otherwise it is <arm-defined-word>RES0</arm-defined-word>.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The COND field is not valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The COND field is valid.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_7-23_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COND</field_name>
          <field_msb>23</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>23:20</rel_range>
          <field_description order="before"><para>The condition code for the trapped instruction.</para>
<para>When an A32 instruction is trapped, CV is set to 1 and:</para>
<list type="unordered">
<listitem><content>If the instruction is conditional, COND is set to the condition code field value from the instruction.</content>
</listitem><listitem><content>If the instruction is unconditional, COND is set to <binarynumber>0b1110</binarynumber>.</content>
</listitem></list>
<para>A conditional A32 instruction that is known to pass its condition code check can be presented either:</para>
<list type="unordered">
<listitem><content>With COND set to <binarynumber>0b1110</binarynumber>, the value for unconditional.</content>
</listitem><listitem><content>With the COND value held in the instruction.</content>
</listitem></list>
<para>When a T32 instruction is trapped, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether:</para>
<list type="unordered">
<listitem><content>CV is set to 0 and COND is set to an <arm-defined-word>UNKNOWN</arm-defined-word> value. Software must examine the SPSR.IT field to determine the condition, if any, of the T32 instruction.</content>
</listitem><listitem><content>CV is set to 1 and COND is set to the condition code for the condition that applied to the instruction.</content>
</listitem></list>
<para>For an implementation that, for both T32 and A32 instructions, takes an exception on a trapped conditional instruction only if the instruction passes its condition code check, these definitions mean that when CV is set to 1 it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether the COND field is set to <binarynumber>0b1110</binarynumber>, or to the value of any condition that applied to the instruction.</para>
<para>This field is valid only if CCKNOWNPASS is 1, otherwise it is <arm-defined-word>RES0</arm-defined-word>.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_7-19_19" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CCKNOWNPASS</field_name>
          <field_msb>19</field_msb>
          <field_lsb>19</field_lsb>
          <rel_range>19</rel_range>
          <field_description order="before">
            <para>Indicates whether the instruction might have failed its condition code check.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>The instruction was unconditional, or was conditional and passed its condition code check.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>The instruction was conditional, and might have failed its condition code check.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_7-18_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>18</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>18:0</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <text_after_fields>
          <para><register_link state="AArch32" id="AArch32-hcr.xml">HCR</register_link>.TSC describes the configuration settings for this trap for instructions executed in Non-secure EL1.</para>
        </text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from SMC instruction execution</fields_condition>
        <fieldat id="fieldset_0-24_0_7-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_7-23_20" msb="23" lsb="20"/>
        <fieldat id="fieldset_0-24_0_7-19_19" msb="19" lsb="19"/>
        <fieldat id="fieldset_0-24_0_7-18_0" msb="18" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_8" length="25">
        <fields_condition>When Exception from a Prefetch Abort</fields_condition>
        <fields_instance>Exception from a Prefetch Abort</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_8-24_11" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>24</field_msb>
          <field_lsb>11</field_lsb>
          <rel_range>24:11</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_8-10_10" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>FnV</field_name>
          <field_msb>10</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>10</rel_range>
          <field_description order="before">
            <para>FAR not Valid, for a synchronous External abort other than a synchronous External abort on a translation table walk.</para>
          </field_description>
          <field_description order="after">
            <para>This field is valid only if the IFSC code is <binarynumber>0b010000</binarynumber>. It is <arm-defined-word>RES0</arm-defined-word> for all other aborts.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para><register_link state="AArch32" id="AArch32-hifar.xml">HIFAR</register_link> is valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para><register_link state="AArch32" id="AArch32-hifar.xml">HIFAR</register_link> is not valid, and holds an <arm-defined-word>UNKNOWN</arm-defined-word> value.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_8-9_9" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>EA</field_name>
          <field_msb>9</field_msb>
          <field_lsb>9</field_lsb>
          <rel_range>9</rel_range>
          <field_description order="before"><para>External abort type. This bit can provide an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> classification of External aborts.</para>
<para>For any abort other than an External abort this bit returns a value of 0.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_8-8_8" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>8</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>8</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_8-7_7" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>S1PTW</field_name>
          <field_msb>7</field_msb>
          <field_lsb>7</field_lsb>
          <rel_range>7</rel_range>
          <field_description order="before">
            <para>For a stage 2 fault, indicates whether the fault was a stage 2 fault on an access made for a stage 1 translation table walk:</para>
          </field_description>
          <field_description order="after">
            <para>For any abort other than a stage 2 fault this bit is <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Fault not on a stage 2 translation for a stage 1 translation table walk.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Fault on the stage 2 translation of an access for a stage 1 translation table walk.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_8-6_6" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>6</field_msb>
          <field_lsb>6</field_lsb>
          <rel_range>6</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_8-5_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>IFSC</field_name>
          <field_msb>5</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>5:0</rel_range>
          <field_description order="before">
            <para>Instruction Fault Status Code. Possible values of this field are:</para>
          </field_description>
          <field_description order="after"><para>All other values are reserved.</para>
<para>For more information about the lookup level associated with a fault, see <xref linkend="#BEIEGEFF">'The level associated with MMU faults on a Long-descriptor translation table lookup'</xref>.</para>
<para>If the S1PTW bit is set, then the level refers the level of the stage2 translation that is translating a stage 1 translation walk.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b000000</field_value>
              <field_value_description>
                <para>Address size fault in translation table base register.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000001</field_value>
              <field_value_description>
                <para>Address size fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000010</field_value>
              <field_value_description>
                <para>Address size fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000011</field_value>
              <field_value_description>
                <para>Address size fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000101</field_value>
              <field_value_description>
                <para>Translation fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000110</field_value>
              <field_value_description>
                <para>Translation fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000111</field_value>
              <field_value_description>
                <para>Translation fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001001</field_value>
              <field_value_description>
                <para>Access flag fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001010</field_value>
              <field_value_description>
                <para>Access flag fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001011</field_value>
              <field_value_description>
                <para>Access flag fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001101</field_value>
              <field_value_description>
                <para>Permission fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001110</field_value>
              <field_value_description>
                <para>Permission fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001111</field_value>
              <field_value_description>
                <para>Permission fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010000</field_value>
              <field_value_description>
                <para>Synchronous External abort, not on translation table walk.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010101</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010110</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010111</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011000</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access, not on translation table walk.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011101</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 1.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011110</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 2.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011111</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 3.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b100010</field_value>
              <field_value_description>
                <para>Debug exception.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b110000</field_value>
              <field_value_description>
                <para>TLB conflict abort.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The following sections describe cases where Prefetch Abort exceptions can be routed to Hyp mode, generating exceptions that are reported in the HSR with EC value <binarynumber>0b100000</binarynumber>:</para>
<list type="unordered">
<listitem><content><xref linkend="#BEIBEBFJ">'Abort exceptions, when the value of HCR.TGE is 1'</xref>.</content>
</listitem><listitem><content><xref linkend="#BEIJCCII">'Routing debug exceptions to EL2 using AArch32'</xref>.</content>
</listitem></list></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from a Prefetch Abort</fields_condition>
        <fieldat id="fieldset_0-24_0_8-24_11" msb="24" lsb="11"/>
        <fieldat id="fieldset_0-24_0_8-10_10" msb="10" lsb="10"/>
        <fieldat id="fieldset_0-24_0_8-9_9" msb="9" lsb="9"/>
        <fieldat id="fieldset_0-24_0_8-8_8" msb="8" lsb="8"/>
        <fieldat id="fieldset_0-24_0_8-7_7" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-24_0_8-6_6" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-24_0_8-5_0" msb="5" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_9" length="25">
        <fields_condition>When Exception from an Illegal state or PC alignment fault</fields_condition>
        <fields_instance>Exception from an Illegal state or PC alignment fault</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_9-24_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>24</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>24:0</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <text_after_fields><para>For more information about the Illegal state exception, see:</para>
<list type="unordered">
<listitem><content><xref linkend="#CHDDFIGE">'Illegal changes to PSTATE.M'</xref>.</content>
</listitem><listitem><content><xref linkend="#CHDDDJDB">'Illegal return events from AArch32 state'</xref>.</content>
</listitem><listitem><content><xref linkend="#CHDDAEDF">'Legal returns that set PSTATE.IL to 1'</xref>.</content>
</listitem><listitem><content><xref linkend="#CHDFFBAC">'The Illegal Execution state exception'</xref>.</content>
</listitem></list>
<para>For more information about the PC alignment fault exception, see <xref linkend="#CEGGJFID">'Branching to an unaligned PC'</xref>.</para></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from an Illegal state or PC alignment fault</fields_condition>
        <fieldat id="fieldset_0-24_0_9-24_0" msb="24" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-24_0_10" length="25">
        <fields_condition>When Exception from a Data Abort</fields_condition>
        <fields_instance>Exception from a Data Abort</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-24_0_10-24_24" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>ISV</field_name>
          <field_msb>24</field_msb>
          <field_lsb>24</field_lsb>
          <rel_range>24</rel_range>
          <field_description order="before">
            <para>Instruction Syndrome Valid. Indicates whether the syndrome information in ISS[23:14] is valid.</para>
          </field_description>
          <field_description order="after"><para>This bit is 0 for all faults except Data Abort exceptions generated by stage 2 address translations for which all the following apply to the instruction that generated the Data Abort exception:</para>
<list type="unordered">
<listitem><content>The instruction is an LDR, LDA, LDRT, LDRSH, LDRSHT, LDRH, LDAH, LDRHT, LDRSB, LDRSBT, LDRB, LDAB, LDRBT, STR, STL, STRT, STRH, STLH, STRHT, STRB, STLB, or STRBT instruction.</content>
</listitem><listitem><content>The instruction is not performing register writeback.</content>
</listitem><listitem><content>The instruction is not using the PC as a source or destination register.</content>
</listitem></list>
<para>For these cases, ISV is <arm-defined-word>UNKNOWN</arm-defined-word> if the exception was generated in Debug state in Memory access mode, as described in <xref linkend="#BABDAGHI">'Data Abort exceptions in Memory access mode'</xref>, and otherwise indicates whether ISS[23:14] hold a valid syndrome.</para>
<note><para>In the A32 instruction set, LDR*T and STR*T instructions always perform register writeback and therefore never return a valid instruction syndrome.</para></note><para>When FEAT_RAS is implemented, ISV is 0 for any synchronous External abort.</para>
<para>ISV is set to 0 on a stage 2 abort on a stage 1 translation table walk.</para>
<para>When FEAT_RAS is not implemented, it is <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> whether ISV is set to 1 or 0 on a synchronous External abort on a stage 2 translation table walk.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>No valid instruction syndrome. ISS[23:14] are <arm-defined-word>RES0</arm-defined-word>.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>ISS[23:14] hold a valid instruction syndrome.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-23_22" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SAS</field_name>
          <field_msb>23</field_msb>
          <field_lsb>22</field_lsb>
          <rel_range>23:22</rel_range>
          <field_description order="before">
            <para>Syndrome Access Size. When ISV is 1, indicates the size of the access attempted by the faulting operation.</para>
          </field_description>
          <field_description order="after"><para>This field is <arm-defined-word>UNKNOWN</arm-defined-word> when the value of ISV is <arm-defined-word>UNKNOWN</arm-defined-word>.</para>
<para>This field is <arm-defined-word>RES0</arm-defined-word> when the value of ISV is 0.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b00</field_value>
              <field_value_description>
                <para>Byte</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b01</field_value>
              <field_value_description>
                <para>Halfword</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b10</field_value>
              <field_value_description>
                <para>Word</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b11</field_value>
              <field_value_description>
                <para>Doubleword</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-21_21" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SSE</field_name>
          <field_msb>21</field_msb>
          <field_lsb>21</field_lsb>
          <rel_range>21</rel_range>
          <field_description order="before">
            <para>Syndrome Sign Extend. When ISV is 1, for a byte, halfword, or word load operation, indicates whether the data item must be sign extended. For these cases, the possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>For all other operations this bit is 0.</para>
<para>This field is <arm-defined-word>UNKNOWN</arm-defined-word> when the value of ISV is <arm-defined-word>UNKNOWN</arm-defined-word>.</para>
<para>This field is <arm-defined-word>RES0</arm-defined-word> when the value of ISV is 0.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Sign-extension not required.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Data item must be sign-extended.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-20_20" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>20</field_msb>
          <field_lsb>20</field_lsb>
          <rel_range>20</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_10-19_16" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SRT</field_name>
          <field_msb>19</field_msb>
          <field_lsb>16</field_lsb>
          <rel_range>19:16</rel_range>
          <field_description order="before"><para>Syndrome Register Transfer. When ISV is 1, the register number of the Rt operand of the faulting instruction.</para>
<para>This field is <arm-defined-word>UNKNOWN</arm-defined-word> when the value of ISV is <arm-defined-word>UNKNOWN</arm-defined-word>.</para>
<para>This field is <arm-defined-word>RES0</arm-defined-word> when the value of ISV is 0.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-15_15" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>15</field_msb>
          <field_lsb>15</field_lsb>
          <rel_range>15</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_10-14_14" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>AR</field_name>
          <field_msb>14</field_msb>
          <field_lsb>14</field_lsb>
          <rel_range>14</rel_range>
          <field_description order="before">
            <para>Acquire/Release. When ISV is 1, the possible values of this bit are:</para>
          </field_description>
          <field_description order="after"><para>This field is <arm-defined-word>UNKNOWN</arm-defined-word> when the value of ISV is <arm-defined-word>UNKNOWN</arm-defined-word>.</para>
<para>This field is <arm-defined-word>RES0</arm-defined-word> when the value of ISV is 0.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Instruction did not have acquire/release semantics.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Instruction did have acquire/release semantics.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-13_12" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False" rwtype="RES0">
          <field_msb>13</field_msb>
          <field_lsb>12</field_lsb>
          <rel_range>13:12</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
        </field>
        <field id="fieldset_0-24_0_10-11_10-1" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="True" reserved_type="RES0">
          <field_name>AET</field_name>
          <field_msb>11</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>1:0</rel_range>
          <field_description order="before">
            <para>Asynchronous Error Type. When DFSC is <binarynumber>0b010001</binarynumber>, describes the PE error state after taking the SError exception.</para>
          </field_description>
          <field_description order="after"><para>On a synchronous Data Abort exception, this field is <arm-defined-word>RES0</arm-defined-word>.</para>
<para>In the event of multiple errors taken as a single SError exception, the overall PE error state is reported.</para>
<note><para>Software can use this information to determine what recovery might be possible. The recovery software must also examine any implemented fault records to determine the location and extent of the error.</para></note><para>When FEAT_RAS is not implemented, or when DFSC is not <binarynumber>0b010001</binarynumber>:</para>
<list type="unordered">
<listitem><content>Bit[11] is <arm-defined-word>RES0</arm-defined-word>.</content>
</listitem><listitem><content>Bit[10] forms the FnV field.</content>
</listitem></list></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b00</field_value>
              <field_value_description>
                <para>Uncontainable (UC).</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b01</field_value>
              <field_value_description>
                <para>Unrecoverable state (UEU).</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b10</field_value>
              <field_value_description>
                <para>Restartable state (UEO).</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b11</field_value>
              <field_value_description>
                <para>Recoverable state (UER).</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
          <fields_condition>When FEAT_RAS is implemented</fields_condition>
        </field>
        <field id="fieldset_0-24_0_10-11_11-2" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="True" is_conditional_field_name="True" rwtype="RES0" reserved_type="RES0">
          <field_msb>11</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>1</rel_range>
          <field_description order="before"/>
          <field_description order="before">
            <para>Reserved, <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
          <fields_condition>Otherwise</fields_condition>
        </field>
        <field id="fieldset_0-24_0_10-10_10-3" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="True" reserved_type="RES0">
          <field_name>FnV</field_name>
          <field_msb>11</field_msb>
          <field_lsb>10</field_lsb>
          <rel_range>0</rel_range>
          <field_description order="before">
            <para>FAR not Valid, for a synchronous External abort other than a synchronous External abort on a translation table walk.</para>
          </field_description>
          <field_description order="after"><para>When FEAT_RAS is not implemented, this field is valid only if DFSC is <binarynumber>0b010000</binarynumber>. It is <arm-defined-word>RES0</arm-defined-word> for all other aborts.</para>
<para>When FEAT_RAS is implemented:</para>
<list type="unordered">
<listitem><content>If DFSC is <binarynumber>0b010000</binarynumber>, this field is valid.</content>
</listitem><listitem><content>If DFSC is <binarynumber>0b010001</binarynumber>, this bit forms part of the AET field, becoming AET[0].</content>
</listitem><listitem><content>This field is <arm-defined-word>RES0</arm-defined-word> for all other aborts.</content>
</listitem></list></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para><register_link state="AArch32" id="AArch32-hdfar.xml">HDFAR</register_link> is valid.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para><register_link state="AArch32" id="AArch32-hdfar.xml">HDFAR</register_link> is not valid, and holds an <arm-defined-word>UNKNOWN</arm-defined-word> value.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
          <fields_condition>Otherwise</fields_condition>
        </field>
        <field id="fieldset_0-24_0_10-9_9" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>EA</field_name>
          <field_msb>9</field_msb>
          <field_lsb>9</field_lsb>
          <rel_range>9</rel_range>
          <field_description order="before"><para>External Abort type. This bit can provide an <arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> classification of External aborts.</para>
<para>For any abort other than an External abort this bit returns a value of 0.</para></field_description>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-8_8" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CM</field_name>
          <field_msb>8</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>8</rel_range>
          <field_description order="before">
            <para>Cache Maintenance. For a synchronous fault, identifies fault that comes from a cache maintenance or address translation instruction. For synchronous faults, the possible values of this bit are:</para>
          </field_description>
          <field_description order="after">
            <para>For an asynchronous Data Abort exception, this bit is 0.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Fault not generated by a cache maintenance or address translation instruction.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Fault generated by a cache maintenance or address translation instruction.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-7_7" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>S1PTW</field_name>
          <field_msb>7</field_msb>
          <field_lsb>7</field_lsb>
          <rel_range>7</rel_range>
          <field_description order="before">
            <para>For a stage 2 fault, indicates whether the fault was a stage 2 fault on an access made for a stage 1 translation table walk:</para>
          </field_description>
          <field_description order="after">
            <para>For any abort other than a stage 2 fault this bit is <arm-defined-word>RES0</arm-defined-word>.</para>
          </field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Fault not on a stage 2 translation for a stage 1 translation table walk.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Fault on the stage 2 translation of an access for a stage 1 translation table walk.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-6_6" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>WnR</field_name>
          <field_msb>6</field_msb>
          <field_lsb>6</field_lsb>
          <rel_range>6</rel_range>
          <field_description order="before">
            <para>Write not Read. Indicates whether a synchronous abort was caused by a write instruction or a read instruction.</para>
          </field_description>
          <field_description order="after"><para>For faults on cache maintenance and address translation instructions, this bit always returns a value of 1.</para>
<para>On an asynchronous Data Abort exception:</para>
<list type="unordered">
<listitem><content>When FEAT_RAS is not implemented, this bit is <arm-defined-word>UNKNOWN</arm-defined-word>.</content>
</listitem><listitem><content>When FEAT_RAS is implemented, this bit is <arm-defined-word>RES0</arm-defined-word>.</content>
</listitem></list></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Abort caused by a read instruction.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Abort caused by a write instruction.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-24_0_10-5_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="False" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>DFSC</field_name>
          <field_msb>5</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>5:0</rel_range>
          <field_description order="before">
            <para>Data Fault Status Code. Possible values of this field are:</para>
          </field_description>
          <field_description order="after"><para>All other values are reserved.</para>
<para>For more information about the lookup level associated with a fault, see <xref linkend="#BEIEGEFF">'The level associated with MMU faults on a Long-descriptor translation table lookup'</xref>.</para>
<para>If the S1PTW bit is set, then the level refers the level of the stage2 translation that is translating a stage 1 translation walk.</para></field_description>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b000000</field_value>
              <field_value_description>
                <para>Address size fault in translation table base register.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000001</field_value>
              <field_value_description>
                <para>Address size fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000010</field_value>
              <field_value_description>
                <para>Address size fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000011</field_value>
              <field_value_description>
                <para>Address size fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000101</field_value>
              <field_value_description>
                <para>Translation fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000110</field_value>
              <field_value_description>
                <para>Translation fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b000111</field_value>
              <field_value_description>
                <para>Translation fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001001</field_value>
              <field_value_description>
                <para>Access flag fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001010</field_value>
              <field_value_description>
                <para>Access flag fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001011</field_value>
              <field_value_description>
                <para>Access flag fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001101</field_value>
              <field_value_description>
                <para>Permission fault, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001110</field_value>
              <field_value_description>
                <para>Permission fault, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b001111</field_value>
              <field_value_description>
                <para>Permission fault, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010000</field_value>
              <field_value_description>
                <para>Synchronous External abort, not on translation table walk.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010001</field_value>
              <field_value_description>
                <para>Asynchronous SError exception.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010101</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 1.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010110</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 2.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b010111</field_value>
              <field_value_description>
                <para>Synchronous External abort on translation table walk, level 3.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011000</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access, not on translation table walk.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011001</field_value>
              <field_value_description>
                <para>Asynchronous SError exception, from a parity or ECC error on memory access.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011101</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 1.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011110</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 2.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b011111</field_value>
              <field_value_description>
                <para>Synchronous parity or ECC error on memory access on translation table walk, level 3.</para>
              </field_value_description>
              <field_value_condition>When FEAT_RAS is not implemented</field_value_condition>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b100001</field_value>
              <field_value_description>
                <para>Alignment fault.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b100010</field_value>
              <field_value_description>
                <para>Debug exception.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b110000</field_value>
              <field_value_description>
                <para>TLB conflict abort.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b110100</field_value>
              <field_value_description>
                <para><arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> fault (Lockdown).</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b110101</field_value>
              <field_value_description>
                <para><arm-defined-word>IMPLEMENTATION DEFINED</arm-defined-word> fault (Unsupported Exclusive access).</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Warm">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields><para>The following describe cases where Data Abort exceptions can be routed to Hyp mode, generating exceptions that are reported in the HSR with EC value <binarynumber>0b100100</binarynumber>:</para>
<list type="unordered">
<listitem><content><xref linkend="#BEIBEBFJ">'Abort exceptions, when the value of HCR.TGE is 1'</xref>.</content>
</listitem><listitem><content><xref linkend="#BEIJCCII">'Routing debug exceptions to EL2 using AArch32'</xref>.</content>
</listitem></list>
<para>The following describe cases that can cause a Data Abort exception that is taken to Hyp mode, and reported in the HSR with EC value of <binarynumber>0b100000</binarynumber> or <binarynumber>0b100100</binarynumber>:</para>
<list type="unordered">
<listitem><content><xref linkend="#BEICEHAG">'Hyp mode control of Non-secure access permissions'</xref>.</content>
</listitem><listitem><content><xref linkend="#BEIGBCEG">'Memory fault reporting in Hyp mode'</xref>.</content>
</listitem></list></text_after_fields>
      </fields>
      <reg_fieldset length="25">
        <fields_condition>When Exception from a Data Abort</fields_condition>
        <fieldat id="fieldset_0-24_0_10-24_24" msb="24" lsb="24"/>
        <fieldat id="fieldset_0-24_0_10-23_22" msb="23" lsb="22"/>
        <fieldat id="fieldset_0-24_0_10-21_21" msb="21" lsb="21"/>
        <fieldat id="fieldset_0-24_0_10-20_20" msb="20" lsb="20"/>
        <fieldat id="fieldset_0-24_0_10-19_16" msb="19" lsb="16"/>
        <fieldat id="fieldset_0-24_0_10-15_15" msb="15" lsb="15"/>
        <fieldat id="fieldset_0-24_0_10-14_14" msb="14" lsb="14"/>
        <fieldat id="fieldset_0-24_0_10-13_12" msb="13" lsb="12"/>
        <fieldat id="fieldset_0-24_0_10-11_10-1" label="Bits[11:10]" msb="11" lsb="10"/>
        <fieldat id="fieldset_0-24_0_10-9_9" msb="9" lsb="9"/>
        <fieldat id="fieldset_0-24_0_10-8_8" msb="8" lsb="8"/>
        <fieldat id="fieldset_0-24_0_10-7_7" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-24_0_10-6_6" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-24_0_10-5_0" msb="5" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="32">
  <fieldat id="fieldset_0-31_26" msb="31" lsb="26"/>
  <fieldat id="fieldset_0-25_25" msb="25" lsb="25"/>
  <fieldat id="fieldset_0-24_0" msb="24" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>

      <access_mechanisms>
          






    
        
        <access_mechanism accessor="MRC HSR" type="SystemAccessor">
            <encoding>
            <access_instruction>MRC{&lt;c&gt;}{&lt;q&gt;} &lt;coproc&gt;, {#}&lt;opc1&gt;, &lt;Rt&gt;, &lt;CRn&gt;, &lt;CRm&gt;{, {#}&lt;opc2&gt;}</access_instruction>
                
                <enc n="coproc" v="0b1111"/>
                
                <enc n="opc1" v="0b100"/>
                
                <enc n="CRn" v="0b0101"/>
                
                <enc n="CRm" v="0b0010"/>
                
                <enc n="opc2" v="0b000"/>
            </encoding>
            <access_permission>
                <ps name="MRC" sections="1" secttype="access_permission">
                <pstext>
if !IsFeatureImplemented(FEAT_AA32EL2) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_AA64EL2) &amp;&amp; !ELUsingAArch32(EL2) &amp;&amp; HSTR_EL2().T5 == '1' then
        AArch64_AArch32SystemAccessTrap(EL2, 0x03);
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_AA32EL2) &amp;&amp; ELUsingAArch32(EL2) &amp;&amp; HSTR().T5 == '1' then
        AArch32_TakeHypTrapException(0x03);
    else
        Undefined();
    end;
elsif PSTATE.EL == EL2 then
    R(t) = HSR();
elsif PSTATE.EL == EL3 then
    if SCR().NS == '0' then
        Undefined();
    else
        R(t) = HSR();
    end;
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>
    
        
        <access_mechanism accessor="MCR HSR" type="SystemAccessor">
            <encoding>
            <access_instruction>MCR{&lt;c&gt;}{&lt;q&gt;} &lt;coproc&gt;, {#}&lt;opc1&gt;, &lt;Rt&gt;, &lt;CRn&gt;, &lt;CRm&gt;{, {#}&lt;opc2&gt;}</access_instruction>
                
                <enc n="coproc" v="0b1111"/>
                
                <enc n="opc1" v="0b100"/>
                
                <enc n="CRn" v="0b0101"/>
                
                <enc n="CRm" v="0b0010"/>
                
                <enc n="opc2" v="0b000"/>
            </encoding>
            <access_permission>
                <ps name="MCR" sections="1" secttype="access_permission">
                <pstext>
if !IsFeatureImplemented(FEAT_AA32EL2) then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_AA64EL2) &amp;&amp; !ELUsingAArch32(EL2) &amp;&amp; HSTR_EL2().T5 == '1' then
        AArch64_AArch32SystemAccessTrap(EL2, 0x03);
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_AA32EL2) &amp;&amp; ELUsingAArch32(EL2) &amp;&amp; HSTR().T5 == '1' then
        AArch32_TakeHypTrapException(0x03);
    else
        Undefined();
    end;
elsif PSTATE.EL == EL2 then
    HSR() = R(t);
elsif PSTATE.EL == EL3 then
    if SCR().NS == '0' then
        Undefined();
    else
        HSR() = R(t);
    end;
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>

      </access_mechanisms>

      <arch_variants>
      </arch_variants>
  </register>
</registers>
<timestamp>2026-03-26 20:27:25</timestamp>
<commit_id>2026-03_rel</commit_id>
</register_page>