diff options
author | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-07-21 01:42:14 +0000 |
---|---|---|
committer | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-07-21 01:42:14 +0000 |
commit | 22353b17c02eff5e6b24519fc8b106470fe830a7 (patch) | |
tree | 0ec26005830fc8a2b3b50d933529bf552a3c6b6b | |
parent | 5c5a0601e8a9e382e5091442882d2db93dfc44ed (diff) | |
download | edk2-22353b17c02eff5e6b24519fc8b106470fe830a7.zip edk2-22353b17c02eff5e6b24519fc8b106470fe830a7.tar.gz edk2-22353b17c02eff5e6b24519fc8b106470fe830a7.tar.bz2 |
Fix a bug in Power10U64. Power10U64 should clean up the stack after calling MultU64x32. It also should load eax and edx with the initial value just in case it return directly when "Power" is zero.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5528 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.c b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.c index e8e1652..1310290 100644 --- a/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.c +++ b/EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/Ia32/Power10U64.c @@ -50,6 +50,8 @@ Returns: --*/
{
__asm {
+ mov eax, dword ptr Operand[0]
+ mov edx, dword ptr Operand[4]
mov ecx, Power
jcxz _Power10U64_Done
@@ -58,6 +60,7 @@ _Power10U64_Wend: push dword ptr Operand[4]
push dword ptr Operand[0]
call MultU64x32
+ add esp, 0Ch
mov dword ptr Operand[0], eax
mov dword ptr Operand[4], edx
loop _Power10U64_Wend
|