Fix integer division.

This commit is contained in:
losfair
2019-03-14 09:15:25 +08:00
parent d4ded2cf07
commit 179bbf9e41

View File

@ -759,16 +759,17 @@ impl X64FunctionCode {
; push r15 ; push r15
; mov r15d, Rd(right as u8) ; mov r15d, Rd(right as u8)
; mov eax, Rd(left as u8) ; mov eax, Rd(left as u8)
; mov edx, 0
); );
if signed { if signed {
dynasm!( dynasm!(
assembler assembler
; cdq
; idiv r15d ; idiv r15d
); );
} else { } else {
dynasm!( dynasm!(
assembler assembler
; xor edx, edx
; div r15d ; div r15d
); );
} }
@ -808,16 +809,17 @@ impl X64FunctionCode {
; push r15 ; push r15
; mov r15, Rq(right as u8) ; mov r15, Rq(right as u8)
; mov rax, Rq(left as u8) ; mov rax, Rq(left as u8)
; mov rdx, 0
); );
if signed { if signed {
dynasm!( dynasm!(
assembler assembler
; cqo
; idiv r15 ; idiv r15
); );
} else { } else {
dynasm!( dynasm!(
assembler assembler
; xor rdx, rdx
; div r15 ; div r15
); );
} }