From cb4f60b2ff30b40a44c6c2e2652eb91f82e8bf33 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:05:09 +0200 Subject: [PATCH] Optimize muldiv8b8y --- include/fixmath.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/include/fixmath.c b/include/fixmath.c index a040424..4a6d493 100644 --- a/include/fixmath.c +++ b/include/fixmath.c @@ -517,14 +517,31 @@ unsigned lmuldiv8by8(char a, char b, char c) sty accu + 1 sty accu + 2 - ldx #16 + lda a + beq z1 + lda c + beq z1 + + ldx #8 + lda b + beq z1 + + cmp c + bcc w0 + l1: + lsr + ror accu + 1 + inx + cmp c + bcs l1 + bcc wa + l2: asl accu + 2 rol accu + 0 + wa: rol accu + 1 - - tya - asl b + w0: rol bcc w2 @@ -547,6 +564,7 @@ unsigned lmuldiv8by8(char a, char b, char c) bne w1 inc accu + 1 w1: + tya dex bne l2