The typed-immediate branch of pinned operand.rs and place.rs. The
MemoryOperandLayout is only the TyAndLayout projection consumed here; ABI
backend representations and scalar sizing come directly from rustc_abi's
runtime-layout port. Pointer resolution, global lookup, and Miri access hooks
are delegated to the required AllocationAccess and dynamic-layout hooks.
Instances For
- size : ABI.Size
- align : ABI.Align
- backendRepr : ABI.BackendRepr
Canonical compiler type identity, retained for effectful unsized layout. Byte-level standalone views may omit it; typed machine views never do.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- mplace : MemPlace Prov
- layout : MemoryOperandLayout
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
- value : Immediate Prov
- layout : MemoryOperandLayout
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
- place {Prov : Type} (value : MemoryOperandPlace Prov) : ImmediateOrPlace Prov
- immediate {Prov : Type} (value : ImmediateValue Prov) : ImmediateOrPlace Prov
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.instDecidableEqImmediateOrPlace.decEq (Miri.Interpreter.ImmediateOrPlace.place a) (Miri.Interpreter.ImmediateOrPlace.place b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Interpreter.instDecidableEqImmediateOrPlace.decEq (Miri.Interpreter.ImmediateOrPlace.place value) (Miri.Interpreter.ImmediateOrPlace.immediate value_1) = isFalse ⋯
- Miri.Interpreter.instDecidableEqImmediateOrPlace.decEq (Miri.Interpreter.ImmediateOrPlace.immediate value) (Miri.Interpreter.ImmediateOrPlace.place value_1) = isFalse ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- runtimeLayout (error : ABI.RuntimeLayoutError) : MemoryOperandError
- scalarLayout (error : ABI.ScalarLayoutError) : MemoryOperandError
- pointerAccess (error : Memory.PtrAllocationError) : MemoryOperandError
- dynamicLayoutFailure (message : String) : MemoryOperandError
- allocation (error : Memory.AllocError) : MemoryOperandError
- memoryRange (error : Memory.MemoryError) : MemoryOperandError
- sourceInvariant (message : String) : MemoryOperandError
- immediate (error : ImmediateError) : MemoryOperandError
- invalidPrimitiveRead : MemoryOperandError
- rawReadReturnedPlace : MemoryOperandError
- invalidUninitBytes : MemoryOperandError
- unsizedImmediateWrite : MemoryOperandError
- immediateAbiMismatch : MemoryOperandError
- immediateSizeMismatch (expected actual : ABI.Size) : MemoryOperandError
- immediateCarriesNonPointerProvenance : MemoryOperandError
- memoryUpdate (error : Memory.AllocationLookupError) : MemoryOperandError
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
- memory : Memory.MemoryState Prov Extra MachineKind
- hooks : HookState
- touched : Option (Memory.AllocationAccessRef Prov Extra)
Updated allocation extras from access hooks, including on hook failure.
- outcome : Except MemoryOperandError α
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
These two functions preserve the get_place_alloc and get_place_alloc_mut order: dynamic layout first; pointer access and hooks next; the cached misalignment check last, with pointer/mutability errors taking precedence.
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
Source read_immediate_from_mplace_raw. In particular, an unsized layout
returns before touching memory; a zero-sized access with no allocation becomes
Uninit; all layouts that are not fully initialized scalar/scalar-pair ABIs
remain in memory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Raw operand reads retain the source's memory fallback. The caller supplies
the layout cached on the source OpTy; a local-to-place projection that must
materialize a local remains an explicit higher-level operation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Source read_immediate, with the source span-bug and UB branches made
explicit. Unavailable pointer/machine semantics are retained by the wrapped
allocation-access error and are never interpreted as a valid value.
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
Source write_immediate_to_mplace_no_validate. The ABI assertion precedes
pointer access; the scalar-pair offset assertion follows mutable place access;
padding is cleared before either component write; and each allocation update
is committed before the next operation so later failures retain partial state.
Machine validity policy is an explicit input, matching M::enforce_validity.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unit storage has no byte write, for any aligned pointer and arbitrary memory/access hooks. Only the target pointer-size query is a metadata premise.
Internal positive-access composition after raw source resolution.
The actual scalar immediate writer, composed with its derived mutable access and pure allocation mutation. These are internal operation edges.
ScalarPair's real source branch under the caller's current shallow validation policy; the two writes and intermediate cache update are retained.