Skip to content

Commit 05c799e

Browse files
authored
Unrolled build for rust-lang#130558
Rollup merge of rust-lang#130558 - taiki-e:s390x-atomic-128, r=cuviper Support 128-bit atomics on s390x Since LLVM 18 (llvm/llvm-project@c568927), 128-bit atomics are fully supported on s390x. And the current minimum external LLVM version is now 18 (rust-lang#130487). s390x 128-bit atomic instructions (lpq,stpq,cdsg) has been present since [the First Edition of the Principles of Operation](https://publibfp.dhe.ibm.com/epubs/pdf/dz9zr000.pdf). (LLVM's minimal supported architecture level [is z10 (the Eighth Edition of the PoP)](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZProcessors.td#L16-L17).) cc rust-lang#99069 r? `@cuviper`
2 parents 749f80a + 078b067 commit 05c799e

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

compiler/rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
// ABI. Pass the -vector feature string to LLVM to respect this assumption. On LLVM < 16, we
1111
// also strip v128 from the data_layout below to match the older LLVM's expectation.
1212
base.features = "-vector".into();
13-
base.max_atomic_width = Some(64);
13+
base.max_atomic_width = Some(128);
1414
base.min_global_align = Some(16);
1515
base.stack_probes = StackProbeType::Inline;
1616
base.supported_sanitizers =

compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub(crate) fn target() -> Target {
1010
// ABI. Pass the -vector feature string to LLVM to respect this assumption. On LLVM < 16, we
1111
// also strip v128 from the data_layout below to match the older LLVM's expectation.
1212
base.features = "-vector".into();
13-
base.max_atomic_width = Some(64);
13+
base.max_atomic_width = Some(128);
1414
base.min_global_align = Some(16);
1515
base.static_position_independent_executables = true;
1616
base.stack_probes = StackProbeType::Inline;

0 commit comments

Comments
 (0)