Fixed bogus Nanojit x64 assertion with very wide shifts (bug 517150, r=gal).

This commit is contained in:
David Anderson 2009-09-17 15:25:21 -07:00
parent 1be03c2e1d
commit 9d96cfda08

View File

@ -357,7 +357,7 @@ namespace nanojit
case LIR_rsh: xop = X64_sari; break;
case LIR_lsh: xop = X64_shli; break;
}
int shift = ins->oprnd2()->imm32() & 255;
int shift = ins->oprnd2()->imm32() & 63;
emit8(rexrb(xop | uint64_t(rr&7)<<48, (Register)0, rr), shift);
if (rr != ra)
MR(rr, ra);