X86: Make the cvti2f microop sign extend its integer source correctly.

The code was using the wrong bit as the sign bit. Other similar bits of code
seem to be correct.
This commit is contained in:
Gabe Black 2010-05-12 00:51:35 -07:00
parent cc76842f83
commit c4497dbf03

View file

@ -1294,7 +1294,8 @@ let {{
int srcLoIndex = srcStart + (i + 0) * srcSizeBits;
uint64_t argBits = bits(FpSrcReg1.uqw, srcHiIndex, srcLoIndex);
int64_t sArg = argBits | (0 - (argBits & (ULL(1) << srcHiIndex)));
int64_t sArg = argBits |
(0 - (argBits & (ULL(1) << (srcSizeBits - 1))));
double arg = sArg;
if (destSize == 4) {