Activity Monitors Counter Group 1 Identification Register
Defines which auxiliary counters are implemented, and which of them have a corresponding virtual offset register, AMEVCNTVOFF1<n>_EL2 implemented.
This register is present only when FEAT_AMUv1p1 is implemented. Otherwise, direct accesses to AMCG1IDR_EL0 are UNDEFINED.
AMCG1IDR_EL0 is a 64-bit register.
Reserved, RES0.
Indicates which implemented auxiliary counters have a corresponding virtual offset register, AMEVCNTVOFF1<n>_EL2 implemented.
| AMEVCNTOFF1<n>_EL2 | Meaning |
|---|---|
| 0b0 |
AMEVCNTR1<n>_EL0 does not have an offset, or is not implemented. |
| 0b1 |
The offset AMEVCNTVOFF1<n>_EL2 is implemented for AMEVCNTR1<n>_EL0. |
Indicates which auxiliary counters AMEVCNTR1<n>_EL0 are implemented.
| AMEVCNTR1<n>_EL0 | Meaning |
|---|---|
| 0b0 |
AMEVCNTR1<n>_EL0 is not implemented. |
| 0b1 |
AMEVCNTR1<n>_EL0 is implemented. |
Accesses to this register use the following encodings in the System register encoding space:
MRS <Xt>, AMCG1IDR_EL0
(op0 = 0b11, op1 = 0b011, CRn = 0b1101, CRm = 0b0010, op2 = 0b110)
if !IsFeatureImplemented(FEAT_AMUv1p1) then UNDEFINED; elsif PSTATE.EL == EL0 then if HaveEL(EL3) && EL3SDDUndefPriority() && CPTR_EL3.TAM == '1' then UNDEFINED; elsif AMUSERENR_EL0.EN == '0' then if EL2Enabled() && HCR_EL2.TGE == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else AArch64.SystemAccessTrap(EL1, 0x18); elsif EL2Enabled() && CPTR_EL2.TAM == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && CPTR_EL3.TAM == '1' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else X[t, 64] = AMCG1IDR_EL0; elsif PSTATE.EL == EL1 then if HaveEL(EL3) && EL3SDDUndefPriority() && CPTR_EL3.TAM == '1' then UNDEFINED; elsif EL2Enabled() && CPTR_EL2.TAM == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && CPTR_EL3.TAM == '1' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else X[t, 64] = AMCG1IDR_EL0; elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && CPTR_EL3.TAM == '1' then UNDEFINED; elsif HaveEL(EL3) && CPTR_EL3.TAM == '1' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else X[t, 64] = AMCG1IDR_EL0; elsif PSTATE.EL == EL3 then X[t, 64] = AMCG1IDR_EL0;
Version 2025.09 — Copyright © 2010-2025 Arm Limited or its affiliates.
This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.