Enum iced_x86::MemorySize

source ·
#[non_exhaustive]
pub enum MemorySize {
Show 162 variants Unknown, UInt8, UInt16, UInt32, UInt52, UInt64, UInt128, UInt256, UInt512, Int8, Int16, Int32, Int64, Int128, Int256, Int512, SegPtr16, SegPtr32, SegPtr64, WordOffset, DwordOffset, QwordOffset, Bound16_WordWord, Bound32_DwordDword, Bnd32, Bnd64, Fword6, Fword10, Float16, Float32, Float64, Float80, Float128, BFloat16, FpuEnv14, FpuEnv28, FpuState94, FpuState108, Fxsave_512Byte, Fxsave64_512Byte, Xsave, Xsave64, Bcd, Tilecfg, Tile, SegmentDescSelector, KLHandleAes128, KLHandleAes256, Packed16_UInt8, Packed16_Int8, Packed32_UInt8, Packed32_Int8, Packed32_UInt16, Packed32_Int16, Packed32_Float16, Packed32_BFloat16, Packed64_UInt8, Packed64_Int8, Packed64_UInt16, Packed64_Int16, Packed64_UInt32, Packed64_Int32, Packed64_Float16, Packed64_Float32, Packed128_UInt8, Packed128_Int8, Packed128_UInt16, Packed128_Int16, Packed128_UInt32, Packed128_Int32, Packed128_UInt52, Packed128_UInt64, Packed128_Int64, Packed128_Float16, Packed128_Float32, Packed128_Float64, Packed128_BFloat16, Packed128_2xFloat16, Packed128_2xBFloat16, Packed256_UInt8, Packed256_Int8, Packed256_UInt16, Packed256_Int16, Packed256_UInt32, Packed256_Int32, Packed256_UInt52, Packed256_UInt64, Packed256_Int64, Packed256_UInt128, Packed256_Int128, Packed256_Float16, Packed256_Float32, Packed256_Float64, Packed256_Float128, Packed256_BFloat16, Packed256_2xFloat16, Packed256_2xBFloat16, Packed512_UInt8, Packed512_Int8, Packed512_UInt16, Packed512_Int16, Packed512_UInt32, Packed512_Int32, Packed512_UInt52, Packed512_UInt64, Packed512_Int64, Packed512_UInt128, Packed512_Float16, Packed512_Float32, Packed512_Float64, Packed512_2xFloat16, Packed512_2xBFloat16, Broadcast32_Float16, Broadcast64_UInt32, Broadcast64_Int32, Broadcast64_Float16, Broadcast64_Float32, Broadcast128_Int16, Broadcast128_UInt16, Broadcast128_UInt32, Broadcast128_Int32, Broadcast128_UInt52, Broadcast128_UInt64, Broadcast128_Int64, Broadcast128_Float16, Broadcast128_Float32, Broadcast128_Float64, Broadcast128_2xInt16, Broadcast128_2xInt32, Broadcast128_2xUInt32, Broadcast128_2xFloat16, Broadcast128_2xBFloat16, Broadcast256_Int16, Broadcast256_UInt16, Broadcast256_UInt32, Broadcast256_Int32, Broadcast256_UInt52, Broadcast256_UInt64, Broadcast256_Int64, Broadcast256_Float16, Broadcast256_Float32, Broadcast256_Float64, Broadcast256_2xInt16, Broadcast256_2xInt32, Broadcast256_2xUInt32, Broadcast256_2xFloat16, Broadcast256_2xBFloat16, Broadcast512_Int16, Broadcast512_UInt16, Broadcast512_UInt32, Broadcast512_Int32, Broadcast512_UInt52, Broadcast512_UInt64, Broadcast512_Int64, Broadcast512_Float16, Broadcast512_Float32, Broadcast512_Float64, Broadcast512_2xFloat16, Broadcast512_2xInt16, Broadcast512_2xUInt32, Broadcast512_2xInt32, Broadcast512_2xBFloat16,
}
Expand description

Size of a memory reference

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Unknown

Unknown size or the instruction doesn’t reference any memory (eg. LEA)

§

UInt8

Memory location contains a u8

§

UInt16

Memory location contains a u16

§

UInt32

