Module core::core_arch::x86::rtm

source ·
🔬This is a nightly-only experimental API. (stdsimd #48556)
Available on x86 or x86-64 only.
Expand description

Intel’s Restricted Transactional Memory (RTM).

This CPU feature is available on Intel Broadwell or later CPUs (and some Haswell).

The reference is Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 2: Instruction Set Reference, A-Z.

Wikipedia provides a quick overview of the assembly instructions, and Intel’s programming considerations details what sorts of instructions within a transaction are likely to cause an abort.

Constants

  • _XABORT_CAPACITYExperimental
    Transaction abort due to the transaction using too much memory.
  • _XABORT_CONFLICTExperimental
    Transaction abort due to a memory conflict with another thread.
  • _XABORT_DEBUGExperimental
    Transaction abort due to a debug trap.
  • _XABORT_EXPLICITExperimental
    Transaction explicitly aborted with xabort. The parameter passed to xabort is available with _xabort_code(status).
  • _XABORT_NESTEDExperimental
    Transaction abort in a inner nested transaction.
  • _XABORT_RETRYExperimental
    Transaction retry is possible.
  • _XBEGIN_STARTEDExperimental
    Transaction successfully started.

Functions

  • _xabortExperimentalrtm
    Forces a restricted transactional memory (RTM) region to abort.
  • _xabort_codeExperimental
    Retrieves the parameter passed to _xabort when _xbegin’s status has the _XABORT_EXPLICIT flag set.
  • _xbeginExperimentalrtm
    Specifies the start of a restricted transactional memory (RTM) code region and returns a value indicating status.
  • _xendExperimentalrtm
    Specifies the end of a restricted transactional memory (RTM) code region.
  • _xtestExperimentalrtm
    Queries whether the processor is executing in a transactional region identified by restricted transactional memory (RTM) or hardware lock elision (HLE).
  • x86_xabort 🔒 Experimental
  • x86_xbegin 🔒 Experimental
  • x86_xend 🔒 Experimental
  • x86_xtest 🔒 Experimental