Enum Length

Source
pub enum Length {
    L128,
    L256,
    L512,
    LZ,
    LIG,
}
Expand description

Contains vector length definitions.

VEX encodes these in the L bit field, a single bit with 128-bit = 0 and 256-bit = 1. For convenience, we also include the LIG and LZ syntax, used by the reference manual, and always set these to 0.

EVEX encodes this in the L'L bits, two bits that typically indicate the vector length for packed vector instructions but can also be used for rounding control for floating-point instructions with rounding semantics (see section 2.7.1 in the reference manual).

Variants§

§

L128

128-bit vector length.

§

L256

256-bit vector length.

§

L512

512-bit vector length; invalid for VEX instructions.

§

LZ

Force the length bits to 0, but not necessarily for 128-bit operation. From the reference manual: “The VEX.L must be encoded to be 0B, an #UD occurs if VEX.L is not zero.”

§

LIG

The length bits are ignored (e.g., for floating point scalar instructions). This assembler will emit 0.

Implementations§

Source§

impl Length

Source

pub fn vex_bits(&self) -> u8

Encode the VEX.L bit.

Source

pub fn evex_bits(&self) -> u8

Encode the EVEX.L'L bits.

See section 2.7.10, Vector Length Orthogonality, in the reference manual

Trait Implementations§

Source§

impl Display for Length

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Length

§

impl RefUnwindSafe for Length

§

impl Send for Length

§

impl Sync for Length

§

impl Unpin for Length

§

impl UnwindSafe for Length

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.