Mark atomics as unsupported on thumbv6m

The thumbv6m target does not support atomics. Historically, LLVM
had a bug where atomic load/stores for this target were emitted
as plain load/stores rather than as libatomic calls. This was
fixed in https://reviews.llvm.org/D120026, which will be part of
LLVM 15. As we require that "atomic support" does not use libatomic,
we need to indicate that this target does not have native atomics.
This commit is contained in:
Nikita Popov 2022-07-21 16:20:00 +02:00
parent 96c2df810b
commit 7514610219
1 changed files with 2 additions and 1 deletions

View File

@ -14,8 +14,9 @@ pub fn target() -> Target {
// The ARMv6-M architecture doesn't support unaligned loads/stores so we disable them
// with +strict-align.
features: "+strict-align".into(),
// There are no atomic CAS instructions available in the instruction set of the ARMv6-M
// There are no atomic instructions available in the instruction set of the ARMv6-M
// architecture
max_atomic_width: Some(0),
atomic_cas: false,
..super::thumb_base::opts()
},