User Access Override
Allows access to the User Access Override bit.
This register is present only when FEAT_UAO is implemented and FEAT_AA64 is implemented. Otherwise, direct accesses to UAO are UNDEFINED.
This register is a Special-purpose register.
UAO is a 64-bit register.
| 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 |
| 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 |
| RES0 | |||||||||||||||||||||||||||||||
| RES0 | UAO | RES0 | |||||||||||||||||||||||||||||
Reserved, RES0.
User Access Override.
| UAO | Meaning |
|---|---|
| 0b0 |
Explicit Memory Effects generated by unprivileged memory access instructions and described as unprivileged are unprivileged. |
| 0b1 |
Explicit Memory Effects generated by unprivileged memory access instructions and described as unprivileged are privileged. |
The Effective value of PSTATE.UAO is 0 when execution is at EL0.
The Effective value of PSTATE.UAO is 1 when any of the following is true:
Execution is at EL1, and HCR_EL2.{NV, NV1} is {1, 1}.
Execution is at EL2, and the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}.
Execution is at EL3.
Reserved, RES0.
For more information about the operation of the MSR (immediate) accessor, see 'MSR (immediate)'.
Accesses to this register use the following encodings in the System register encoding space:
MRS <Xt>, UAO
(op0 = 0b11, op1 = 0b000, CRn = 0b0100, CRm = 0b0010, op2 = 0b100)
if !(IsFeatureImplemented(FEAT_UAO) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then X{64}(t) = Zeros{40} :: PSTATE.UAO :: Zeros{23}; elsif PSTATE.EL == EL2 then X{64}(t) = Zeros{40} :: PSTATE.UAO :: Zeros{23}; elsif PSTATE.EL == EL3 then X{64}(t) = Zeros{40} :: PSTATE.UAO :: Zeros{23}; end;
MSR UAO, <Xt>
(op0 = 0b11, op1 = 0b000, CRn = 0b0100, CRm = 0b0010, op2 = 0b100)
if !(IsFeatureImplemented(FEAT_UAO) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then PSTATE.UAO = X{64}(t)[23]; elsif PSTATE.EL == EL2 then PSTATE.UAO = X{64}(t)[23]; elsif PSTATE.EL == EL3 then PSTATE.UAO = X{64}(t)[23]; end;
MSR UAO, #<imm>
(op0 = 0b00, op1 = 0b000, CRn = 0b0100, op2 = 0b011)
Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.
This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.