mirror of https://github.com/acidanthera/audk.git
BaseUefiCpuLib: Preserve EBX register in InitializeFloatingPointUnits
The EBX register should be preserved for the IA32 C calling convention. The use of the CPUID instruction was modifying the EBX register, so we push and pop EBX. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9573 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0913fadc1a
commit
d6d8e8925f
|
@ -35,6 +35,9 @@ ASM_PFX(mMmxControlWord): .long 0x01F80
|
|||
#
|
||||
ASM_GLOBAL ASM_PFX(InitializeFloatingPointUnits)
|
||||
ASM_PFX(InitializeFloatingPointUnits):
|
||||
|
||||
pushl %ebx
|
||||
|
||||
#
|
||||
# Initialize floating point units
|
||||
#
|
||||
|
@ -64,6 +67,8 @@ ASM_PFX(InitializeFloatingPointUnits):
|
|||
ldmxcsr ASM_PFX(mMmxControlWord)
|
||||
|
||||
Done:
|
||||
popl %ebx
|
||||
|
||||
ret
|
||||
|
||||
#END
|
||||
|
|
|
@ -39,6 +39,9 @@ mMmxControlWord DD 01F80h
|
|||
; for masked underflow).
|
||||
;
|
||||
InitializeFloatingPointUnits PROC PUBLIC
|
||||
|
||||
push ebx
|
||||
|
||||
;
|
||||
; Initialize floating point units
|
||||
;
|
||||
|
@ -67,6 +70,7 @@ InitializeFloatingPointUnits PROC PUBLIC
|
|||
;
|
||||
ldmxcsr mMmxControlWord
|
||||
Done:
|
||||
pop ebx
|
||||
|
||||
ret
|
||||
|
||||
|
|
Loading…
Reference in New Issue