diff options
Diffstat (limited to 'output/QuickSort.vapor')
-rw-r--r-- | output/QuickSort.vapor | 699 |
1 files changed, 433 insertions, 266 deletions
diff --git a/output/QuickSort.vapor b/output/QuickSort.vapor index 57389d6..1d0a9fe 100644 --- a/output/QuickSort.vapor +++ b/output/QuickSort.vapor @@ -2,12 +2,15 @@ func Main() t.3 = HeapAllocZ(24) [t.3+0] = :functable_QS t.4 = t.3 - t.5 = [t.4+0] + t.5 = t.4 t.6 = [t.5+0] - t.7 = 10 - t.2 = call t.6(t.4 t.7) - t.8 = t.2 - PrintIntS(t.8) + t.7 = [t.6+0] + t.8 = 10 + t.9 = t.8 + t.2 = call t.7(t.5 t.9) + t.10 = t.2 + t.11 = t.10 + PrintIntS(t.11) ret const functable_QS @@ -17,284 +20,448 @@ const functable_QS :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.3 = this + t.4 = [this] + t.5 = t.0 + t.6 = t.5 + t.4 = [t.4+12] + t.2 = call t.4(this t.6) + t.7 = t.2 + t.1 = t.7 + t.9 = this + t.10 = [this] + t.10 = [t.10+8] + t.8 = call t.10(this) + t.11 = t.8 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 + t.12 = 9999 + t.13 = t.12 + t.14 = t.13 + PrintIntS(t.14) + t.16 = [this+20] + t.17 = 1 + t.15 = Sub(t.16 t.17) + t.18 = t.15 + t.1 = t.18 + t.20 = this + t.21 = [this] + t.22 = 0 + t.23 = t.22 + t.24 = t.1 + t.25 = t.24 + t.21 = [t.21+4] + t.19 = call t.21(this t.23 t.25) + t.26 = t.19 + t.1 = t.26 + t.28 = this + t.29 = [this] + t.29 = [t.29+8] + t.27 = call t.29(this) + t.30 = t.27 + t.1 = t.30 + t.31 = 0 + t.32 = t.31 + t.33 = t.32 + ret t.33 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.3 = 0 + t.4 = t.3 + t.2 = t.4 + t.6 = t.0 + t.7 = t.1 + t.5 = LtS(t.6 t.7) + t.8 = t.5 + t.9 = t.8 + if0 t.9 goto :if43_else +if43_body: + t.13 = [this+16] + t.12 = t.13 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 + t.14 = MulS(t.15 4) + t.14 = Add(t.14 4) + t.14 = Add(t.12 t.14) + t.11 = [t.14] + t.16 = t.11 + t.10 = t.16 + t.19 = t.0 + t.20 = 1 + t.18 = Sub(t.19 t.20) + t.21 = t.18 + t.17 = t.21 + t.23 = t.1 + t.24 = t.23 + t.22 = t.24 + t.26 = 1 + t.27 = t.26 + t.25 = t.27 +while62_test: + t.28 = t.25 + t.29 = t.28 + t.30 = t.29 + if0 t.30 goto :while62_end +while62_body: + t.32 = 1 + t.33 = t.32 + t.31 = t.33 +while68_test: + t.34 = t.31 + t.35 = t.34 + t.36 = t.35 + if0 t.36 goto :while68_end +while68_body: + t.38 = t.17 + t.39 = 1 + t.37 = Add(t.38 t.39) + t.40 = t.37 + t.17 = t.40 + t.44 = [this+16] + t.43 = t.44 + t.46 = t.17 + t.45 = MulS(t.46 4) + t.45 = Add(t.45 4) + t.45 = Add(t.43 t.45) + t.42 = [t.45] + t.47 = t.42 + t.41 = t.47 + t.50 = t.41 + t.51 = t.10 + t.49 = LtS(t.50 t.51) + t.52 = t.49 + t.53 = t.52 + t.54 = t.53 + t.48 = Eq(t.54 0) + t.55 = t.48 + t.56 = t.55 + t.57 = t.56 + if0 t.57 goto :if82_else +if82_body: + t.58 = 0 + t.59 = t.58 + t.31 = t.59 + goto :if82_end +if82_else: + t.60 = 1 + t.61 = t.60 + t.31 = t.61 +if82_end: + goto :while68_test +while68_end: + t.62 = 1 + t.63 = t.62 + t.31 = t.63 +while98_test: + t.64 = t.31 + t.65 = t.64 + t.66 = t.65 + if0 t.66 goto :while98_end +while98_body: + t.68 = t.22 + t.69 = 1 + t.67 = Sub(t.68 t.69) + t.70 = t.67 + t.22 = t.70 + t.73 = [this+16] + t.72 = t.73 + t.75 = t.22 + t.74 = MulS(t.75 4) + t.74 = Add(t.74 4) + t.74 = Add(t.72 t.74) + t.71 = [t.74] + t.76 = t.71 + t.41 = t.76 + t.79 = t.10 + t.80 = t.41 + t.78 = LtS(t.79 t.80) + t.81 = t.78 + t.82 = t.81 + t.83 = t.82 + t.77 = Eq(t.83 0) + t.84 = t.77 + t.85 = t.84 + t.86 = t.85 + if0 t.86 goto :if112_else +if112_body: + t.87 = 0 + t.88 = t.87 + t.31 = t.88 + goto :if112_end +if112_else: + t.89 = 1 + t.90 = t.89 + t.31 = t.90 +if112_end: + goto :while98_test +while98_end: + t.93 = [this+16] + t.92 = t.93 + t.95 = t.17 + t.94 = MulS(t.95 4) + t.94 = Add(t.94 4) + t.94 = Add(t.92 t.94) + t.91 = [t.94] + t.96 = t.91 + t.2 = t.96 + t.97 = [this+16] + t.99 = t.17 + t.100 = t.99 + t.98 = MulS(t.100 4) + t.98 = Add(t.98 4) + t.98 = Add(t.97 t.98) + t.103 = [this+16] + t.102 = t.103 + t.105 = t.22 + t.104 = MulS(t.105 4) + t.104 = Add(t.104 4) + t.104 = Add(t.102 t.104) + t.101 = [t.104] + t.106 = t.101 + [t.98] = t.106 + t.107 = [this+16] + t.109 = t.22 + t.110 = t.109 + t.108 = MulS(t.110 4) + t.108 = Add(t.108 4) + t.108 = Add(t.107 t.108) + t.111 = t.2 + t.112 = t.111 + [t.108] = t.112 + t.114 = t.22 + t.116 = t.17 + t.117 = 1 + t.115 = Add(t.116 t.117) + t.118 = t.115 + t.119 = t.118 + t.113 = LtS(t.114 t.119) + t.120 = t.113 + t.121 = t.120 + if0 t.121 goto :if148_else +if148_body: + t.122 = 0 + t.123 = t.122 + t.25 = t.123 + goto :if148_end +if148_else: + t.124 = 1 + t.125 = t.124 + t.25 = t.125 +if148_end: + goto :while62_test +while62_end: + t.126 = [this+16] + t.128 = t.22 + t.129 = t.128 + t.127 = MulS(t.129 4) + t.127 = Add(t.127 4) + t.127 = Add(t.126 t.127) + t.132 = [this+16] + t.131 = t.132 + t.134 = t.17 + t.133 = MulS(t.134 4) + t.133 = Add(t.133 4) + t.133 = Add(t.131 t.133) + t.130 = [t.133] + t.135 = t.130 + [t.127] = t.135 + t.136 = [this+16] + t.138 = t.17 + t.139 = t.138 + t.137 = MulS(t.139 4) + t.137 = Add(t.137 4) + t.137 = Add(t.136 t.137) + t.142 = [this+16] + t.141 = t.142 + t.144 = t.1 + t.143 = MulS(t.144 4) + t.143 = Add(t.143 4) + t.143 = Add(t.141 t.143) + t.140 = [t.143] + t.145 = t.140 + [t.137] = t.145 + t.146 = [this+16] + t.148 = t.1 + t.149 = t.148 + t.147 = MulS(t.149 4) + t.147 = Add(t.147 4) + t.147 = Add(t.146 t.147) + t.150 = t.2 + t.151 = t.150 + [t.147] = t.151 + t.154 = this + t.155 = [this] + t.156 = t.0 + t.157 = t.156 + t.159 = t.17 + t.160 = 1 + t.158 = Sub(t.159 t.160) + t.161 = t.158 + t.155 = [t.155+4] + t.153 = call t.155(this t.157 t.161) + t.162 = t.153 + t.152 = t.162 + t.164 = this + t.165 = [this] + t.167 = t.17 + t.168 = 1 + t.166 = Add(t.167 t.168) + t.169 = t.166 + t.170 = t.1 + t.171 = t.170 + t.165 = [t.165+4] + t.163 = call t.165(this t.169 t.171) + t.172 = t.163 + t.152 = t.172 + goto :if43_end +if43_else: + t.173 = 0 + t.174 = t.173 + t.152 = t.174 +if43_end: + t.175 = 0 + t.176 = t.175 + t.177 = t.176 + ret t.177 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 + t.1 = 0 + t.2 = t.1 + t.0 = t.2 +while214_test: + t.4 = t.0 + t.5 = [this+20] + t.6 = t.5 + t.7 = t.6 + t.3 = LtS(t.4 t.7) + t.8 = t.3 + t.9 = t.8 + if0 t.9 goto :while214_end +while214_body: + t.12 = [this+16] + t.11 = t.12 + t.14 = t.0 + t.13 = MulS(t.14 4) + t.13 = Add(t.13 4) + t.13 = Add(t.11 t.13) + t.10 = [t.13] + t.15 = t.10 + t.16 = t.15 + PrintIntS(t.16) + t.18 = t.0 + t.19 = 1 + t.17 = Add(t.18 t.19) + t.20 = t.17 + t.0 = t.20 + goto :while214_test +while214_end: + t.21 = 0 + t.22 = t.21 + t.23 = t.22 + ret t.23 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.1 = t.0 + t.2 = t.1 + [this+20] = t.2 + t.3 = t.0 + t.4 = t.3 + t.5 = call :AllocArray(t.4) + t.6 = t.5 + t.7 = t.6 + [this+16] = t.7 t.8 = [this+16] - t.9 = MulS(3 4) + t.10 = 0 + t.11 = t.10 + t.9 = MulS(t.11 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.12 = 20 + t.13 = t.12 + [t.9] = t.13 t.14 = [this+16] - t.15 = MulS(6 4) + t.16 = 1 + t.17 = t.16 + t.15 = MulS(t.17 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.18 = 7 + t.19 = t.18 + [t.15] = t.19 t.20 = [this+16] - t.21 = MulS(9 4) + t.22 = 2 + t.23 = t.22 + t.21 = MulS(t.23 4) t.21 = Add(t.21 4) t.21 = Add(t.20 t.21) - [t.21] = 5 - t.22 = 0 - ret t.22 + t.24 = 12 + t.25 = t.24 + [t.21] = t.25 + t.26 = [this+16] + t.28 = 3 + t.29 = t.28 + t.27 = MulS(t.29 4) + t.27 = Add(t.27 4) + t.27 = Add(t.26 t.27) + t.30 = 18 + t.31 = t.30 + [t.27] = t.31 + t.32 = [this+16] + t.34 = 4 + t.35 = t.34 + t.33 = MulS(t.35 4) + t.33 = Add(t.33 4) + t.33 = Add(t.32 t.33) + t.36 = 2 + t.37 = t.36 + [t.33] = t.37 + t.38 = [this+16] + t.40 = 5 + t.41 = t.40 + t.39 = MulS(t.41 4) + t.39 = Add(t.39 4) + t.39 = Add(t.38 t.39) + t.42 = 11 + t.43 = t.42 + [t.39] = t.43 + t.44 = [this+16] + t.46 = 6 + t.47 = t.46 + t.45 = MulS(t.47 4) + t.45 = Add(t.45 4) + t.45 = Add(t.44 t.45) + t.48 = 6 + t.49 = t.48 + [t.45] = t.49 + t.50 = [this+16] + t.52 = 7 + t.53 = t.52 + t.51 = MulS(t.53 4) + t.51 = Add(t.51 4) + t.51 = Add(t.50 t.51) + t.54 = 9 + t.55 = t.54 + [t.51] = t.55 + t.56 = [this+16] + t.58 = 8 + t.59 = t.58 + t.57 = MulS(t.59 4) + t.57 = Add(t.57 4) + t.57 = Add(t.56 t.57) + t.60 = 19 + t.61 = t.60 + [t.57] = t.61 + t.62 = [this+16] + t.64 = 9 + t.65 = t.64 + t.63 = MulS(t.65 4) + t.63 = Add(t.63 4) + t.63 = Add(t.62 t.63) + t.66 = 5 + t.67 = t.66 + [t.63] = t.67 + t.68 = 0 + t.69 = t.68 + t.70 = t.69 + ret t.70 func AllocArray(size) bytes = MulS(size 4) |