+++ /dev/null
-#------------------------------------------------------------------------------\r
-#*\r
-#* Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
-#* This program and the accompanying materials\r
-#* are licensed and made available under the terms and conditions of the BSD License\r
-#* which accompanies this distribution. The full text of the license may be found at\r
-#* http://opensource.org/licenses/bsd-license.php\r
-#*\r
-#* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-#* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#*\r
-#*\r
-#------------------------------------------------------------------------------\r
-\r
-#\r
-# Initializes floating point units for requirement of UEFI specification.\r
-#\r
-# This function initializes floating-point control word to 0x037F (all exceptions\r
-# masked,double-extended-precision, round-to-nearest) and multimedia-extensions control word\r
-# (if supported) to 0x1F80 (all exceptions masked, round-to-nearest, flush to zero\r
-# for masked underflow).\r
-#\r
-ASM_GLOBAL ASM_PFX(InitializeFloatingPointUnits)\r
-ASM_PFX(InitializeFloatingPointUnits):\r
-\r
- #\r
- # Initialize floating point units\r
- #\r
- finit\r
-\r
- #\r
- # Float control word initial value:\r
- # all exceptions masked, double-precision, round-to-nearest\r
- #\r
- pushq $0x037F\r
- lea (%rsp), %rax\r
- fldcw (%rax)\r
- popq %rax\r
-\r
- #\r
- # Set OSFXSR bit 9 in CR4\r
- #\r
- movq %cr4, %rax\r
- or $0x200, %rax\r
- movq %rax, %cr4\r
-\r
- #\r
- # Multimedia-extensions control word:\r
- # all exceptions masked, round-to-nearest, flush to zero for masked underflow\r
- #\r
- pushq $0x01F80\r
- lea (%rsp), %rax\r
- ldmxcsr (%rax)\r
- popq %rax\r
-\r
- ret\r
-\r