Memory location contains a u32

§

UInt52

Memory location contains a u52

§

UInt64

Memory location contains a u64

§

UInt128

Memory location contains a u128

§

UInt256

Memory location contains a u256

§

UInt512

Memory location contains a u512

§

Int8

Memory location contains a i8

§

Int16

Memory location contains a i16

§

Int32

Memory location contains a i32

§

Int64

Memory location contains a i64

§

Int128

Memory location contains a i128

§

Int256

Memory location contains a i256

§

Int512

Memory location contains a i512

§

SegPtr16

Memory location contains a seg:ptr pair, u16 (offset) + u16 (segment/selector)

§

SegPtr32

Memory location contains a seg:ptr pair, u32 (offset) + u16 (segment/selector)

§

SegPtr64

Memory location contains a seg:ptr pair, u64 (offset) + u16 (segment/selector)

§

WordOffset

Memory location contains a 16-bit offset (JMP/CALL WORD PTR [mem])

§

DwordOffset

Memory location contains a 32-bit offset (JMP/CALL DWORD PTR [mem])

§

QwordOffset

Memory location contains a 64-bit offset (JMP/CALL QWORD PTR [mem])

§

Bound16_WordWord

Memory location contains two u16s (16-bit BOUND)

§

Bound32_DwordDword

Memory location contains two u32s (32-bit BOUND)

§

Bnd32

32-bit BNDMOV, 2 x u32

§

Bnd64

64-bit BNDMOV, 2 x u64

§

Fword6

Memory location contains a 16-bit limit and a 32-bit address (eg. LGDTW, LGDTD)

§

Fword10

Memory location contains a 16-bit limit and a 64-bit address (eg. LGDTQ)

§

Float16

Memory location contains a f16

§

Float32

Memory location contains a f32

§

Float64

Memory location contains a f64

§

Float80

Memory location contains a f80

§

Float128

Memory location contains a f128

§

BFloat16

Memory location contains a bfloat16

§

FpuEnv14

Memory location contains a 14-byte FPU environment (16-bit FLDENV/FSTENV)

§

FpuEnv28

Memory location contains a 28-byte FPU environment (32/64-bit FLDENV/FSTENV)

§

FpuState94

Memory location contains a 94-byte FPU environment (16-bit FSAVE/FRSTOR)

§

FpuState108

Memory location contains a 108-byte FPU environment (32/64-bit FSAVE/FRSTOR)

§

Fxsave_512Byte

Memory location contains 512-bytes of FXSAVE/FXRSTOR data

§

Fxsave64_512Byte

Memory location contains 512-bytes of FXSAVE64/FXRSTOR64 data

§

Xsave

32-bit XSAVE area

§

Xsave64

64-bit XSAVE area

§

Bcd

Memory location contains a 10-byte bcd value (FBLD/FBSTP)

§

Tilecfg

64-bit location: TILECFG (LDTILECFG/STTILECFG)

§

Tile

Tile data

§

SegmentDescSelector

80-bit segment descriptor and selector: 0-7 = descriptor, 8-9 = selector

§

KLHandleAes128

384-bit AES 128 handle (Key Locker)

§

KLHandleAes256

512-bit AES 256 handle (Key Locker)

§

Packed16_UInt8

16-bit location: 2 x u8

§

Packed16_Int8

16-bit location: 2 x i8

§

Packed32_UInt8

32-bit location: 4 x u8

§

Packed32_Int8

32-bit location: 4 x i8

§

Packed32_UInt16

32-bit location: 2 x u16

§

Packed32_Int16

32-bit location: 2 x i16

§

Packed32_Float16

32-bit location: 2 x f16

§

Packed32_BFloat16

32-bit location: 2 x bfloat16

§

Packed64_UInt8

64-bit location: 8 x u8

§

Packed64_Int8

64-bit location: 8 x i8

§

Packed64_UInt16

64-bit location: 4 x u16

§

Packed64_Int16

64-bit location: 4 x i16

§

Packed64_UInt32

64-bit location: 2 x u32

§

Packed64_Int32

64-bit location: 2 x i32

§

Packed64_Float16

64-bit location: 4 x f16

§

Packed64_Float32

