Module swiss_army_knife::intel_hardware_lock_elision[][src]

Expand description

Intel hardware lock elision.

From wikipedia: “Hardware Lock Elision (HLE) adds two new instruction prefixes, XACQUIRE and XRELEASE. These two prefixes reuse the opcodes of the existing REPNE / REPE prefixes (F2H / F3H). On processors that do not support TSX/TSX-NI, REPNE / REPE prefixes are ignored on instructions for which the XACQUIRE / XRELEASE are valid, thus enabling backward compatibility”.

The naming of the intrinsics follows that in Andi Kleen’s tsx-tools. Intrinsics are available for u8, u16, u32, and, for x86_64, u64. These intrinsics can be thought of as providing additional memory orderings to Rust’s Relaxed, Release, Acquire and SeqCst. They closely model the intent of GCC’s built in atomic instrincs.

Functions

Atomically add val to the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Acquire’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Acquire’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Acquire’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Acquire’ memory ordering.

Atomically compare-and-swap with ‘HLE Acquire’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Acquire’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Acquire’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Acquire’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically exchange (swap) val for the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Acquire’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Acquire’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Acquire’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Acquire’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically AND val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Release’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Release’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Release’ memory ordering.

Atomically clear the content of ptr, ie set the content of ptr to zero with ‘HLE Release’ memory ordering.

Atomically compare-and-swap with ‘HLE Release’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Release’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Release’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically compare-and-swap with ‘HLE Release’ memory ordering. This compares the content of ptr with the content of oldp:-

Atomically exchange (swap) val for the content of ptr and return the previous content of of ptr with ‘HLE Release’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of of ptr with ‘HLE Release’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of of ptr with ‘HLE Release’ memory ordering.

Atomically exchange (swap) val for the content of ptr and return the previous content of of ptr with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically add val to the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the previous content of ptr with ‘HLE Release’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically OR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically store (set) the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically subtract val from the content of ptr and return the result with ‘HLE Release’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Release’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Release’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Release’ memory ordering.

Atomically exchange (swap) 1 for the content of ptr and test the previous content of of ptr was 1 with ‘HLE Release’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Release’ memory ordering.

Atomically XOR val with the content of ptr to val with ‘HLE Release’ memory ordering.