diff --git a/flap/src/x86-64/retrolixToX86_64.ml b/flap/src/x86-64/retrolixToX86_64.ml index 9052a36..d5f77d6 100644 --- a/flap/src/x86-64/retrolixToX86_64.ml +++ b/flap/src/x86-64/retrolixToX86_64.ml @@ -477,8 +477,12 @@ module InstructionSelector : InstructionSelector = struct ;; let div ~dst ~srcl ~srcr = - (* TODO *) - failwith "Students! This is your job! (div)" + (* Division *) + let rax = `Reg X86_64_Architecture.RAX in + mov ~src:srcl ~dst:rax + @ mov ~src:srcr ~dst:r15 + @ [ Instruction cqto; Instruction (idivq ~src:r15)] + @ mov ~dst ~src:rax ;; let andl ~dst ~srcl ~srcr =