Skip to content

Instantly share code, notes, and snippets.

@aam
Created May 29, 2020 16:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aam/d06a515b304682410f6b55607fcaff01 to your computer and use it in GitHub Desktop.
Save aam/d06a515b304682410f6b55607fcaff01 to your computer and use it in GitHub Desktop.
*** 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
*** 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