From 832ef7412b7ab35cb50613fb1b53bd32c48d5a1f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 6 Sep 2007 16:20:12 -0700 Subject: [PATCH] X86: Correct how the hi portion of a product is computed. --HG-- extra : convert_revision : 1f503e1cae0374e62e6254e8073e903adc29d067 --- src/arch/x86/isa/microops/regop.isa | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/arch/x86/isa/microops/regop.isa b/src/arch/x86/isa/microops/regop.isa index 57edbb606..60089085f 100644 --- a/src/arch/x86/isa/microops/regop.isa +++ b/src/arch/x86/isa/microops/regop.isa @@ -463,8 +463,8 @@ let {{ uint64_t psrc2_h = op2 >> halfSize; uint64_t psrc2_l = op2 & mask(halfSize); uint64_t result = - ((psrc1_l * psrc2_h) >> halfSize) + - ((psrc1_h * psrc2_l) >> halfSize) + + ((psrc1_l * psrc2_h + psrc1_h * psrc2_l + + ((psrc1_l * psrc2_l) >> halfSize)) >> halfSize) + psrc1_h * psrc2_h; DestReg = merge(DestReg, result, dataSize); ''' -- 2.30.2