64-bit location: 2 x f32

§

Packed128_UInt8

128-bit location: 16 x u8

§

Packed128_Int8

128-bit location: 16 x i8

§

Packed128_UInt16

128-bit location: 8 x u16

§

Packed128_Int16

128-bit location: 8 x i16

§

Packed128_UInt32

128-bit location: 4 x u32

§

Packed128_Int32

128-bit location: 4 x i32

§

Packed128_UInt52

128-bit location: 2 x u52

§

Packed128_UInt64

128-bit location: 2 x u64

§

Packed128_Int64

128-bit location: 2 x i64

§

Packed128_Float16

128-bit location: 8 x f16

§

Packed128_Float32

128-bit location: 4 x f32

§

Packed128_Float64

128-bit location: 2 x f64

§

Packed128_BFloat16

128-bit location: 8 x bfloat16

§

Packed128_2xFloat16

128-bit location: 4 x (2 x f16)

§

Packed128_2xBFloat16

128-bit location: 4 x (2 x bfloat16)

§

Packed256_UInt8

256-bit location: 32 x u8

§

Packed256_Int8

256-bit location: 32 x i8

§

Packed256_UInt16

256-bit location: 16 x u16

§

Packed256_Int16

256-bit location: 16 x i16

§

Packed256_UInt32

256-bit location: 8 x u32

§

Packed256_Int32

256-bit location: 8 x i32

§

Packed256_UInt52

256-bit location: 4 x u52

§

Packed256_UInt64

256-bit location: 4 x u64

§

Packed256_Int64

256-bit location: 4 x i64

§

Packed256_UInt128

256-bit location: 2 x u128

§

Packed256_Int128

256-bit location: 2 x i128

§

Packed256_Float16

256-bit location: 16 x f16

§

Packed256_Float32

256-bit location: 8 x f32

§

Packed256_Float64

256-bit location: 4 x f64

§

Packed256_Float128

256-bit location: 2 x f128

§

Packed256_BFloat16

256-bit location: 16 x bfloat16

§

Packed256_2xFloat16

256-bit location: 8 x (2 x f16)

§

Packed256_2xBFloat16

256-bit location: 8 x (2 x bfloat16)

§

Packed512_UInt8

512-bit location: 64 x u8

§

Packed512_Int8

512-bit location: 64 x i8

§

Packed512_UInt16

512-bit location: 32 x u16

§

Packed512_Int16

512-bit location: 32 x i16

§

Packed512_UInt32

512-bit location: 16 x u32

§

Packed512_Int32

512-bit location: 16 x i32

§

Packed512_UInt52

512-bit location: 8 x u52

§

Packed512_UInt64

512-bit location: 8 x u64

§

Packed512_Int64

512-bit location: 8 x i64

§

Packed512_UInt128

256-bit location: 4 x u128

§

Packed512_Float16

512-bit location: 32 x f16

§

Packed512_Float32

512-bit location: 16 x f32

§

Packed512_Float64

512-bit location: 8 x f64

§

Packed512_2xFloat16

512-bit location: 16 x (2 x f16)

§

Packed512_2xBFloat16

512-bit location: 16 x (2 x bfloat16)

§

Broadcast32_Float16

Broadcast f16 to 32-bits

§

Broadcast64_UInt32

Broadcast u32 to 64-bits

§

Broadcast64_Int32

Broadcast i32 to 64-bits

§

Broadcast64_Float16

Broadcast f16 to 64-bits

§

Broadcast64_Float32

Broadcast f32 to 64-bits

§

Broadcast128_Int16

Broadcast i16 to 128-bits

§

Broadcast128_UInt16

Broadcast u16 to 128-bits

§

Broadcast128_UInt32

Broadcast u32 to 128-bits

§

Broadcast128_Int32

Broadcast i32 to 128-bits

§

Broadcast128_UInt52

Broadcast u52 to 128-bits

§

Broadcast128_UInt64

Broadcast u64 to 128-bits

§

Broadcast128_Int64

Broadcast i64 to 128-bits

§

Broadcast128_Float16

Broadcast f16 to 128-bits

§

Broadcast128_Float32

Broadcast f32 to 128-bits

§

Broadcast128_Float64

