summaryrefslogtreecommitdiff
path: root/output/QuickSort.vapor
diff options
context:
space:
mode:
Diffstat (limited to 'output/QuickSort.vapor')
-rw-r--r--output/QuickSort.vapor305
1 files changed, 305 insertions, 0 deletions
diff --git a/output/QuickSort.vapor b/output/QuickSort.vapor
new file mode 100644
index 0000000..57389d6
--- /dev/null
+++ b/output/QuickSort.vapor
@@ -0,0 +1,305 @@
+func Main()
+ t.3 = HeapAllocZ(24)
+ [t.3+0] = :functable_QS
+ t.4 = t.3
+ t.5 = [t.4+0]
+ t.6 = [t.5+0]
+ t.7 = 10
+ t.2 = call t.6(t.4 t.7)
+ t.8 = t.2
+ PrintIntS(t.8)
+ ret
+
+const functable_QS
+ :QS_Start
+ :QS_Sort
+ :QS_Print
+ :QS_Init
+
+func QS_Start(this t.0 )
+ t.3 = [this]
+ t.4 = t.0
+ t.3 = [t.3+12]
+ t.2 = call t.3(this t.4)
+ t.1 = t.2
+ t.6 = [this]
+ t.6 = [t.6+8]
+ t.5 = call t.6(this )
+ t.1 = t.5
+ t.7 = 9999
+ PrintIntS(t.7)
+ t.9 = [this+20]
+ t.10 = 1
+ t.8 = Sub(t.9 t.10)
+ t.1 = t.8
+ t.12 = [this]
+ t.13 = 0
+ t.14 = t.1
+ t.12 = [t.12+4]
+ t.11 = call t.12(this t.13 t.14)
+ t.1 = t.11
+ t.16 = [this]
+ t.16 = [t.16+8]
+ t.15 = call t.16(this )
+ t.1 = t.15
+ t.17 = 0
+ ret t.17
+
+func QS_Sort(this t.0 t.1 )
+ t.2 = 0
+ t.4 = t.0
+ t.5 = t.1
+ t.3 = LtS(t.4 t.5)
+ t.6 = t.3
+ if0 t.6 goto :if22_else
+if22_body:
+ t.9 = [this+16]
+ t.10 = MulS(t.1 4)
+ t.10 = Add(t.10 4)
+ t.10 = Add(t.9 t.10)
+ t.8 = [t.10]
+ t.7 = t.8
+ t.13 = t.0
+ t.14 = 1
+ t.12 = Sub(t.13 t.14)
+ t.11 = t.12
+ t.15 = t.1
+ t.16 = 1
+while32_test:
+ t.17 = t.16
+ if0 t.17 goto :while32_end
+while32_body:
+ t.18 = 1
+while34_test:
+ t.19 = t.18
+ if0 t.19 goto :while34_end
+while34_body:
+ t.21 = t.11
+ t.22 = 1
+ t.20 = Add(t.21 t.22)
+ t.11 = t.20
+ t.25 = [this+16]
+ t.26 = MulS(t.11 4)
+ t.26 = Add(t.26 4)
+ t.26 = Add(t.25 t.26)
+ t.24 = [t.26]
+ t.23 = t.24
+ t.29 = t.23
+ t.30 = t.7
+ t.28 = LtS(t.29 t.30)
+ t.27 = Eq(t.28 0)
+ t.31 = t.27
+ if0 t.31 goto :if42_else
+if42_body:
+ t.18 = 0
+ goto :if42_end
+if42_else:
+ t.18 = 1
+if42_end:
+ goto :while34_test
+while34_end:
+ t.18 = 1
+while47_test:
+ t.32 = t.18
+ if0 t.32 goto :while47_end
+while47_body:
+ t.34 = t.15
+ t.35 = 1
+ t.33 = Sub(t.34 t.35)
+ t.15 = t.33
+ t.37 = [this+16]
+ t.38 = MulS(t.15 4)
+ t.38 = Add(t.38 4)
+ t.38 = Add(t.37 t.38)
+ t.36 = [t.38]
+ t.23 = t.36
+ t.41 = t.7
+ t.42 = t.23
+ t.40 = LtS(t.41 t.42)
+ t.39 = Eq(t.40 0)
+ t.43 = t.39
+ if0 t.43 goto :if55_else
+if55_body:
+ t.18 = 0
+ goto :if55_end
+if55_else:
+ t.18 = 1
+if55_end:
+ goto :while47_test
+while47_end:
+ t.45 = [this+16]
+ t.46 = MulS(t.11 4)
+ t.46 = Add(t.46 4)
+ t.46 = Add(t.45 t.46)
+ t.44 = [t.46]
+ t.2 = t.44
+ t.47 = [this+16]
+ t.48 = MulS(t.11 4)
+ t.48 = Add(t.48 4)
+ t.48 = Add(t.47 t.48)
+ t.50 = [this+16]
+ t.51 = MulS(t.15 4)
+ t.51 = Add(t.51 4)
+ t.51 = Add(t.50 t.51)
+ t.49 = [t.51]
+ [t.48] = t.49
+ t.52 = [this+16]
+ t.53 = MulS(t.15 4)
+ t.53 = Add(t.53 4)
+ t.53 = Add(t.52 t.53)
+ [t.53] = t.2
+ t.55 = t.15
+ t.57 = t.11
+ t.58 = 1
+ t.56 = Add(t.57 t.58)
+ t.59 = t.56
+ t.54 = LtS(t.55 t.59)
+ t.60 = t.54
+ if0 t.60 goto :if70_else
+if70_body:
+ t.16 = 0
+ goto :if70_end
+if70_else:
+ t.16 = 1
+if70_end:
+ goto :while32_test
+while32_end:
+ t.61 = [this+16]
+ t.62 = MulS(t.15 4)
+ t.62 = Add(t.62 4)
+ t.62 = Add(t.61 t.62)
+ t.64 = [this+16]
+ t.65 = MulS(t.11 4)
+ t.65 = Add(t.65 4)
+ t.65 = Add(t.64 t.65)
+ t.63 = [t.65]
+ [t.62] = t.63
+ t.66 = [this+16]
+ t.67 = MulS(t.11 4)
+ t.67 = Add(t.67 4)
+ t.67 = Add(t.66 t.67)
+ t.69 = [this+16]
+ t.70 = MulS(t.1 4)
+ t.70 = Add(t.70 4)
+ t.70 = Add(t.69 t.70)
+ t.68 = [t.70]
+ [t.67] = t.68
+ t.71 = [this+16]
+ t.72 = MulS(t.1 4)
+ t.72 = Add(t.72 4)
+ t.72 = Add(t.71 t.72)
+ [t.72] = t.2
+ t.75 = [this]
+ t.78 = t.11
+ t.79 = 1
+ t.77 = Sub(t.78 t.79)
+ t.76 = t.0
+ t.80 = t.77
+ t.75 = [t.75+4]
+ t.74 = call t.75(this t.79 t.80)
+ t.73 = t.74
+ t.82 = [this]
+ t.84 = t.11
+ t.85 = 1
+ t.83 = Add(t.84 t.85)
+ t.86 = t.83
+ t.87 = t.1
+ t.82 = [t.82+4]
+ t.81 = call t.82(this t.86 t.87)
+ t.73 = t.81
+ goto :if22_end
+if22_else:
+ t.73 = 0
+if22_end:
+ t.88 = 0
+ ret t.88
+
+func QS_Print(this )
+ t.0 = 0
+while104_test:
+ t.2 = t.0
+ t.3 = [this+20]
+ t.1 = LtS(t.2 t.3)
+ t.4 = t.1
+ if0 t.4 goto :while104_end
+while104_body:
+ t.6 = [this+16]
+ t.7 = MulS(t.0 4)
+ t.7 = Add(t.7 4)
+ t.7 = Add(t.6 t.7)
+ t.5 = [t.7]
+ t.8 = t.5
+ PrintIntS(t.8)
+ t.10 = t.0
+ t.11 = 1
+ t.9 = Add(t.10 t.11)
+ t.0 = t.9
+ goto :while104_test
+while104_end:
+ t.12 = 0
+ ret t.12
+
+func QS_Init(this t.0 )
+ [this+20] = t.0
+ t.1 = call :AllocArray(t.0)
+ [this+16] = t.1
+ t.2 = [this+16]
+ t.3 = MulS(0 4)
+ t.3 = Add(t.3 4)
+ t.3 = Add(t.2 t.3)
+ [t.3] = 20
+ t.4 = [this+16]
+ t.5 = MulS(1 4)
+ t.5 = Add(t.5 4)
+ t.5 = Add(t.4 t.5)
+ [t.5] = 7
+ t.6 = [this+16]
+ t.7 = MulS(2 4)
+ t.7 = Add(t.7 4)
+ t.7 = Add(t.6 t.7)
+ [t.7] = 12
+ t.8 = [this+16]
+ t.9 = MulS(3 4)
+ t.9 = Add(t.9 4)
+ t.9 = Add(t.8 t.9)
+ [t.9] = 18
+ t.10 = [this+16]
+ t.11 = MulS(4 4)
+ t.11 = Add(t.11 4)
+ t.11 = Add(t.10 t.11)
+ [t.11] = 2
+ t.12 = [this+16]
+ t.13 = MulS(5 4)
+ t.13 = Add(t.13 4)
+ t.13 = Add(t.12 t.13)
+ [t.13] = 11
+ t.14 = [this+16]
+ t.15 = MulS(6 4)
+ t.15 = Add(t.15 4)
+ t.15 = Add(t.14 t.15)
+ [t.15] = 6
+ t.16 = [this+16]
+ t.17 = MulS(7 4)
+ t.17 = Add(t.17 4)
+ t.17 = Add(t.16 t.17)
+ [t.17] = 9
+ t.18 = [this+16]
+ t.19 = MulS(8 4)
+ t.19 = Add(t.19 4)
+ t.19 = Add(t.18 t.19)
+ [t.19] = 19
+ t.20 = [this+16]
+ t.21 = MulS(9 4)
+ t.21 = Add(t.21 4)
+ t.21 = Add(t.20 t.21)
+ [t.21] = 5
+ t.22 = 0
+ ret t.22
+
+func AllocArray(size)
+ bytes = MulS(size 4)
+ bytes = Add(bytes 4)
+ v = HeapAllocZ(bytes)
+ [v] = size
+ ret v
+