<?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="AArch64" is_register="True" is_internal="True" is_stub_entry="False">
      <reg_short_name>TRCRSCTLR&lt;n&gt;</reg_short_name>
        
        <reg_long_name>Trace Resource Selection Control Register &lt;n&gt;</reg_long_name>



      
            <reg_condition otherwise="UNDEFINED">when FEAT_ETE is implemented, System register access to the trace unit registers is implemented, and (UInt(TRCIDR4.NUMRSPAIR) + 1) * 2 > n</reg_condition>
          <reg_array>
              <reg_array_start>2</reg_array_start>
              <reg_array_end>31</reg_array_end>
         </reg_array>
      




          <reg_reset_value></reg_reset_value>

      <reg_mappings>
        



    
      
      <reg_mapping>
        
  

    

  

    <mapped_name filename="ext-trcrsctlrn.xml">TRCRSCTLR&lt;n&gt;</mapped_name>
  <mapped_type>Architectural</mapped_type>
      <mapped_execution_state>External</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>Controls the selection of the resources in the trace unit.</para>
      </purpose_text>

        </reg_purpose>

      <reg_groups>
          <reg_group>Trace</reg_group>
      </reg_groups>
      <reg_configuration>
        
    
      <configuration_text>
        <para>Resource selector 0 always returns FALSE.</para>

      </configuration_text>
      <configuration_text>
        <para>Resource selector 1 always returns TRUE.</para>

      </configuration_text>
      <configuration_text>
        <para>Resource selectors are implemented in pairs. Each odd numbered resource selector is part of a pair with the even numbered resource selector that is numbered as one less than it. For example, resource selectors 2 and 3 form a pair.</para>
      </configuration_text>

      </reg_configuration>
      
      
        
      <reg_attributes>
          
    
      <attributes_text>
        <para>TRCRSCTLR&lt;n&gt; is a 64-bit register.</para>
      </attributes_text>

      </reg_attributes>
      <reg_fieldsets>
        






<fields id="fieldset_0" length="64">
  <text_before_fields/>
  <field id="fieldset_0-63_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" rwtype="RES0">
    <field_msb>63</field_msb>
    <field_lsb>22</field_lsb>
    <rel_range>63:22</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-21_21-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" reserved_type="RES0">
    <field_name>PAIRINV</field_name>
    <field_msb>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>0</rel_range>
    <field_description order="before">
      <para>Controls whether the combined result from a resource selector pair is inverted.</para>
    </field_description>
    <field_description order="after"><para>If:</para>
