x64: Fix 64 bit shift code generation.

Reported by Philipp Kutin.
Fix contributed by Peter Cawley.
This commit is contained in:
Mike Pall 2020-09-25 22:49:23 +02:00
parent dd0f09f95f
commit 03a7ebca4f

View File

@ -2300,7 +2300,7 @@ static void asm_bitshift(ASMState *as, IRIns *ir, x86Shift xs, x86Op xv)
dest = ra_dest(as, ir, rset_exclude(RSET_GPR, RID_ECX)); dest = ra_dest(as, ir, rset_exclude(RSET_GPR, RID_ECX));
if (dest == RID_ECX) { if (dest == RID_ECX) {
dest = ra_scratch(as, rset_exclude(RSET_GPR, RID_ECX)); dest = ra_scratch(as, rset_exclude(RSET_GPR, RID_ECX));
emit_rr(as, XO_MOV, RID_ECX, dest); emit_rr(as, XO_MOV, REX_64IR(ir, RID_ECX), dest);
} }
right = irr->r; right = irr->r;
if (ra_noreg(right)) if (ra_noreg(right))