PMSEVFR_EL1, Sampling Event Filter Register
The PMSEVFR_EL1 characteristics are:
Purpose
Controls sample filtering by events. The overall filter is the logical AND of these filters. For example, if E[3] and E[5] are both set to 1, only samples that have both event 3 (Level 1 unified or data cache refill) and event 5 set (TLB walk) are recorded
Configuration
This register is present only when FEAT_SPE is implemented. Otherwise, direct accesses to PMSEVFR_EL1 are UNDEFINED.
Attributes
PMSEVFR_EL1 is a 64-bit register.
Field descriptions
The PMSEVFR_EL1 bit assignments are:
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
E[63] | E[62] | E[61] | E[60] | E[59] | E[58] | E[57] | E[56] | E[55] | E[54] | E[53] | E[52] | E[51] | E[50] | E[49] | E[48] | RAZ/WI | |||||||||||||||
E[31] | E[30] | E[29] | E[28] | E[27] | E[26] | E[25] | E[24] | RAZ/WI | E[18] | E[17] | E[16] | E[15] | E[14] | E[13] | E[12] | E[11] | RAZ/WI | E[7] | RAZ/WI | E[5] | RAZ/WI | E[3] | RAZ/WI | E[1] | RAZ/WI | ||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
E[63], bit [63]
E[63] is the event filter for event 63. If event 63 is not implemented, or filtering on event 63 is not supported, the corresponding bit is RAZ/WI.
E[63] | Meaning |
---|---|
0b0 |
Event 63 is ignored. |
0b1 |
Do not record samples that have event 63 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[62], bit [62]
E[62] is the event filter for event 62. If event 62 is not implemented, or filtering on event 62 is not supported, the corresponding bit is RAZ/WI.
E[62] | Meaning |
---|---|
0b0 |
Event 62 is ignored. |
0b1 |
Do not record samples that have event 62 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[61], bit [61]
E[61] is the event filter for event 61. If event 61 is not implemented, or filtering on event 61 is not supported, the corresponding bit is RAZ/WI.
E[61] | Meaning |
---|---|
0b0 |
Event 61 is ignored. |
0b1 |
Do not record samples that have event 61 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[60], bit [60]
E[60] is the event filter for event 60. If event 60 is not implemented, or filtering on event 60 is not supported, the corresponding bit is RAZ/WI.
E[60] | Meaning |
---|---|
0b0 |
Event 60 is ignored. |
0b1 |
Do not record samples that have event 60 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[59], bit [59]
E[59] is the event filter for event 59. If event 59 is not implemented, or filtering on event 59 is not supported, the corresponding bit is RAZ/WI.
E[59] | Meaning |
---|---|
0b0 |
Event 59 is ignored. |
0b1 |
Do not record samples that have event 59 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[58], bit [58]
E[58] is the event filter for event 58. If event 58 is not implemented, or filtering on event 58 is not supported, the corresponding bit is RAZ/WI.
E[58] | Meaning |
---|---|
0b0 |
Event 58 is ignored. |
0b1 |
Do not record samples that have event 58 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[57], bit [57]
E[57] is the event filter for event 57. If event 57 is not implemented, or filtering on event 57 is not supported, the corresponding bit is RAZ/WI.
E[57] | Meaning |
---|---|
0b0 |
Event 57 is ignored. |
0b1 |
Do not record samples that have event 57 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[56], bit [56]
E[56] is the event filter for event 56. If event 56 is not implemented, or filtering on event 56 is not supported, the corresponding bit is RAZ/WI.
E[56] | Meaning |
---|---|
0b0 |
Event 56 is ignored. |
0b1 |
Do not record samples that have event 56 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[55], bit [55]
E[55] is the event filter for event 55. If event 55 is not implemented, or filtering on event 55 is not supported, the corresponding bit is RAZ/WI.
E[55] | Meaning |
---|---|
0b0 |
Event 55 is ignored. |
0b1 |
Do not record samples that have event 55 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[54], bit [54]
E[54] is the event filter for event 54. If event 54 is not implemented, or filtering on event 54 is not supported, the corresponding bit is RAZ/WI.
E[54] | Meaning |
---|---|
0b0 |
Event 54 is ignored. |
0b1 |
Do not record samples that have event 54 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[53], bit [53]
E[53] is the event filter for event 53. If event 53 is not implemented, or filtering on event 53 is not supported, the corresponding bit is RAZ/WI.
E[53] | Meaning |
---|---|
0b0 |
Event 53 is ignored. |
0b1 |
Do not record samples that have event 53 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[52], bit [52]
E[52] is the event filter for event 52. If event 52 is not implemented, or filtering on event 52 is not supported, the corresponding bit is RAZ/WI.
E[52] | Meaning |
---|---|
0b0 |
Event 52 is ignored. |
0b1 |
Do not record samples that have event 52 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[51], bit [51]
E[51] is the event filter for event 51. If event 51 is not implemented, or filtering on event 51 is not supported, the corresponding bit is RAZ/WI.
E[51] | Meaning |
---|---|
0b0 |
Event 51 is ignored. |
0b1 |
Do not record samples that have event 51 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[50], bit [50]
E[50] is the event filter for event 50. If event 50 is not implemented, or filtering on event 50 is not supported, the corresponding bit is RAZ/WI.
E[50] | Meaning |
---|---|
0b0 |
Event 50 is ignored. |
0b1 |
Do not record samples that have event 50 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[49], bit [49]
E[49] is the event filter for event 49. If event 49 is not implemented, or filtering on event 49 is not supported, the corresponding bit is RAZ/WI.
E[49] | Meaning |
---|---|
0b0 |
Event 49 is ignored. |
0b1 |
Do not record samples that have event 49 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[48], bit [48]
E[48] is the event filter for event 48. If event 48 is not implemented, or filtering on event 48 is not supported, the corresponding bit is RAZ/WI.
E[48] | Meaning |
---|---|
0b0 |
Event 48 is ignored. |
0b1 |
Do not record samples that have event 48 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Bits [47:32]
Reserved, RAZ/WI.
E[31], bit [31]
E[31] is the event filter for event 31. If event 31 is not implemented, or filtering on event 31 is not supported, the corresponding bit is RAZ/WI.
E[31] | Meaning |
---|---|
0b0 |
Event 31 is ignored. |
0b1 |
Do not record samples that have event 31 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[30], bit [30]
E[30] is the event filter for event 30. If event 30 is not implemented, or filtering on event 30 is not supported, the corresponding bit is RAZ/WI.
E[30] | Meaning |
---|---|
0b0 |
Event 30 is ignored. |
0b1 |
Do not record samples that have event 30 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[29], bit [29]
E[29] is the event filter for event 29. If event 29 is not implemented, or filtering on event 29 is not supported, the corresponding bit is RAZ/WI.
E[29] | Meaning |
---|---|
0b0 |
Event 29 is ignored. |
0b1 |
Do not record samples that have event 29 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[28], bit [28]
E[28] is the event filter for event 28. If event 28 is not implemented, or filtering on event 28 is not supported, the corresponding bit is RAZ/WI.
E[28] | Meaning |
---|---|
0b0 |
Event 28 is ignored. |
0b1 |
Do not record samples that have event 28 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[27], bit [27]
E[27] is the event filter for event 27. If event 27 is not implemented, or filtering on event 27 is not supported, the corresponding bit is RAZ/WI.
E[27] | Meaning |
---|---|
0b0 |
Event 27 is ignored. |
0b1 |
Do not record samples that have event 27 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[26], bit [26]
E[26] is the event filter for event 26. If event 26 is not implemented, or filtering on event 26 is not supported, the corresponding bit is RAZ/WI.
E[26] | Meaning |
---|---|
0b0 |
Event 26 is ignored. |
0b1 |
Do not record samples that have event 26 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[25], bit [25]
E[25] is the event filter for event 25. If event 25 is not implemented, or filtering on event 25 is not supported, the corresponding bit is RAZ/WI.
E[25] | Meaning |
---|---|
0b0 |
Event 25 is ignored. |
0b1 |
Do not record samples that have event 25 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[24], bit [24]
E[24] is the event filter for event 24. If event 24 is not implemented, or filtering on event 24 is not supported, the corresponding bit is RAZ/WI.
E[24] | Meaning |
---|---|
0b0 |
Event 24 is ignored. |
0b1 |
Do not record samples that have event 24 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Bits [23:19]
Reserved, RAZ/WI.
E[18], bit [18]
When FEAT_SPEv1p1 is implemented and FEAT_SVE is implemented:
When FEAT_SPEv1p1 is implemented and FEAT_SVE is implemented:
Empty predicate.
E[18] | Meaning |
---|---|
0b0 |
Empty predicate event is ignored. |
0b1 |
Do not record samples that have the Empty predicate event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Otherwise:
Otherwise:
Reserved, RAZ/WI.
E[17], bit [17]
When FEAT_SPEv1p1 is implemented and FEAT_SVE is implemented:
When FEAT_SPEv1p1 is implemented and FEAT_SVE is implemented:
Partial predicate.
E[17] | Meaning |
---|---|
0b0 |
Partial predicate event is ignored. |
0b1 |
Do not record samples that have the Partial predicate event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Otherwise:
Otherwise:
Reserved, RAZ/WI.
E[16], bit [16]
When FEAT_TME is implemented:
When FEAT_TME is implemented:
Transactional
E[16] | Meaning |
---|---|
0b0 |
Transactional event is ignored. |
0b1 |
Do not record samples that have the Transactional event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Otherwise:
Otherwise:
Reserved, RAZ/WI.
E[15], bit [15]
E[15] is the event filter for event 15. If event 15 is not implemented, or filtering on event 15 is not supported, the corresponding bit is RAZ/WI.
E[15] | Meaning |
---|---|
0b0 |
Event 15 is ignored. |
0b1 |
Do not record samples that have event 15 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[14], bit [14]
E[14] is the event filter for event 14. If event 14 is not implemented, or filtering on event 14 is not supported, the corresponding bit is RAZ/WI.
E[14] | Meaning |
---|---|
0b0 |
Event 14 is ignored. |
0b1 |
Do not record samples that have event 14 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[13], bit [13]
E[13] is the event filter for event 13. If event 13 is not implemented, or filtering on event 13 is not supported, the corresponding bit is RAZ/WI.
E[13] | Meaning |
---|---|
0b0 |
Event 13 is ignored. |
0b1 |
Do not record samples that have event 13 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[12], bit [12]
E[12] is the event filter for event 12. If event 12 is not implemented, or filtering on event 12 is not supported, the corresponding bit is RAZ/WI.
E[12] | Meaning |
---|---|
0b0 |
Event 12 is ignored. |
0b1 |
Do not record samples that have event 12 == 0. |
An IMPLEMENTATION DEFINED event might be recorded as a multi-bit field. In this case, if the corresponding bits of PMSEVFR_EL1 define an IMPLEMENTATION DEFINED filter for the event.
This field is ignored by the PE when PMSFCR_EL1.FE == 0
On a Warm reset, this field resets to an architecturally UNKNOWN value.
E[11], bit [11]
When FEAT_SPEv1p1 is implemented:
When FEAT_SPEv1p1 is implemented:
Alignment.
E[11] | Meaning |
---|---|
0b0 |
Alignment event is ignored. |
0b1 |
Do not record samples that have the Alignment event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Otherwise:
Otherwise:
Reserved, RAZ/WI.
Bits [10:8]
Reserved, RAZ/WI.
E[7], bit [7]
Mispredicted.
E[7] | Meaning |
---|---|
0b0 |
Mispredicted event is ignored. |
0b1 |
Do not record samples that have the Mispredicted event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Bit [6]
Reserved, RAZ/WI.
E[5], bit [5]
TLB walk.
E[5] | Meaning |
---|---|
0b0 |
TLB walk event is ignored. |
0b1 |
Do not record samples that have the TLB walk event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Bit [4]
Reserved, RAZ/WI.
E[3], bit [3]
Level 1 data or unified cache refill.
E[3] | Meaning |
---|---|
0b0 |
Level 1 data or unified cache refill event is ignored. |
0b1 |
Do not record samples that have the Level 1 data or unified cache refill event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Bit [2]
Reserved, RAZ/WI.
E[1], bit [1]
When the PE supports sampling of speculative instructions:
When the PE supports sampling of speculative instructions:
Architecturally retired.
When the PE supports sampling of speculative instructions:
E[1] | Meaning |
---|---|
0b0 |
Architecturally retired event is ignored. |
0b1 |
Do not record samples that have the Architecturally retired event == 0. |
This bit is ignored by the PE when PMSFCR_EL1.FE == 0.
If the PE does not support the sampling of speculative instructions, or always discards the sample record for speculative instructions, this bit reads as an UNKNOWN value and the PE ignores its value.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Otherwise:
Otherwise:
Reserved, UNKNOWN.
Bit [0]
Reserved, RAZ/WI.
Accessing the PMSEVFR_EL1
Accesses to this register use the following encodings:
MRS <Xt>, PMSEVFR_EL1
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b1001 | 0b1001 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then UNDEFINED; elsif Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then UNDEFINED; elsif EL2Enabled() && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HDFGRTR_EL2.PMSEVFR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif EL2Enabled() && MDCR_EL2.TPMS == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif EL2Enabled() && HCR_EL2.<NV2,NV1,NV> == '1x1' then return NVMem[0x830]; else return PMSEVFR_EL1; elsif PSTATE.EL == EL2 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then UNDEFINED; elsif Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else return PMSEVFR_EL1; elsif PSTATE.EL == EL3 then return PMSEVFR_EL1;
MSR PMSEVFR_EL1, <Xt>
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b1001 | 0b1001 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then UNDEFINED; elsif Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then UNDEFINED; elsif EL2Enabled() && (!HaveEL(EL3) || SCR_EL3.FGTEn == '1') && HDFGWTR_EL2.PMSEVFR_EL1 == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif EL2Enabled() && MDCR_EL2.TPMS == '1' then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif EL2Enabled() && HCR_EL2.<NV2,NV1,NV> == '1x1' then NVMem[0x830] = X[t]; else PMSEVFR_EL1 = X[t]; elsif PSTATE.EL == EL2 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then UNDEFINED; elsif Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.NS == '0' && MDCR_EL3.NSPB != '01' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif HaveEL(EL3) && SCR_EL3.NS == '1' && MDCR_EL3.NSPB != '11' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else PMSEVFR_EL1 = X[t]; elsif PSTATE.EL == EL3 then PMSEVFR_EL1 = X[t];