Skip to content

[DRAFT] intrinsics for all architectures appear in rustdoc #1104

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 45 commits into from
Apr 17, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
21b4259
Start working on architectures appear in Rustdoc
Byron Apr 1, 2021
8c6fdc5
Don't limit cargo doc unnecessarily
Byron Apr 2, 2021
f91d45f
Move arm/crc module to acle/crc as it is shared between ARM and AArch64
Byron Apr 2, 2021
dbc0820
Conform moved CRC module to existing conventions; make it appear in docs
Byron Apr 3, 2021
d589823
Move arm/crypto to acle/arm_shared
Byron Apr 3, 2021
553e32d
Move acle/sat to arm/ as it is only available there
Byron Apr 3, 2021
75792de
Make 'sat' show up in docs all the time.
Byron Apr 3, 2021
7463267
Move acle/dsp to arm; fix tests by skipping dsp arm functions
Byron Apr 3, 2021
00a0bbd
Make arm/dsp functions show up in docs
Byron Apr 3, 2021
0610bef
Fix use of 'dsp' module within simd32 (it was moved to /arm)
Byron Apr 3, 2021
4a101b8
Move acle/simd32 to arm/simd32; fix tests suite
Byron Apr 3, 2021
3263581
Move arm/neon to acle/neon (soon arm_shared)
Byron Apr 4, 2021
4ae11b3
The code generator now places output in acle.
Byron Apr 4, 2021
a63b0d4
Merge remote-tracking branch 'origin/master'
Byron Apr 7, 2021
02de848
Move ARM specific neon functions in acle/neon/… moved to arm/neon.rs
Byron Apr 7, 2021
2a698b1
Merge remote-tracking branch 'origin/master'
Byron Apr 9, 2021
2c48570
Move aarch64/arm neon functions to acle/arm_shared
Byron Apr 9, 2021
e22224d
Fix build errors
Byron Apr 9, 2021
306c600
Merge remote-tracking branch 'origin/master'
Byron Apr 9, 2021
df00775
pub(crate) fields to allow arm/neon to access types declared in acle…
Byron Apr 9, 2021
3b3caba
Add missing use statements for types
Byron Apr 9, 2021
f14ce23
Fix build on ARM
Byron Apr 9, 2021
6be7f85
Merge remote-tracking branch 'origin/master'
Byron Apr 12, 2021
f866c0a
Merge remote-tracking branch 'origin/master'
Byron Apr 13, 2021
ed04262
Merge remote-tracking branch 'origin/master'
Byron Apr 15, 2021
b17be0f
Merge remote-tracking branch 'origin/master'
Byron Apr 16, 2021
ff89355
Apply cargo fmt
Byron Apr 16, 2021
e201bf4
Apply suggestions from code review
Byron Apr 16, 2021
0f186e3
Apply review suggestions
Byron Apr 16, 2021
e8956b7
Merge remote-tracking branch 'origin/master'
Byron Apr 17, 2021
bd42df8
move arm::test_support to acle::test_support
Byron Apr 17, 2021
f141aa6
Don't ignore unused imports anymore
Byron Apr 17, 2021
f2c4eac
Remove all `#[cfg(target_arch = "arm")]` as it's redundant
Byron Apr 17, 2021
8794cae
rename 'acle' to 'arm_shared'
Byron Apr 17, 2021
213aaa9
Move __dbg intrinsic to 'arm' (from arm_shared)
Byron Apr 17, 2021
bb176aa
Add target_arch = "aarch64" and doc configs for each function individ…
Byron Apr 17, 2021
230f0be
Fix build?
Byron Apr 17, 2021
dc373ed
Split aarch64 parts in arm/armclang.rs into aarch64/armclang.rs
Byron Apr 17, 2021
52eaa8e
Revert "Move __dbg intrinsic to 'arm' (from arm_shared)"
Byron Apr 17, 2021
58ced63
Fix build
Byron Apr 17, 2021
90ccef5
More fixes
Amanieu Apr 17, 2021
e1b4810
More fixes
Amanieu Apr 17, 2021
749ee37
Ignore some intrinsic tests
Amanieu Apr 17, 2021
de7ce7f
More fixes
Amanieu Apr 17, 2021
7abb5d9
More fixes
Amanieu Apr 17, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
10 changes: 6 additions & 4 deletions crates/core_arch/src/acle/hints.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/// low-power state until one of a number of asynchronous events occurs.
// Section 10.1 of ACLE says that the supported arches are: 8, 6K, 6-M
// LLVM says "instruction requires: armv6k"
#[cfg(any(target_feature = "v6", target_arch = "aarch64"))]
#[cfg(any(target_feature = "v6", target_arch = "aarch64", doc))]
#[inline(always)]
pub unsafe fn __wfi() {
hint(HINT_WFI);
Expand All @@ -22,7 +22,7 @@ pub unsafe fn __wfi() {
/// another processor.
// Section 10.1 of ACLE says that the supported arches are: 8, 6K, 6-M
// LLVM says "instruction requires: armv6k"
#[cfg(any(target_feature = "v6", target_arch = "aarch64"))]
#[cfg(any(target_feature = "v6", target_arch = "aarch64", doc))]
#[inline(always)]
pub unsafe fn __wfe() {
hint(HINT_WFE);
Expand All @@ -34,7 +34,7 @@ pub unsafe fn __wfe() {
/// system. It is a NOP on a uniprocessor system.
// Section 10.1 of ACLE says that the supported arches are: 8, 6K, 6-M, 7-M
// LLVM says "instruction requires: armv6k"
#[cfg(any(target_feature = "v6", target_arch = "aarch64"))]
#[cfg(any(target_feature = "v6", target_arch = "aarch64", doc))]
#[inline(always)]
pub unsafe fn __sev() {
hint(HINT_SEV);
Expand All @@ -49,7 +49,9 @@ pub unsafe fn __sev() {
#[cfg(any(
target_feature = "v8", // 32-bit ARMv8
target_arch = "aarch64", // AArch64
doc,
))]
#[doc(cfg(target_arch = "aarch64"))]
#[inline(always)]
pub unsafe fn __sevl() {
hint(HINT_SEVL);
Expand All @@ -62,7 +64,7 @@ pub unsafe fn __sevl() {
/// improve overall system performance.
// Section 10.1 of ACLE says that the supported arches are: 8, 6K, 6-M
// LLVM says "instruction requires: armv6k"
#[cfg(any(target_feature = "v6", target_arch = "aarch64"))]
#[cfg(any(target_feature = "v6", target_arch = "aarch64", doc))]
#[inline(always)]
pub unsafe fn __yield() {
hint(HINT_YIELD);
Expand Down
3 changes: 3 additions & 0 deletions crates/core_arch/src/acle/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@ mod simd32;
))]
pub use self::simd32::*;

#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to enable doc here.

pub mod crc;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a pub use here to re-export the contents of the module and make the module private.


mod sealed {
pub trait Dmb {
unsafe fn __dmb(&self);
Expand Down
4 changes: 1 addition & 3 deletions crates/core_arch/src/arm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ mod neon;
pub use self::neon::*;

#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
mod crc;
#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
pub use self::crc::*;
pub use crate::core_arch::acle::crc::*;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This shouldn't be needed, there is already a blanket re-export of acle below.


#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
mod crypto;
Expand Down