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