Skip to content

Commit

Permalink
Auto merge of #100911 - tmiasko:update-stdarch, r=Amanieu
Browse files Browse the repository at this point in the history
Update stdarch submodule

Changes from stdarch:

* Fix links in documentation of cmpxchg16b
* Use load intrinsic and loop for intrinsic-test programs. Add --release flag back to intrinsic-test programs.
* Properly fix vext intrinsic tests
* Replace some calls to `pointer::offset` with `add` and `sub`
* Allow internal use of stdsimd from detect_feature
* fix target name in contributing.md
* Tweak constant for ARM vext instruction tests
* Use `llvm.ppc.altivec.lvx` intrinsic for `vec_ld`
*  Adding doc links for arm neon intrinsics
* Adding doc links for arm crypto and aes intrinsics
* Remove instruction tests for `__mmask*` intrinsics
* Update ubuntu 21.10 docker containers to 22.04
* Adding documentation links for arm crc32 intrinsics
* Remove restrictions on compare-exchange memory ordering.
* Fix a typo in the document.
* Allow mapping a runtime feature to a set of target_features
* Update atomic intrinsics
* Fully qualify recursive macro calls
* Ensure the neon vector aggregates like `float32x4x4_t` are `#[repr(C)]`
* Remove useless conditional compilation
* Fix ARM vbsl* NEON intrinsics

r? `@Amanieu`
  • Loading branch information
bors committed Aug 25, 2022
2 parents 4d45b07 + 5f4d23d commit 7480389
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 28 deletions.
21 changes: 0 additions & 21 deletions library/core/src/intrinsics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -737,28 +737,7 @@ extern "rust-intrinsic" {
/// [`atomic::compiler_fence`] by passing [`Ordering::AcqRel`]
/// as the `order`.
pub fn atomic_singlethreadfence_acqrel();
}

// These have been renamed.
//
// These are the aliases for the old names.
// To be removed when stdarch and panic_unwind have been updated.
mod atomics {
pub use super::atomic_cxchg_acqrel_acquire as atomic_cxchg_acqrel;
pub use super::atomic_cxchg_acqrel_relaxed as atomic_cxchg_acqrel_failrelaxed;
pub use super::atomic_cxchg_acquire_acquire as atomic_cxchg_acq;
pub use super::atomic_cxchg_acquire_relaxed as atomic_cxchg_acq_failrelaxed;
pub use super::atomic_cxchg_relaxed_relaxed as atomic_cxchg_relaxed;
pub use super::atomic_cxchg_release_relaxed as atomic_cxchg_rel;
pub use super::atomic_cxchg_seqcst_acquire as atomic_cxchg_failacq;
pub use super::atomic_cxchg_seqcst_relaxed as atomic_cxchg_failrelaxed;
pub use super::atomic_cxchg_seqcst_seqcst as atomic_cxchg;
pub use super::atomic_store_seqcst as atomic_store;
}

pub use atomics::*;

extern "rust-intrinsic" {
/// The `prefetch` intrinsic is a hint to the code generator to insert a prefetch instruction
/// if supported; otherwise, it is a no-op.
/// Prefetches have no effect on the behavior of the program but can change its performance
Expand Down
15 changes: 9 additions & 6 deletions library/panic_unwind/src/seh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ cfg_if::cfg_if! {
}

pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 {
use core::intrinsics::atomic_store;
use core::intrinsics::atomic_store_seqcst;

// _CxxThrowException executes entirely on this stack frame, so there's no
// need to otherwise transfer `data` to the heap. We just pass a stack
Expand Down Expand Up @@ -288,20 +288,23 @@ pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 {
//
// In any case, we basically need to do something like this until we can
// express more operations in statics (and we may never be able to).
atomic_store(&mut THROW_INFO.pmfnUnwind as *mut _ as *mut u32, ptr!(exception_cleanup) as u32);
atomic_store(
atomic_store_seqcst(
&mut THROW_INFO.pmfnUnwind as *mut _ as *mut u32,
ptr!(exception_cleanup) as u32,
);
atomic_store_seqcst(
&mut THROW_INFO.pCatchableTypeArray as *mut _ as *mut u32,
ptr!(&CATCHABLE_TYPE_ARRAY as *const _) as u32,
);
atomic_store(
atomic_store_seqcst(
&mut CATCHABLE_TYPE_ARRAY.arrayOfCatchableTypes[0] as *mut _ as *mut u32,
ptr!(&CATCHABLE_TYPE as *const _) as u32,
);
atomic_store(
atomic_store_seqcst(
&mut CATCHABLE_TYPE.pType as *mut _ as *mut u32,
ptr!(&TYPE_DESCRIPTOR as *const _) as u32,
);
atomic_store(
atomic_store_seqcst(
&mut CATCHABLE_TYPE.copyFunction as *mut _ as *mut u32,
ptr!(exception_copy) as u32,
);
Expand Down
2 changes: 1 addition & 1 deletion library/stdarch
Submodule stdarch updated 34 files
+1 −1 CONTRIBUTING.md
+1 −1 ci/docker/aarch64-unknown-linux-gnu/Dockerfile
+1 −1 ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile
+1 −1 ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile
+2 −7 ci/dox.sh
+0 −1 crates/core_arch/Cargo.toml
+0 −3 crates/core_arch/build.rs
+4 −0 crates/core_arch/src/aarch64/crc.rs
+2,532 −6 crates/core_arch/src/aarch64/neon/generated.rs
+58 −16 crates/core_arch/src/aarch64/neon/mod.rs
+21 −0 crates/core_arch/src/arm/neon.rs
+0 −1 crates/core_arch/src/arm/v7.rs
+12 −0 crates/core_arch/src/arm_shared/crc.rs
+28 −0 crates/core_arch/src/arm_shared/crypto.rs
+3,955 −105 crates/core_arch/src/arm_shared/neon/generated.rs
+254 −98 crates/core_arch/src/arm_shared/neon/mod.rs
+3 −2 crates/core_arch/src/powerpc/altivec.rs
+1 −1 crates/core_arch/src/x86/avx2.rs
+0 −16 crates/core_arch/src/x86/avx512bw.rs
+3 −3 crates/core_arch/src/x86/avx512gfni.rs
+16 −16 crates/core_arch/src/x86/sse.rs
+2 −2 crates/core_arch/src/x86/sse2.rs
+20 −14 crates/core_arch/src/x86_64/cmpxchg16b.rs
+0 −14 crates/intrinsic-test/missing_aarch64.txt
+83 −24 crates/intrinsic-test/src/argument.rs
+37 −28 crates/intrinsic-test/src/intrinsic.rs
+38 −16 crates/intrinsic-test/src/main.rs
+22 −22 crates/intrinsic-test/src/types.rs
+4 −5 crates/intrinsic-test/src/values.rs
+2 −1 crates/std_detect/src/detect/arch/aarch64.rs
+20 −7 crates/std_detect/src/detect/macros.rs
+12 −12 crates/stdarch-gen/neon.spec
+51 −4 crates/stdarch-gen/src/main.rs
+12 −15 examples/hex.rs

0 comments on commit 7480389

Please sign in to comment.