On Sat, Aug 10, 2024 at 11:04 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Thu, Aug 08, 2024 at 05:23:41PM +0000, Alice Ryhl wrote: > > > +/// 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/ > > +// For non-x86 arches we just pass through to `asm!`. > > +#[cfg(not(target_arch = "x86_64"))] > ^^^ > > +#[macro_export] > > +macro_rules! asm { > > + ($($asm:expr),* ; $($rest:tt)*) => { > > + ::core::arch::asm!( $($asm)*, $($rest)* ) > > + }; > > +}