OEMSaveVFPCtrlRegs (Windows Embedded CE 6.0)

1/5/2010

This function is called when the kernel needs to save the state of the extra FPU registers for the current thread.

This function is specific to ARM architecture and is only used if the CPU supports Vector Floating Point (VFP).

Syntax

void OEMSaveVFPCtrlRegs(
  LPDWORD lpExtra,
  int nMaxRegs
);

Parameters

  • lpExtra
    [in] A pointer to a memory location to save the extra floating point registers.
  • nMaxRegs
    [in] The number of extra 32–bit registers that can be saved for a thread's context. This is currently set to 8.

Return Value

None.

Remarks

Saving and restoring VFP registers are done only when necessary and only to a limited extent. If a thread never uses VFP the kernel will not save or restore VFP registers for the thread.

By default the VFP is turned off until a VFP instruction is executed.

If an exception is generated because the VFP is turned off, the current thread becomes the owner of the VFP.

If another thread previously owned a VFP, OEMSaveVFPCtrlRegs saves the state of the previous owner, and OEMRestoreVFPCtrlRegs restores the state of the new owner.

The kernel does its part of the restoring of VFP standard registers and then calls OEMRestoreVFPCtrlRegs to restore implementation-defined registers.

To make OEMRestoreVFPCtrlRegs accessible to the kernel, assign the OAL pointer pOEMRestoreVFPCtrlRegs in the OEMInit routine.

Requirements

Header Developer Implemented
Library OEMMain.lib or OEMMain_StaticKITL.lib
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

Optional OAL Functions
OEMRestoreVFPCtrlRegs
OEMInit

Concepts

ARM Vector Floating-Point Unit Support