diff options
Diffstat (limited to 'base/MoreThan4.vapor')
-rw-r--r-- | base/MoreThan4.vapor | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/base/MoreThan4.vapor b/base/MoreThan4.vapor new file mode 100644 index 0000000..6067f8e --- /dev/null +++ b/base/MoreThan4.vapor @@ -0,0 +1,38 @@ + +const vmt_MT4 + :MT4.Start + :MT4.Change + + +func Main() + t.0 = HeapAllocZ(4) + [t.0] = :vmt_MT4 + if t.0 goto :null1 + Error("null pointer") + null1: + t.1 = [t.0] + t.1 = [t.1+0] + t.2 = call t.1(t.0 1 2 3 4 5 6) + PrintIntS(t.2) + ret + +func MT4.Start(this p1 p2 p3 p4 p5 p6) + PrintIntS(p1) + PrintIntS(p2) + PrintIntS(p3) + PrintIntS(p4) + PrintIntS(p5) + PrintIntS(p6) + t.0 = [this] + t.0 = [t.0+4] + aux = call t.0(this p6 p5 p4 p3 p2 p1) + ret aux + +func MT4.Change(this p1 p2 p3 p4 p5 p6) + PrintIntS(p1) + PrintIntS(p2) + PrintIntS(p3) + PrintIntS(p4) + PrintIntS(p5) + PrintIntS(p6) + ret 0 |