Created
May 29, 2020 16:09
-
-
Save aam/d06a515b304682410f6b55607fcaff01 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*** BEGIN CFG | |
After AllocateRegisters | |
==== dart:core_int__parse@0150898 | |
0: B0[graph]:0 { | |
v0 <- Constant(#null) T{Null?} | |
v1 <- Constant(#<optimized out>) T{_OneByteString} | |
v7 <- Constant(#1) [1, 1] T{_Smi} | |
v10 <- Constant(#0) [0, 0] T{_Smi} | |
v13 <- Constant(#true) T{bool} | |
v18 <- Constant(#43) [43, 43] T{_Smi} | |
v21 <- Constant(#45) [45, 45] T{_Smi} | |
v34 <- Constant(#false) T{bool} | |
v37 <- Constant(#48) [48, 48] T{_Smi} | |
v42 <- Constant(#10) [10, 10] T{_Smi} | |
v49 <- Constant(#32) [32, 32] T{_Smi} | |
v52 <- Constant(#120) [120, 120] T{_Smi} | |
v59 <- Constant(#16) [16, 16] T{_Smi} | |
v66 <- Constant(#44) [44, 44] T{_Smi} | |
v128 <- Constant(#79) [79, 79] T{_Smi} | |
v129 <- Constant(#80) [80, 80] T{_Smi} | |
v130 <- Constant(#81) [81, 81] T{_Smi} | |
} | |
2: B1[function entry]:2 { | |
v2 <- Parameter(0) T{_StringBase} | |
v3 <- Parameter(1) T{_Smi?} | |
v4 <- Parameter(2) T{*?} | |
} | |
4: CheckStackOverflow:8(stack=0, loop=0) | |
6: PushArgument(v2) | |
8: v5 <- StaticCall:12( _lastNonWhitespace@0150898<0> v2, using unchecked entrypoint, result_type = T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
9: ParallelMove rax <- rax | |
10: v334 <- UnboxedConstant(#1) [1, 1] T{_Smi} | |
12: ParallelMove rax <- rax | |
12: v266 <- UnboxInt64(v5) [-9223372036854775808, 9223372036854775807] T{int} | |
14: ParallelMove rax <- rax | |
14: v8 <- BinaryInt64Op(+ [tr], v266 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
15: ParallelMove S-1 <- rax | |
16: v336 <- UnboxedConstant(#0) [0, 0] T{_Smi} | |
18: Branch if EqualityCompare(v8 == v336) T{bool} goto (3, 4) | |
20: B3[target]:24 ParallelMove rcx <- S+4 | |
22: v224 <- LoadField(v2 T{_StringBase} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
24: PushArgument(v4) | |
26: PushArgument(v2) | |
28: PushArgument(v224) | |
30: PushArgument(v3) | |
32: PushArgument(v0) | |
34: v79 <- StaticCall:28( _throwFormatException@0150898<0> v4, v2, v224, v3, v0, result_type = T{int?}) T{int?} | |
35: ParallelMove rax <- rax | |
36: Return:32(v79) | |
38: B4[target]:34 ParallelMove rcx <- S+4 | |
40: PushArgument(v2) | |
42: v14 <- StaticCall:36( _firstNonWhitespace@0150898<0> v2, using unchecked entrypoint, result_type = T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
43: ParallelMove rcx <- rax, rax <- S+4 | |
44: v216 <- LoadClassId(v2) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
46: Branch if StrictCompare:38(===, v216, v128) goto (43, 48) | |
48: B43[target]:38 | |
50: v177 <- LoadField(v2 T{_OneByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
52: GenericCheckBound:38(v177, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
54: ParallelMove rdi <- rcx | |
54: v181 <- LoadIndexed(v2 T{_OneByteString}, v14 T{int}) [0, 255] T{_Smi} | |
56: ParallelMove rsi <- rsi, rbx <- rbx goto: B51 | |
58: B48[target]:38 | |
60: Branch if StrictCompare:38(===, v216, v129) goto (44, 49) | |
62: B44[target]:38 | |
64: v186 <- LoadField(v2 T{_TwoByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
66: GenericCheckBound:38(v186, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
68: v190 <- LoadIndexed(v2 T{_TwoByteString}, v14 T{int}) [0, 65535] T{_Smi} | |
70: ParallelMove rsi <- rsi, rbx <- rbx goto: B51 | |
72: B49[target]:38 | |
74: Branch if StrictCompare:38(===, v216, v130) goto (45, 50) | |
76: B45[target]:38 | |
78: v195 <- LoadField(v2 T{_ExternalOneByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
80: GenericCheckBound:38(v195, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
82: v199 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
84: ParallelMove r8 <- rcx | |
84: v201 <- LoadIndexed(v199, v14 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
86: ParallelMove rsi <- rdi, rbx <- rbx goto: B51 | |
88: B50[target]:38 | |
90: v206 <- LoadField(v2 T{_StringBase} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
92: GenericCheckBound:38(v206, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
94: v210 <- LoadUntagged(v2 T{_StringBase}, 16) T{*?} | |
96: v212 <- LoadIndexed(v210, v14 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
98: ParallelMove rsi <- rdi, rbx <- rbx goto: B51 | |
100: B51[join]:39 pred(B43, B44, B45, B50) { | |
v217 <- phi(v181, v190, v201, v212) alive [-4611686018427387904, 4611686018427387903] int64 T{_Smi} | |
v322 <- phi(v177, v186, v195, v206) alive [0, 2305843009213693951] T{_Smi} | |
} | |
102: v338 <- UnboxedConstant(#43) [43, 43] T{_Smi} | |
104: Branch if EqualityCompare(v217 == v338) T{bool} goto (7, 5) | |
106: B7[target]:62 | |
108: ParallelMove rdi <- S-1 goto:64 B6 | |
110: B5[target]:58 | |
112: v340 <- UnboxedConstant(#45) [45, 45] T{_Smi} | |
114: Branch if EqualityCompare(v217 == v340) T{bool} goto (8, 11) | |
116: B8[target]:66 | |
118: ParallelMove rdi <- S-1 goto:68 B6 | |
120: B6[join]:60 pred(B7, B8) | |
122: v342 <- UnboxedConstant(#44) [44, 44] T{_Smi} | |
124: ParallelMove r8 <- C | |
124: v67 <- BinaryInt64Op(- [tr], v342, v217) [-4611686018427387859, 4611686018427387948] T{int} | |
126: ParallelMove rcx <- rcx | |
126: v274 <- UnboxInt64(v14) [-9223372036854775808, 9223372036854775807] T{int} | |
128: ParallelMove rcx <- rcx | |
128: v69 <- BinaryInt64Op(+ [tr], v274 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
130: Branch if EqualityCompare(v69 == v8) T{bool} goto (9, 10) | |
132: B9[target]:82 | |
134: v268 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
136: PushArgument(v4) | |
138: PushArgument(v2) | |
140: PushArgument(v268 T{int}) | |
142: PushArgument(v3) | |
144: PushArgument(v0) | |
146: v75 <- StaticCall:84( _throwFormatException@0150898<0> v4, v2, v268 T{int}, v3, v0, result_type = T{int?}) T{int?} | |
147: ParallelMove rax <- rax | |
148: Return:88(v75) | |
150: B10[target]:90 | |
152: Branch if StrictCompare:92(===, v216, v128) goto (34, 39) | |
154: B34[target]:92 | |
156: v294 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
158: GenericCheckBound:92(v322, v294 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
160: ParallelMove r9 <- rsi | |
160: v138 <- LoadIndexed(v2 T{_OneByteString}, v294 T{int}) [0, 255] T{_Smi} | |
162: v140 <- BoxInt64(v138) [0, 255] T{_Smi} | |
164: ParallelMove rsi <- r9 goto: B42 | |
166: B39[target]:92 | |
168: Branch if StrictCompare:92(===, v216, v129) goto (35, 40) | |
170: B35[target]:92 | |
172: v292 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
174: GenericCheckBound:92(v322, v292 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
176: v147 <- LoadIndexed(v2 T{_TwoByteString}, v292 T{int}) [0, 65535] T{_Smi} | |
178: v149 <- BoxInt64(v147) [0, 65535] T{_Smi} | |
180: ParallelMove rsi <- rsi goto: B42 | |
182: B40[target]:92 | |
184: Branch if StrictCompare:92(===, v216, v130) goto (36, 41) | |
186: B36[target]:92 | |
188: v290 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
190: GenericCheckBound:92(v322, v290 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
192: v156 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
194: ParallelMove r10 <- rsi | |
194: v158 <- LoadIndexed(v156, v290 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
196: v160 <- BoxInt64(v158) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
198: ParallelMove rsi <- r9 goto: B42 | |
200: B41[target]:92 | |
202: v288 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
204: GenericCheckBound:92(v322, v288 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
206: v167 <- LoadUntagged(v2 T{_StringBase}, 16) T{*?} | |
208: v169 <- LoadIndexed(v167, v288 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
210: v171 <- BoxInt64(v169) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
212: ParallelMove rsi <- rsi goto: B42 | |
214: B42[join]:93 pred(B34, B35, B36, B41) { | |
v174 <- phi(v140, v149, v160, v171) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
} | |
216: v296 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
218: ParallelMove r9 <- r9, r8 <- rsi, rsi <- r8, rcx <- S+3 goto:98 B12 | |
220: B11[target]:94 ParallelMove rdi <- S-1 | |
222: v284 <- BoxInt64(v217) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
224: v430 <- UnboxedConstant(#1) [1, 1] T{_Smi} | |
226: ParallelMove r9 <- rcx, r8 <- r8, rsi <- C, rcx <- S+3 goto:100 B12 | |
228: B12[join]:96 pred(B11, B42) { | |
v24 <- phi(v14, v296 T{int}) alive [-9223372036854775808, 9223372036854775807] T{int} | |
v26 <- phi(v284, v174) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
v28 <- phi(v430, v67 T{int}) alive [-4611686018427387859, 4611686018427387948] int64 T{int} | |
} | |
230: Branch if StrictCompare:102(===, v3, v0) goto (13, 23) | |
232: B13[target]:106 | |
234: Branch if StrictCompare(===, v26, v37) T{bool} goto (14, 21) | |
236: B14[target]:118 | |
238: ParallelMove rcx <- r9 | |
238: v298 <- UnboxInt64(v24 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
240: ParallelMove rcx <- rcx | |
240: v43 <- BinaryInt64Op(+ [tr], v298 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
242: Branch if EqualityCompare(v43 == v8) T{bool} goto (15, 16) | |
244: B15[target]:130 | |
245: ParallelMove rax <- C | |
246: Return:134(v10) | |
248: B16[target]:136 | |
250: Branch if StrictCompare:138(===, v216, v128) goto (25, 30) | |
252: B25[target]:138 | |
254: v308 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
256: GenericCheckBound:138(v322, v308 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
258: ParallelMove rbx <- rdx | |
258: v92 <- LoadIndexed(v2 T{_OneByteString}, v308 T{int}) [0, 255] T{_Smi} | |
260: ParallelMove rdx <- rdx goto: B33 | |
262: B30[target]:138 | |
264: Branch if StrictCompare:138(===, v216, v129) goto (26, 31) | |
266: B26[target]:138 | |
268: v306 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
270: GenericCheckBound:138(v322, v306 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
272: v101 <- LoadIndexed(v2 T{_TwoByteString}, v306 T{int}) [0, 65535] T{_Smi} | |
274: ParallelMove rdx <- rbx goto: B33 | |
276: B31[target]:138 | |
278: Branch if StrictCompare:138(===, v216, v130) goto (27, 32) | |
280: B27[target]:138 | |
282: v304 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
284: GenericCheckBound:138(v322, v304 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
286: v110 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
288: ParallelMove r8 <- rdx | |
288: v112 <- LoadIndexed(v110, v304 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
290: ParallelMove rdx <- rdx goto: B33 | |
292: B32[target]:138 | |
294: v302 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
296: GenericCheckBound:138(v322, v302 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
298: v121 <- LoadUntagged(v2 T{_StringBase}, 16) T{*?} | |
300: v123 <- LoadIndexed(v121, v302 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
302: ParallelMove rdx <- r8 goto: B33 | |
304: B33[join]:139 pred(B25, B26, B27, B32) { | |
v131 <- phi(v92, v101, v112, v123) alive [-4611686018427387904, 4611686018427387903] int64 T{_Smi} | |
} | |
306: v344 <- UnboxedConstant(#32) [32, 32] T{_Smi} | |
308: ParallelMove rdx <- rdx | |
308: v50 <- BinaryInt64Op(| [tr], v131, v344) [-4611686018427387904, 4611686018427387903] T{int} | |
310: v346 <- UnboxedConstant(#120) [120, 120] T{_Smi} | |
312: Branch if EqualityCompare(v50 == v346) T{bool} goto (17, 20) | |
314: B17[target]:150 | |
316: ParallelMove rcx <- rcx | |
316: v55 <- BinaryInt64Op(+ [tr], v43, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
318: Branch if EqualityCompare(v55 == v8) T{bool} goto (18, 19) | |
320: B18[target]:162 | |
322: v318 <- BoxInt64(v55) [-9223372036854775808, 9223372036854775807] T{int} | |
324: PushArgument(v4) | |
326: PushArgument(v2) | |
328: PushArgument(v318 T{int}) | |
330: PushArgument(v0) | |
332: PushArgument(v0) | |
334: v64 <- StaticCall:164( _throwFormatException@0150898<0> v4, v2, v318 T{int}, v0, v0, result_type = T{int?}) T{int?} | |
335: ParallelMove rax <- rax | |
336: Return:168(v64) | |
338: B19[target]:170 | |
340: v60 <- RelationalOp(>, v28 T{int}, v336) T{bool} | |
342: v270 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
344: v320 <- BoxInt64(v55) [-9223372036854775808, 9223372036854775807] T{int} | |
346: v426 <- BoxInt64(v28 T{int}) | |
348: PushArgument(v2) | |
350: PushArgument(v59) | |
352: PushArgument(v320 T{int}) | |
354: PushArgument(v270 T{int}) | |
356: PushArgument(v426 T{int}) | |
358: PushArgument(v60) | |
360: PushArgument(v4) | |
362: v62 <- StaticCall:174( _parseRadix@0150898<0> v2, v59, v320 T{int}, v270 T{int}, v426 T{int}, v60, v4, result_type = T{int?}) T{int?} | |
363: ParallelMove rax <- rax | |
364: Return:178(v62) | |
366: B20[target]:180 | |
368: ParallelMove goto:186 B22 | |
370: B21[target]:182 | |
372: ParallelMove goto:188 B22 | |
374: B22[join]:184 pred(B20, B21) | |
376: ParallelMove rcx <- C goto:196 B24 | |
378: B23[target]:192 | |
380: ParallelMove rcx <- rcx goto:198 B24 | |
382: B24[join]:194 pred(B22, B23) { | |
v30 <- phi(v42, v3 T{_Smi}) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
} | |
384: v272 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
386: v428 <- BoxInt64(v28) | |
388: PushArgument(v2) | |
390: PushArgument(v30) | |
392: PushArgument(v24) | |
394: PushArgument(v272 T{int}) | |
396: PushArgument(v428 T{int}) | |
398: PushArgument(v34) | |
400: PushArgument(v4) | |
402: v35 <- StaticCall:200( _parseRadix@0150898<0> v2, v30, v24, v272 T{int}, v428 T{int}, v34, v4, result_type = T{int?}) T{int?} | |
403: ParallelMove rax <- rax | |
404: Return:204(v35) | |
*** END CFG |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*** BEGIN CFG | |
After AllocateRegisters | |
==== dart:core_int__parse@0150898 | |
0: B0[graph]:0 { | |
v0 <- Constant(#null) T{Null?} | |
v1 <- Constant(#<optimized out>) T{_OneByteString} | |
v7 <- Constant(#1) [1, 1] T{_Smi} | |
v10 <- Constant(#0) [0, 0] T{_Smi} | |
v13 <- Constant(#true) T{bool} | |
v18 <- Constant(#43) [43, 43] T{_Smi} | |
v21 <- Constant(#45) [45, 45] T{_Smi} | |
v34 <- Constant(#false) T{bool} | |
v37 <- Constant(#48) [48, 48] T{_Smi} | |
v42 <- Constant(#10) [10, 10] T{_Smi} | |
v49 <- Constant(#32) [32, 32] T{_Smi} | |
v52 <- Constant(#120) [120, 120] T{_Smi} | |
v59 <- Constant(#16) [16, 16] T{_Smi} | |
v66 <- Constant(#44) [44, 44] T{_Smi} | |
v128 <- Constant(#80) [80, 80] T{_Smi} | |
v129 <- Constant(#81) [81, 81] T{_Smi} | |
v130 <- Constant(#82) [82, 82] T{_Smi} | |
} | |
2: B1[function entry]:2 { | |
v2 <- Parameter(0) T{_StringBase} | |
v3 <- Parameter(1) T{_Smi?} | |
v4 <- Parameter(2) T{*?} | |
} | |
4: CheckStackOverflow:8(stack=0, loop=0) | |
6: PushArgument(v2) | |
8: v5 <- StaticCall:12( _lastNonWhitespace@0150898<0> v2, using unchecked entrypoint, result_type = T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
9: ParallelMove rax <- rax | |
10: v334 <- UnboxedConstant(#1) [1, 1] T{_Smi} | |
12: ParallelMove rax <- rax | |
12: v266 <- UnboxInt64(v5) [-9223372036854775808, 9223372036854775807] T{int} | |
14: ParallelMove rax <- rax | |
14: v8 <- BinaryInt64Op(+ [tr], v266 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
15: ParallelMove S-1 <- rax | |
16: v336 <- UnboxedConstant(#0) [0, 0] T{_Smi} | |
18: Branch if EqualityCompare(v8 == v336) T{bool} goto (3, 4) | |
20: B3[target]:24 ParallelMove rcx <- S+4 | |
22: v224 <- LoadField(v2 T{_StringBase} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
24: PushArgument(v4) | |
26: PushArgument(v2) | |
28: PushArgument(v224) | |
30: PushArgument(v3) | |
32: PushArgument(v0) | |
34: v79 <- StaticCall:28( _throwFormatException@0150898<0> v4, v2, v224, v3, v0, result_type = T{int?}) T{int?} | |
35: ParallelMove rax <- rax | |
36: Return:32(v79) | |
38: B4[target]:34 ParallelMove rcx <- S+4 | |
40: PushArgument(v2) | |
42: v14 <- StaticCall:36( _firstNonWhitespace@0150898<0> v2, using unchecked entrypoint, result_type = T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
43: ParallelMove rcx <- rax, rax <- S+4 | |
44: v216 <- LoadClassId(v2) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
46: Branch if StrictCompare:38(===, v216, v128) goto (43, 48) | |
48: B43[target]:38 | |
50: v177 <- LoadField(v2 T{_TwoByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
52: GenericCheckBound:38(v177, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
54: v181 <- LoadIndexed(v2 T{_TwoByteString}, v14 T{int}) [0, 65535] T{_Smi} | |
56: ParallelMove rsi <- rsi, rbx <- rbx goto: B51 | |
58: B48[target]:38 | |
60: Branch if StrictCompare:38(===, v216, v129) goto (44, 49) | |
62: B44[target]:38 | |
64: v186 <- LoadField(v2 T{_ExternalOneByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
66: GenericCheckBound:38(v186, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
68: v190 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
70: ParallelMove r8 <- rcx | |
70: v192 <- LoadIndexed(v190, v14 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
72: ParallelMove rsi <- rdi, rbx <- rbx goto: B51 | |
74: B49[target]:38 | |
76: Branch if StrictCompare:38(===, v216, v130) goto (45, 50) | |
78: B45[target]:38 | |
80: v197 <- LoadField(v2 T{_ExternalTwoByteString} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
82: GenericCheckBound:38(v197, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
84: v201 <- LoadUntagged(v2 T{_ExternalTwoByteString}, 16) T{*?} | |
86: v203 <- LoadIndexed(v201, v14 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
88: ParallelMove rsi <- rdi, rbx <- rbx goto: B51 | |
90: B50[target]:38 | |
92: v208 <- LoadField(v2 T{_StringBase} . String.length {final}) [0, 2305843009213693951] T{_Smi} | |
94: GenericCheckBound:38(v208, v14) [-9223372036854775808, 9223372036854775807] T{int} | |
96: ParallelMove rdi <- rcx | |
96: v212 <- LoadIndexed(v2 T{_StringBase}, v14 T{int}) [0, 255] T{_Smi} | |
98: ParallelMove rsi <- rsi, rbx <- rbx goto: B51 | |
100: B51[join]:39 pred(B43, B44, B45, B50) { | |
v217 <- phi(v181, v192, v203, v212) alive [-4611686018427387904, 4611686018427387903] int64 T{_Smi} | |
v322 <- phi(v177, v186, v197, v208) alive [0, 2305843009213693951] T{_Smi} | |
} | |
102: v338 <- UnboxedConstant(#43) [43, 43] T{_Smi} | |
104: Branch if EqualityCompare(v217 == v338) T{bool} goto (7, 5) | |
106: B7[target]:62 | |
108: ParallelMove rdi <- S-1 goto:64 B6 | |
110: B5[target]:58 | |
112: v340 <- UnboxedConstant(#45) [45, 45] T{_Smi} | |
114: Branch if EqualityCompare(v217 == v340) T{bool} goto (8, 11) | |
116: B8[target]:66 | |
118: ParallelMove rdi <- S-1 goto:68 B6 | |
120: B6[join]:60 pred(B7, B8) | |
122: v342 <- UnboxedConstant(#44) [44, 44] T{_Smi} | |
124: ParallelMove r8 <- C | |
124: v67 <- BinaryInt64Op(- [tr], v342, v217) [-4611686018427387859, 4611686018427387948] T{int} | |
126: ParallelMove rcx <- rcx | |
126: v274 <- UnboxInt64(v14) [-9223372036854775808, 9223372036854775807] T{int} | |
128: ParallelMove rcx <- rcx | |
128: v69 <- BinaryInt64Op(+ [tr], v274 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
130: Branch if EqualityCompare(v69 == v8) T{bool} goto (9, 10) | |
132: B9[target]:82 | |
134: v268 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
136: PushArgument(v4) | |
138: PushArgument(v2) | |
140: PushArgument(v268 T{int}) | |
142: PushArgument(v3) | |
144: PushArgument(v0) | |
146: v75 <- StaticCall:84( _throwFormatException@0150898<0> v4, v2, v268 T{int}, v3, v0, result_type = T{int?}) T{int?} | |
147: ParallelMove rax <- rax | |
148: Return:88(v75) | |
150: B10[target]:90 | |
152: Branch if StrictCompare:92(===, v216, v128) goto (34, 39) | |
154: B34[target]:92 | |
156: v294 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
158: GenericCheckBound:92(v322, v294 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
160: v138 <- LoadIndexed(v2 T{_TwoByteString}, v294 T{int}) [0, 65535] T{_Smi} | |
162: v140 <- BoxInt64(v138) [0, 65535] T{_Smi} | |
164: ParallelMove rsi <- rsi goto: B42 | |
166: B39[target]:92 | |
168: Branch if StrictCompare:92(===, v216, v129) goto (35, 40) | |
170: B35[target]:92 | |
172: v292 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
174: GenericCheckBound:92(v322, v292 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
176: v147 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
178: ParallelMove r10 <- rsi | |
178: v149 <- LoadIndexed(v147, v292 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
180: v151 <- BoxInt64(v149) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
182: ParallelMove rsi <- r9 goto: B42 | |
184: B40[target]:92 | |
186: Branch if StrictCompare:92(===, v216, v130) goto (36, 41) | |
188: B36[target]:92 | |
190: v290 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
192: GenericCheckBound:92(v322, v290 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
194: v158 <- LoadUntagged(v2 T{_ExternalTwoByteString}, 16) T{*?} | |
196: v160 <- LoadIndexed(v158, v290 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
198: v162 <- BoxInt64(v160) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
200: ParallelMove rsi <- rsi goto: B42 | |
202: B41[target]:92 | |
204: v288 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
206: GenericCheckBound:92(v322, v288 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
208: ParallelMove r9 <- rsi | |
208: v169 <- LoadIndexed(v2 T{_StringBase}, v288 T{int}) [0, 255] T{_Smi} | |
210: v171 <- BoxInt64(v169) [0, 255] T{_Smi} | |
212: ParallelMove rsi <- r9 goto: B42 | |
214: B42[join]:93 pred(B34, B35, B36, B41) { | |
v174 <- phi(v140, v151, v162, v171) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
} | |
216: v296 <- BoxInt64(v69) [-9223372036854775808, 9223372036854775807] T{int} | |
218: ParallelMove r9 <- r9, r8 <- rsi, rsi <- r8, rcx <- S+3 goto:98 B12 | |
220: B11[target]:94 ParallelMove rdi <- S-1 | |
222: v284 <- BoxInt64(v217) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
224: v430 <- UnboxedConstant(#1) [1, 1] T{_Smi} | |
226: ParallelMove r9 <- rcx, r8 <- r8, rsi <- C, rcx <- S+3 goto:100 B12 | |
228: B12[join]:96 pred(B11, B42) { | |
v24 <- phi(v14, v296 T{int}) alive [-9223372036854775808, 9223372036854775807] T{int} | |
v26 <- phi(v284, v174) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
v28 <- phi(v430, v67 T{int}) alive [-4611686018427387859, 4611686018427387948] int64 T{int} | |
} | |
230: Branch if StrictCompare:102(===, v3, v0) goto (13, 23) | |
232: B13[target]:106 | |
234: Branch if StrictCompare(===, v26, v37) T{bool} goto (14, 21) | |
236: B14[target]:118 | |
238: ParallelMove rcx <- r9 | |
238: v298 <- UnboxInt64(v24 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
240: ParallelMove rcx <- rcx | |
240: v43 <- BinaryInt64Op(+ [tr], v298 T{int}, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
242: Branch if EqualityCompare(v43 == v8) T{bool} goto (15, 16) | |
244: B15[target]:130 | |
245: ParallelMove rax <- C | |
246: Return:134(v10) | |
248: B16[target]:136 | |
250: Branch if StrictCompare:138(===, v216, v128) goto (25, 30) | |
252: B25[target]:138 | |
254: v308 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
256: GenericCheckBound:138(v322, v308 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
258: v92 <- LoadIndexed(v2 T{_TwoByteString}, v308 T{int}) [0, 65535] T{_Smi} | |
260: ParallelMove rdx <- rbx goto: B33 | |
262: B30[target]:138 | |
264: Branch if StrictCompare:138(===, v216, v129) goto (26, 31) | |
266: B26[target]:138 | |
268: v306 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
270: GenericCheckBound:138(v322, v306 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
272: v101 <- LoadUntagged(v2 T{_ExternalOneByteString}, 16) T{*?} | |
274: ParallelMove r8 <- rdx | |
274: v103 <- LoadIndexed(v101, v306 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
276: ParallelMove rdx <- rdx goto: B33 | |
278: B31[target]:138 | |
280: Branch if StrictCompare:138(===, v216, v130) goto (27, 32) | |
282: B27[target]:138 | |
284: v304 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
286: GenericCheckBound:138(v322, v304 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
288: v112 <- LoadUntagged(v2 T{_ExternalTwoByteString}, 16) T{*?} | |
290: v114 <- LoadIndexed(v112, v304 T{int}) [-4611686018427387904, 4611686018427387903] T{_Smi} | |
292: ParallelMove rdx <- r8 goto: B33 | |
294: B32[target]:138 | |
296: v302 <- BoxInt64(v43) [-9223372036854775808, 9223372036854775807] T{int} | |
298: GenericCheckBound:138(v322, v302 T{int}) [-9223372036854775808, 9223372036854775807] T{int} | |
300: ParallelMove rbx <- rdx | |
300: v123 <- LoadIndexed(v2 T{_StringBase}, v302 T{int}) [0, 255] T{_Smi} | |
302: ParallelMove rdx <- rdx goto: B33 | |
304: B33[join]:139 pred(B25, B26, B27, B32) { | |
v131 <- phi(v92, v103, v114, v123) alive [-4611686018427387904, 4611686018427387903] int64 T{_Smi} | |
} | |
306: v344 <- UnboxedConstant(#32) [32, 32] T{_Smi} | |
308: ParallelMove rdx <- rdx | |
308: v50 <- BinaryInt64Op(| [tr], v131, v344) [-4611686018427387904, 4611686018427387903] T{int} | |
310: v346 <- UnboxedConstant(#120) [120, 120] T{_Smi} | |
312: Branch if EqualityCompare(v50 == v346) T{bool} goto (17, 20) | |
314: B17[target]:150 | |
316: ParallelMove rcx <- rcx | |
316: v55 <- BinaryInt64Op(+ [tr], v43, v334) [-9223372036854775808, 9223372036854775807] T{int} | |
318: Branch if EqualityCompare(v55 == v8) T{bool} goto (18, 19) | |
320: B18[target]:162 | |
322: v318 <- BoxInt64(v55) [-9223372036854775808, 9223372036854775807] T{int} | |
324: PushArgument(v4) | |
326: PushArgument(v2) | |
328: PushArgument(v318 T{int}) | |
330: PushArgument(v0) | |
332: PushArgument(v0) | |
334: v64 <- StaticCall:164( _throwFormatException@0150898<0> v4, v2, v318 T{int}, v0, v0, result_type = T{int?}) T{int?} | |
335: ParallelMove rax <- rax | |
336: Return:168(v64) | |
338: B19[target]:170 | |
340: v60 <- RelationalOp(>, v28 T{int}, v336) T{bool} | |
342: v270 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
344: v320 <- BoxInt64(v55) [-9223372036854775808, 9223372036854775807] T{int} | |
346: v426 <- BoxInt64(v28 T{int}) | |
348: PushArgument(v2) | |
350: PushArgument(v59) | |
352: PushArgument(v320 T{int}) | |
354: PushArgument(v270 T{int}) | |
356: PushArgument(v426 T{int}) | |
358: PushArgument(v60) | |
360: PushArgument(v4) | |
362: v62 <- StaticCall:174( _parseRadix@0150898<0> v2, v59, v320 T{int}, v270 T{int}, v426 T{int}, v60, v4, result_type = T{int?}) T{int?} | |
363: ParallelMove rax <- rax | |
364: Return:178(v62) | |
366: B20[target]:180 | |
368: ParallelMove goto:186 B22 | |
370: B21[target]:182 | |
372: ParallelMove goto:188 B22 | |
374: B22[join]:184 pred(B20, B21) | |
376: ParallelMove rcx <- C goto:196 B24 | |
378: B23[target]:192 | |
380: ParallelMove rcx <- rcx goto:198 B24 | |
382: B24[join]:194 pred(B22, B23) { | |
v30 <- phi(v42, v3 T{_Smi}) alive [-4611686018427387904, 4611686018427387903] T{_Smi} | |
} | |
384: v272 <- BoxInt64(v8) [-9223372036854775808, 9223372036854775807] T{int} | |
386: v428 <- BoxInt64(v28) | |
388: PushArgument(v2) | |
390: PushArgument(v30) | |
392: PushArgument(v24) | |
394: PushArgument(v272 T{int}) | |
396: PushArgument(v428 T{int}) | |
398: PushArgument(v34) | |
400: PushArgument(v4) | |
402: v35 <- StaticCall:200( _parseRadix@0150898<0> v2, v30, v24, v272 T{int}, v428 T{int}, v34, v4, result_type = T{int?}) T{int?} | |
403: ParallelMove rax <- rax | |
404: Return:204(v35) | |
*** END CFG |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment