Ayke van Laethem aecdf15cc7
[ARM] Do not emit ldrexd/strexd on Cortex-M chips
The ldrexd/strexd instructions are not supported on M-class chips, see
for example
https://developer.arm.com/documentation/dui0489/e/arm-and-thumb-instructions/memory-access-instructions/ldrex-and-strex
which says:

> All these 32-bit Thumb instructions are available in ARMv6T2 and
> above, except that LDREXD and STREXD are not available in the ARMv7-M
> architecture.

Looking at the ARMv8-M architecture, it appears that these instructions
aren't supported either. The Architecture Reference Manual lists
ldrex/strex but not ldrexd/strexd:
https://developer.arm.com/documentation/ddi0553/bn/

Godbolt example on LLVM 11.0.0, which incorrectly emits ldrexd/strexd
instructions: https://llvm.godbolt.org/z/5qqPnE

Differential Revision: https://reviews.llvm.org/D95891
2021-02-04 21:55:34 +01:00
..
2019-05-15 12:41:58 +00:00
2020-01-07 16:51:11 +00:00
2020-06-18 17:26:24 +01:00
2020-02-24 14:19:21 +00:00
2018-10-14 16:49:04 +00:00
2020-12-08 11:54:39 +00:00
2020-07-16 11:25:53 +01:00
2018-07-04 13:28:39 +00:00
2019-10-08 08:25:42 +00:00
2020-04-09 10:36:00 +01:00
2019-02-26 12:02:12 +00:00
2019-12-12 13:51:39 +00:00
2019-06-11 11:09:25 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2017-12-11 12:13:45 +00:00
2018-09-26 10:56:00 +00:00
2019-10-08 16:16:26 +00:00
2019-07-29 09:48:07 +00:00
2020-02-20 13:54:43 +00:00
2020-01-21 10:40:17 +00:00
2019-07-27 18:44:15 +00:00
2020-12-08 11:54:39 +00:00
2020-07-16 11:25:53 +01:00
2019-10-08 08:25:42 +00:00
2020-10-07 11:47:03 +01:00
2020-12-08 11:54:39 +00:00
2019-11-04 13:37:01 +00:00
2019-10-08 08:25:42 +00:00
2020-07-16 11:25:53 +01:00