OR-1 dataflow CPU sketch
at main 36 lines 840 B view raw
1@system pe=2, sm=1 2 3$fib |> { 4 ; ── function body ── 5 &n <| pass 6 lt &n, 2 |> &test 7 &test <| sweq 8 &n |> &test:L 9 10 ; base case 11 &test:L |> @ret 12 13 ; recursive case 14 sub &n, 1 |> &n1 15 sub &n, 2 |> &n2 16 17 ; two calls, each 3 monadic IRAM slots + shared stub 18 &__alloc1 <| rd_inc, @ctx_alloc 19 &__exec1 <| exec, @fib_call_seq 20 &__extag1 <| extract_tag, 20 ; results arrive at offset 20 21 22 &__alloc1 |> &__fib_ctx_fan 23 &__extag1 |> &__fib_ct_ret:R 24 &n1 |> &__fib_ct_n:R 25 26 &__alloc2 <| rd_inc, @ctx_alloc 27 &__exec2 <| exec, @fib_call_seq 28 &__extag2 <| extract_tag, 21 ; results arrive at offset 21 29 30 &__alloc2 |> &__fib_ctx_fan 31 &__extag2 |> &__fib_ct_ret:R 32 &n2 |> &__fib_ct_n:R 33 34 ; reduction 35 add &r1, &r2 |> @ret ; r1 at offset 20, r2 at offset 21 36}