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

559 views Asked by At

The ARMv8 Architecture Reference Manual lists miles of special registers, some of which allow the programmer to detect the availability of CPU features at runtime.

Is there such a register telling the programmer if the AArch32 execution state is supported? One thing I found is ID_PFR0_EL1 which tells what variants of the AArch32 instruction set are supported, but it does not seem to say if the instruction set is supported at all.

What register or other thing am I looking for?

1

There are 1 answers

6
Siguza On BEST ANSWER

You're looking for ID_AA64PFR0_EL1.

From the manual, page D13-3253:

Screenshot

And yes, there are ARMv8 CPUs that do not support AArch32 at all. Apple's A11 and later is an example.