diff --git a/src/jit.rs b/src/jit.rs index 1bf8d7cfb..2657cece1 100644 --- a/src/jit.rs +++ b/src/jit.rs @@ -1221,10 +1221,12 @@ impl<'a, V: Verifier, C: ContextObject> JitCompiler<'a, V, C> { if dst != RDX { self.emit_ins(X86Instruction::push(RDX, None)); } - if signed { - self.emit_ins(X86Instruction::sign_extend_rax_rdx(size)); - } else if division { - self.emit_ins(X86Instruction::alu(size, 0x31, RDX, RDX, 0, None)); // RDX = 0 + if division { + if signed { + self.emit_ins(X86Instruction::sign_extend_rax_rdx(size)); + } else { + self.emit_ins(X86Instruction::alu(size, 0x31, RDX, RDX, 0, None)); // RDX = 0 + } } self.emit_ins(X86Instruction::alu(size, 0xf7, 0x4 | (division as u8) << 1 | signed as u8, R11, 0, None));