From 2f8df870031e1aee978635bb5cfa2f5a23f9b3f5 Mon Sep 17 00:00:00 2001 From: rsun3 Date: Mon, 9 Oct 2006 10:09:26 +0000 Subject: [PATCH 1/1] Fix a bug in InternalMathDivRemU64x64(). The bug is that the 64-bit divisor is designed to be loaded to ecx:ebx but the high 4 byte of the divisor is forgotten to be loaded to ecx git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1693 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.c | 1 + 1 file changed, 1 insertion(+) diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.c b/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.c index 62034f7b84..2a893147c7 100644 --- a/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.c +++ b/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.c @@ -28,6 +28,7 @@ InternalMathDivRemU64x64 ( mov eax, dword ptr [Dividend + 0] // edx:eax <- dividend mov edi, edx mov esi, eax // edi:esi <- dividend + mov ecx, dword ptr [Divisor + 4] mov ebx, dword ptr [Divisor + 0] // ecx:ebx <- divisor BitLoop: shr edx, 1 -- 2.39.2