From 19d4b336bc82dd163d2b4ccb77c114e4c8bcefce Mon Sep 17 00:00:00 2001 From: inglorion Date: Thu, 15 Apr 2010 08:31:22 +0200 Subject: [PATCH] Fixed implementation of div and mod on i386 and amd64. --- lib/voodoo/generators/nasm_generator.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/voodoo/generators/nasm_generator.rb b/lib/voodoo/generators/nasm_generator.rb index c9bd825..3815183 100644 --- a/lib/voodoo/generators/nasm_generator.rb +++ b/lib/voodoo/generators/nasm_generator.rb @@ -463,7 +463,8 @@ module Voodoo def eval_div x, y x_ref = load_value_into_register x, @AX y_ref = load_value y, @SCRATCH_REG - set_register @DX, 0 + emit "mov #{@DX}, #{@AX}\n" + emit "sar #{@DX}, #{@WORDSIZE * 8 - 1}\n" if immediate_operand?(y_ref) set_register @BX, y_ref emit "idiv #{@BX}\n" -- 2.11.4.GIT