1 /** @file
2   AsmFxSave function
3 
4   Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php.
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 
16 #include "BaseLibInternals.h"
17 
18 
19 /**
20   Save the current floating point/SSE/SSE2 context to a buffer.
21 
22   Saves the current floating point/SSE/SSE2 state to the buffer specified by
23   Buffer. Buffer must be aligned on a 16-byte boundary. This function is only
24   available on IA-32 and x64.
25 
26   @param  Buffer  The pointer to a buffer to save the floating point/SSE/SSE2 context.
27 
28 **/
29 VOID
30 EFIAPI
InternalX86FxSave(OUT IA32_FX_BUFFER * Buffer)31 InternalX86FxSave (
32   OUT IA32_FX_BUFFER *Buffer
33   )
34 {
35   _asm {
36     mov     eax, Buffer
37     fxsave  [eax]
38   }
39 }
40 
41