- none : FloatErrorMode
- random : FloatErrorMode
- max : FloatErrorMode
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
- architecture : ArchitectureHooks P S C V
- x86_64 : Bool
- sse2Enabled : Bool
- arrayLayout : C → MIR.TyId → UInt64 → RvalueM S (ABI.TyAndLayout MIR.TyId)
- integerLayout : C → Nat → Bool → RvalueM S (ABI.TyAndLayout MIR.TyId)
- transmuteRead : C → OpTy P → ABI.TyAndLayout MIR.TyId → RvalueM S (OpTy P)
- transmuteWrite : C → V → ABI.TyAndLayout MIR.TyId → RvalueM S V
- twiceWideLayout : C → MIR.TyId → RvalueM S (ABI.TyAndLayout MIR.TyId)
Source uses host sqrt for rsqrt; this is its explicit numerical boundary.
- floatNondet : Bool
- roundingError : FloatErrorMode
- memCopy : C → Memory.Pointer (Option P) → Memory.Pointer (Option P) → ABI.Size → Bool → RvalueM S Unit
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- Miri.Interpreter.IntrinsicX86.invalid message = throw (Miri.Interpreter.StepError.invalidProgram message)
Instances For
Equations
- Miri.Interpreter.IntrinsicX86.liftResult (Except.ok value) = pure value
- Miri.Interpreter.IntrinsicX86.liftResult (Except.error error) = throw error
Instances For
def
Miri.Interpreter.IntrinsicX86.scalarResult
{A S : Type}
(result : Except Memory.ScalarError A)
:
M S A
Equations
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
def
Miri.Interpreter.IntrinsicX86.feature
{P S C V : Type}
(h : Hooks P S C V)
(choice : C)
(name feature : String)
:
Equations
- Miri.Interpreter.IntrinsicX86.feature h choice name feature = h.architecture.expectFeature choice name feature
Instances For
def
Miri.Interpreter.IntrinsicX86.scalar
{P S : Type}
(value : RvalueImmTy P)
:
M S (Memory.Scalar P)
Equations
Instances For
def
Miri.Interpreter.IntrinsicX86.read
{P S C V : Type}
(h : Hooks P S C V)
(choice : C)
(op : OpTy P)
:
M S (Memory.Scalar P)
Equations
- Miri.Interpreter.IntrinsicX86.read h choice op = do let __do_lift ← h.architecture.simd.readImmediate choice op Miri.Interpreter.IntrinsicX86.scalar __do_lift
Instances For
def
Miri.Interpreter.IntrinsicX86.readLane
{P S C V : Type}
(h : Hooks P S C V)
(choice : C)
(op : OpTy P)
(i : UInt64)
:
M S (RvalueImmTy P)
Equations
- Miri.Interpreter.IntrinsicX86.readLane h choice op i = do let __do_lift ← h.architecture.simd.indexRead choice op i h.architecture.simd.readImmediate choice __do_lift
Instances For
def
Miri.Interpreter.IntrinsicX86.readScalarLane
{P S C V : Type}
(h : Hooks P S C V)
(choice : C)
(op : OpTy P)
(i : UInt64)
:
M S (Memory.Scalar P)
Equations
- Miri.Interpreter.IntrinsicX86.readScalarLane h choice op i = do let __do_lift ← h.architecture.simd.indexRead choice op i Miri.Interpreter.IntrinsicX86.read h choice __do_lift
Instances For
def
Miri.Interpreter.IntrinsicX86.write
{P S C V : Type}
(h : Hooks P S C V)
(choice : C)
(value : Memory.Scalar P)
(dest : V)
:
Equations
- Miri.Interpreter.IntrinsicX86.write h choice value dest = h.architecture.simd.writeImmediate choice (Miri.Interpreter.Immediate.scalar value) dest
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.IntrinsicX86.checkedIndex n = if n < 2 ^ 64 then pure (UInt64.ofNat n) else Miri.Interpreter.IntrinsicX86.invalid "x86 strict index arithmetic overflow"
Instances For
def
Miri.Interpreter.IntrinsicX86.fromUInt
{S P : Type}
(value : Nat)
(size : ABI.Size)
:
M S (Memory.Scalar P)
Equations
- Miri.Interpreter.IntrinsicX86.fromUInt value size = Miri.Interpreter.IntrinsicX86.scalarResult (Miri.Memory.Scalar.fromUInt (BitVec.ofNat 128 value) size)
Instances For
def
Miri.Interpreter.IntrinsicX86.fromInt
{S P : Type}
(value : Int)
(size : ABI.Size)
:
M S (Memory.Scalar P)
Equations
- Miri.Interpreter.IntrinsicX86.fromInt value size = Miri.Interpreter.IntrinsicX86.scalarResult (Miri.Memory.Scalar.fromInt value size)
Instances For
def
Miri.Interpreter.IntrinsicX86.truncInt
{S P : Type}
(value : Int)
(size : ABI.Size)
:
M S (Memory.Scalar P)
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.IntrinsicX86.makeImm
{S P : Type}
(value : Int)
(layout : ABI.TyAndLayout MIR.TyId)
:
M S (RvalueImmTy P)
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Miri.Interpreter.IntrinsicX86.castInt
{P S C V : Type}
[Memory.PointerProvenance P]
(h : Hooks P S C V)
(choice : C)
(value : RvalueImmTy P)
(dest : ABI.TyAndLayout MIR.TyId)
:
M S (RvalueImmTy P)
Equations
- One or more equations did not get rendered due to their size.