diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2018-12-14 13:28:23 -0600 |
|---|---|---|
| committer | gnzlbg <gnzlbg@users.noreply.github.com> | 2019-01-02 16:55:53 +0100 |
| commit | 9c4e418fe0c6f305725eddf69aa49d6d82b29158 (patch) | |
| tree | 562c6773fe7280bde0632b3a377ec7186962a59a /library/stdarch/crates/std_detect | |
| parent | d30c29e9263ea63c4b053322f45fccd25bc0a900 (diff) | |
| download | rust-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
