#[repr(transparent)]
pub struct ExtendedControlRegister0(_);
Available on x86 or x86-64 only.
Expand description

XCR0: System control flags that indicate OS support for context management for various registers with the XSAVE feature.

Getters and setters for this structure only access a value in memory, not the register itself. Use the get and set methods to work with the actual register.

Requires BasicFeatures::extended_state_save.

Implementations§

XCR0.X87: Hardcoded to 1.

XCR0.SSE: Manage SSE state with XSAVE, including the XMM registers.

XCR0.AVX: Manage 256-bit AVX state in upper halves of the YMM registers with XSAVE.

Requires sse. The lower halves of these registers are equivalent to XMM and are covered by that flag.

XCR0.BNDREG: Manage MPX bounds registers with XSAVE.

Requires mpx_bound_config_status.

XCR0.BNDCSR: Manage MPX config and status registers with XSAVE.

Requires mpx_bounds.

XCR0.OPMASK: Manage AVX-512 opmask registers with XSAVE.

Requires the other avx_512_* flags.

XCR0.ZMM_Hi256: Manage 512-bit AVX state in the upper halves of the ZMM registers up to ZMM15 with XSAVE.

Registers ZMM8ZMM15 are available in 64-bit mode only, so this only applies up to ZMM7 in 32-bit mode.

Requires avx_256 and the other avx_512_* flags. The lower halves of these registers are equivalent to YMM and are covered by avx_256(Self::avx_256).

Available on x86-64 only.

XCR0.Hi16_ZMM: Manage AVX-512 state in ZMM16ZMM31 with XSAVE.

These registers are only available in 64-bit mode.

Requires the other avx_512_* flags.

XCR0.PKRU: Manage protection key rights registers with XSAVE.

XCR0.X87: Hardcoded to 1.

XCR0.X87: Hardcoded to 1.

XCR0.SSE: Manage SSE state with XSAVE, including the XMM registers.

XCR0.SSE: Manage SSE state with XSAVE, including the XMM registers.

XCR0.AVX: Manage 256-bit AVX state in upper halves of the YMM registers with XSAVE.

Requires sse. The lower halves of these registers are equivalent to XMM and are covered by that flag.

XCR0.AVX: Manage 256-bit AVX state in upper halves of the YMM registers with XSAVE.

Requires sse. The lower halves of these registers are equivalent to XMM and are covered by that flag.

XCR0.BNDREG: Manage MPX bounds registers with XSAVE.

Requires mpx_bound_config_status.

XCR0.BNDREG: Manage MPX bounds registers with XSAVE.

Requires mpx_bound_config_status.

XCR0.BNDCSR: Manage MPX config and status registers with XSAVE.

Requires mpx_bounds.

XCR0.BNDCSR: Manage MPX config and status registers with XSAVE.

Requires mpx_bounds.

XCR0.OPMASK: Manage AVX-512 opmask registers with XSAVE.

Requires the other avx_512_* flags.

XCR0.OPMASK: Manage AVX-512 opmask registers with XSAVE.

Requires the other avx_512_* flags.

XCR0.ZMM_Hi256: Manage 512-bit AVX state in the upper halves of the ZMM registers up to ZMM15 with XSAVE.

Registers ZMM8ZMM15 are available in 64-bit mode only, so this only applies up to ZMM7 in 32-bit mode.

Requires avx_256 and the other avx_512_* flags. The lower halves of these registers are equivalent to YMM and are covered by avx_256(Self::avx_256).

XCR0.ZMM_Hi256: Manage 512-bit AVX state in the upper halves of the ZMM registers up to ZMM15 with XSAVE.

Registers ZMM8ZMM15 are available in 64-bit mode only, so this only applies up to ZMM7 in 32-bit mode.

Requires avx_256 and the other avx_512_* flags. The lower halves of these registers are equivalent to YMM and are covered by avx_256(Self::avx_256).

Available on x86-64 only.

XCR0.Hi16_ZMM: Manage AVX-512 state in ZMM16ZMM31 with XSAVE.

These registers are only available in 64-bit mode.

Requires the other avx_512_* flags.

Available on x86-64 only.

XCR0.Hi16_ZMM: Manage AVX-512 state in ZMM16ZMM31 with XSAVE.

These registers are only available in 64-bit mode.

Requires the other avx_512_* flags.

XCR0.PKRU: Manage protection key rights registers with XSAVE.

XCR0.PKRU: Manage protection key rights registers with XSAVE.

Retrieve the current value of this register

Update the register to the given value.

Safety

Altering certain system flags can have dramatic effects on the execution of this and other programs, including memory safety.

Trait Implementations§

Construct a new bitfield type from its underlying representation
Unwrap the bitfield into its underlying representation
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Converts to this type from the input type.
Converts to this type from the input type.
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.