Re: [PATCH v6 5/5] rust: add arch_static_branch

From
Alice Ryhl <aliceryhl@google.com>
Date
2024-08-10 21:44:27
Also in
linux-arch, linux-riscv, lkml, loongarch, rust-for-linux
Reply to
Peter Zijlstra, 2024-08-10
On Sat, Aug 10, 2024 at 11:04 PM Peter Zijlstra [off-list ref] wrote:
On Thu, Aug 08, 2024 at 05:23:41PM +0000, Alice Ryhl wrote:
quoted
+/// Wrapper around `asm!` that uses at&t syntax on x86.
+// Uses a semicolon to avoid parsing ambiguities, even though this does not match native `asm!`
+// syntax.
+#[cfg(target_arch = "x86_64")]
+#[macro_export]
+macro_rules! asm {
+    ($($asm:expr),* ; $($rest:tt)*) => {
+        ::core::arch::asm!( $($asm)*, options(att_syntax), $($rest)* )
+    };
+}
+
+/// Wrapper around `asm!` that uses at&t syntax on x86.
^ the above line seems out of place given the 'not' below.
Comments with three slashes are what gets rendered in the html version
of the docs [1]. This way, the rendered docs will say that the `asm!`
macro is a wrapper around the built-in `asm!` that uses at&t syntax on
x86 regardless of which platform you build the docs on.

[1]: https://rust.docs.kernel.org/kernel/
quoted
+// For non-x86 arches we just pass through to `asm!`.
+#[cfg(not(target_arch = "x86_64"))]
         ^^^
quoted
+#[macro_export]
+macro_rules! asm {
+    ($($asm:expr),* ; $($rest:tt)*) => {
+        ::core::arch::asm!( $($asm)*, $($rest)* )
+    };
+}
Thread (14 messages) 14 messages, 3 authors, last reply 2024-08-12
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help