Source-shaped scalar and backend runtime-layout representations from pinned rustc_abi. RuntimeTargetDataLayout is a complete extension of the existing arithmetic TargetDataLayout: it stores that view once and requires the source alignment and pointer-space details used by these APIs. Unknown address spaces and malformed Lean alignments are explicit errors.
Equations
Instances For
Equations
- Miri.ABI.instReprAddressSpace.repr x✝ prec✝ = Std.Format.bracket "{ " (Std.Format.nil ++ Std.Format.text "value" ++ Std.Format.text " := " ++ (Std.Format.nest 9 (repr x✝.value)).group) " }"
Instances For
Equations
Equations
Equations
- Miri.ABI.AddressSpace.ZERO = { value := 0 }
Instances For
Equations
- Miri.ABI.AddressSpace.GPU_CONSTANT = { value := 4 }
Instances For
Equations
- Miri.ABI.AddressSpace.GPU_WORKGROUP = { value := 3 }
Instances For
Equations
- Miri.ABI.instReprInteger.repr Miri.ABI.Integer.I8 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Integer.I8")).group prec✝
- Miri.ABI.instReprInteger.repr Miri.ABI.Integer.I16 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Integer.I16")).group prec✝
- Miri.ABI.instReprInteger.repr Miri.ABI.Integer.I32 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Integer.I32")).group prec✝
- Miri.ABI.instReprInteger.repr Miri.ABI.Integer.I64 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Integer.I64")).group prec✝
- Miri.ABI.instReprInteger.repr Miri.ABI.Integer.I128 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Integer.I128")).group prec✝
Instances For
Equations
- Miri.ABI.instReprInteger = { reprPrec := Miri.ABI.instReprInteger.repr }
Equations
Equations
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.F16 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.F16")).group prec✝
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.F16B prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.F16B")).group prec✝
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.F32 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.F32")).group prec✝
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.F64 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.F64")).group prec✝
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.F128 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.F128")).group prec✝
- Miri.ABI.instReprFloat.repr Miri.ABI.Float.PpcF128 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Float.PpcF128")).group prec✝
Instances For
Equations
- Miri.ABI.instReprFloat = { reprPrec := Miri.ABI.instReprFloat.repr }
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.ABI.instReprPointerSpec = { reprPrec := Miri.ABI.instReprPointerSpec.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Data needed by scalar runtime-layout methods in rustc_abi. base retains the existing target endian and object-size bound. Every alignment is supplied by the caller, and address spaces are explicit.
- base : TargetDataLayout
- i1Align : Align
- i8Align : Align
- i16Align : Align
- i32Align : Align
- i64Align : Align
- i128Align : Align
- f16Align : Align
- f32Align : Align
- f64Align : Align
- f128Align : Align
- aggregateAlign : Align
- defaultAddressSpace : AddressSpace
- defaultAddressSpacePointerSpec : PointerSpec
- addressSpaceInfo : Array (AddressSpace × PointerSpec)
- instructionAddressSpace : AddressSpace
- cEnumMinSize : Integer
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
- invalidAlignment (where_ : String) (error : AlignError) : RuntimeLayoutError
- unknownAddressSpace (addressSpace : AddressSpace) : RuntimeLayoutError
- sizeFailure (error : SizeError) : RuntimeLayoutError
- unsupportedPointerOffsetWidth (size : Size) : RuntimeLayoutError
- unsupportedObjectSizePointerWidth (size : Size) : RuntimeLayoutError
- targetPointerWidthMismatch (configured : PointerWidth) (size : Size) : RuntimeLayoutError
- duplicateAddressSpace (addressSpace : AddressSpace) : RuntimeLayoutError
- missingInstructionAddressSpace (addressSpace : AddressSpace) : RuntimeLayoutError
- duplicateVectorSize (size : Size) : RuntimeLayoutError
- vectorAlignmentOverflow (size : Size) : RuntimeLayoutError
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
Equations
- One or more equations did not get rendered due to their size.
The actual rustc_abi default layout, represented with the existing 64-bit arithmetic view. This is an explicit fixture, not a fallback for missing target alignment or address-space data.
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
- layout.cVectorAlign vecSize = Option.map Prod.snd (Array.find? (fun (entry : Miri.ABI.Size × Miri.ABI.Align) => entry.fst == vecSize) layout.vectorAlign)
Instances For
Rust's source fallback is bytes.next_power_of_two() followed by an
alignment unwrap. The Lean result makes both source panic points explicit.
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
- layout.pointerSizeIn space = do let __do_lift ← layout.pointerSpecIn space pure __do_lift.pointerSize
Instances For
Equations
- layout.pointerSize = layout.defaultAddressSpacePointerSpec.pointerSize
Instances For
Equations
- layout.pointerOffsetIn space = do let __do_lift ← layout.pointerSpecIn space pure __do_lift.pointerOffset
Instances For
Equations
- layout.pointerOffset = layout.defaultAddressSpacePointerSpec.pointerOffset
Instances For
Equations
- layout.pointerAlignIn space = do let spec ← layout.pointerSpecIn space Miri.ABI.RuntimeTargetDataLayout.validateAlign "pointer" spec.pointerAlign pure (Miri.ABI.AbiAlign.new spec.pointerAlign)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- layout.objSizeBound = layout.base.objSizeBound
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- layout.ptrSizedInteger = layout.ptrSizedIntegerIn layout.defaultAddressSpace
Instances For
Full runtime-layout contexts extend, rather than replace, the target view already used by Size's target-dependent arithmetic.
- dataLayout : α → TargetDataLayout
- runtimeDataLayout : α → RuntimeTargetDataLayout
Instances
Equations
- Miri.ABI.instHasRuntimeDataLayoutRuntimeTargetDataLayout = { dataLayout := Miri.ABI.RuntimeTargetDataLayout.base, runtimeDataLayout := id }
- Pointer (signed : Bool) : IntegerType
- Fixed (integer : Integer) (signed : Bool) : IntegerType
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.ABI.instDecidableEqIntegerType.decEq (Miri.ABI.IntegerType.Pointer a) (Miri.ABI.IntegerType.Pointer b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqIntegerType.decEq (Miri.ABI.IntegerType.Pointer signed) (Miri.ABI.IntegerType.Fixed integer signed_1) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerType.decEq (Miri.ABI.IntegerType.Fixed integer signed) (Miri.ABI.IntegerType.Pointer signed_1) = isFalse ⋯
Instances For
Equations
- Miri.ABI.instReprIntegerType = { reprPrec := Miri.ABI.instReprIntegerType.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (Miri.ABI.IntegerType.Pointer a).isSigned = a
- (Miri.ABI.IntegerType.Fixed a a_1).isSigned = a_1
Instances For
- layout (error : RuntimeLayoutError) : IntegerError
- size (error : SizeError) : IntegerError
- unsupportedBitWidth (bits : UInt64) : IntegerError
Instances For
Equations
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.layout a) (Miri.ABI.IntegerError.layout b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.layout error) (Miri.ABI.IntegerError.size error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.layout error) (Miri.ABI.IntegerError.unsupportedBitWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.size error) (Miri.ABI.IntegerError.layout error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.size a) (Miri.ABI.IntegerError.size b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.size error) (Miri.ABI.IntegerError.unsupportedBitWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.unsupportedBitWidth bits) (Miri.ABI.IntegerError.layout error) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.unsupportedBitWidth bits) (Miri.ABI.IntegerError.size error) = isFalse ⋯
- Miri.ABI.instDecidableEqIntegerError.decEq (Miri.ABI.IntegerError.unsupportedBitWidth a) (Miri.ABI.IntegerError.unsupportedBitWidth b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
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.
Equations
- Miri.ABI.Integer.I8.intTyStr = "i8"
- Miri.ABI.Integer.I16.intTyStr = "i16"
- Miri.ABI.Integer.I32.intTyStr = "i32"
- Miri.ABI.Integer.I64.intTyStr = "i64"
- Miri.ABI.Integer.I128.intTyStr = "i128"
Instances For
Equations
- Miri.ABI.Integer.I8.uintTyStr = "u8"
- Miri.ABI.Integer.I16.uintTyStr = "u16"
- Miri.ABI.Integer.I32.uintTyStr = "u32"
- Miri.ABI.Integer.I64.uintTyStr = "u64"
- Miri.ABI.Integer.I128.uintTyStr = "u128"
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- Miri.ABI.Integer.I8.signedMax = 127
- Miri.ABI.Integer.I16.signedMax = 32767
- Miri.ABI.Integer.I32.signedMax = 2147483647
- Miri.ABI.Integer.I64.signedMax = 9223372036854775807
- Miri.ABI.Integer.I128.signedMax = 170141183460469231731687303715884105727
Instances For
Equations
- Miri.ABI.Integer.I8.signedMin = -128
- Miri.ABI.Integer.I16.signedMin = -32768
- Miri.ABI.Integer.I32.signedMin = -2147483648
- Miri.ABI.Integer.I64.signedMin = -9223372036854775808
- Miri.ABI.Integer.I128.signedMin = -170141183460469231731687303715884105728
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
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
- Miri.ABI.Float.F16.size = Miri.ABI.Size.ofBytes 2
- Miri.ABI.Float.F16B.size = Miri.ABI.Size.ofBytes 2
- Miri.ABI.Float.F32.size = Miri.ABI.Size.ofBytes 4
- Miri.ABI.Float.F64.size = Miri.ABI.Size.ofBytes 8
- Miri.ABI.Float.F128.size = Miri.ABI.Size.ofBytes 16
- Miri.ABI.Float.PpcF128.size = Miri.ABI.Size.ofBytes 16
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.ABI.Float.F16.tyStr = "f16"
- Miri.ABI.Float.F16B.tyStr = "f16b"
- Miri.ABI.Float.F32.tyStr = "f32"
- Miri.ABI.Float.F64.tyStr = "f64"
- Miri.ABI.Float.F128.tyStr = "f128"
- Miri.ABI.Float.PpcF128.tyStr = "ppcf128"
Instances For
Equations
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Int a a_1) (Miri.ABI.Primitive.Int b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Int integer signed) (Miri.ABI.Primitive.Float float) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Int integer signed) (Miri.ABI.Primitive.Pointer addressSpace) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Float float) (Miri.ABI.Primitive.Int integer signed) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Float a) (Miri.ABI.Primitive.Float b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Float float) (Miri.ABI.Primitive.Pointer addressSpace) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Pointer addressSpace) (Miri.ABI.Primitive.Int integer signed) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Pointer addressSpace) (Miri.ABI.Primitive.Float float) = isFalse ⋯
- Miri.ABI.instDecidableEqPrimitive.decEq (Miri.ABI.Primitive.Pointer a) (Miri.ABI.Primitive.Pointer b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Miri.ABI.instReprPrimitive = { reprPrec := Miri.ABI.instReprPrimitive.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Integer Miri.ABI.RegKind.Integer = isTrue ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Integer Miri.ABI.RegKind.Float = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_1
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Integer Miri.ABI.RegKind.PpcF128 = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_2
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Integer Miri.ABI.RegKind.Vector = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Float Miri.ABI.RegKind.Integer = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_4
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Float Miri.ABI.RegKind.Float = isTrue ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Float Miri.ABI.RegKind.PpcF128 = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_5
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Float Miri.ABI.RegKind.Vector = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.PpcF128 Miri.ABI.RegKind.Integer = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_7
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.PpcF128 Miri.ABI.RegKind.Float = isFalse Miri.ABI.instDecidableEqRegKind.decEq._proof_8
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.PpcF128 Miri.ABI.RegKind.PpcF128 = isTrue ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.PpcF128 Miri.ABI.RegKind.Vector = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Vector Miri.ABI.RegKind.Integer = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Vector Miri.ABI.RegKind.Float = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Vector Miri.ABI.RegKind.PpcF128 = isFalse ⋯
- Miri.ABI.instDecidableEqRegKind.decEq Miri.ABI.RegKind.Vector Miri.ABI.RegKind.Vector = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Miri.ABI.instReprRegKind.repr Miri.ABI.RegKind.Integer prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.RegKind.Integer")).group prec✝
- Miri.ABI.instReprRegKind.repr Miri.ABI.RegKind.Float prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.RegKind.Float")).group prec✝
- Miri.ABI.instReprRegKind.repr Miri.ABI.RegKind.PpcF128 prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.RegKind.PpcF128")).group prec✝
- Miri.ABI.instReprRegKind.repr Miri.ABI.RegKind.Vector prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.RegKind.Vector")).group prec✝
Instances For
Equations
- Miri.ABI.instReprRegKind = { reprPrec := Miri.ABI.instReprRegKind.repr }
Equations
- Miri.ABI.RegKind.fromPrimitive (Miri.ABI.Primitive.Int integer signed) = Miri.ABI.RegKind.Integer
- Miri.ABI.RegKind.fromPrimitive (Miri.ABI.Primitive.Pointer addressSpace) = Miri.ABI.RegKind.Integer
- Miri.ABI.RegKind.fromPrimitive (Miri.ABI.Primitive.Float Miri.ABI.Float.PpcF128) = Miri.ABI.RegKind.PpcF128
- Miri.ABI.RegKind.fromPrimitive (Miri.ABI.Primitive.Float float) = Miri.ABI.RegKind.Float
Instances For
Equations
- Miri.ABI.instDecidableEqNumeric.decEq (Miri.ABI.Numeric.Int a a_1) (Miri.ABI.Numeric.Int b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqNumeric.decEq (Miri.ABI.Numeric.Int integer signed) (Miri.ABI.Numeric.Float float) = isFalse ⋯
- Miri.ABI.instDecidableEqNumeric.decEq (Miri.ABI.Numeric.Float float) (Miri.ABI.Numeric.Int integer signed) = isFalse ⋯
- Miri.ABI.instDecidableEqNumeric.decEq (Miri.ABI.Numeric.Float a) (Miri.ABI.Numeric.Float b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Miri.ABI.instReprNumeric = { reprPrec := Miri.ABI.instReprNumeric.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (Miri.ABI.Numeric.Int a a_1).size = a.size
- (Miri.ABI.Numeric.Float a).size = a.size
Instances For
Equations
Instances For
Equations
- Miri.ABI.instReprReg = { reprPrec := Miri.ABI.instReprReg.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
- size (error : SizeError) : RegLayoutError
- runtime (error : RuntimeLayoutError) : RegLayoutError
- unsupportedIntegerWidth (bits : UInt64) : RegLayoutError
- unsupportedFloatWidth (bits : UInt64) : RegLayoutError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.size a) (Miri.ABI.RegLayoutError.size b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.size error) (Miri.ABI.RegLayoutError.runtime error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.size error) (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.size error) (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.runtime error) (Miri.ABI.RegLayoutError.size error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.runtime a) (Miri.ABI.RegLayoutError.runtime b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.runtime error) (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.runtime error) (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits) (Miri.ABI.RegLayoutError.size error) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits) (Miri.ABI.RegLayoutError.runtime error) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits) (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits_1) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits) (Miri.ABI.RegLayoutError.size error) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits) (Miri.ABI.RegLayoutError.runtime error) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedFloatWidth bits) (Miri.ABI.RegLayoutError.unsupportedIntegerWidth bits_1) = isFalse ⋯
- Miri.ABI.instDecidableEqRegLayoutError.decEq (Miri.ABI.RegLayoutError.unsupportedFloatWidth a) (Miri.ABI.RegLayoutError.unsupportedFloatWidth b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Instances For
Instances For
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Miri.ABI.Reg.opaqueVector size = { kind := Miri.ABI.RegKind.Vector, size := size }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (Miri.ABI.Primitive.Int a a_1).size cx = pure a.size
- (Miri.ABI.Primitive.Float a).size cx = pure a.size
- (Miri.ABI.Primitive.Pointer a).size cx = (Miri.ABI.HasRuntimeDataLayout.runtimeDataLayout cx).pointerSizeIn a
Instances For
Equations
- (Miri.ABI.Primitive.Int a a_1).defaultAlign cx = a.align cx
- (Miri.ABI.Primitive.Float a).defaultAlign cx = a.align cx
- (Miri.ABI.Primitive.Pointer a).defaultAlign cx = (Miri.ABI.HasRuntimeDataLayout.runtimeDataLayout cx).pointerAlignIn a
Instances For
Instances For
- Initialized {value : Primitive} {validRange : WrappingRange} : Scalar
- Union {value : Primitive} : Scalar
Instances For
Equations
- Miri.ABI.instDecidableEqScalar.decEq Miri.ABI.Scalar.Initialized Miri.ABI.Scalar.Initialized = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqScalar.decEq Miri.ABI.Scalar.Initialized Miri.ABI.Scalar.Union = isFalse ⋯
- Miri.ABI.instDecidableEqScalar.decEq Miri.ABI.Scalar.Union Miri.ABI.Scalar.Initialized = isFalse ⋯
- Miri.ABI.instDecidableEqScalar.decEq Miri.ABI.Scalar.Union Miri.ABI.Scalar.Union = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- Miri.ABI.instReprScalar.repr Miri.ABI.Scalar.Initialized prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Scalar.Initialized")).group prec✝
- Miri.ABI.instReprScalar.repr Miri.ABI.Scalar.Union prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Miri.ABI.Scalar.Union")).group prec✝
Instances For
Equations
- Miri.ABI.instReprScalar = { reprPrec := Miri.ABI.instReprScalar.repr }
- runtimeLayout (error : RuntimeLayoutError) : ScalarLayoutError
- wrappingRange (error : WrappingRangeError) : ScalarLayoutError
- cannotChangeUnionValidRange : ScalarLayoutError
Instances For
Equations
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.runtimeLayout a) (Miri.ABI.ScalarLayoutError.runtimeLayout b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.runtimeLayout error) (Miri.ABI.ScalarLayoutError.wrappingRange error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.runtimeLayout error) Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.wrappingRange error) (Miri.ABI.ScalarLayoutError.runtimeLayout error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.wrappingRange a) (Miri.ABI.ScalarLayoutError.wrappingRange b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq (Miri.ABI.ScalarLayoutError.wrappingRange error) Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange (Miri.ABI.ScalarLayoutError.runtimeLayout error) = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange (Miri.ABI.ScalarLayoutError.wrappingRange error) = isFalse ⋯
- Miri.ABI.instDecidableEqScalarLayoutError.decEq Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange Miri.ABI.ScalarLayoutError.cannotChangeUnionValidRange = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Instances For
Equations
- scalar.defaultAlign cx = Except.mapError Miri.ABI.ScalarLayoutError.runtimeLayout (scalar.primitive.defaultAlign cx)
Instances For
Equations
- scalar.size cx = Except.mapError Miri.ABI.ScalarLayoutError.runtimeLayout (scalar.primitive.size cx)
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.ABI.Scalar.Initialized.validRange cx = pure a_1
Instances For
Equations
- Miri.ABI.Scalar.Initialized.isAlwaysValid cx = do let size ← Miri.ABI.Scalar.Initialized.size cx Except.mapError Miri.ABI.ScalarLayoutError.wrappingRange (a_1.isFullFor size)
- Miri.ABI.Scalar.Union.isAlwaysValid cx = pure true
Instances For
Equations
Instances For
Equations
- Miri.ABI.Scalar.Initialized.isSigned = signed
- Miri.ABI.Scalar.Union.isSigned = signed
- x✝.isSigned = false
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- zeroLength : BackendLaneCountError
- oversized (maxLanes : UInt16) : BackendLaneCountError
Instances For
Equations
- Miri.ABI.instDecidableEqBackendLaneCountError.decEq Miri.ABI.BackendLaneCountError.zeroLength Miri.ABI.BackendLaneCountError.zeroLength = isTrue ⋯
- Miri.ABI.instDecidableEqBackendLaneCountError.decEq Miri.ABI.BackendLaneCountError.zeroLength (Miri.ABI.BackendLaneCountError.oversized maxLanes) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendLaneCountError.decEq (Miri.ABI.BackendLaneCountError.oversized maxLanes) Miri.ABI.BackendLaneCountError.zeroLength = isFalse ⋯
- Miri.ABI.instDecidableEqBackendLaneCountError.decEq (Miri.ABI.BackendLaneCountError.oversized a) (Miri.ABI.BackendLaneCountError.oversized b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
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
Equations
- count.isPowerOfTwo = ((Miri.ABI.BackendLaneCount.value✝ count).toNat &&& (Miri.ABI.BackendLaneCount.value✝ count).toNat - 1 == 0)
Instances For
Equations
- count.asU64 = (Miri.ABI.BackendLaneCount.value✝ count).toUInt64
Instances For
Equations
- count.asU32 = (Miri.ABI.BackendLaneCount.value✝ count).toUInt32
Instances For
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.ABI.NumScalableVectors.forNonTuple = { value := 1 }
Instances For
- Scalar (scalar : ABI.Scalar) : BackendRepr
- ScalarPair {a b : ABI.Scalar} {bOffset : Size} : BackendRepr
- SimdScalableVector {element : ABI.Scalar} {count : BackendLaneCount} {numberOfVectors : NumScalableVectors} : BackendRepr
- SimdVector {element : ABI.Scalar} {count : BackendLaneCount} : BackendRepr
- Memory {sized : Bool} : BackendRepr
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.ABI.instDecidableEqBackendRepr.decEq (Miri.ABI.BackendRepr.Scalar a) (Miri.ABI.BackendRepr.Scalar b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq (Miri.ABI.BackendRepr.Scalar scalar) Miri.ABI.BackendRepr.ScalarPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq (Miri.ABI.BackendRepr.Scalar scalar) Miri.ABI.BackendRepr.SimdScalableVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq (Miri.ABI.BackendRepr.Scalar scalar) Miri.ABI.BackendRepr.SimdVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq (Miri.ABI.BackendRepr.Scalar scalar) Miri.ABI.BackendRepr.Memory = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.ScalarPair (Miri.ABI.BackendRepr.Scalar scalar) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.ScalarPair Miri.ABI.BackendRepr.SimdScalableVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.ScalarPair Miri.ABI.BackendRepr.SimdVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.ScalarPair Miri.ABI.BackendRepr.Memory = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdScalableVector (Miri.ABI.BackendRepr.Scalar scalar) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdScalableVector Miri.ABI.BackendRepr.ScalarPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdScalableVector Miri.ABI.BackendRepr.SimdVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdScalableVector Miri.ABI.BackendRepr.Memory = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdVector (Miri.ABI.BackendRepr.Scalar scalar) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdVector Miri.ABI.BackendRepr.ScalarPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdVector Miri.ABI.BackendRepr.SimdScalableVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdVector Miri.ABI.BackendRepr.SimdVector = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.SimdVector Miri.ABI.BackendRepr.Memory = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.Memory (Miri.ABI.BackendRepr.Scalar scalar) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.Memory Miri.ABI.BackendRepr.ScalarPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.Memory Miri.ABI.BackendRepr.SimdScalableVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.Memory Miri.ABI.BackendRepr.SimdVector = isFalse ⋯
- Miri.ABI.instDecidableEqBackendRepr.decEq Miri.ABI.BackendRepr.Memory Miri.ABI.BackendRepr.Memory = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.ABI.instReprBackendRepr = { reprPrec := Miri.ABI.instReprBackendRepr.repr }
- scalar (error : ScalarLayoutError) : BackendReprError
- size (error : SizeError) : BackendReprError
- alignment (error : AlignError) : BackendReprError
- isSignedOnNonScalar : BackendReprError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.scalar a) (Miri.ABI.BackendReprError.scalar b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.scalar error) (Miri.ABI.BackendReprError.size error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.scalar error) (Miri.ABI.BackendReprError.alignment error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.scalar error) Miri.ABI.BackendReprError.alignmentUnavailableForPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.scalar error) Miri.ABI.BackendReprError.isSignedOnNonScalar = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.size error) (Miri.ABI.BackendReprError.scalar error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.size a) (Miri.ABI.BackendReprError.size b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.size error) (Miri.ABI.BackendReprError.alignment error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.size error) Miri.ABI.BackendReprError.alignmentUnavailableForPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.size error) Miri.ABI.BackendReprError.isSignedOnNonScalar = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.alignment error) (Miri.ABI.BackendReprError.scalar error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.alignment error) (Miri.ABI.BackendReprError.size error_1) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.alignment a) (Miri.ABI.BackendReprError.alignment b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.alignment error) Miri.ABI.BackendReprError.alignmentUnavailableForPair = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq (Miri.ABI.BackendReprError.alignment error) Miri.ABI.BackendReprError.isSignedOnNonScalar = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.alignmentUnavailableForPair (Miri.ABI.BackendReprError.scalar error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.alignmentUnavailableForPair (Miri.ABI.BackendReprError.size error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.alignmentUnavailableForPair (Miri.ABI.BackendReprError.alignment error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.alignmentUnavailableForPair Miri.ABI.BackendReprError.alignmentUnavailableForPair = isTrue ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.isSignedOnNonScalar (Miri.ABI.BackendReprError.scalar error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.isSignedOnNonScalar (Miri.ABI.BackendReprError.size error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.isSignedOnNonScalar (Miri.ABI.BackendReprError.alignment error) = isFalse ⋯
- Miri.ABI.instDecidableEqBackendReprError.decEq Miri.ABI.BackendReprError.isSignedOnNonScalar Miri.ABI.BackendReprError.isSignedOnNonScalar = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Instances For
Instances For
Equations
Instances For
Instances For
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (Miri.ABI.BackendRepr.Scalar scalar).scalarPlatformAlign cx = do let align ← Except.mapError Miri.ABI.BackendReprError.scalar (scalar.defaultAlign cx) pure (some align.abi)
- Miri.ABI.BackendRepr.SimdVector.scalarPlatformAlign cx = pure none
- Miri.ABI.BackendRepr.Memory.scalarPlatformAlign cx = pure none
- Miri.ABI.BackendRepr.SimdScalableVector.scalarPlatformAlign cx = pure none
Instances For
Equations
- One or more equations did not get rendered due to their size.
- (Miri.ABI.BackendRepr.Scalar scalar).scalarSize cx = do let __do_lift ← Except.mapError Miri.ABI.BackendReprError.scalar (scalar.size cx) pure (some __do_lift)
- Miri.ABI.BackendRepr.SimdVector.scalarSize cx = pure none
- Miri.ABI.BackendRepr.Memory.scalarSize cx = pure none
- Miri.ABI.BackendRepr.SimdScalableVector.scalarSize cx = pure none
Instances For
Equations
- (Miri.ABI.BackendRepr.Scalar scalar).toUnion = Miri.ABI.BackendRepr.Scalar scalar.toUnion
- Miri.ABI.BackendRepr.ScalarPair.toUnion = Miri.ABI.BackendRepr.ScalarPair
- Miri.ABI.BackendRepr.SimdVector.toUnion = Miri.ABI.BackendRepr.SimdVector
- Miri.ABI.BackendRepr.Memory.toUnion = Miri.ABI.BackendRepr.Memory
- Miri.ABI.BackendRepr.SimdScalableVector.toUnion = Miri.ABI.BackendRepr.SimdScalableVector
Instances For
Equations
- (Miri.ABI.BackendRepr.Scalar left).eqUpToValidity (Miri.ABI.BackendRepr.Scalar right) = (left.primitive == right.primitive)
- Miri.ABI.BackendRepr.SimdVector.eqUpToValidity Miri.ABI.BackendRepr.SimdVector = (leftElement.primitive == rightElement.primitive && leftCount == rightCount)
- Miri.ABI.BackendRepr.ScalarPair.eqUpToValidity Miri.ABI.BackendRepr.ScalarPair = (leftA.primitive == rightA.primitive && leftB.primitive == rightB.primitive && leftOffset == rightOffset)
- x✝¹.eqUpToValidity x✝ = (x✝¹ == x✝)