From f67cd046731f07cc76ec63d0614be81d2e212ac4 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 29 Aug 2007 20:39:41 -0700 Subject: X86: Fix the sra microop to get the sign bit from the right operand. --HG-- extra : convert_revision : 71e58dd6dd6918ee403f2e332c47e29acdace464 --- src/arch/x86/isa/microops/regop.isa | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/arch/x86/isa/microops/regop.isa b/src/arch/x86/isa/microops/regop.isa index cacdc7144..eca640d35 100644 --- a/src/arch/x86/isa/microops/regop.isa +++ b/src/arch/x86/isa/microops/regop.isa @@ -590,7 +590,7 @@ let {{ // is not defined in the C/C++ standard, we have to sign extend // them manually to be sure. uint64_t arithMask = - -bits(op2, dataSize * 8 - 1) << (dataSize * 8 - shiftAmt); + -bits(psrc1, dataSize * 8 - 1) << (dataSize * 8 - shiftAmt); DestReg = merge(DestReg, (psrc1 >> shiftAmt) | arithMask, dataSize); ''') defineMicroRegOp('Ror', ''' -- cgit v1.2.3