-#/*++
-#
-#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:
-#
-# LShiftU64.c
-#
-#Abstract:
-#
-# 64-bit left shift function for IA-32
-#
-#--*/
-#
-#include "EfiBind.h"
-#---------------------------------------------------------------------------
- .686:
- #.MODEL flat,C
- .code:
-
-#---------------------------------------------------------------------------
-.globl ASM_PFX(LShiftU64)
-#
-#UINT64
-#LShiftU64 (
-# IN UINT64 Operand,
-# IN UINTN Count
-# )
-#/*++
-#
-#Routine Description:
-#
-# This routine allows a 64 bit value to be left shifted by 32 bits and
-# returns the shifted value.
-# Count is valid up 63. (Only Bits 0-5 is valid for Count)
-#
-#Arguments:
-#
-# Operand - Value to be shifted
-# Count - Number of times to shift left.
-#
-#Returns:
-#
-# Value shifted left identified by the Count.
-#
-#--*/
-ASM_PFX(LShiftU64):
-
- movl 4(%esp), %eax # dword ptr Operand[0]
- movl 8(%esp), %edx # dword ptr Operand[4]
-
- #
- # CL is valid from 0 - 31. shld will move EDX:EAX by CL times but EAX is not touched
- # For CL of 32 - 63, it will be shifted 0 - 31 so we will move eax to edx later.
- #
- movl 0xC(%esp), %ecx # Count
- andl $63, %ecx
- shld %cl, %eax, %edx
- shlb %cl, %eax
-
- #
- # Since Count is 32 - 63, eax will have been shifted by 0 - 31
- # If shifted by 32 or more, set lower 32 bits to zero.
- #
- cmpl $32, %ecx
- jc _LShiftU64_Done
-
- movl %eax, %edx
- xorl %eax, %eax
-
-_LShiftU64_Done:
-
- ret
-#LShiftU64 ENDP
-
+#/*++\r
+#\r
+#Copyright (c) 2006, 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
+#Module Name:\r
+#\r
+# LShiftU64.c\r
+#\r
+#Abstract:\r
+#\r
+# 64-bit left shift function for IA-32\r
+#\r
+#--*/\r
+#\r
+#include "EfiBind.h"\r
+#---------------------------------------------------------------------------\r
+ .686: \r
+ #.MODEL flat,C\r
+ .code: \r
+\r
+#---------------------------------------------------------------------------\r
+.globl ASM_PFX(LShiftU64)\r
+#\r
+#UINT64\r
+#LShiftU64 (\r
+# IN UINT64 Operand,\r
+# IN UINTN Count\r
+# )\r
+#/*++\r
+#\r
+#Routine Description:\r
+# \r
+# This routine allows a 64 bit value to be left shifted by 32 bits and \r
+# returns the shifted value.\r
+# Count is valid up 63. (Only Bits 0-5 is valid for Count)\r
+#\r
+#Arguments:\r
+#\r
+# Operand - Value to be shifted\r
+# Count - Number of times to shift left.\r
+# \r
+#Returns:\r
+#\r
+# Value shifted left identified by the Count.\r
+#\r
+#--*/\r
+ASM_PFX(LShiftU64):\r
+\r
+ movl 4(%esp), %eax # dword ptr Operand[0]\r
+ movl 8(%esp), %edx # dword ptr Operand[4]\r
+\r
+ #\r
+ # CL is valid from 0 - 31. shld will move EDX:EAX by CL times but EAX is not touched\r
+ # For CL of 32 - 63, it will be shifted 0 - 31 so we will move eax to edx later. \r
+ #\r
+ movl 0xC(%esp), %ecx # Count\r
+ andl $63, %ecx\r
+ shld %cl, %eax, %edx\r
+ shlb %cl, %eax\r
+\r
+ #\r
+ # Since Count is 32 - 63, eax will have been shifted by 0 - 31 \r
+ # If shifted by 32 or more, set lower 32 bits to zero.\r
+ #\r
+ cmpl $32, %ecx\r
+ jc _LShiftU64_Done\r
+\r
+ movl %eax, %edx\r
+ xorl %eax, %eax\r
+\r
+_LShiftU64_Done: \r
+\r
+ ret\r
+#LShiftU64 ENDP\r
+\r