From: Yap Zhi Heng <[email protected]>
The corrected atomic store & load intrinsics were using post-1.64.0 namings,
this patch
just adds back the 1.49.0 namings for the wrongly named intrinsics.
gcc/rust/ChangeLog:
* util/rust-intrinsic-values.h (Rust::Values::Intrinsics): Add entries
for atomic_store,
atomic_store_rel, atomic_load, atomic_load_acq.
* backend/rust-compile-intrinsic.cc (generic_intrinsics): Likewise.
Signed-off-by: Yap Zhi Heng <[email protected]>
---
This change was merged into the gccrs repository and is posted here for
upstream visibility and potential drive-by review, as requested by GCC
release managers.
Each commit email contains a link to its details on github from where you can
find the Pull-Request and associated discussions.
Commit on github:
https://github.com/Rust-GCC/gccrs/commit/745c9375115e62def7022ed334189a4bbe13cd50
The commit has NOT been mentioned in any issue.
The commit has been mentioned in the following pull-request(s):
- https://github.com/Rust-GCC/gccrs/pull/4931
gcc/rust/backend/rust-compile-intrinsic.cc | 4 ++++
gcc/rust/util/rust-intrinsic-values.h | 13 +++++++++++++
2 files changed, 17 insertions(+)
diff --git a/gcc/rust/backend/rust-compile-intrinsic.cc
b/gcc/rust/backend/rust-compile-intrinsic.cc
index b48647670..b13e721a8 100644
--- a/gcc/rust/backend/rust-compile-intrinsic.cc
+++ b/gcc/rust/backend/rust-compile-intrinsic.cc
@@ -49,12 +49,16 @@ static const std::map<std::string,
handlers::HandlerBuilder> generic_intrinsics
{IValue::COPY_NONOVERLAPPING, handlers::copy (false)},
{IValue::PREFETCH_READ_DATA, handlers::prefetch_read_data},
{IValue::PREFETCH_WRITE_DATA, handlers::prefetch_write_data},
+ {IValue::ATOMIC_STORE, handlers::atomic_store (__ATOMIC_SEQ_CST)},
{IValue::ATOMIC_STORE_SEQCST, handlers::atomic_store (__ATOMIC_SEQ_CST)},
+ {IValue::ATOMIC_STORE_REL, handlers::atomic_store (__ATOMIC_RELEASE)},
{IValue::ATOMIC_STORE_RELEASE, handlers::atomic_store (__ATOMIC_RELEASE)},
{IValue::ATOMIC_STORE_RELAXED, handlers::atomic_store (__ATOMIC_RELAXED)},
{IValue::ATOMIC_STORE_UNORDERED,
handlers::atomic_store (__ATOMIC_RELAXED)},
+ {IValue::ATOMIC_LOAD, handlers::atomic_load (__ATOMIC_SEQ_CST)},
{IValue::ATOMIC_LOAD_SEQCST, handlers::atomic_load (__ATOMIC_SEQ_CST)},
+ {IValue::ATOMIC_LOAD_ACQ, handlers::atomic_load (__ATOMIC_ACQUIRE)},
{IValue::ATOMIC_LOAD_ACQUIRE, handlers::atomic_load (__ATOMIC_ACQUIRE)},
{IValue::ATOMIC_LOAD_RELAXED, handlers::atomic_load (__ATOMIC_RELAXED)},
{IValue::ATOMIC_LOAD_UNORDERED, handlers::atomic_load (__ATOMIC_RELAXED)},
diff --git a/gcc/rust/util/rust-intrinsic-values.h
b/gcc/rust/util/rust-intrinsic-values.h
index f6e36a386..43df60fd5 100644
--- a/gcc/rust/util/rust-intrinsic-values.h
+++ b/gcc/rust/util/rust-intrinsic-values.h
@@ -97,12 +97,25 @@ public:
static constexpr auto &PREFETCH_READ_DATA = "prefetch_read_data";
static constexpr auto &PREFETCH_WRITE_DATA = "prefetch_write_data";
+ static constexpr auto &ATOMIC_STORE = "atomic_store";
+ // atomic_store is renamed to atomic_store_seqcst from 1.64.0, the latter is
+ // left in for compatibility
+ //
https://github.com/rust-lang/rust/commit/4982a59986f7393ace98f63c10e6c435ffba1420
static constexpr auto &ATOMIC_STORE_SEQCST = "atomic_store_seqcst";
+ static constexpr auto &ATOMIC_STORE_REL = "atomic_store_rel";
+ // atomic_store_rel is nenamed to atomic_store_release from 1.64.0, the
+ // latter is left in for compatibility
static constexpr auto &ATOMIC_STORE_RELEASE = "atomic_store_release";
static constexpr auto &ATOMIC_STORE_RELAXED = "atomic_store_relaxed";
static constexpr auto &ATOMIC_STORE_UNORDERED = "atomic_store_unordered";
+ static constexpr auto &ATOMIC_LOAD = "atomic_load";
+ // atomic_load is renamed to atomic_load_seqcst from 1.64.0, the latter is
+ // left in for compatibility
static constexpr auto &ATOMIC_LOAD_SEQCST = "atomic_load_seqcst";
+ static constexpr auto &ATOMIC_LOAD_ACQ = "atomic_load_acq";
+ // atomic_load_acq is renamed to atomic_load_acquire from 1.64.0, the latter
+ // is left in for compatibility
static constexpr auto &ATOMIC_LOAD_ACQUIRE = "atomic_load_acquire";
static constexpr auto &ATOMIC_LOAD_RELAXED = "atomic_load_relaxed";
static constexpr auto &ATOMIC_LOAD_UNORDERED = "atomic_load_unordered";
base-commit: 1d16a7f934ad974a143138110728ec0e7be9e5c8
--
2.55.0