[−][src]Struct x86_64_xsave::fxsave::FXSaveArea
Used to save and restore the state of the FPU. Must be 16-byte aligned (enforced).
Always 512 bytes in size.
Documented in Table 10-2 of the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1 and repeated in the documentation of the XSAVE
area in Section 13.4.
The legacy instructions FSAVE
and FNSAVE
(save FPU state) and FRSTOR
(restore FPU state) also work with with this layout.
The legacy instructions FSTENV
and FNSTENV
(save FPU environment) and FLDENV
(restore FPU environment) also work with the layout in x87_state_part_1
.
Fields
x87_state_part_1: X87StatePart1
The x87
state exists in two, non-contiguous areas ('parts').
This is part 1.
sse_state_part_1: SseStatePart1
The SSE
state exists in two, non-contiguous areas ('parts').
This is part 1.
x87_state_part_2: X87StatePart2
The x87
state exists in two, non-contiguous areas ('parts').
This is part 2.
sse_state_part_2: SseStatePart2
The SSE
state exists in two, non-contiguous areas ('parts').
This is part 2.
unused: [u64; 6]
These bytes are unused are never written to or read from.
(Not restored (read) when restoring processor state).
Methods
impl FXSaveArea
[src]
pub fn save() -> Self
[src]
Saves this FXSAVE
area.
Used to save and restore the state of the FPU (x87) and MMX (SSE).
Unlike the legacy instructions FSAVE
and FNSAVE
, this does not change the state of the FPU (x87) and MMX (SSE) units, registers and associated data.
pub fn restore(&self)
[src]
Restores this FXSAVE
area.
If any reserved bits are set in sse_state().0.mxcsr_register_value
, then a restore of this value will cause a general-protection fault (#GP
).
pub fn x87_state(&self) -> (&X87StatePart1, &X87StatePart2)
[src]
x87
state.
The x87
state is in two non-contiguous areas ('parts').
pub fn x87_state_mut(&mut self) -> (&mut X87StatePart1, &mut X87StatePart2)
[src]
x87
state.
The x87
state is in two non-contiguous areas ('parts').
pub fn sse_state(&self) -> (&SseStatePart1, &SseStatePart2)
[src]
SSE
state.
The SSE
state is in two non-contiguous areas ('parts').
pub fn sse_state_mut(&mut self) -> (&mut SseStatePart1, &mut SseStatePart2)
[src]
SSE
state.
The SSE
state is in two non-contiguous areas ('parts').
Trait Implementations
impl Clone for FXSaveArea
[src]
fn clone(&self) -> FXSaveArea
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Default for FXSaveArea
[src]
fn default() -> FXSaveArea
[src]
impl Debug for FXSaveArea
[src]
Auto Trait Implementations
impl Send for FXSaveArea
impl Sync for FXSaveArea
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,