This improves conformance with ACLE 6.4.1. Define additional macros that
indicate support for the ARM and Thumb instruction set architecture. This
includes the following set of macros:
__ARM_ARCH __ARM_ARCH_ISA_ARM __ARM_ARCH_ISA_THUMB __ARM_32BIT_STATE
These help identify the environment that the code is intended to execute on.
Just noticed this one, and I think it might be a misinterpretation of the ACLE. I would expect this to be the character value 'M' rather than some isolated token.
A quick GCC test suggests this is how they do it ("#define __ARM_ARCH_PROFILE 65" for Cortex-A15, which is also dodgy in C++ mode, but less so).