Core atomic intrinsic dispatch plus the Miri VClock/weak-memory pipeline. Physical reads/writes must invoke the full interpreter memory/TB/sync hooks; the restricted Unit-extra AtomicScalarMemory component is not promoted to a complete atomic execution. Every finite permitted choice remains explicit.
- mir (op : MIR.BinOp) (negate : Bool) : IntrinsicAtomicRmw
- min : IntrinsicAtomicRmw
- max : IntrinsicAtomicRmw
- swap : IntrinsicAtomicRmw
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) Miri.Interpreter.IntrinsicAtomicRmw.min = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) Miri.Interpreter.IntrinsicAtomicRmw.max = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) Miri.Interpreter.IntrinsicAtomicRmw.swap = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.min (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.min Miri.Interpreter.IntrinsicAtomicRmw.min = isTrue ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.max (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.max Miri.Interpreter.IntrinsicAtomicRmw.max = isTrue ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.swap (Miri.Interpreter.IntrinsicAtomicRmw.mir op negate) = isFalse ⋯
- Miri.Interpreter.instDecidableEqIntrinsicAtomicRmw.decEq Miri.Interpreter.IntrinsicAtomicRmw.swap Miri.Interpreter.IntrinsicAtomicRmw.swap = isTrue ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- neverFail : WeakCasPolicy
- alwaysFail : WeakCasPolicy
- mayFail : WeakCasPolicy
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- allocation : Memory.AllocId
- range : Memory.AllocRange
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- target : ABI.TargetDataLayout
- getGlobal : S → Option Concurrency.GlobalState
- setGlobal : S → Concurrency.GlobalState → S
- threads : S → Concurrency.ThreadManager
- getAtomic : S → Memory.AllocId → Except StepError (Concurrency.AtomicState (Memory.Scalar P))
- setAtomic : Memory.AllocId → Concurrency.AtomicState (Memory.Scalar P) → RvalueM S Unit
- placeLayout : V → ABI.TyAndLayout MIR.TyId
- placePointer : V → Except StepError (Memory.Pointer (Option P))
- physicalRead : C → V → RvalueM S (RvalueImmTy P)
- ghostRead : C → V → RvalueM S (Option (Memory.Scalar P))
- checkPointerAlign : C → Memory.Pointer (Option P) → ABI.Align → RvalueM S Unit
- resolveAllocation : C → Memory.Pointer (Option P) → RvalueM S (Memory.AllocId × ABI.Size)
- mutability : C → Memory.AllocId → RvalueM S Memory.Mutability
- scalarOps : ScalarOpsHooks P S C
- weakPolicy : WeakCasPolicy
- diagnostic : C → Concurrency.WeakMemoryDiagnostic → RvalueM S Unit
- classifyDispatchError : Concurrency.AtomicDispatchError → StepError
- classifyGlobalError : Concurrency.GlobalStateError → StepError
Instances For
- setGlobal : S → Concurrency.GlobalState → S
- getAtomic : S → Memory.AllocId → Except StepError (Concurrency.AtomicState (Memory.Scalar P))
- placePointer : V → Except StepError (Memory.Pointer (Option P))
- physicalRead : C → V → RvalueM S (RvalueImmTy P)
- physicalWrite : C → Immediate P → V → RvalueM S Unit
- ghostRead : C → V → RvalueM S (Option (Memory.Scalar P))
- checkPointerAlign : C → Memory.Pointer (Option P) → ABI.Align → RvalueM S Unit
- resolveAllocation : C → Memory.Pointer (Option P) → RvalueM S (Memory.AllocId × ABI.Size)
- mutability : C → Memory.AllocId → RvalueM S Memory.Mutability
- scalarOps : ScalarOpsHooks P S C
- loadChoiceRank : C → Nat → RvalueM S Nat
- weakSuccessChoice : C → RvalueM S Bool
- orderingConst : C → Nat → RvalueM S Concurrency.AtomicOrdering
- readImmediate : C → OpTy P → RvalueM S (RvalueImmTy P)
- returnToBlock : C → Option MIR.BasicBlockId → RvalueM S Unit
Instances For
Exact source flag window, including restoration after physical-hook error. Global lenses must view the same global state used by the memory access hooks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source atomic_access_check staging: size-derived alignment, pointer alignment, allocation identity and read-only rules. Actual byte hooks follow.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Commit post-byte/per-clock mutations even when a later byte or clock fails. The state lens must preserve unrelated memory, provenance and borrow metadata.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.IntrinsicAtomic.rmwValue h choice Miri.Interpreter.IntrinsicAtomicRmw.swap left right = pure right
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Actual Miri operator.rs pointer operations used by atomic pointers. Relative CTFE provenance cannot be substituted for machine addresses. The arithmetic branch keeps the source's usize temporary layout while retaining LHS provenance.
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.IntrinsicAtomic.pointerBinary target ops isRaw usizeLayout choice op left right = Miri.Interpreter.IntrinsicAtomic.invalid✝ "unsupported Miri pointer binary operation"
Instances For
Ordering generic indexes and volatile-constant evaluation match pinned core atomic.rs. Unknown atomic names preserve the source not-handled result.
Equations
- One or more equations did not get rendered due to their size.