Skip to content

Commit

Permalink
Use the new asm! in the unstable primal_sieve::b
Browse files Browse the repository at this point in the history
We should re-evaluate if this is still useful, because it made no
consistent difference on my machine, but at least this compiles.
  • Loading branch information
cuviper committed Feb 15, 2022
1 parent 76eb785 commit 02361de
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions primal-sieve/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,12 @@
//!
//! This is designed to be used via the `primal` crate.
#![cfg_attr(feature = "unstable", feature(llvm_asm))]

// black boxes for pointers; LLVM isn't so happy without
// them. Unfortunately only usable with unstable, but the code isn't
// them. Unfortunately only usable with 1.59+ asm!, but the code isn't
// *too* much slower without them.
#[cfg(feature = "unstable")]
#[inline(always)]
fn b<T>(mut p: *mut T) -> *mut T { unsafe { llvm_asm!("": "+r"(p)) } p }
fn b<T>(mut p: *mut T) -> *mut T { unsafe { core::arch::asm!("/* {0} */", inout(reg) p) } p }
#[cfg(not(feature = "unstable"))]
#[inline(always)]
fn b<T>(p: *mut T) -> *mut T { p }
Expand Down

0 comments on commit 02361de

Please sign in to comment.