;------------------------------------------------------------------------------ ; Return the current FPU rounding mode. ; ; MASM implementation of the flt_rounds function by: ; J.T. Conklin, Apr 4, 1995 ; Public domain. ; ; Copyright (c) 2010, 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. ; ; NetBSD: flt_rounds.S,v 1.6 1999/08/23 08:45:09 kleink Exp ;------------------------------------------------------------------------------ .686 .model flat,C .code ;_map BYTE 1 ; round to nearest ; BYTE 3 ; round to negative infinity ; BYTE 2 ; round to positive infinity ; BYTE 0 ; round to zero ;------------------------------------------------------------------------------ ; int ; EFIAPI ; fpu_rmode( void ); ; ;------------------------------------------------------------------------------ internal_FPU_rmode PROC sub esp, 4 ; Create a local variable for fnstcw fnstcw [esp] mov eax, [esp] shr eax, 10 and eax, 3 add esp, 4 ; Delete the local variable ret internal_FPU_rmode ENDP END