Author: tkreuzer
Date: Fri Jan 15 21:45:36 2010
New Revision: 45088
URL:
http://svn.reactos.org/svn/reactos?rev=45088&view=rev
Log:
[CRT]
Patch by Jose Catena:
allmul produced wrong results when the higher 32 bits of any of the 64 bit operands are
not zero. As the comment correctly said the definition of param locations must change
since esp was altered, but the definitions were not actually changed
See issue #5121 for more details.
Modified:
trunk/reactos/lib/sdk/crt/math/i386/allmul_asm.s
Modified: trunk/reactos/lib/sdk/crt/math/i386/allmul_asm.s
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/i386/allm…
==============================================================================
--- trunk/reactos/lib/sdk/crt/math/i386/allmul_asm.s [iso-8859-1] (original)
+++ trunk/reactos/lib/sdk/crt/math/i386/allmul_asm.s [iso-8859-1] Fri Jan 15 21:45:36
2010
@@ -93,10 +93,10 @@
// must redefine A and B since esp has been altered
-#define A2LO [esp + 4] // stack address of a
-#define A2HI [esp + 8] // stack address of a
-#define B2LO [esp + 12] // stack address of b
-#define B2HI [esp + 16] // stack address of b
+#define A2LO [esp + 8] // stack address of a
+#define A2HI [esp + 12] // stack address of a
+#define B2LO [esp + 16] // stack address of b
+#define B2HI [esp + 20] // stack address of b
mul ecx //eax has AHI, ecx has BLO, so AHI * BLO
mov ebx,eax //save result