trait EvalContextPrivExt<'tcx>: MiriInterpCxExt<'tcx> {
// Provided methods
fn atomic_load(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
atomic: AtomicReadOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_store(
&mut self,
args: &[OpTy<'tcx>],
atomic: AtomicWriteOrd,
) -> InterpResult<'tcx> { ... }
fn compiler_fence_intrinsic(
&mut self,
args: &[OpTy<'tcx>],
atomic: AtomicFenceOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_fence_intrinsic(
&mut self,
args: &[OpTy<'tcx>],
atomic: AtomicFenceOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_rmw_op(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
atomic_op: AtomicOp,
atomic: AtomicRwOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_exchange(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
atomic: AtomicRwOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_compare_exchange_impl(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
success: AtomicRwOrd,
fail: AtomicReadOrd,
can_fail_spuriously: bool,
) -> InterpResult<'tcx> { ... }
fn atomic_compare_exchange(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
success: AtomicRwOrd,
fail: AtomicReadOrd,
) -> InterpResult<'tcx> { ... }
fn atomic_compare_exchange_weak(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
success: AtomicRwOrd,
fail: AtomicReadOrd,
) -> InterpResult<'tcx> { ... }
}