Share via


OEMRestoreVFPCtrlRegs

This function is called to restore the state of the extra implementation defined VFP registers for the current thread. This function is specific to ARM architecture and is only used if the CPU supports Vector Floating Point.

void OEMRestoreVFPCtrlRegs(
  LPDWORD lpExtra,
  int nMaxRegs
);

Parameters

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

Return Values

None.

Remarks

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

If a thread that is using the VFP is pre-empted, its VFP registers are saved and the VFP turned off. The next thread to execute a VFP instruction will then cause an exception. At that time the VFP will be turned on again.

By default the VFP is turned off until a VFP instruction is executed. When an exception is generated due to the VFP being turned off, the current thread becomes the owner of the VFP. If another thread previously owned a VFP, OEMSaveVFPCtrlRegs will save the state of the previous owner, and OEMRestoreVFPCtrlRegs will restore the state of the new owner. The kernel does its part of the restoring of VFP standard registers and then calls OEMRestoreVFPCtrlRegs to restore any implementation-defined registers. To make OEMRestoreVFPCtrlRegs accessible to the kernel, you need to assign the OAL pointer pOEMRestoreVFPCtrlRegs in the OEMInit routine.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Not applicable.
Link Library: Nk.lib.

See Also

OEMRestoreVFPCtrlRegs | OEMInit | ARM Vector Floating-Point Unit Support

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.