summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseLib/Ia32/LShiftU64.S
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Library/BaseLib/Ia32/LShiftU64.S')
-rw-r--r--MdePkg/Library/BaseLib/Ia32/LShiftU64.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/MdePkg/Library/BaseLib/Ia32/LShiftU64.S b/MdePkg/Library/BaseLib/Ia32/LShiftU64.S
index 31df0d6768..dcdbeae1d7 100644
--- a/MdePkg/Library/BaseLib/Ia32/LShiftU64.S
+++ b/MdePkg/Library/BaseLib/Ia32/LShiftU64.S
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
#
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
# 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
@@ -34,8 +34,10 @@ ASM_PFX(InternalMathLShiftU64):
xorl %eax, %eax
movl 4(%esp), %edx
testb $32, %cl # Count >= 32?
- cmovz %edx, %eax
- cmovz 0x8(%esp), %edx
+ jnz L0
+ movl %edx, %eax
+ movl 0x8(%esp), %edx
+L0:
shld %cl, %eax, %edx
shl %cl, %eax
ret