如何确定 ARMv8 处理器是否支持 AArch32 执行状态?

How to find out if an ARMv8 processor supports the AArch32 execution state?

ARMv8 体系结构参考手册列出了数英里的特殊寄存器,其中一些允许程序员在运行时检测 CPU 功能的可用性。

是否有这样一个寄存器告诉程序员是否支持AArch32执行状态?我发现的一件事是 ID_PFR0_EL1,它告诉我们支持 AArch32 指令集的哪些变体,但它似乎并没有说明是否完全支持该指令集。

我在找什么寄存器或其他东西?

您正在寻找 ID_AA64PFR0_EL1

来自 the manual,第 D13-3253 页:

是的,有些 ARMv8 CPU 根本不支持 AArch32。 Apple的A11及之后的就是一个例子。