summaryrefslogtreecommitdiff
path: root/output/ex46.vapor
diff options
context:
space:
mode:
Diffstat (limited to 'output/ex46.vapor')
-rw-r--r--output/ex46.vapor61
1 files changed, 61 insertions, 0 deletions
diff --git a/output/ex46.vapor b/output/ex46.vapor
new file mode 100644
index 0000000..282da13
--- /dev/null
+++ b/output/ex46.vapor
@@ -0,0 +1,61 @@
+func Main()
+ t.4 = HeapAllocZ(16)
+ [t.4+0] = :functable_A
+ t.3 = t.4
+ t.3 = t.3
+ t.6 = [t.3+0]
+ t.7 = [t.6+0]
+ t.5 = call t.7(t.3 )
+ t.8 = t.5
+ PrintIntS(t.8)
+ t.3 = t.3
+ t.10 = [t.3+0]
+ t.11 = [t.10+0]
+ t.9 = call t.11(t.3 )
+ t.12 = t.9
+ PrintIntS(t.12)
+ t.3 = t.3
+ t.15 = [t.3+0]
+ t.16 = [t.15+4]
+ t.17 = 10
+ t.18 = 20
+ t.14 = call t.16(t.3 t.17 t.18)
+ t.13 = t.14
+ t.19 = t.13
+ PrintIntS(t.19)
+ ret
+
+const functable_A
+ :A_foo
+ :A_bar
+
+func A_foo(this )
+ [this+12] = 0
+ t.1 = 1
+ t.2 = 2
+ t.0 = Add(t.1 t.2)
+ [this+8] = t.0
+ t.4 = [this+8]
+ t.5 = [this+12]
+ t.3 = Add(t.4 t.5)
+ [this+12] = t.3
+ t.6 = [this+12]
+ ret t.6
+
+func A_bar(this t.0 t.1 )
+ [this+8] = t.0
+ [this+12] = t.1
+ t.4 = [this+8]
+ t.5 = [this+12]
+ t.3 = MulS(t.4 t.5)
+ t.2 = t.3
+ t.6 = t.2
+ ret t.6
+
+func AllocArray(size)
+ bytes = MulS(size 4)
+ bytes = Add(bytes 4)
+ v = HeapAllocZ(bytes)
+ [v] = size
+ ret v
+