Broadcast f64 to 128-bits

§

Broadcast128_2xInt16

Broadcast 2 x i16 to 128-bits

§

Broadcast128_2xInt32

Broadcast 2 x i32 to 128-bits

§

Broadcast128_2xUInt32

Broadcast 2 x u32 to 128-bits

§

Broadcast128_2xFloat16

Broadcast 2 x f16 to 128-bits

§

Broadcast128_2xBFloat16

Broadcast 2 x bfloat16 to 128-bits

§

Broadcast256_Int16

Broadcast i16 to 256-bits

§

Broadcast256_UInt16

Broadcast u16 to 256-bits

§

Broadcast256_UInt32

Broadcast u32 to 256-bits

§

Broadcast256_Int32

Broadcast i32 to 256-bits

§

Broadcast256_UInt52

Broadcast u52 to 256-bits

§

Broadcast256_UInt64

Broadcast u64 to 256-bits

§

Broadcast256_Int64

Broadcast i64 to 256-bits

§

Broadcast256_Float16

Broadcast f16 to 256-bits

§

Broadcast256_Float32

Broadcast f32 to 256-bits

§

Broadcast256_Float64

Broadcast f64 to 256-bits

§

Broadcast256_2xInt16

Broadcast 2 x i16 to 256-bits

§

Broadcast256_2xInt32

Broadcast 2 x i32 to 256-bits

§

Broadcast256_2xUInt32

Broadcast 2 x u32 to 256-bits

§

Broadcast256_2xFloat16

Broadcast 2 x f16 to 256-bits

§

Broadcast256_2xBFloat16

Broadcast 2 x bfloat16 to 256-bits

§

Broadcast512_Int16

Broadcast i16 to 512-bits

§

Broadcast512_UInt16

Broadcast u16 to 512-bits

§

Broadcast512_UInt32

Broadcast u32 to 512-bits

§

Broadcast512_Int32

Broadcast i32 to 512-bits

§

Broadcast512_UInt52

Broadcast u52 to 512-bits

§

Broadcast512_UInt64

Broadcast u64 to 512-bits

§

Broadcast512_Int64

Broadcast i64 to 512-bits

§

Broadcast512_Float16

Broadcast f16 to 512-bits

§

Broadcast512_Float32

Broadcast f32 to 512-bits

§

Broadcast512_Float64

Broadcast f64 to 512-bits

§

Broadcast512_2xFloat16

Broadcast 2 x f16 to 512-bits

§

Broadcast512_2xInt16

Broadcast 2 x i16 to 512-bits

§

Broadcast512_2xUInt32

Broadcast 2 x u32 to 512-bits

§

Broadcast512_2xInt32

Broadcast 2 x i32 to 512-bits

§

Broadcast512_2xBFloat16

Broadcast 2 x bfloat16 to 512-bits

Implementations§

source§

impl MemorySize

source

pub fn values( ) -> impl Iterator<Item = MemorySize> + DoubleEndedIterator + ExactSizeIterator + FusedIterator

Iterates over all MemorySize enum values

Trait Implementations§

source§

impl Clone for MemorySize

source§

fn clone(&self) -> MemorySize

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MemorySize

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MemorySize

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Hash for MemorySize

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
source§

impl Ord for MemorySize

source§

fn cmp(&self, other: &MemorySize) -> Ordering

This method returns an [Ordering] between self and other. Read more
1.21.0§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<MemorySize> for MemorySize

source§

fn eq(&self, other: &MemorySize) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<MemorySize> for MemorySize

source§

fn partial_cmp(&self, other: &MemorySize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl TryFrom<usize> for MemorySize

§

type Error = IcedError

The type returned in the event of a conversion error.
source§

fn try_from(value: usize) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for MemorySize

source§

impl Eq for MemorySize

source§

impl StructuralEq for MemorySize

source§

impl StructuralPartialEq for MemorySize

Auto Trait Implementations§

§

impl RefUnwindSafe for MemorySize

§

impl Send for MemorySize

§

impl Sync for MemorySize

§

impl Unpin for MemorySize

§

impl UnwindSafe for MemorySize

Blanket Implementations§

§

impl<T> Any for Twhere T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

const: unstable§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.