Skip to content

Commit bd2d4e5

Browse files
committed
atomic128: use the new intrinsics::atomic_load
In rust-lang/rust#141507, the `atomic_load_{ordering}` intrinsics were gated behind the `bootstrap` config and replaced with a single `atomic_load` intrinsic. This commit moves the portable-atomic crate to that new intrinsic.
1 parent 8bd3b5d commit bd2d4e5

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/imp/atomic128/intrinsics.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ fn strongest_failure_ordering(order: Ordering) -> Ordering {
6161
#[inline]
6262
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
6363
unsafe fn atomic_load(src: *mut u128, order: Ordering) -> u128 {
64+
use intrinsics::AtomicOrdering;
65+
6466
#[cfg(target_arch = "x86_64")]
6567
// SAFETY: the caller must uphold the safety contract.
6668
unsafe {
@@ -73,9 +75,9 @@ unsafe fn atomic_load(src: *mut u128, order: Ordering) -> u128 {
7375
// SAFETY: the caller must uphold the safety contract.
7476
unsafe {
7577
match order {
76-
Acquire => intrinsics::atomic_load_acquire(src),
77-
Relaxed => intrinsics::atomic_load_relaxed(src),
78-
SeqCst => intrinsics::atomic_load_seqcst(src),
78+
Acquire => intrinsics::atomic_load::<_, { AtomicOrdering::Acquire }>(src),
79+
Relaxed => intrinsics::atomic_load::<_, { AtomicOrdering::Relaxed }>(src),
80+
SeqCst => intrinsics::atomic_load::<_, { AtomicOrdering::SeqCst }>(src),
7981
_ => unreachable!(),
8082
}
8183
}

0 commit comments

Comments
 (0)