From 6a09ba95fe56143670c1c6ce1ec4d4fd591c6e39 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Tue, 25 Jun 2019 21:12:47 +1000 Subject: [PATCH] Fix hi bit set divisor issue for word division --- sm3.asm | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/sm3.asm b/sm3.asm index c5d4ae5..aed29a1 100644 --- a/sm3.asm +++ b/sm3.asm @@ -2445,11 +2445,15 @@ div_w0: ; above rla div_w00: adc hl,hl + jr c,div_w01 sbc hl,bc - jr nc,div_w01 + jr nc,div_w02 dec a - jr div_w11 + jr div_w12 div_w01: + or a + sbc hl,bc +div_w02: add a,a dec d jr nz,div_w00 @@ -2464,11 +2468,14 @@ div_w1: ; below add a,a div_w10: adc hl,hl - add hl,bc jr nc,div_w11 + add hl,bc + jr nc,div_w12 inc a - jr div_w01 + jr div_w02 div_w11: + add hl,bc +div_w12: add a,a dec d jr nz,div_w10 @@ -2605,12 +2612,15 @@ div_w_n0: ; above rla div_w_n00: adc hl,hl + jr nc,div_w_n01 or a sbc hl,bc - jr c,div_w_n01 + jr c,div_w_n02 dec a - jr div_w_n11 + jr div_w_n12 div_w_n01: + sbc hl,bc +div_w_n02: add a,a dec d jr nz,div_w_n00 @@ -2625,11 +2635,14 @@ div_w_n1: ; below add a,a div_w_n10: adc hl,hl - add hl,bc jr c,div_w_n11 + add hl,bc + jr c,div_w_n12 inc a - jr div_w_n01 + jr div_w_n02 div_w_n11: + add hl,bc +div_w_n12: add a,a dec d jr nz,div_w_n10 -- 2.34.1