1
Fork 0

Move asm! and global_asm! to core::arch

This commit is contained in:
bstrie 2021-07-17 14:48:00 -04:00
parent c78ebb7bdc
commit f26fbe2453
5 changed files with 73 additions and 49 deletions

View file

@ -316,5 +316,35 @@ pub mod primitive;
#[unstable(feature = "stdsimd", issue = "48556")] #[unstable(feature = "stdsimd", issue = "48556")]
mod core_arch; mod core_arch;
#[doc = include_str!("../../stdarch/crates/core_arch/src/core_arch_docs.md")]
#[stable(feature = "simd_arch", since = "1.27.0")] #[stable(feature = "simd_arch", since = "1.27.0")]
pub use core_arch::arch; pub mod arch {
#[stable(feature = "simd_arch", since = "1.27.0")]
pub use crate::core_arch::arch::*;
/// Inline assembly.
///
/// Read the [unstable book] for the usage.
///
/// [unstable book]: ../../unstable-book/library-features/asm.html
#[unstable(
feature = "asm",
issue = "72016",
reason = "inline assembly is not stable enough for use and is subject to change"
)]
#[rustc_builtin_macro]
pub macro asm("assembly template", $(operands,)* $(options($(option),*))?) {
/* compiler built-in */
}
/// Module-level inline assembly.
#[unstable(
feature = "global_asm",
issue = "35119",
reason = "`global_asm!` is not stable enough for use and is subject to change"
)]
#[rustc_builtin_macro]
pub macro global_asm("assembly template", $(operands,)* $(options($(option),*))?) {
/* compiler built-in */
}
}

View file

@ -1312,27 +1312,6 @@ pub(crate) mod builtin {
($cond:expr, $($arg:tt)+) => {{ /* compiler built-in */ }}; ($cond:expr, $($arg:tt)+) => {{ /* compiler built-in */ }};
} }
/// Inline assembly.
///
/// Read the [unstable book] for the usage.
///
/// [unstable book]: ../unstable-book/library-features/asm.html
#[unstable(
feature = "asm",
issue = "72016",
reason = "inline assembly is not stable enough for use and is subject to change"
)]
#[rustc_builtin_macro]
#[macro_export]
macro_rules! asm {
("assembly template",
$(operands,)*
$(options($(option),*))?
) => {
/* compiler built-in */
};
}
/// LLVM-style inline assembly. /// LLVM-style inline assembly.
/// ///
/// Read the [unstable book] for the usage. /// Read the [unstable book] for the usage.
@ -1355,23 +1334,6 @@ pub(crate) mod builtin {
}; };
} }
/// Module-level inline assembly.
#[unstable(
feature = "global_asm",
issue = "35119",
reason = "`global_asm!` is not stable enough for use and is subject to change"
)]
#[rustc_builtin_macro]
#[macro_export]
macro_rules! global_asm {
("assembly template",
$(operands,)*
$(options($(option),*))?
) => {
/* compiler built-in */
};
}
/// Prints passed tokens into the standard output. /// Prints passed tokens into the standard output.
#[unstable( #[unstable(
feature = "log_syntax", feature = "log_syntax",

View file

@ -55,11 +55,27 @@ pub use crate::hash::macros::Hash;
#[allow(deprecated)] #[allow(deprecated)]
#[doc(no_inline)] #[doc(no_inline)]
pub use crate::{ pub use crate::{
asm, assert, cfg, column, compile_error, concat, concat_idents, env, file, format_args, assert, cfg, column, compile_error, concat, concat_idents, env, file, format_args,
format_args_nl, global_asm, include, include_bytes, include_str, line, llvm_asm, log_syntax, format_args_nl, include, include_bytes, include_str, line, llvm_asm, log_syntax, module_path,
module_path, option_env, stringify, trace_macros, option_env, stringify, trace_macros,
}; };
#[unstable(
feature = "asm",
issue = "72016",
reason = "inline assembly is not stable enough for use and is subject to change"
)]
#[doc(no_inline)]
pub use crate::arch::asm;
#[unstable(
feature = "global_asm",
issue = "35119",
reason = "`global_asm!` is not stable enough for use and is subject to change"
)]
#[doc(no_inline)]
pub use crate::arch::global_asm;
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")] #[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[allow(deprecated, deprecated_in_future)] #[allow(deprecated, deprecated_in_future)]
#[doc(no_inline)] #[doc(no_inline)]

View file

@ -556,9 +556,9 @@ pub use core::{
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")] #[stable(feature = "builtin_macro_prelude", since = "1.38.0")]
#[allow(deprecated)] #[allow(deprecated)]
pub use core::{ pub use core::{
asm, assert, assert_matches, cfg, column, compile_error, concat, concat_idents, env, file, assert, assert_matches, cfg, column, compile_error, concat, concat_idents, env, file,
format_args, format_args_nl, global_asm, include, include_bytes, include_str, line, llvm_asm, format_args, format_args_nl, include, include_bytes, include_str, line, llvm_asm, log_syntax,
log_syntax, module_path, option_env, stringify, trace_macros, module_path, option_env, stringify, trace_macros,
}; };
#[stable(feature = "core_primitive", since = "1.43.0")] #[stable(feature = "core_primitive", since = "1.43.0")]

View file

@ -39,12 +39,28 @@ pub use crate::result::Result::{self, Err, Ok};
#[allow(deprecated)] #[allow(deprecated)]
#[doc(no_inline)] #[doc(no_inline)]
pub use core::prelude::v1::{ pub use core::prelude::v1::{
asm, assert, cfg, column, compile_error, concat, concat_idents, env, file, format_args, assert, cfg, column, compile_error, concat, concat_idents, env, file, format_args,
format_args_nl, global_asm, include, include_bytes, include_str, line, llvm_asm, log_syntax, format_args_nl, include, include_bytes, include_str, line, llvm_asm, log_syntax, module_path,
module_path, option_env, stringify, trace_macros, Clone, Copy, Debug, Default, Eq, Hash, Ord, option_env, stringify, trace_macros, Clone, Copy, Debug, Default, Eq, Hash, Ord, PartialEq,
PartialEq, PartialOrd, PartialOrd,
}; };
#[unstable(
feature = "asm",
issue = "72016",
reason = "inline assembly is not stable enough for use and is subject to change"
)]
#[doc(no_inline)]
pub use core::prelude::v1::asm;
#[unstable(
feature = "global_asm",
issue = "35119",
reason = "`global_asm!` is not stable enough for use and is subject to change"
)]
#[doc(no_inline)]
pub use core::prelude::v1::global_asm;
// FIXME: Attribute and internal derive macros are not documented because for them rustdoc generates // FIXME: Attribute and internal derive macros are not documented because for them rustdoc generates
// dead links which fail link checker testing. // dead links which fail link checker testing.
#[stable(feature = "builtin_macro_prelude", since = "1.38.0")] #[stable(feature = "builtin_macro_prelude", since = "1.38.0")]