pub struct CmpXchg {
pub address: Operand,
pub expected: Operand,
pub replacement: Operand,
pub dest: Name,
pub volatile: bool,
pub atomicity: Atomicity,
pub failure_memory_ordering: MemoryOrdering,
pub weak: bool,
pub debugloc: Option<DebugLoc>,
}
Expand description
Atomic compare and exchange. See LLVM 14 docs on the ‘cmpxchg’ instruction
Fields§
§address: Operand
§expected: Operand
§replacement: Operand
§dest: Name
§volatile: bool
§atomicity: Atomicity
This includes the “success” MemoryOrdering
failure_memory_ordering: MemoryOrdering
This is the “failure” MemoryOrdering
weak: bool
§debugloc: Option<DebugLoc>
Trait Implementations§
Source§impl From<CmpXchg> for Instruction
impl From<CmpXchg> for Instruction
Source§fn from(inst: CmpXchg) -> Instruction
fn from(inst: CmpXchg) -> Instruction
Converts to this type from the input type.
Source§impl HasDebugLoc for CmpXchg
impl HasDebugLoc for CmpXchg
Source§impl TryFrom<Instruction> for CmpXchg
impl TryFrom<Instruction> for CmpXchg
impl StructuralPartialEq for CmpXchg
Auto Trait Implementations§
impl Freeze for CmpXchg
impl RefUnwindSafe for CmpXchg
impl Send for CmpXchg
impl Sync for CmpXchg
impl Unpin for CmpXchg
impl UnwindSafe for CmpXchg
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more