From 1851f5e76018ec1df3b55dce6cc9a64c9497bf7a Mon Sep 17 00:00:00 2001 From: bd-912 Date: Fri, 26 Apr 2024 15:50:38 -0600 Subject: Rearrange directory structure --- base/Factorial.vaporm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 base/Factorial.vaporm (limited to 'base/Factorial.vaporm') diff --git a/base/Factorial.vaporm b/base/Factorial.vaporm new file mode 100644 index 0000000..a7e981c --- /dev/null +++ b/base/Factorial.vaporm @@ -0,0 +1,40 @@ +const vmt_Fac + :Fac.ComputeFac + +func Main [in 0, out 0, local 0] + $t0 = HeapAllocZ(4) + [$t0] = :vmt_Fac + if $t0 goto :null1 + Error("null pointer") +null1: + $t1 = [$t0] + $t1 = [$t1] + $a0 = $t0 + $a1 = 10 + call $t1 + $t1 = $v0 + PrintIntS($t1) + ret + +func Fac.ComputeFac [in 0, out 0, local 1] + local[0] = $s0 + $t0 = $a0 + $s0 = $a1 + $t1 = LtS($s0 1) + if0 $t1 goto :if1_else + $t1 = 1 + goto :if1_end +if1_else: + $t2 = [$t0] + $t2 = [$t2] + $t3 = Sub($s0 1) + $a0 = $t0 + $a1 = $t3 + call $t2 + $t3 = $v0 + $t1 = MulS($s0 $t3) +if1_end: + $v0 = $t1 + $s0 = local[0] + ret + -- cgit v1.2.3