X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=progs%2Fsum.s;h=c0daa3c6d8bbadb4d0da0fc617f392bb0247e258;hb=1c926aa503f06fc7844b6482c89b55961a58d16b;hp=1a433518c982b3ffc220f245704e69cc8191dfe6;hpb=0b162663e782326d8a6ffaedf97680a0819b1f31;p=calu.git diff --git a/progs/sum.s b/progs/sum.s index 1a43351..c0daa3c 100644 --- a/progs/sum.s +++ b/progs/sum.s @@ -79,13 +79,14 @@ sum: ;r0 = sum ;r4 arr data ldis r0, 0 - addi r3, r1, 0 - retzs- ; check len != 0 + addi r3, r1, 0 andx r1, 0x3 cmpi r1, 0 - breq+ go_loop + addideq r3, r3, 4 + ; subideq r2, r2, 0 + breq+ loop cmpi r1, 1 addideq r3, r3, 3 @@ -97,13 +98,11 @@ sum: subideq r2, r2, 8 breq- loop2 - cmpi r1, 3 - addideq r3, r3, 1 - subideq r2, r2, 4 - breq- loop3 + ; cmpi r1, 3 + addi r3, r3, 1 + subi r2, r2, 4 + br+ loop3 -go_loop: - addi r3, r3, 4 loop: subi r3, r3, 4 retzs-