The SP_EL0 characteristics are:
Holds the stack pointer associated with EL0. At higher Exception levels, this is used as the current stack pointer when the value of SPSel.SP is 0.
There are no configuration notes.
SP_EL0 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 |
Stack pointer | |||||||||||||||||||||||||||||||
Stack pointer |
Stack pointer.
The reset behavior of this field is:
When the value of PSTATE.SP is 0, this register is accessible at all Exception levels as the current stack pointer.
Accesses to this register use the following encodings in the System register encoding space:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b0100 | 0b0001 | 0b000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if PSTATE.SP == '0' then UNDEFINED; else X[t, 64] = SP_EL0; elsif PSTATE.EL == EL2 then if PSTATE.SP == '0' then UNDEFINED; else X[t, 64] = SP_EL0; elsif PSTATE.EL == EL3 then if PSTATE.SP == '0' then UNDEFINED; else X[t, 64] = SP_EL0;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b0100 | 0b0001 | 0b000 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if PSTATE.SP == '0' then UNDEFINED; else SP_EL0 = X[t, 64]; elsif PSTATE.EL == EL2 then if PSTATE.SP == '0' then UNDEFINED; else SP_EL0 = X[t, 64]; elsif PSTATE.EL == EL3 then if PSTATE.SP == '0' then UNDEFINED; else SP_EL0 = X[t, 64];
15/03/2024 21:49; 3156453dc257d36c4630671c3d896bfc69048210
Copyright © 2010-2023 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.