X86: Fix the sra microop to get the sign bit from the right operand.

--HG--
extra : convert_revision : 71e58dd6dd6918ee403f2e332c47e29acdace464
This commit is contained in:
Gabe Black 2007-08-29 20:39:41 -07:00
parent c1a776de8a
commit f67cd04673

View file

@ -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', '''