RNDR, Random Number
The RNDR characteristics are:
Purpose
Random Number. Returns a 64-bit random number which is reseeded from the True Random Number source at an IMPLEMENTATION DEFINED rate.
If the hardware returns a genuine random number, PSTATE.NZCV is set to 0b0000.
If the instruction cannot return a genuine random number in a reasonable period of time, PSTATE.NZCV is set to 0b0100 and the data value returned in UNKNOWN.
Configuration
This register is present only when ARMv8.5-RNG is implemented. Otherwise, direct accesses to RNDR are UNDEFINED.
RW fields in this register reset to architecturally UNKNOWN values.
Attributes
RNDR is a 64-bit register.
Field descriptions
The RNDR 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 |
RNDR | |||||||||||||||||||||||||||||||
RNDR | |||||||||||||||||||||||||||||||
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 |
RNDR, bits [63:0]
Random Number. Returns a 64-bit Random Number which is reseeded from the True Random Number source at an IMPLEMENTATION DEFINED rate.
This field resets to an architecturally UNKNOWN value.
Accessing the RNDR
Accesses to this register use the following encodings:
MRS <Xt>, RNDR
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b011 | 0b0010 | 0b0100 | 0b000 |
if PSTATE.EL == EL0 then return RNDR; elsif PSTATE.EL == EL1 then return RNDR; elsif PSTATE.EL == EL2 then return RNDR; elsif PSTATE.EL == EL3 then return RNDR;