#***************************************************************************** #* #* Copyright (c) 2008, Intel Corporation. All rights reserved.
#* This program and the accompanying materials #* are licensed and made available under the terms and conditions of the BSD License #* which accompanies this distribution. The full text of the license may be found at #* http://opensource.org/licenses/bsd-license.php #* #* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, #* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #* #* Module Name: #* #* Fx.S #* #* Abstract: #* #* AsmFxRestore and AsmFxSave function #* #***************************************************************************** #include .globl ASM_PFX(AsmFxSave) .globl ASM_PFX(AsmFxRestore) .text #------------------------------------------------------------------------------ # VOID # AsmFxSave ( # OUT IA32_FX_BUFFER *Buffer # ); #------------------------------------------------------------------------------ ASM_PFX(AsmFxSave): fxsave (%rcx) retq #------------------------------------------------------------------------------ # VOID # AsmFxRestore ( # IN CONST IA32_FX_BUFFER *Buffer # ); #------------------------------------------------------------------------------ ASM_PFX(AsmFxRestore): fxrstor (%rcx) retq #------------------------------------------------------------------------------ # UINTN # AsmGetEflags ( # VOID # ); #------------------------------------------------------------------------------ ASM_PFX(AsmGetEflags): pushfq popq %rax ret #AsmGetEflags ENDP #------------------------------------------------------------------------------ # VOID # AsmSetEflags ( # IN UINTN Eflags # ); #------------------------------------------------------------------------------ ASM_PFX(AsmSetEflags): pushq %rcx popfq ret #AsmSetEflags ENDP