X86: Make the check for negative operands for sign multiply more direct.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 5 Aug 2009 10:06:37 +0000 (03:06 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 5 Aug 2009 10:06:37 +0000 (03:06 -0700)
src/arch/x86/isa/microops/regop.isa

index f2a57495454aceae6b33a48ef57d3996a5f2ae79..f2e16a515a09e16de330609b0400d884b6cb892b 100644 (file)
@@ -530,10 +530,9 @@ let {{
             hiResult = ((psrc1_l * psrc2_h + psrc1_h * psrc2_l +
                         ((psrc1_l * psrc2_l) / shifter)) /shifter) +
                        psrc1_h * psrc2_h;
-            if (spsrc1 < 0)
+            if (bits(psrc1, dataSize * 8 - 1))
                 hiResult -= op2;
-            int64_t bigSop2 = sop2;
-            if (bigSop2 < 0)
+            if (bits(op2, dataSize * 8 - 1))
                 hiResult -= psrc1;
             ProdHi = hiResult;
             '''