summaryrefslogtreecommitdiff
path: root/output/Factorial.vapor
diff options
context:
space:
mode:
Diffstat (limited to 'output/Factorial.vapor')
-rw-r--r--output/Factorial.vapor47
1 files changed, 47 insertions, 0 deletions
diff --git a/output/Factorial.vapor b/output/Factorial.vapor
new file mode 100644
index 0000000..713ef06
--- /dev/null
+++ b/output/Factorial.vapor
@@ -0,0 +1,47 @@
+func Main()
+ t.3 = HeapAllocZ(4)
+ [t.3+0] = :functable_Fac
+ t.4 = t.3
+ t.5 = [t.4+0]
+ t.6 = [t.5+0]
+ t.7 = 10
+ t.2 = call t.6(t.4 t.7)
+ t.8 = t.2
+ PrintIntS(t.8)
+ ret
+
+const functable_Fac
+ :Fac_ComputeFac
+
+func Fac_ComputeFac(this t.0 )
+ t.2 = t.0
+ t.3 = 1
+ t.1 = LtS(t.2 t.3)
+ t.4 = t.1
+ if0 t.4 goto :if6_else
+if6_body:
+ t.5 = 1
+ goto :if6_end
+if6_else:
+ t.7 = t.0
+ t.9 = [this]
+ t.11 = t.0
+ t.12 = 1
+ t.10 = Sub(t.11 t.12)
+ t.13 = t.10
+ t.9 = [t.9+0]
+ t.8 = call t.9(this t.13)
+ t.14 = t.8
+ t.6 = MulS(t.7 t.14)
+ t.5 = t.6
+if6_end:
+ t.15 = t.5
+ ret t.15
+
+func AllocArray(size)
+ bytes = MulS(size 4)
+ bytes = Add(bytes 4)
+ v = HeapAllocZ(bytes)
+ [v] = size
+ ret v
+