mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix 64 bit shifts in backend. Fix shift by 0.
This commit is contained in:
parent
5270586a80
commit
a5bdae8f23
@ -2613,9 +2613,9 @@ static void asm_bitshift(ASMState *as, IRIns *ir, x86Shift xs)
|
|||||||
if (irref_isk(rref)) { /* Constant shifts. */
|
if (irref_isk(rref)) { /* Constant shifts. */
|
||||||
int shift;
|
int shift;
|
||||||
dest = ra_dest(as, ir, RSET_GPR);
|
dest = ra_dest(as, ir, RSET_GPR);
|
||||||
shift = irr->i & 31; /* Handle shifts of 0..31 bits. */
|
shift = irr->i & (irt_is64(ir->t) ? 63 : 31);
|
||||||
switch (shift) {
|
switch (shift) {
|
||||||
case 0: return;
|
case 0: break;
|
||||||
case 1: emit_rr(as, XO_SHIFT1, REX_64IR(ir, xs), dest); break;
|
case 1: emit_rr(as, XO_SHIFT1, REX_64IR(ir, xs), dest); break;
|
||||||
default: emit_shifti(as, REX_64IR(ir, xs), dest, shift); break;
|
default: emit_shifti(as, REX_64IR(ir, xs), dest, shift); break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user