diff options
Diffstat (limited to 'output/ex46.vapor')
-rw-r--r-- | output/ex46.vapor | 61 |
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 + |