Pinned interpret/step.rs:160-300 dispatcher. Required machine operations
are effectful obligations; every failure preserves its resulting state.
- imm : Immediate Prov
- layout : ABI.TyAndLayout MIR.TyId
Instances For
def
Miri.Interpreter.instDecidableEqRvalueImmTy.decEq
{Prov✝ : Type}
[DecidableEq Prov✝]
(x✝ x✝¹ : RvalueImmTy Prov✝)
:
Equations
Instances For
@[instance_reducible]
instance
Miri.Interpreter.instDecidableEqRvalueImmTy
{Prov✝ : Type}
[DecidableEq Prov✝]
:
DecidableEq (RvalueImmTy Prov✝)
def
Miri.Interpreter.instReprRvalueImmTy.repr
{Prov✝ : Type}
[Repr Prov✝]
:
RvalueImmTy Prov✝ → Nat → Std.Format
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[reducible, inline]
Equations
Instances For
- placeLayout : V → ABI.TyAndLayout MIR.TyId
- evalOperand : C → MIR.Operand → Option (ABI.TyAndLayout MIR.TyId) → RvalueM S (OpTy Prov)
- evalOperandAt : C → OperandPath → MIR.Operand → Option (ABI.TyAndLayout MIR.TyId) → RvalueM S (OpTy Prov)
- readImmediate : C → OpTy Prov → RvalueM S (RvalueImmTy Prov)
- writePointer : C → Memory.Pointer (Option Prov) → V → RvalueM S Unit
- threadLocalPointer : C → MIR.DefId → RvalueM S (Memory.Pointer (Option Prov))
- withRetagMode {A : Type} : C → TreeBorrows.RetagPolicy.RetagMode → RvalueM S A → RvalueM S A
- binaryOp : C → MIR.BinOp → RvalueImmTy Prov → RvalueImmTy Prov → RvalueM S (RvalueImmTy Prov)
- unaryOp : C → MIR.UnOp → RvalueImmTy Prov → RvalueM S (RvalueImmTy Prov)
- writeAggregate : C → MIR.AggregateKind → Array MIR.Operand → V → RvalueM S Unit
- writeRepeat : C → MIR.Operand → V → RvalueM S Unit
- enforceValidity : C → ABI.TyAndLayout MIR.TyId → RvalueM S Bool
- retagPtrValue : C → RvalueImmTy Prov → MIR.TyId → RvalueM S (Option (RvalueImmTy Prov))
- cast : C → OpTy Prov → MIR.CastKind → MIR.TyId → V → RvalueM S Unit
- readDiscriminant : C → OpTy Prov → RvalueM S MIR.VariantIndex
- discriminantForVariant : C → MIR.TyId → MIR.VariantIndex → RvalueM S (RvalueImmTy Prov)
Instances For
def
Miri.Interpreter.evalRvalueIntoPlace
{P S C V : Type}
(h : RvalueHooks P S C V)
(choice : C)
(rvalue : MIR.Rvalue)
(place : MIR.Place)
:
Destination evaluation is always first, with the source's skip-validity flag. No hook has a default implementation or a default successful outcome.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adapt the effect result to the statement driver's state-preserving result.
Equations
- Miri.Interpreter.runRvalue action state = match action state with | EStateM.Result.ok value state => (state, Except.ok value) | EStateM.Result.error error state => (state, Except.error error)