## @file\r
# Base Library implementation.\r
#\r
-# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>\r
# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
# Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>\r
#\r
MODULE_UNI_FILE = BaseLib.uni\r
FILE_GUID = 27d67720-ea68-48ae-93da-a3a074c90e30\r
MODULE_TYPE = BASE\r
- VERSION_STRING = 1.0\r
+ VERSION_STRING = 1.1\r
LIBRARY_CLASS = BaseLib \r
\r
#\r
#------------------------------------------------------------------------------\r
#\r
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2015, 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
movl 8(%esp), %eax\r
cltd\r
testb $32, %cl\r
- cmovz %eax, %edx\r
- cmovz 4(%esp), %eax\r
+ jnz L0\r
+ movl %eax, %edx\r
+ movl 4(%esp), %eax\r
+L0: \r
shrdl %cl, %edx, %eax\r
sar %cl, %edx\r
ret\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2015, 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
mov eax, [esp + 8]\r
cdq\r
test cl, 32\r
- cmovz edx, eax\r
- cmovz eax, [esp + 4]\r
+ jnz @F\r
+ mov edx, eax\r
+ mov eax, [esp + 4]\r
+@@: \r
shrd eax, edx, cl\r
sar edx, cl\r
ret\r
/** @file\r
64-bit arithmetic right shift function for IA-32.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2015, 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
mov eax, dword ptr [Operand + 4]\r
cdq\r
test cl, 32\r
- cmovz edx, eax\r
- cmovz eax, dword ptr [Operand + 0]\r
+ jnz L0\r
+ mov edx, eax\r
+ mov eax, dword ptr [Operand + 0]\r
+L0:\r
shrd eax, edx, cl\r
sar edx, cl\r
}\r
#------------------------------------------------------------------------------\r
#\r
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2015, 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
rorl %cl, %ebx\r
shldl %cl, %ebx, %eax\r
testb $32, %cl # Count >= 32?\r
- cmovnz %eax, %ecx\r
- cmovnz %edx, %eax\r
- cmovnz %ecx, %edx\r
+ jz L0\r
+ movl %eax, %ecx\r
+ movl %edx, %eax\r
+ movl %ecx, %edx\r
+L0: \r
pop %ebx\r
ret\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2015, 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
ror ebx, cl\r
shld eax, ebx, cl\r
test cl, 32 ; Count >= 32?\r
- cmovnz ecx, eax\r
- cmovnz eax, edx\r
- cmovnz edx, ecx\r
+ jz @F\r
+ mov ecx, eax\r
+ mov eax, edx\r
+ mov edx, ecx\r
+@@: \r
ret\r
InternalMathLRotU64 ENDP\r
\r
/** @file\r
64-bit left rotation for Ia32\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2015, 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
ror ebx, cl\r
shld eax, ebx, cl\r
test cl, 32 ; Count >= 32?\r
- cmovnz ecx, eax\r
- cmovnz eax, edx\r
- cmovnz edx, ecx\r
+ jz L0\r
+ mov ecx, eax\r
+ mov eax, edx\r
+ mov edx, ecx\r
+L0:\r
}\r
}\r
\r
#------------------------------------------------------------------------------\r
#\r
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2015, 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
xorl %eax, %eax\r
movl 4(%esp), %edx\r
testb $32, %cl # Count >= 32?\r
- cmovz %edx, %eax\r
- cmovz 0x8(%esp), %edx\r
+ jnz L0\r
+ movl %edx, %eax\r
+ movl 0x8(%esp), %edx\r
+L0: \r
shld %cl, %eax, %edx\r
shl %cl, %eax\r
ret\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2015, 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
xor eax, eax\r
mov edx, [esp + 4]\r
test cl, 32 ; Count >= 32?\r
- cmovz eax, edx\r
- cmovz edx, [esp + 8]\r
+ jnz @F\r
+ mov eax, edx\r
+ mov edx, [esp + 8]\r
+@@: \r
shld edx, eax, cl\r
shl eax, cl\r
ret\r
/** @file\r
64-bit left shift function for IA-32.\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2015, 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
xor eax, eax\r
mov edx, dword ptr [Operand + 0]\r
test cl, 32 // Count >= 32?\r
- cmovz eax, edx\r
- cmovz edx, dword ptr [Operand + 4]\r
+ jnz L0\r
+ mov eax, edx\r
+ mov edx, dword ptr [Operand + 4]\r
+L0:\r
shld edx, eax, cl\r
shl eax, cl\r
}\r
#------------------------------------------------------------------------------\r
#\r
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2015, 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
roll %cl, %ebx\r
shrdl %cl, %ebx, %edx\r
testb $32, %cl # Count >= 32?\r
- cmovnz %eax, %ecx # switch eax & edx if Count >= 32\r
- cmovnz %edx, %eax\r
- cmovnz %ecx, %edx\r
+ jz L0\r
+ movl %eax, %ecx # switch eax & edx if Count >= 32\r
+ movl %edx, %eax\r
+ movl %ecx, %edx\r
+L0: \r
pop %ebx\r
ret\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2015, 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
rol ebx, cl\r
shrd edx, ebx, cl\r
test cl, 32 ; Count >= 32?\r
- cmovnz ecx, eax ; switch eax & edx if Count >= 32\r
- cmovnz eax, edx\r
- cmovnz edx, ecx\r
+ jz @F\r
+ mov ecx, eax ; switch eax & edx if Count >= 32\r
+ mov eax, edx\r
+ mov edx, ecx\r
+@@: \r
ret\r
InternalMathRRotU64 ENDP\r
\r
/** @file\r
64-bit right rotation for Ia32\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2015, 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
rol ebx, cl\r
shrd edx, ebx, cl\r
test cl, 32 // Count >= 32?\r
- cmovnz ecx, eax\r
- cmovnz eax, edx\r
- cmovnz edx, ecx\r
+ jz L0\r
+ mov ecx, eax\r
+ mov eax, edx\r
+ mov edx, ecx\r
+L0:\r
}\r
}\r
\r
#------------------------------------------------------------------------------\r
#\r
-# Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2006 - 2015, 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
xorl %edx, %edx\r
movl 8(%esp), %eax\r
testb $32, %cl # Count >= 32?\r
- cmovz %eax, %edx\r
- cmovz 0x4(%esp), %eax\r
+ jnz L0\r
+ movl %eax, %edx\r
+ movl 0x4(%esp), %eax\r
+L0: \r
shrdl %cl, %edx, %eax\r
shr %cl, %edx\r
ret\r
;------------------------------------------------------------------------------\r
;\r
-; Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+; Copyright (c) 2006 - 2015, 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
xor edx, edx\r
mov eax, [esp + 8]\r
test cl, 32 ; Count >= 32?\r
- cmovz edx, eax\r
- cmovz eax, [esp + 4]\r
+ jnz @F\r
+ mov edx, eax\r
+ mov eax, [esp + 4]\r
+@@: \r
shrd eax, edx, cl\r
shr edx, cl\r
ret\r
/** @file\r
64-bit logical right shift function for IA-32\r
\r
- Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2015, 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
xor edx, edx\r
mov eax, dword ptr [Operand + 4]\r
test cl, 32\r
- cmovz edx, eax\r
- cmovz eax, dword ptr [Operand + 0]\r
+ jnz L0\r
+ mov edx, eax\r
+ mov eax, dword ptr [Operand + 0]\r
+L0:\r
shrd eax, edx, cl\r
shr edx, cl\r
}\r