<list type="unordered">
<listitem><content>A is the register TRCRSCTLR&lt;n&gt;.</content>
</listitem><listitem><content>B is the register TRCRSCTLR&lt;n+1&gt;.</content>
</listitem></list>
<para>Then the combined output of the 2 resource selectors A and B depends on the value of (A.PAIRINV, A.INV, B.INV) as follows:</para>
<list type="unordered">
<listitem><content><binarynumber>0b000</binarynumber> -&gt; A and B.</content>
</listitem><listitem><content><binarynumber>0b001</binarynumber> -&gt; Reserved.</content>
</listitem><listitem><content><binarynumber>0b010</binarynumber> -&gt; not(A) and B.</content>
</listitem><listitem><content><binarynumber>0b011</binarynumber> -&gt; not(A) and not(B).</content>
</listitem><listitem><content><binarynumber>0b100</binarynumber> -&gt; not(A) or not(B).</content>
</listitem><listitem><content><binarynumber>0b101</binarynumber> -&gt; not(A) or B.</content>
</listitem><listitem><content><binarynumber>0b110</binarynumber> -&gt; Reserved.</content>
</listitem><listitem><content><binarynumber>0b111</binarynumber> -&gt; A or B.</content>
</listitem></list></field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Do not invert the combined output of the 2 resource selectors.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Invert the combined output of the 2 resource selectors.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Trace unit">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
    <fields_condition>When n is even</fields_condition>
  </field>
  <field id="fieldset_0-21_21-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="False" is_conditional_field_name="False" rwtype="RES0">
    <field_msb>21</field_msb>
    <field_lsb>21</field_lsb>
    <rel_range>21</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-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">
    <field_name>INV</field_name>
    <field_msb>20</field_msb>
    <field_lsb>20</field_lsb>
    <rel_range>20</rel_range>
    <field_description order="before">
      <para>Controls whether the resource, that TRCRSCTLR&lt;n&gt;.GROUP and TRCRSCTLR&lt;n&gt;.SELECT selects, is inverted.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0</field_value>
        <field_value_description>
          <para>Do not invert the output of this selector.</para>
        </field_value_description>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b1</field_value>
        <field_value_description>
          <para>Invert the output of this selector.</para>
        </field_value_description>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Trace unit">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-19_16" 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>GROUP</field_name>
    <field_msb>19</field_msb>
    <field_lsb>16</field_lsb>
    <rel_range>19:16</rel_range>
    <field_description order="before">
      <para>Selects a group of resources.</para>
    </field_description>
    <field_description order="after">
      <para>All other values are reserved.</para>
    </field_description>
    <field_values impdef="False">
      <field_value_instance>
        <field_value>0b0000</field_value>
        <field_value_description>
          <para>External Input Selectors.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="External Input Selectors" linked_field_id="fieldset_0-15_0_0"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0001</field_value>
        <field_value_description>
          <para>PE Comparator Inputs.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="PE Comparator Inputs" linked_field_id="fieldset_0-15_0_1"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0010</field_value>
        <field_value_description>
          <para>Counters and Sequencer.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Counters and Sequencer" linked_field_id="fieldset_0-15_0_2"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0011</field_value>
        <field_value_description>
          <para>Single-shot Comparator Controls.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Single-shot Comparator Controls" linked_field_id="fieldset_0-15_0_3"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0100</field_value>
        <field_value_description>
          <para>Single Address Comparators.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Single Address Comparators" linked_field_id="fieldset_0-15_0_4"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0101</field_value>
        <field_value_description>
          <para>Address Range Comparators.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Address Range Comparators" linked_field_id="fieldset_0-15_0_5"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0110</field_value>
        <field_value_description>
          <para>Context Identifier Comparators.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Context Identifier Comparators" linked_field_id="fieldset_0-15_0_6"/>
      </field_value_instance>
      <field_value_instance>
        <field_value>0b0111</field_value>
        <field_value_description>
          <para>Virtual Context Identifier Comparators.</para>
        </field_value_description>
        <field_value_links_to linked_field_name="SELECT" linked_field_condition="Virtual Context Identifier Comparators" linked_field_id="fieldset_0-15_0_7"/>
      </field_value_instance>
    </field_values>
    <field_resets>
      <field_reset reset_type="Trace unit">
        <field_reset_standard_text>AU</field_reset_standard_text>
      </field_reset>
    </field_resets>
  </field>
  <field id="fieldset_0-15_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>SELECT</field_name>
    <field_msb>15</field_msb>
    <field_lsb>0</field_lsb>
    <rel_range>15:0</rel_range>
    <field_description order="before">
      <para>Resource Specific Controls. Contains the controls specific to the resource group selected by GROUP, described in the following sections.</para>
    </field_description>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_0" length="16">
        <fields_condition/>
        <fields_instance>External Input Selectors</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_0-15_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>15</field_msb>
          <field_lsb>4</field_lsb>
          <rel_range>15: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-15_0_0-3_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>EXTIN[&lt;m&gt;]</field_name>
          <field_msb>3</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>3:0</rel_range>
          <field_description order="before">
            <para>Selects one or more External Inputs.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr5.xml">TRCIDR5</register_link>.NUMEXTINSEL.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>3</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore EXTIN &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select EXTIN &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_0-15_4" msb="15" lsb="4"/>
        <fieldat id="fieldset_0-15_0_0-3_0" label="EXTIN[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_0-3_0" label="EXTIN[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_0-3_0" label="EXTIN[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_0-3_0" label="EXTIN[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_1" length="16">
        <fields_condition/>
        <fields_instance>PE Comparator Inputs</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_1-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_1-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>PECOMP[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>7:0</rel_range>
          <field_description order="before">
            <para>Selects one or more PE Comparator Inputs.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMPC.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>7</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore PE Comparator Input &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select PE Comparator Input &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_1-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_1-7_0" label="PECOMP[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_2" length="16">
        <fields_condition/>
        <fields_instance>Counters and Sequencer</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_2-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_2-7_4" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SEQUENCER[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>4</field_lsb>
          <rel_range>7:4</rel_range>
          <field_description order="before">
            <para>Sequencer states.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr5.xml">TRCIDR5</register_link>.NUMSEQSTATE.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m+4">
            <field_array_index>
              <field_array_start>3</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Sequencer state &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Sequencer state &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <field id="fieldset_0-15_0_2-3_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>COUNTERS[&lt;m&gt;]</field_name>
          <field_msb>3</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>3:0</rel_range>
          <field_description order="before">
            <para>Counters resources at zero.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr5.xml">TRCIDR5</register_link>.NUMCNTR.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>3</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Counter &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Counter &lt;m&gt; is zero.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_2-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_2-7_4" label="SEQUENCER[3]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_2-7_4" label="SEQUENCER[2]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_2-7_4" label="SEQUENCER[1]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_2-7_4" label="SEQUENCER[0]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_2-3_0" label="COUNTERS[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_2-3_0" label="COUNTERS[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_2-3_0" label="COUNTERS[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_2-3_0" label="COUNTERS[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_3" length="16">
        <fields_condition/>
        <fields_instance>Single-shot Comparator Controls</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_3-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_3-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SINGLE_SHOT[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>7:0</rel_range>
          <field_description order="before">
            <para>Selects one or more Single-shot Comparator Controls.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMSSCC.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>7</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Single-shot Comparator Control &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Single-shot Comparator Control &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_3-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_3-7_0" label="SINGLE_SHOT[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_4" length="16">
        <fields_condition/>
        <fields_instance>Single Address Comparators</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_4-15_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>SAC[&lt;m&gt;]</field_name>
          <field_msb>15</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>15:0</rel_range>
          <field_description order="before">
            <para>Selects one or more Single Address Comparators.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= 2 × <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMACPAIRS.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>15</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Single Address Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Single Address Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[15]" msb="15" lsb="15"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[14]" msb="14" lsb="14"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[13]" msb="13" lsb="13"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[12]" msb="12" lsb="12"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[11]" msb="11" lsb="11"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[10]" msb="10" lsb="10"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[9]" msb="9" lsb="9"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[8]" msb="8" lsb="8"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_4-15_0" label="SAC[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_5" length="16">
        <fields_condition/>
        <fields_instance>Address Range Comparators</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_5-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_5-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>ARC[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>7:0</rel_range>
          <field_description order="before">
            <para>Selects one or more Address Range Comparators.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMACPAIRS.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>7</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Address Range Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Address Range Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_5-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_5-7_0" label="ARC[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_6" length="16">
        <fields_condition/>
        <fields_instance>Context Identifier Comparators</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_6-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_6-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>CID[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>7:0</rel_range>
          <field_description order="before">
            <para>Selects one or more Context Identifier Comparators.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMCIDC.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>7</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Context Identifier Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Context Identifier Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_6-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_6-7_0" label="CID[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
    <partial_fieldset>
      <fields id="fieldset_0-15_0_7" length="16">
        <fields_condition/>
        <fields_instance>Virtual Context Identifier Comparators</fields_instance>
        <text_before_fields/>
        <field id="fieldset_0-15_0_7-15_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>15</field_msb>
          <field_lsb>8</field_lsb>
          <rel_range>15: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-15_0_7-7_0" has_partial_fieldset="False" is_linked_to_partial_fieldset="False" is_access_restriction_possible="False" is_variable_length="True" is_constant_value="False" is_partial_field="False" is_conditional_field_name="False">
          <field_name>VMID[&lt;m&gt;]</field_name>
          <field_msb>7</field_msb>
          <field_lsb>0</field_lsb>
          <rel_range>7:0</rel_range>
          <field_description order="before">
            <para>Selects one or more Virtual Context Identifier Comparators.</para>
          </field_description>
          <field_description order="after">
            <para>This bit is <arm-defined-word>RES0</arm-defined-word> if m &gt;= <register_link state="AArch64" id="AArch64-trcidr4.xml">TRCIDR4</register_link>.NUMVMIDC.</para>
          </field_description>
          <field_array_indexes index_variable="m" element_size="1" range_specifier="m">
            <field_array_index>
              <field_array_start>7</field_array_start>
              <field_array_end>0</field_array_end>
            </field_array_index>
          </field_array_indexes>
          <field_values impdef="False">
            <field_value_instance>
              <field_value>0b0</field_value>
              <field_value_description>
                <para>Ignore Virtual Context Identifier Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
            <field_value_instance>
              <field_value>0b1</field_value>
              <field_value_description>
                <para>Select Virtual Context Identifier Comparator &lt;m&gt;.</para>
              </field_value_description>
            </field_value_instance>
          </field_values>
          <field_resets>
            <field_reset reset_type="Trace unit">
              <field_reset_standard_text>AU</field_reset_standard_text>
            </field_reset>
          </field_resets>
        </field>
        <text_after_fields/>
      </fields>
      <reg_fieldset length="16">
        <fields_condition/>
        <fieldat id="fieldset_0-15_0_7-15_8" msb="15" lsb="8"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[7]" msb="7" lsb="7"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[6]" msb="6" lsb="6"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[5]" msb="5" lsb="5"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[4]" msb="4" lsb="4"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[3]" msb="3" lsb="3"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[2]" msb="2" lsb="2"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[1]" msb="1" lsb="1"/>
        <fieldat id="fieldset_0-15_0_7-7_0" label="VMID[0]" msb="0" lsb="0"/>
      </reg_fieldset>
    </partial_fieldset>
  </field>
  <text_after_fields/>
</fields>




<reg_fieldset length="64">
  <fieldat id="fieldset_0-63_22" msb="63" lsb="22"/>
  <fieldat id="fieldset_0-21_21-1" msb="21" lsb="21"/>
  <fieldat id="fieldset_0-20_20" msb="20" lsb="20"/>
  <fieldat id="fieldset_0-19_16" msb="19" lsb="16"/>
  <fieldat id="fieldset_0-15_0" msb="15" lsb="0"/>
</reg_fieldset>


      </reg_fieldsets>
        <reg_variables>
              <reg_variable variable="n" min="2" max="31"/>
        </reg_variables>

      <access_mechanisms>
          


  
    
      <access_permission_text>
        <para>Must be programmed if any of the following are true:</para>

      </access_permission_text>
      <access_permission_text>
        <list type="unordered">
<listitem><content><register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.RLDEVENT_TYPE == 0 and <register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.RLDEVENT_SEL == n.</content>
</listitem><listitem><content><register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.RLDEVENT_TYPE == 1 and <register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.RLDEVENT_SEL == n/2.</content>
</listitem><listitem><content><register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.CNTEVENT_TYPE == 0 and <register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.CNTEVENT_SEL == n.</content>
</listitem><listitem><content><register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.CNTEVENT_TYPE == 1 and <register_link id="AArch64-trccntctlrn.xml" state="AArch64">TRCCNTCTLR&lt;a&gt;</register_link>.CNTEVENT_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT0_TYPE == 0 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT0_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT0_TYPE == 1 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT0_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT1_TYPE == 0 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT1_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT1_TYPE == 1 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT1_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT2_TYPE == 0 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT2_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT2_TYPE == 1 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT2_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT3_TYPE == 0 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT3_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT3_TYPE == 1 and <register_link state="AArch64" id="AArch64-trceventctl0r.xml">TRCEVENTCTL0R</register_link>.EVENT3_SEL == n/2.</content>
</listitem><listitem><content><register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.B_TYPE == 0 and <register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.B_SEL = n.</content>
</listitem><listitem><content><register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.B_TYPE == 1 and <register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.B_SEL = n/2.</content>
</listitem><listitem><content><register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.F_TYPE == 0 and <register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.F_SEL = n.</content>
</listitem><listitem><content><register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.F_TYPE == 1 and <register_link id="AArch64-trcseqevrn.xml" state="AArch64">TRCSEQEVR&lt;a&gt;</register_link>.F_SEL = n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trcseqrstevr.xml">TRCSEQRSTEVR</register_link>.RST_TYPE == 0 and <register_link state="AArch64" id="AArch64-trcseqrstevr.xml">TRCSEQRSTEVR</register_link>.RST_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trcseqrstevr.xml">TRCSEQRSTEVR</register_link>.RST_TYPE == 1 and <register_link state="AArch64" id="AArch64-trcseqrstevr.xml">TRCSEQRSTEVR</register_link>.RST_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trctsctlr.xml">TRCTSCTLR</register_link>.EVENT_TYPE == 0 and <register_link state="AArch64" id="AArch64-trctsctlr.xml">TRCTSCTLR</register_link>.EVENT_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trctsctlr.xml">TRCTSCTLR</register_link>.EVENT_TYPE == 1 and <register_link state="AArch64" id="AArch64-trctsctlr.xml">TRCTSCTLR</register_link>.EVENT_SEL == n/2.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trcvictlr.xml">TRCVICTLR</register_link>.EVENT_TYPE == 0 and <register_link state="AArch64" id="AArch64-trcvictlr.xml">TRCVICTLR</register_link>.EVENT_SEL == n.</content>
</listitem><listitem><content><register_link state="AArch64" id="AArch64-trcvictlr.xml">TRCVICTLR</register_link>.EVENT_TYPE == 1 and <register_link state="AArch64" id="AArch64-trcvictlr.xml">TRCVICTLR</register_link>.EVENT_SEL == n/2.</content>
</listitem></list>

      </access_permission_text>
      <access_permission_text>
        <para>Writes are <arm-defined-word>CONSTRAINED UNPREDICTABLE</arm-defined-word> if the trace unit is not in the Idle state.</para>
      </access_permission_text>





    
        
        <access_mechanism accessor="MRS TRCRSCTLR&lt;m&gt;" type="SystemAccessor">
            <encoding>
                
                <acc_array var="m">
                    <acc_array_range>2-31</acc_array_range>
                </acc_array>
            <access_instruction>MRS &lt;Xt&gt;, TRCRSCTLR&lt;m&gt;</access_instruction>
                
                <enc n="op0" v="0b10"/>
                
                <enc n="op1" v="0b001"/>
                
                <enc n="CRn" v="0b0001"/>
                
                <enc n="CRm" v="m[3:0]"/>
                
                <enc n="op2" v="0b00:m[4]"/>
            </encoding>
            <access_permission>
                <ps name="MRS" sections="1" secttype="access_permission">
                <pstext>
let m:integer = UInt(op2[0] :: CRm[3:0]);

if m &gt;= NUM_TRACE_RESOURCE_SELECTOR_PAIRS * 2 then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; CPTR_EL3().TTA == '1' then
        Undefined();
    elsif CPACR_EL1().TTA == '1' then
        AArch64_SystemAccessTrap(EL1, 0x18);
    elsif EL2Enabled() &amp;&amp; CPTR_EL2().TTA == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGRTR_EL2().TRC == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; CPTR_EL3().TTA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        X{64}(t) = TRCRSCTLR(m);
    end;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; CPTR_EL3().TTA == '1' then
        Undefined();
    elsif CPTR_EL2().TTA == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; CPTR_EL3().TTA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        X{64}(t) = TRCRSCTLR(m);
    end;
elsif PSTATE.EL == EL3 then
    if CPTR_EL3().TTA == '1' then
        AArch64_SystemAccessTrap(EL3, 0x18);
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        X{64}(t) = TRCRSCTLR(m);
    end;
end;
                </pstext>
                </ps>
            </access_permission>
        </access_mechanism>
    
        
        <access_mechanism accessor="MSRregister TRCRSCTLR&lt;m&gt;" type="SystemAccessor">
            <encoding>
                
                <acc_array var="m">
                    <acc_array_range>2-31</acc_array_range>
                </acc_array>
            <access_instruction>MSR TRCRSCTLR&lt;m&gt;, &lt;Xt&gt;</access_instruction>
                
                <enc n="op0" v="0b10"/>
                
                <enc n="op1" v="0b001"/>
                
                <enc n="CRn" v="0b0001"/>
                
                <enc n="CRm" v="m[3:0]"/>
                
                <enc n="op2" v="0b00:m[4]"/>
            </encoding>
            <access_permission>
                <ps name="MSRregister" sections="1" secttype="access_permission">
                <pstext>
let m:integer = UInt(op2[0] :: CRm[3:0]);

if m &gt;= NUM_TRACE_RESOURCE_SELECTOR_PAIRS * 2 then
    Undefined();
elsif PSTATE.EL == EL0 then
    Undefined();
elsif PSTATE.EL == EL1 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; CPTR_EL3().TTA == '1' then
        Undefined();
    elsif CPACR_EL1().TTA == '1' then
        AArch64_SystemAccessTrap(EL1, 0x18);
    elsif EL2Enabled() &amp;&amp; CPTR_EL2().TTA == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif EL2Enabled() &amp;&amp; IsFeatureImplemented(FEAT_FGT) &amp;&amp; (!HaveEL(EL3) || SCR_EL3().FGTEn == '1') &amp;&amp; HDFGWTR_EL2().TRC == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; CPTR_EL3().TTA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        TRCRSCTLR(m) = X{64}(t);
    end;
elsif PSTATE.EL == EL2 then
    if HaveEL(EL3) &amp;&amp; EL3SDDUndefPriority() &amp;&amp; CPTR_EL3().TTA == '1' then
        Undefined();
    elsif CPTR_EL2().TTA == '1' then
        AArch64_SystemAccessTrap(EL2, 0x18);
    elsif HaveEL(EL3) &amp;&amp; CPTR_EL3().TTA == '1' then
        if EL3SDDUndef() then
            Undefined();
        else
            AArch64_SystemAccessTrap(EL3, 0x18);
        end;
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        TRCRSCTLR(m) = X{64}(t);
    end;
elsif PSTATE.EL == EL3 then
    if CPTR_EL3().TTA == '1' then
        AArch64_SystemAccessTrap(EL3, 0x18);
    elsif IsFeatureImplemented(FEAT_TRBE_EXT) &amp;&amp; OSLSR_EL1().OSLK == '0' &amp;&amp; HaltingAllowed() &amp;&amp; EDSCR2().TTA == '1' then
        Halt(DebugHalt_SoftwareAccess);
    else
        TRCRSCTLR(m) = X{64}(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>