-#---------------------------------------------------------------------------
-#/*++
-#
-#Copyright (c) 2006, 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:
-#
-# DivU64x32.c
-#
-#Abstract:
-#
-# 64-bit division function for IA-32
-#
-#--*/
-
-#---------------------------------------------------------------------------
-#include "EfiBind.h" //For ASM_PFX
-#---------------------------------------------------------------------------
-
-#---------------------------------------------------------------------------
- .386:
- .code:
-
-#---------------------------------------------------------------------------
-
-.globl ASM_PFX(DivU64x32)
-
-#UINT64
-#DivU64x32 (
-# IN UINT64 Dividend,
-# IN UINTN Divisor,
-# OUT UINTN *Remainder OPTIONAL
-# )
-#/*++
-
-#Routine Description:
-
-# This routine allows a 64 bit value to be divided with a 32 bit value returns
-# 64bit result and the Remainder.
-#
-#Arguments:
-
-# Dividend - dividend
-# Divisor - divisor
-# Remainder - buffer for remainder
-#
-#Returns:
-
-# Dividend / Divisor
-# Remainder = Dividend mod Divisor
-#
-#N.B. only works for 31bit divisors!!
-#
-#--*/
-#---------------------------------------------------------------------------
-
-ASM_PFX(DivU64x32):
- pushl %ebp
- movl %esp, %ebp
- xorl %edx, %edx # Clear EDX
-
- movl 0xC(%ebp), %eax # Put high 32 bits of 64-bit dividend in EAX
- movl 0x10(%ebp), %ecx # Put 32 bits divisor in ECX
- divl %ecx # Dividend Divisor Quoitent...Remainder
- # 0:EAX / ECX = EAX EDX
-
- pushl %eax # Push quoitent in stack
-
- movl 8(%ebp), %eax # Put low 32 bits of 64-bit dividend in EAX
- divl %ecx # Leave the REMAINDER in EDX as High 32-bit of new dividend
- # Dividend Divisor Quoitent...Remainder
- # EDX:EAX / ECX = EAX EDX
-
- movl 0x14(%ebp), %ecx # Put &REMAINDER to ecx
-
- jecxz Label1 # If ecx == 0, no remainder exist, return with quoitent in EDX directly
- movl %edx, (%ecx) # Put EDX through REMAINDER pointer in ECX
-
-Label1:
- popl %edx # Pop High 32-bit QUOITENT to EDX
- popl %ebp
-
- ret
-
+#---------------------------------------------------------------------------\r
+#/*++\r
+#\r
+#Copyright (c) 2006, Intel Corporation \r
+#All rights reserved. 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
+#Module Name:\r
+#\r
+# DivU64x32.c\r
+#\r
+#Abstract:\r
+#\r
+# 64-bit division function for IA-32\r
+#\r
+#--*/\r
+\r
+#---------------------------------------------------------------------------\r
+#include "EfiBind.h" //For ASM_PFX\r
+#---------------------------------------------------------------------------\r
+\r
+#---------------------------------------------------------------------------\r
+ .386: \r
+ .code: \r
+\r
+#---------------------------------------------------------------------------\r
+\r
+.globl ASM_PFX(DivU64x32)\r
+\r
+#UINT64\r
+#DivU64x32 (\r
+# IN UINT64 Dividend,\r
+# IN UINTN Divisor,\r
+# OUT UINTN *Remainder OPTIONAL\r
+# )\r
+#/*++\r
+\r
+#Routine Description:\r
+\r
+# This routine allows a 64 bit value to be divided with a 32 bit value returns \r
+# 64bit result and the Remainder.\r
+#\r
+#Arguments:\r
+\r
+# Dividend - dividend\r
+# Divisor - divisor\r
+# Remainder - buffer for remainder\r
+# \r
+#Returns:\r
+\r
+# Dividend / Divisor\r
+# Remainder = Dividend mod Divisor\r
+# \r
+#N.B. only works for 31bit divisors!!\r
+#\r
+#--*/\r
+#---------------------------------------------------------------------------\r
+\r
+ASM_PFX(DivU64x32):\r
+ pushl %ebp\r
+ movl %esp, %ebp\r
+ xorl %edx, %edx # Clear EDX\r
+\r
+ movl 0xC(%ebp), %eax # Put high 32 bits of 64-bit dividend in EAX\r
+ movl 0x10(%ebp), %ecx # Put 32 bits divisor in ECX\r
+ divl %ecx # Dividend Divisor Quoitent...Remainder\r
+ # 0:EAX / ECX = EAX EDX \r
+\r
+ pushl %eax # Push quoitent in stack\r
+\r
+ movl 8(%ebp), %eax # Put low 32 bits of 64-bit dividend in EAX \r
+ divl %ecx # Leave the REMAINDER in EDX as High 32-bit of new dividend\r
+ # Dividend Divisor Quoitent...Remainder \r
+ # EDX:EAX / ECX = EAX EDX \r
+\r
+ movl 0x14(%ebp), %ecx # Put &REMAINDER to ecx\r
+\r
+ jecxz Label1 # If ecx == 0, no remainder exist, return with quoitent in EDX directly \r
+ movl %edx, (%ecx) # Put EDX through REMAINDER pointer in ECX \r
+\r
+Label1: \r
+ popl %edx # Pop High 32-bit QUOITENT to EDX\r
+ popl %ebp\r
+\r
+ ret\r
+\r