The ldrexd and strexd instructions are undefined for the ARMv7M architecture, so we cannot use them to implement the __sync_fetch_and_*_8 builtins. There is no other way to implement these without OS support, so this patch #ifdef's these functions out for M-class architectures.
There are no tests as I cannot find any existing tests for these builtins.
I used the ARM_ARCH_PROFILE predefine because ARM_FEATURE_LDREX is deprecated and not set by clang.