This patch removes the instruction set check to make the msr APSR_nzcvq,
ip instruction only execute if Thumb2 is used.
The APSR is a subset of the bits of the CPSR
(B.1.3.3 of the Arm v7 A and R ARM [1]) and is only available for A and
R profiles.
However in section B.9.3.11 of the same document we see that:
- "In the A and R profiles, APSR_nzcvq is the same as CPSR_f"
- "ARM recommends the APSR forms when only the N, Z, C, V, Q, and GE[3:0] bits are being written."
This patch also make those files assemble for Armv8-M Mainline
architecture profile.
The builtins were cross-compiled for Arm, Aarch64 and Armv6-M, Armv7-M
and Armv7E-M targets.
Cross-compiled tests were executed for Arm target.
We are going from 1 instruction in ARM state to two here (only ARM state supports the msr register, immediate form). Personally I think the simplicity of having a single code sequence outweighs having an extra instruction as I suspect the majority of people are using Thumb2. If there is anyone that prefers the immediate form it will be worth changing msr CPSR_F, #APSR_C to msr APSR_nzcvq, #APSR_C.