From 56fd37c60eb0d58ed4762340ddc85b74347bcd71 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Mon, 10 Apr 2023 17:30:25 +0300 Subject: Do stuff --- src/test_fibo.atk16 | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/test_fibo.atk16') diff --git a/src/test_fibo.atk16 b/src/test_fibo.atk16 index 7f1abb9..a03f14b 100644 --- a/src/test_fibo.atk16 +++ b/src/test_fibo.atk16 @@ -1,9 +1,12 @@ @opt stack_pointer RG +@opt csr_scratch RF + +@use ext_std:* @label program ; call fibo subroutine with parameter 10 ldi RA 10 - csr fibo + csi fibo hlt @label fibo @@ -13,24 +16,21 @@ ; return value: ; RA fibo(n) : u16 - spu RB ; prelude + spu RB ; prelude spu RC - ldi RC 2 ; if n < 2, return n - sub RA RC RA + subi RA 2 RA ; if n < 2, return n bri f_sign fibo_early spu RD ; prelude - spu RE - ldi RE 1 ; constant 1 ldi RB 0 ; a = 0 ldi RC 1 ; b = 1 @label fibo_loop add RB RC RD ; v = a + b mov RC RB ; a = b mov RD RC ; b = v - sub RA RE RA ; n -= 1 + dec RA ; n -= 1 bri f_zero fibo_done ; loop while n > 0 jpi fibo_loop @@ -39,9 +39,8 @@ spo RB rsr @label fibo_done - ldr RD RA - spo RE - spo RD + mov RD RA + spo RD ; restore registers spo RC spo RB rsr -- cgit v1.3