summaryrefslogtreecommitdiff
path: root/output/ex47.vapor
diff options
context:
space:
mode:
Diffstat (limited to 'output/ex47.vapor')
-rw-r--r--output/ex47.vapor52
1 files changed, 52 insertions, 0 deletions
diff --git a/output/ex47.vapor b/output/ex47.vapor
new file mode 100644
index 0000000..e035a56
--- /dev/null
+++ b/output/ex47.vapor
@@ -0,0 +1,52 @@
+func Main()
+ t.4 = HeapAllocZ(12)
+ [t.4+0] = :functable_A
+ t.3 = t.4
+ t.3 = t.3
+ t.6 = [t.3+0]
+ t.7 = [t.6+0]
+ t.8 = 42
+ t.5 = call t.7(t.3 t.8)
+ t.9 = t.5
+ PrintIntS(t.9)
+ t.3 = t.3
+ t.11 = [t.3+0]
+ t.12 = [t.11+4]
+ t.10 = call t.12(t.3 )
+ t.13 = t.10
+ PrintIntS(t.13)
+ ret
+
+const functable_A
+ :A_set
+ :A_get
+
+func A_set(this t.0 )
+ t.1 = call :AllocArray(12)
+ [this+8] = t.1
+ t.2 = [this+8]
+ t.3 = MulS(5 4)
+ t.3 = Add(t.3 4)
+ t.3 = Add(t.2 t.3)
+ [t.3] = t.0
+ t.5 = [this+8]
+ t.4 = [t.5+0]
+ t.6 = t.4
+ ret t.6
+
+func A_get(this )
+ t.1 = [this+8]
+ t.2 = MulS(5 4)
+ t.2 = Add(t.2 4)
+ t.2 = Add(t.1 t.2)
+ t.0 = [t.2]
+ t.3 = t.0
+ ret t.3
+
+func AllocArray(size)
+ bytes = MulS(size 4)
+ bytes = Add(bytes 4)
+ v = HeapAllocZ(bytes)
+ [v] = size
+ ret v
+