First of all, we need to separate ARMv7 / ARMv8 (architecture versions) from the run states of AArch32 / AArch64 (32-bit or 64-bit).
If the ARMv8 processor provides AArch32 execution status on EL1 (the kernel), it has the same exception model as in ARMv7. When EL1 is in AArch64 runtime, it uses a completely different exception handling model.
AArch64 EL1 does not have IRQ and SVC or other modes that AArch32 does - that is why it needs / has only one exception stack.
source
share