about summary refs log tree commit diff
path: root/library/stdarch/crates/std_detect
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2018-12-14 13:28:23 -0600
committergnzlbg <gnzlbg@users.noreply.github.com>2019-01-02 16:55:53 +0100
commit9c4e418fe0c6f305725eddf69aa49d6d82b29158 (patch)
tree562c6773fe7280bde0632b3a377ec7186962a59a /library/stdarch/crates/std_detect
parentd30c29e9263ea63c4b053322f45fccd25bc0a900 (diff)
downloadrust-9c4e418fe0c6f305725eddf69aa49d6d82b29158.tar.gz
rust-9c4e418fe0c6f305725eddf69aa49d6d82b29158.zip
Add a `x86_64::cmpxchg16b` intrinsic
This intrinsic isn't actually specified by Intel, but it's something
gated with CPUID and can otherwise be a useful thing to have when
building primitives!

There exists an `AtomicU128` type in the standard library but it's only
exposed currently (and it's unstable) when a platform fully supports
128-bit atomics. The x86_64 architecture does not support it *unless*
the `cmpxchg16b` instruction is available, and it isn't always available!

This commit is also a proposal for how we can include support for
128-bit atomics in the standard library on relevant platforms. I'm
thinking that we'll expose this one low-level intrinsic in
`std::arch::x86_64`, and then if desired a crate on crates.io can build
`AtomicU128` from this API.

In any case this is all unstable regardless!
Diffstat (limited to 'library/stdarch/crates/std_detect')
0 files changed, 0 insertions, 0 deletions