Skip to content

Instantly share code, notes, and snippets.

@mraleph
Created April 10, 2015 11:11
Show Gist options
  • Save mraleph/be3de64f860c78ca640b to your computer and use it in GitHub Desktop.
Save mraleph/be3de64f860c78ca640b to your computer and use it in GitHub Desktop.
--- FUNCTION SOURCE () id{0,0} ---
var iterations = 2;
print("Running (" + iterations + ")... ");
var testData = new Uint8Array(1024 * 1024);
for (var i = 0; i < 1024 * 1024; i++) {
testData[i] = i % 256;
}
var key = [0x80]; for (i = 1; i < 32; i++) key[i] = 0x07;
var nonce = []; for (i = 0; i < 8; i++) nonce[i] = 0x01;
if (iterations < 100) {
print("Working...");
}
var taemb = new Uint8Array(testData.length);
var start = Date.now();
var chacha20 = new ChaCha20(key, nonce);
for (var i = 0; i < iterations; i++) {
//if (iterations > 200 && i % (iterations / 100) == 0) {
print(i + "/" + iterations);
//}
chacha20.encryptToBuffer(testData, taemb);
}
var dT = Date.now() - start;
var msg = "Speed: " + (iterations / (dT / 1000)) + "MB/s";
print(msg);
--- END ---
--- Raw source ---
var iterations = 2;
print("Running (" + iterations + ")... ");
var testData = new Uint8Array(1024 * 1024);
for (var i = 0; i < 1024 * 1024; i++) {
testData[i] = i % 256;
}
var key = [0x80]; for (i = 1; i < 32; i++) key[i] = 0x07;
var nonce = []; for (i = 0; i < 8; i++) nonce[i] = 0x01;
if (iterations < 100) {
print("Working...");
}
var taemb = new Uint8Array(testData.length);
var start = Date.now();
var chacha20 = new ChaCha20(key, nonce);
for (var i = 0; i < iterations; i++) {
//if (iterations > 200 && i % (iterations / 100) == 0) {
print(i + "/" + iterations);
//}
chacha20.encryptToBuffer(testData, taemb);
}
var dT = Date.now() - start;
var msg = "Speed: " + (iterations / (dT / 1000)) + "MB/s";
print(msg);
--- Optimized code ---
optimization_id = 0
source_position = 0
kind = OPTIMIZED_FUNCTION
stack_slots = 5
Instructions (size = 814)
0x45834280 0 33d2 xor edx,edx
0x45834282 2 f7c404000000 test esp,0x4
0x45834288 8 751f jnz 41 (0x458342a9)
0x4583428a 10 6a00 push 0x0
0x4583428c 12 89e3 mov ebx,esp
0x4583428e 14 ba02000000 mov edx,0x2
0x45834293 19 b902000000 mov ecx,0x2
0x45834298 24 8b4304 mov eax,[ebx+0x4]
0x4583429b 27 8903 mov [ebx],eax
0x4583429d 29 83c304 add ebx,0x4
0x458342a0 32 49 dec ecx
0x458342a1 33 75f5 jnz 24 (0x45834298)
0x458342a3 35 c70378563412 mov [ebx],0x12345678
0x458342a9 41 55 push ebp
0x458342aa 42 89e5 mov ebp,esp
0x458342ac 44 56 push esi
0x458342ad 45 57 push edi
0x458342ae 46 83ec14 sub esp,0x14
;;; Store dynamic frame alignment tag for spilled doubles
0x458342b1 49 8955f4 mov [ebp-0xc],edx
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x458342b4 52 8b45fc mov eax,[ebp-0x4] ;; debug: position 0
;;; <@3,#1> gap
0x458342b7 55 8945ec mov [ebp-0x14],eax
;;; <@8,#7> -------------------- B1 --------------------
;;; <@9,#7> gap
0x458342ba 58 89c6 mov esi,eax
;;; <@10,#8> declare-globals
0x458342bc 60 56 push esi
0x458342bd 61 68c9da8826 push 0x2688dac9 ;; object: 0x2688dac9 <FixedArray[22]>
0x458342c2 66 6a00 push 0x0
0x458342c4 68 b803000000 mov eax,0x3
0x458342c9 73 bb008c4708 mov ebx,0x8478c00
0x458342ce 78 e84d7afdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@12,#9> lazy-bailout
;;; <@13,#9> gap
0x458342d3 83 8b75ec mov esi,[ebp-0x14]
;;; <@14,#10> stack-check
0x458342d6 86 66 nop
0x458342d7 87 90 nop
0x458342d8 88 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x458342de 94 7305 jnc 101 (0x458342e5)
0x458342e0 96 e8dbacffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@16,#10> lazy-bailout
;;; <@18,#14> push-argument
0x458342e5 101 68e1bd8826 push 0x2688bde1 ;; debug: position 15
;; object: 0x2688bde1 <String[10]: iterations>
;;; <@20,#14> push-argument
0x458342ea 106 6a00 push 0x0
;;; <@22,#14> push-argument
0x458342ec 108 6a04 push 0x4
;;; <@23,#14> gap
0x458342ee 110 8b75ec mov esi,[ebp-0x14]
;;; <@24,#15> call-runtime
0x458342f1 113 b803000000 mov eax,0x3
0x458342f6 118 bb50924708 mov ebx,0x8479250
0x458342fb 123 e8207afdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@26,#16> lazy-bailout
;;; <@28,#26> check-maps
;;; <@30,#27> push-argument
0x45834300 128 ff35ec80c039 push [0x39c080ec] ;; debug: position 20
;; property cell
;;; <@32,#27> push-argument
0x45834306 134 ff35f480c039 push [0x39c080f4] ;; property cell
;;; <@34,#29> constant-e
0x4583430c 140 8d1590e70408 lea edx,[0x804e790]
;;; <@36,#17> constant-t
0x45834312 146 bf99ac8826 mov edi,0x2688ac99 ;; object: 0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)>
;;; <@38,#4> constant-t
0x45834317 151 bbb1808026 mov ebx,0x268080b1 ;; debug: position 0
;; object: 0x268080b1 <undefined>
;;; <@40,#25> constant-t
0x4583431c 156 8b0dfc80c039 mov ecx,[0x39c080fc] ;; debug: position 20
;; property cell
;;; <@41,#25> gap
0x45834322 162 8b75ec mov esi,[ebp-0x14]
;;; <@42,#32> call-with-descriptor
0x45834325 165 e816feffff call 0x45834140 ;; code: STUB, CallApiAccessorStub, minor: 6
;;; <@44,#33> lazy-bailout
;;; <@46,#38> push-argument
0x4583432a 170 6859438826 push 0x26884359 ;; debug: position 78
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@48,#38> push-argument
0x4583432f 175 6800002000 push 0x200000
;;; <@50,#36> constant-t
0x45834334 180 bf59438826 mov edi,0x26884359 ;; debug: position 82
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@51,#36> gap
0x45834339 185 8b75ec mov esi,[ebp-0x14]
;;; <@52,#39> call-new
0x4583433c 188 bbb1808026 mov ebx,0x268080b1 ;; debug: position 78
;; object: 0x268080b1 <undefined>
0x45834341 193 b801000000 mov eax,0x1
0x45834346 198 e87514ffff call 0x458257c0 ;; code: constructor, STUB, CallConstructStub, minor: 0
;;; <@54,#40> lazy-bailout
;;; <@56,#41> push-argument
0x4583434b 203 6825be8826 push 0x2688be25 ;; debug: position 76
;; object: 0x2688be25 <String[8]: testData>
;;; <@58,#41> push-argument
0x45834350 208 6a00 push 0x0
;;; <@60,#41> push-argument
0x45834352 210 50 push eax
;;; <@61,#41> gap
0x45834353 211 8b75ec mov esi,[ebp-0x14]
;;; <@62,#42> call-runtime
0x45834356 214 b803000000 mov eax,0x3
0x4583435b 219 bb50924708 mov ebx,0x8479250
0x45834360 224 e8bb79fdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@64,#43> lazy-bailout
;;; <@66,#45> constant-t
0x45834365 229 b8c5c38826 mov eax,0x2688c3c5 ;; debug: position 118
;; object: 0x2688c3c5 PropertyCell for 626791
;;; <@68,#46> store-named-field
0x4583436a 234 c7400300000000 mov [eax+0x3],0x0
;;; <@71,#49> goto
0x45834371 241 e942000000 jmp 312 (0x458343b8) ;; debug: position 107
;;; <@72,#53> -------------------- B2 (OSR entry) --------------------
0x45834376 246 33d2 xor edx,edx
0x45834378 248 f7c504000000 test ebp,0x4
0x4583437e 254 7422 jz 290 (0x458343a2)
0x45834380 256 6a00 push 0x0
0x45834382 258 89e3 mov ebx,esp
0x45834384 260 ba02000000 mov edx,0x2
0x45834389 265 b906000000 mov ecx,0x6
0x4583438e 270 8b4304 mov eax,[ebx+0x4]
0x45834391 273 8903 mov [ebx],eax
0x45834393 275 83c304 add ebx,0x4
0x45834396 278 49 dec ecx
0x45834397 279 75f5 jnz 270 (0x4583438e)
0x45834399 281 c70378563412 mov [ebx],0x12345678
0x4583439f 287 83ed04 sub ebp,0x4
0x458343a2 290 ff75f4 push [ebp-0xc]
0x458343a5 293 8955f4 mov [ebp-0xc],edx
0x458343a8 296 83ec0c sub esp,0xc
;;; <@82,#59> context
0x458343ab 299 8b75fc mov esi,[ebp-0x4]
;;; <@84,#61> gap
0x458343ae 302 8b5508 mov edx,[ebp+0x8]
0x458343b1 305 89f1 mov ecx,esi
;;; <@85,#61> goto
0x458343b3 307 e906000000 jmp 318 (0x458343be)
;;; <@86,#50> -------------------- B3 --------------------
;;; <@88,#52> gap
0x458343b8 312 8b5508 mov edx,[ebp+0x8]
0x458343bb 315 8b4dec mov ecx,[ebp-0x14]
;;; <@90,#68> -------------------- B4 --------------------
0x458343be 318 8955e4 mov [ebp-0x1c],edx
0x458343c1 321 894de8 mov [ebp-0x18],ecx
;;; <@92,#93> check-maps
;;; <@94,#95> check-maps
;;; <@96,#97> check-maps
;;; <@98,#85> constant-t
0x458343c4 324 8b050481c039 mov eax,[0x39c08104] ;; debug: position 163
;; debug: position 151
;; property cell
;;; <@100,#98> load-named-field
0x458343ca 330 8b4007 mov eax,[eax+0x7] ;; debug: position 163
;;; <@102,#99> load-named-field
0x458343cd 333 8b5803 mov ebx,[eax+0x3]
;;; <@104,#100> load-named-field
0x458343d0 336 8b7007 mov esi,[eax+0x7]
;;; <@106,#485> smi-untag
0x458343d3 339 d1fb sar ebx,1
;;; <@110,#71> -------------------- B5 (loop header) --------------------
;;; <@112,#72> constant-t
0x458343d5 341 b8c5c38826 mov eax,0x2688c3c5 ;; debug: position 123
;; object: 0x2688c3c5 PropertyCell for 626791
;;; <@114,#73> load-named-field
0x458343da 346 8b4003 mov eax,[eax+0x3]
;;; <@115,#73> gap
0x458343dd 349 89c7 mov edi,eax
;;; <@116,#481> check-smi
0x458343df 351 f7c701000000 test edi,0x1
0x458343e5 357 0f8541010000 jnz 684 (0x4583452c)
;;; <@119,#75> compare-numeric-and-branch
0x458343eb 363 81ff00002000 cmp edi,0x200000 ;; debug: position 125
0x458343f1 369 0f8d47000000 jnl 446 (0x4583443e)
;;; <@120,#76> -------------------- B6 (unreachable/replaced) --------------------
;;; <@124,#82> -------------------- B7 --------------------
;;; <@126,#84> stack-check
0x458343f7 375 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 107
0x458343fd 381 0f82b7000000 jc 570 (0x458344ba)
;;; <@128,#483> tagged-to-i
0x45834403 387 d1f8 sar eax,1 ;; debug: position 165
0x45834405 389 0f82c5000000 jc 592 (0x458344d0)
;;; <@129,#483> gap
0x4583440b 395 89c1 mov ecx,eax
;;; <@130,#91> mod-by-power-of-2-i
0x4583440d 397 85c9 test ecx,ecx ;; debug: position 167
0x4583440f 399 790c jns 413 (0x4583441d)
0x45834411 401 f7d9 neg ecx
0x45834413 403 81e1ff000000 and ecx,0xff
0x45834419 409 f7d9 neg ecx
0x4583441b 411 eb06 jmp 419 (0x45834423)
0x4583441d 413 81e1ff000000 and ecx,0xff
;;; <@132,#101> bounds-check
0x45834423 419 3bc3 cmp eax,ebx ;; debug: position 163
0x45834425 421 0f8306010000 jnc 689 (0x45834531)
;;; <@133,#101> gap
0x4583442b 427 91 xchg eax, ecx
;;; <@134,#102> store-keyed
0x4583442c 428 88040e mov_b [esi+ecx*1],al
;;; <@136,#107> add-i
0x4583442f 431 8d4702 lea eax,[edi+0x2] ;; debug: position 141
;;; <@137,#107> gap
0x45834432 434 89c1 mov ecx,eax
;;; <@138,#487> dummy-use
;;; <@140,#72> constant-t
0x45834434 436 b8c5c38826 mov eax,0x2688c3c5 ;; debug: position 123
;; object: 0x2688c3c5 PropertyCell for 626791
;;; <@142,#109> store-named-field
0x45834439 441 894803 mov [eax+0x3],ecx ;; debug: position 141
;;; <@145,#112> goto
0x4583443c 444 eb97 jmp 341 (0x458343d5) ;; debug: position 107
;;; <@146,#79> -------------------- B8 (unreachable/replaced) --------------------
;;; <@150,#113> -------------------- B9 --------------------
;;; <@152,#117> allocate
0x4583443e 446 8b0d04a8b608 mov ecx,[0x8b6a804] ;; debug: position 184
;; debug: position 186
0x45834444 452 89c8 mov eax,ecx
0x45834446 454 83c010 add eax,0x10
0x45834449 457 0f82ba000000 jc 649 (0x45834509)
0x4583444f 463 3b0508a8b608 cmp eax,[0x8b6a808]
0x45834455 469 0f87ae000000 ja 649 (0x45834509)
0x4583445b 475 890504a8b608 mov [0x8b6a804],eax
0x45834461 481 41 inc ecx
;;; <@154,#119> store-named-field
0x45834462 482 c7410799808026 mov [ecx+0x7],0x26808099 ;; object: 0x26808099 <FixedArray[0]>
;;; <@156,#121> store-named-field
0x45834469 489 c741ffddc82030 mov [ecx-0x1],0x3020c8dd ;; object: 0x3020c8dd <Map(elements=0)>
;;; <@158,#123> store-named-field
0x45834470 496 c7410399808026 mov [ecx+0x3],0x26808099 ;; object: 0x26808099 <FixedArray[0]>
;;; <@160,#125> store-named-field
0x45834477 503 c7410b02000000 mov [ecx+0xb],0x2
;;; <@162,#126> constant-t
0x4583447e 510 8b050c81c039 mov eax,[0x39c0810c] ;; property cell
;;; <@164,#127> store-named-field
0x45834484 516 894107 mov [ecx+0x7],eax
;;; <@166,#129> push-argument
0x45834487 519 6859be8826 push 0x2688be59 ;; debug: position 184
;; object: 0x2688be59 <String[3]: key>
;;; <@168,#129> push-argument
0x4583448c 524 6a00 push 0x0
;;; <@170,#129> push-argument
0x4583448e 526 51 push ecx
;;; <@171,#129> gap
0x4583448f 527 8b75e8 mov esi,[ebp-0x18]
;;; <@172,#130> call-runtime
0x45834492 530 b803000000 mov eax,0x3
0x45834497 535 bb50924708 mov ebx,0x8479250
0x4583449c 540 e87f78fdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@174,#131> lazy-bailout
;;; <@176,#72> constant-t
0x458344a1 545 b8c5c38826 mov eax,0x2688c3c5 ;; debug: position 123
;; object: 0x2688c3c5 PropertyCell for 626791
;;; <@178,#134> store-named-field
0x458344a6 550 c7400302000000 mov [eax+0x3],0x2 ;; debug: position 201
;;; <@182,#141> -------------------- B10 (loop header) --------------------
;;; <@184,#72> constant-t
0x458344ad 557 b8c5c38826 mov eax,0x2688c3c5 ;; debug: position 206
;; debug: position 123
;; object: 0x2688c3c5 PropertyCell for 626791
;;; <@186,#143> load-named-field
0x458344b2 562 8b4003 mov eax,[eax+0x3] ;; debug: position 206
;;; <@189,#145> deoptimize
0x458344b5 565 e8b45b5d12 call 0x57e0a06e ;; debug: position 208
;; debug: position 106496
;; debug: deopt reason 'Insufficient type feedback for combined type of binary operation'
;; soft deoptimization bailout 11
;;; <@190,#146> -------------------- B11 (unreachable/replaced) --------------------
;;; <@200,#150> -------------------- B12 (unreachable/replaced) --------------------
;;; <@204,#156> -------------------- B13 (unreachable/replaced) --------------------
;;; <@218,#165> -------------------- B14 (unreachable/replaced) --------------------
;;; <@250,#153> -------------------- B15 (unreachable/replaced) --------------------
;;; <@254,#176> -------------------- B16 (unreachable/replaced) --------------------
;;; <@306,#204> -------------------- B17 (unreachable/replaced) --------------------
;;; <@314,#209> -------------------- B18 (unreachable/replaced) --------------------
;;; <@324,#213> -------------------- B19 (unreachable/replaced) --------------------
;;; <@328,#219> -------------------- B20 (unreachable/replaced) --------------------
;;; <@342,#228> -------------------- B21 (unreachable/replaced) --------------------
;;; <@374,#216> -------------------- B22 (unreachable/replaced) --------------------
;;; <@378,#239> -------------------- B23 (unreachable/replaced) --------------------
;;; <@382,#243> -------------------- B24 (unreachable/replaced) --------------------
;;; <@392,#250> -------------------- B25 (unreachable/replaced) --------------------
;;; <@396,#268> -------------------- B26 (unreachable/replaced) --------------------
;;; <@400,#247> -------------------- B27 (unreachable/replaced) --------------------
;;; <@404,#253> -------------------- B28 (unreachable/replaced) --------------------
;;; <@430,#271> -------------------- B29 (unreachable/replaced) --------------------
;;; <@434,#277> -------------------- B30 (unreachable/replaced) --------------------
;;; <@508,#319> -------------------- B31 (unreachable/replaced) --------------------
;;; <@516,#324> -------------------- B32 (unreachable/replaced) --------------------
;;; <@526,#328> -------------------- B33 (unreachable/replaced) --------------------
;;; <@530,#334> -------------------- B34 (unreachable/replaced) --------------------
;;; <@540,#342> -------------------- B35 (unreachable/replaced) --------------------
;;; <@564,#351> -------------------- B36 (unreachable/replaced) --------------------
;;; <@568,#353> -------------------- B37 (unreachable/replaced) --------------------
;;; <@646,#331> -------------------- B38 (unreachable/replaced) --------------------
;;; <@650,#384> -------------------- B39 (unreachable/replaced) --------------------
;;; <@668,#396> -------------------- B40 (unreachable/replaced) --------------------
;;; <@672,#398> -------------------- B41 (unreachable/replaced) --------------------
;;; <@700,#412> -------------------- B42 (unreachable/replaced) --------------------
;;; <@712,#416> -------------------- B43 (unreachable/replaced) --------------------
;;; <@744,#433> -------------------- B44 (unreachable/replaced) --------------------
;;; <@748,#435> -------------------- B45 (unreachable/replaced) --------------------
;;; <@752,#424> -------------------- B46 (unreachable/replaced) --------------------
;;; <@774,#431> -------------------- B47 (unreachable/replaced) --------------------
;;; <@778,#440> -------------------- B48 (unreachable/replaced) --------------------
;;; <@786,#429> -------------------- B49 (unreachable/replaced) --------------------
;;; <@790,#437> -------------------- B50 (unreachable/replaced) --------------------
;;; <@800,#446> -------------------- B51 (unreachable/replaced) --------------------
;;; <@126,#84> -------------------- Deferred stack-check --------------------
0x458344ba 570 60 pushad ;; debug: position 107
0x458344bb 571 8b75fc mov esi,[ebp-0x4]
0x458344be 574 33c0 xor eax,eax
0x458344c0 576 bb003d4608 mov ebx,0x8463d00
0x458344c5 581 e8f676fdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x458344ca 586 61 popad
0x458344cb 587 e933ffffff jmp 387 (0x45834403)
;;; <@128,#483> -------------------- Deferred tagged-to-i --------------------
0x458344d0 592 8d044501000000 lea eax,[eax*2+0x1] ;; debug: position 165
0x458344d7 599 8178ff0d822030 cmp [eax-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x458344de 606 0f8552000000 jnz 694 (0x45834536)
0x458344e4 612 f20f104003 movsd xmm0,[eax+0x3]
0x458344e9 617 f20f2cc0 cvttsd2si eax,xmm0
0x458344ed 621 0f57c9 xorps xmm1,xmm1
0x458344f0 624 f20f2ac8 cvtsi2sd xmm1,eax
0x458344f4 628 660f2ec1 ucomisd xmm0,xmm1
0x458344f8 632 0f853d000000 jnz 699 (0x4583453b)
0x458344fe 638 0f8a3c000000 jpe 704 (0x45834540)
0x45834504 644 e902ffffff jmp 395 (0x4583440b)
;;; <@152,#117> -------------------- Deferred allocate --------------------
0x45834509 649 33c9 xor ecx,ecx ;; debug: position 186
0x4583450b 651 60 pushad
0x4583450c 652 6a20 push 0x20
0x4583450e 654 6a00 push 0x0
0x45834510 656 8b75e8 mov esi,[ebp-0x18]
0x45834513 659 b802000000 mov eax,0x2
0x45834518 664 bb203e4608 mov ebx,0x8463e20
0x4583451d 669 e89e76fdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x45834522 674 89442418 mov [esp+0x18],eax
0x45834526 678 61 popad
0x45834527 679 e936ffffff jmp 482 (0x45834462)
;;; -------------------- Jump table --------------------
0x4583452c 684 e8155bfdf6 call 0x3c80a046 ;; debug: position 62976
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 7
0x45834531 689 e8245bfdf6 call 0x3c80a05a ;; debug: position 83456
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 9
0x45834536 694 e83d5bfdf6 call 0x3c80a078 ;; debug: position 84480
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 12
0x4583453b 699 e8385bfdf6 call 0x3c80a078 ;; debug: position 84480
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 12
0x45834540 704 e8335bfdf6 call 0x3c80a078 ;; debug: position 84480
;; debug: deopt reason 'NaN'
;; deoptimization bailout 12
0x45834545 709 90 nop
0x45834546 710 90 nop
0x45834547 711 90 nop
0x45834548 712 90 nop
0x45834549 713 90 nop
0x4583454a 714 66 nop
0x4583454b 715 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 13)
index ast id argc pc
0 3 0 83
1 3 0 101
2 29 0 128
3 41 0 170
4 75 0 203
5 66 0 229
6 85 0 -1
7 83 0 -1
8 87 0 387
9 87 0 -1
10 143 0 545
11 159 0 -1
12 87 0 -1
Safepoints (size = 98)
0x458342d3 83 00100 (sp -> fp) 0
0x458342e5 101 00100 (sp -> fp) 1
0x45834300 128 00100 (sp -> fp) 2
0x4583432a 170 00100 (sp -> fp) 3
0x4583434b 203 00100 (sp -> fp) 4
0x45834365 229 00100 (sp -> fp) 5
0x458344a1 545 11000 (sp -> fp) 10
0x458344ca 586 11000 | eax | edx (sp -> fp) 8
0x45834522 674 11000 | ecx | edx (sp -> fp) <none> argc: 2
RelocInfo (size = 1246)
0x458342b1 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x458342b4 position (0)
0x458342b4 comment (;;; <@0,#0> -------------------- B0 --------------------)
0x458342b4 comment (;;; <@2,#1> context)
0x458342b7 comment (;;; <@3,#1> gap)
0x458342ba comment (;;; <@8,#7> -------------------- B1 --------------------)
0x458342ba comment (;;; <@9,#7> gap)
0x458342bc comment (;;; <@10,#8> declare-globals)
0x458342be embedded object (0x2688dac9 <FixedArray[22]>)
0x458342cf code target (STUB) (0x4580bd20)
0x458342d3 comment (;;; <@12,#9> lazy-bailout)
0x458342d3 comment (;;; <@13,#9> gap)
0x458342d6 comment (;;; <@14,#10> stack-check)
0x458342e1 code target (BUILTIN) (0x4582efc0)
0x458342e5 comment (;;; <@16,#10> lazy-bailout)
0x458342e5 comment (;;; <@18,#14> push-argument)
0x458342e5 position (15)
0x458342e6 embedded object (0x2688bde1 <String[10]: iterations>)
0x458342ea comment (;;; <@20,#14> push-argument)
0x458342ec comment (;;; <@22,#14> push-argument)
0x458342ee comment (;;; <@23,#14> gap)
0x458342f1 comment (;;; <@24,#15> call-runtime)
0x458342fc code target (STUB) (0x4580bd20)
0x45834300 comment (;;; <@26,#16> lazy-bailout)
0x45834300 comment (;;; <@28,#26> check-maps)
0x45834300 position (20)
0x45834300 comment (;;; <@30,#27> push-argument)
0x45834302 property cell
0x45834306 comment (;;; <@32,#27> push-argument)
0x45834308 property cell
0x4583430c comment (;;; <@34,#29> constant-e)
0x45834312 comment (;;; <@36,#17> constant-t)
0x45834313 embedded object (0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)>)
0x45834317 comment (;;; <@38,#4> constant-t)
0x45834317 position (0)
0x45834318 embedded object (0x268080b1 <undefined>)
0x4583431c comment (;;; <@40,#25> constant-t)
0x4583431c position (20)
0x4583431e property cell
0x45834322 comment (;;; <@41,#25> gap)
0x45834325 comment (;;; <@42,#32> call-with-descriptor)
0x45834326 code target (STUB) (0x45834140)
0x4583432a comment (;;; <@44,#33> lazy-bailout)
0x4583432a comment (;;; <@46,#38> push-argument)
0x4583432a position (78)
0x4583432b embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x4583432f comment (;;; <@48,#38> push-argument)
0x45834334 comment (;;; <@50,#36> constant-t)
0x45834334 position (82)
0x45834335 embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x45834339 comment (;;; <@51,#36> gap)
0x4583433c comment (;;; <@52,#39> call-new)
0x4583433c position (78)
0x4583433d embedded object (0x268080b1 <undefined>)
0x45834347 code target (js construct call) (STUB) (0x458257c0)
0x4583434b comment (;;; <@54,#40> lazy-bailout)
0x4583434b comment (;;; <@56,#41> push-argument)
0x4583434b position (76)
0x4583434c embedded object (0x2688be25 <String[8]: testData>)
0x45834350 comment (;;; <@58,#41> push-argument)
0x45834352 comment (;;; <@60,#41> push-argument)
0x45834353 comment (;;; <@61,#41> gap)
0x45834356 comment (;;; <@62,#42> call-runtime)
0x45834361 code target (STUB) (0x4580bd20)
0x45834365 comment (;;; <@64,#43> lazy-bailout)
0x45834365 comment (;;; <@66,#45> constant-t)
0x45834365 position (118)
0x45834366 embedded object (0x2688c3c5 PropertyCell for 626791)
0x4583436a comment (;;; <@68,#46> store-named-field)
0x45834371 position (107)
0x45834371 comment (;;; <@71,#49> goto)
0x45834376 comment (;;; <@72,#53> -------------------- B2 (OSR entry) --------------------)
0x458343ab comment (;;; <@82,#59> context)
0x458343ae comment (;;; <@84,#61> gap)
0x458343b3 comment (;;; <@85,#61> goto)
0x458343b8 comment (;;; <@86,#50> -------------------- B3 --------------------)
0x458343b8 comment (;;; <@88,#52> gap)
0x458343be comment (;;; <@90,#68> -------------------- B4 --------------------)
0x458343c4 comment (;;; <@92,#93> check-maps)
0x458343c4 position (163)
0x458343c4 comment (;;; <@94,#95> check-maps)
0x458343c4 comment (;;; <@96,#97> check-maps)
0x458343c4 comment (;;; <@98,#85> constant-t)
0x458343c4 position (151)
0x458343c6 property cell
0x458343ca comment (;;; <@100,#98> load-named-field)
0x458343ca position (163)
0x458343cd comment (;;; <@102,#99> load-named-field)
0x458343d0 comment (;;; <@104,#100> load-named-field)
0x458343d3 comment (;;; <@106,#485> smi-untag)
0x458343d5 position (123)
0x458343d5 comment (;;; <@110,#71> -------------------- B5 (loop header) --------------------)
0x458343d5 comment (;;; <@112,#72> constant-t)
0x458343d6 embedded object (0x2688c3c5 PropertyCell for 626791)
0x458343da comment (;;; <@114,#73> load-named-field)
0x458343dd comment (;;; <@115,#73> gap)
0x458343df comment (;;; <@116,#481> check-smi)
0x458343eb position (125)
0x458343eb comment (;;; <@119,#75> compare-numeric-and-branch)
0x458343f7 comment (;;; <@120,#76> -------------------- B6 (unreachable/replaced) --------------------)
0x458343f7 position (107)
0x458343f7 comment (;;; <@124,#82> -------------------- B7 --------------------)
0x458343f7 comment (;;; <@126,#84> stack-check)
0x45834403 comment (;;; <@128,#483> tagged-to-i)
0x45834403 position (165)
0x4583440b comment (;;; <@129,#483> gap)
0x4583440d comment (;;; <@130,#91> mod-by-power-of-2-i)
0x4583440d position (167)
0x45834423 comment (;;; <@132,#101> bounds-check)
0x45834423 position (163)
0x4583442b comment (;;; <@133,#101> gap)
0x4583442c comment (;;; <@134,#102> store-keyed)
0x4583442f comment (;;; <@136,#107> add-i)
0x4583442f position (141)
0x45834432 comment (;;; <@137,#107> gap)
0x45834434 comment (;;; <@138,#487> dummy-use)
0x45834434 comment (;;; <@140,#72> constant-t)
0x45834434 position (123)
0x45834435 embedded object (0x2688c3c5 PropertyCell for 626791)
0x45834439 comment (;;; <@142,#109> store-named-field)
0x45834439 position (141)
0x4583443c position (107)
0x4583443c comment (;;; <@145,#112> goto)
0x4583443e comment (;;; <@146,#79> -------------------- B8 (unreachable/replaced) --------------------)
0x4583443e position (184)
0x4583443e comment (;;; <@150,#113> -------------------- B9 --------------------)
0x4583443e comment (;;; <@152,#117> allocate)
0x4583443e position (186)
0x45834462 comment (;;; <@154,#119> store-named-field)
0x45834465 embedded object (0x26808099 <FixedArray[0]>)
0x45834469 comment (;;; <@156,#121> store-named-field)
0x4583446c embedded object (0x3020c8dd <Map(elements=0)>)
0x45834470 comment (;;; <@158,#123> store-named-field)
0x45834473 embedded object (0x26808099 <FixedArray[0]>)
0x45834477 comment (;;; <@160,#125> store-named-field)
0x4583447e comment (;;; <@162,#126> constant-t)
0x45834480 property cell
0x45834484 comment (;;; <@164,#127> store-named-field)
0x45834487 comment (;;; <@166,#129> push-argument)
0x45834487 position (184)
0x45834488 embedded object (0x2688be59 <String[3]: key>)
0x4583448c comment (;;; <@168,#129> push-argument)
0x4583448e comment (;;; <@170,#129> push-argument)
0x4583448f comment (;;; <@171,#129> gap)
0x45834492 comment (;;; <@172,#130> call-runtime)
0x4583449d code target (STUB) (0x4580bd20)
0x458344a1 comment (;;; <@174,#131> lazy-bailout)
0x458344a1 comment (;;; <@176,#72> constant-t)
0x458344a1 position (123)
0x458344a2 embedded object (0x2688c3c5 PropertyCell for 626791)
0x458344a6 comment (;;; <@178,#134> store-named-field)
0x458344a6 position (201)
0x458344ad position (206)
0x458344ad comment (;;; <@182,#141> -------------------- B10 (loop header) --------------------)
0x458344ad comment (;;; <@184,#72> constant-t)
0x458344ad position (123)
0x458344ae embedded object (0x2688c3c5 PropertyCell for 626791)
0x458344b2 comment (;;; <@186,#143> load-named-field)
0x458344b2 position (206)
0x458344b5 position (208)
0x458344b5 comment (;;; <@189,#145> deoptimize)
0x458344b5 position (106496)
0x458344b5 deopt reason (Insufficient type feedback for combined type of binary operation)
0x458344b6 runtime entry
0x458344ba comment (;;; <@190,#146> -------------------- B11 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@200,#150> -------------------- B12 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@204,#156> -------------------- B13 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@218,#165> -------------------- B14 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@250,#153> -------------------- B15 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@254,#176> -------------------- B16 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@306,#204> -------------------- B17 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@314,#209> -------------------- B18 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@324,#213> -------------------- B19 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@328,#219> -------------------- B20 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@342,#228> -------------------- B21 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@374,#216> -------------------- B22 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@378,#239> -------------------- B23 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@382,#243> -------------------- B24 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@392,#250> -------------------- B25 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@396,#268> -------------------- B26 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@400,#247> -------------------- B27 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@404,#253> -------------------- B28 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@430,#271> -------------------- B29 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@434,#277> -------------------- B30 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@508,#319> -------------------- B31 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@516,#324> -------------------- B32 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@526,#328> -------------------- B33 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@530,#334> -------------------- B34 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@540,#342> -------------------- B35 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@564,#351> -------------------- B36 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@568,#353> -------------------- B37 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@646,#331> -------------------- B38 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@650,#384> -------------------- B39 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@668,#396> -------------------- B40 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@672,#398> -------------------- B41 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@700,#412> -------------------- B42 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@712,#416> -------------------- B43 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@744,#433> -------------------- B44 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@748,#435> -------------------- B45 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@752,#424> -------------------- B46 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@774,#431> -------------------- B47 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@778,#440> -------------------- B48 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@786,#429> -------------------- B49 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@790,#437> -------------------- B50 (unreachable/replaced) --------------------)
0x458344ba comment (;;; <@800,#446> -------------------- B51 (unreachable/replaced) --------------------)
0x458344ba position (107)
0x458344ba comment (;;; <@126,#84> -------------------- Deferred stack-check --------------------)
0x458344c6 code target (STUB) (0x4580bbc0)
0x458344d0 position (165)
0x458344d0 comment (;;; <@128,#483> -------------------- Deferred tagged-to-i --------------------)
0x458344da embedded object (0x3020820d <Map(elements=3)>)
0x45834509 position (186)
0x45834509 comment (;;; <@152,#117> -------------------- Deferred allocate --------------------)
0x4583451e code target (STUB) (0x4580bbc0)
0x4583452c comment (;;; -------------------- Jump table --------------------)
0x4583452c position (62976)
0x4583452c deopt reason (not a Smi)
0x4583452d runtime entry (deoptimization bailout 7)
0x45834531 position (83456)
0x45834531 deopt reason (out of bounds)
0x45834532 runtime entry (deoptimization bailout 9)
0x45834536 position (84480)
0x45834536 deopt reason (not a heap number)
0x45834537 runtime entry (deoptimization bailout 12)
0x4583453b position (84480)
0x4583453b deopt reason (lost precision)
0x4583453c runtime entry (deoptimization bailout 12)
0x45834540 position (84480)
0x45834540 deopt reason (NaN)
0x45834541 runtime entry (deoptimization bailout 12)
0x4583454c comment (;;; Safepoint table.)
--- End code ---
[deoptimizing (DEOPT soft): begin 0x2688c355 <JS Function (SharedFunctionInfo 0x2688c2f5)> (opt #0) @11, FP to SP delta: 28]
;;; deoptimize at 0_208: Insufficient type feedback for combined type of binary operation
translating => node=159, height=4
0xffcac5b8: [top + 20] <- 0x2c00d149 ; [sp + 0] 0x2c00d149 <JS Global Object>
0xffcac5b4: [top + 16] <- 0x4582c4a1 ; caller's pc
0xffcac5b0: [top + 12] <- 0xffcac5cc ; caller's fp
0xffcac5ac: [top + 8] <- 0x26875269 ; [sp + 4] 0x26875269 <FixedArray[115]>
0xffcac5ac: [top + 8] <- 0x26875269; context
0xffcac5a8: [top + 4] <- 0x2688c355; function
0xffcac5a4: [top + 0] <- 0x268080b1 <undefined> ; literal
[deoptimizing (soft): end 0x2688c355 <JS Function (SharedFunctionInfo 0x2688c2f5)> @11 => node=159, pc=0x4583094d, state=NO_REGISTERS, alignment=no padding, took 0.031 ms]
--- FUNCTION SOURCE (quarterRound) id{1,0} ---
(x, a, b, c, d) {
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 16) | ((x[d] ^ x[a]) >>> 16);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 12) | ((x[b] ^ x[c]) >>> 20);
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 8) | ((x[d] ^ x[a]) >>> 24);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 7) | ((x[b] ^ x[c]) >>> 25);
}
--- END ---
--- Raw source ---
(x, a, b, c, d) {
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 16) | ((x[d] ^ x[a]) >>> 16);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 12) | ((x[b] ^ x[c]) >>> 20);
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 8) | ((x[d] ^ x[a]) >>> 24);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 7) | ((x[b] ^ x[c]) >>> 25);
}
--- Optimized code ---
optimization_id = 1
source_position = 1733
kind = OPTIMIZED_FUNCTION
name = quarterRound
stack_slots = 4
Instructions (size = 930)
0x45839800 0 55 push ebp
0x45839801 1 89e5 mov ebp,esp
0x45839803 3 56 push esi
0x45839804 4 57 push edi
0x45839805 5 83ec10 sub esp,0x10
;;; Store dynamic frame alignment tag for spilled doubles
0x45839808 8 c745f400000000 mov [ebp-0xc],0x0
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583980f 15 8b45fc mov eax,[ebp-0x4] ;; debug: position 1733
;;; <@3,#1> gap
0x45839812 18 8945f0 mov [ebp-0x10],eax
;;; <@18,#12> -------------------- B1 --------------------
;;; <@19,#12> gap
0x45839815 21 89c6 mov esi,eax
;;; <@20,#14> stack-check
0x45839817 23 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583981d 29 7305 jnc 36 (0x45839824)
0x4583981f 31 e89c57ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@22,#14> lazy-bailout
;;; <@23,#14> gap
0x45839824 36 8b4518 mov eax,[ebp+0x18]
;;; <@24,#16> check-non-smi
0x45839827 39 a801 test al,0x1 ;; debug: position 1764
0x45839829 41 0f8400030000 jz 815 (0x45839b2f)
;;; <@26,#17> check-maps
0x4583982f 47 8178ffa1dc2030 cmp [eax-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x45839836 54 0f85f8020000 jnz 820 (0x45839b34)
;;; <@28,#18> load-named-field
0x4583983c 60 8b4807 mov ecx,[eax+0x7]
;;; <@30,#19> load-named-field
0x4583983f 63 8b5103 mov edx,[ecx+0x3]
;;; <@31,#19> gap
0x45839842 66 8b5d14 mov ebx,[ebp+0x14]
;;; <@32,#314> tagged-to-i
0x45839845 69 d1fb sar ebx,1
0x45839847 71 0f82fe010000 jc 587 (0x45839a4b)
;;; <@34,#339> smi-untag
0x4583984d 77 d1fa sar edx,1
;;; <@36,#20> bounds-check
0x4583984f 79 3bda cmp ebx,edx
0x45839851 81 0f83e2020000 jnc 825 (0x45839b39)
;;; <@38,#21> load-keyed
0x45839857 87 8b749907 mov esi,[ecx+ebx*4+0x7]
;;; <@39,#21> gap
0x4583985b 91 8b7d10 mov edi,[ebp+0x10]
;;; <@40,#322> tagged-to-i
0x4583985e 94 d1ff sar edi,1 ;; debug: position 1768
0x45839860 96 0f821e020000 jc 644 (0x45839a84)
;;; <@41,#322> gap
0x45839866 102 897dec mov [ebp-0x14],edi
;;; <@42,#26> bounds-check
0x45839869 105 3bfa cmp edi,edx
0x4583986b 107 0f83cd020000 jnc 830 (0x45839b3e)
;;; <@44,#27> load-keyed
0x45839871 113 8b44b907 mov eax,[ecx+edi*4+0x7]
;;; <@46,#340> uint32-to-double
0x45839875 117 83fe00 cmp esi,0x0 ;; debug: position 1764
0x45839878 120 0f57c9 xorps xmm1,xmm1
0x4583987b 123 f20f2ace cvtsi2sd xmm1,esi
0x4583987f 127 7908 jns 137 (0x45839889)
0x45839881 129 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@48,#342> uint32-to-double
0x45839889 137 83f800 cmp eax,0x0
0x4583988c 140 0f57d2 xorps xmm2,xmm2
0x4583988f 143 f20f2ad0 cvtsi2sd xmm2,eax
0x45839893 147 7908 jns 157 (0x4583989d)
0x45839895 149 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@50,#28> add-d
0x4583989d 157 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@52,#33> check-maps
;;; <@54,#35> check-maps
;;; <@56,#343> double-to-i
0x458398a1 161 f20f2cc1 cvttsd2si eax,xmm1
0x458398a5 165 83f801 cmp eax,0x1
0x458398a8 168 7110 jno 186 (0x458398ba)
0x458398aa 170 83ec08 sub esp,0x8
0x458398ad 173 f20f110c24 movsd [esp],xmm1
0x458398b2 178 e8e9ceffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x458398b7 183 83c408 add esp,0x8
;;; <@58,#39> store-keyed
0x458398ba 186 89449907 mov [ecx+ebx*4+0x7],eax
;;; <@59,#39> gap
0x458398be 190 8b4508 mov eax,[ebp+0x8]
;;; <@60,#338> tagged-to-i
0x458398c1 193 d1f8 sar eax,1 ;; debug: position 1783
0x458398c3 195 0f82f4010000 jc 701 (0x45839abd)
;;; <@61,#338> gap
0x458398c9 201 8945e8 mov [ebp-0x18],eax
;;; <@62,#45> bounds-check
0x458398cc 204 3bc2 cmp eax,edx
0x458398ce 206 0f836f020000 jnc 835 (0x45839b43)
;;; <@64,#46> load-keyed
0x458398d4 212 8b748107 mov esi,[ecx+eax*4+0x7]
;;; <@66,#52> load-keyed
0x458398d8 216 8b7c9907 mov edi,[ecx+ebx*4+0x7] ;; debug: position 1790
;;; <@68,#53> bit-i
0x458398dc 220 33fe xor edi,esi ;; debug: position 1787
;;; <@69,#53> gap
0x458398de 222 89fe mov esi,edi
;;; <@70,#56> shift-i
0x458398e0 224 c1e610 shl esi,16 ;; debug: position 1795
;;; <@72,#73> shift-i
0x458398e3 227 c1ef10 shr edi,16 ;; debug: position 1819
;;; <@74,#75> bit-i
0x458398e6 230 0bfe or edi,esi ;; debug: position 1802
;;; <@76,#86> store-keyed
0x458398e8 232 897c8107 mov [ecx+eax*4+0x7],edi ;; debug: position 1778
;;; <@77,#86> gap
0x458398ec 236 8b750c mov esi,[ebp+0xc]
;;; <@78,#330> tagged-to-i
0x458398ef 239 d1fe sar esi,1 ;; debug: position 1841
0x458398f1 241 0f82ff010000 jc 758 (0x45839af6)
;;; <@80,#92> bounds-check
0x458398f7 247 3bf2 cmp esi,edx
0x458398f9 249 0f8349020000 jnc 840 (0x45839b48)
;;; <@82,#93> load-keyed
0x458398ff 255 8b54b107 mov edx,[ecx+esi*4+0x7]
;;; <@84,#99> load-keyed
0x45839903 259 8b7c8107 mov edi,[ecx+eax*4+0x7] ;; debug: position 1845
;;; <@86,#353> uint32-to-double
0x45839907 263 83fa00 cmp edx,0x0 ;; debug: position 1841
0x4583990a 266 0f57c9 xorps xmm1,xmm1
0x4583990d 269 f20f2aca cvtsi2sd xmm1,edx
0x45839911 273 7908 jns 283 (0x4583991b)
0x45839913 275 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@88,#355> uint32-to-double
0x4583991b 283 83ff00 cmp edi,0x0
0x4583991e 286 0f57d2 xorps xmm2,xmm2
0x45839921 289 f20f2ad7 cvtsi2sd xmm2,edi
0x45839925 293 7908 jns 303 (0x4583992f)
0x45839927 295 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@90,#100> add-d
0x4583992f 303 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@92,#356> double-to-i
0x45839933 307 f20f2cd1 cvttsd2si edx,xmm1
0x45839937 311 83fa01 cmp edx,0x1
0x4583993a 314 7110 jno 332 (0x4583994c)
0x4583993c 316 83ec08 sub esp,0x8
0x4583993f 319 f20f110c24 movsd [esp],xmm1
0x45839944 324 e817feffff call 0x45839760 ;; code: STUB, DoubleToIStub, minor: 135300
0x45839949 329 83c408 add esp,0x8
;;; <@94,#111> store-keyed
0x4583994c 332 8954b107 mov [ecx+esi*4+0x7],edx
;;; <@95,#111> gap
0x45839950 336 8b55ec mov edx,[ebp-0x14]
;;; <@96,#118> load-keyed
0x45839953 339 8b7c9107 mov edi,[ecx+edx*4+0x7] ;; debug: position 1860
;;; <@98,#124> load-keyed
0x45839957 343 8b44b107 mov eax,[ecx+esi*4+0x7] ;; debug: position 1867
;;; <@100,#125> bit-i
0x4583995b 347 33c7 xor eax,edi ;; debug: position 1864
;;; <@101,#125> gap
0x4583995d 349 89c7 mov edi,eax
;;; <@102,#128> shift-i
0x4583995f 351 c1e70c shl edi,12 ;; debug: position 1872
;;; <@104,#145> shift-i
0x45839962 354 c1e814 shr eax,20 ;; debug: position 1896
;;; <@106,#147> bit-i
0x45839965 357 0bc7 or eax,edi ;; debug: position 1879
;;; <@108,#158> store-keyed
0x45839967 359 89449107 mov [ecx+edx*4+0x7],eax ;; debug: position 1855
;;; <@110,#165> load-keyed
0x4583996b 363 8b449907 mov eax,[ecx+ebx*4+0x7] ;; debug: position 1918
;;; <@112,#171> load-keyed
0x4583996f 367 8b7c9107 mov edi,[ecx+edx*4+0x7] ;; debug: position 1922
;;; <@114,#366> uint32-to-double
0x45839973 371 83f800 cmp eax,0x0 ;; debug: position 1918
0x45839976 374 0f57c9 xorps xmm1,xmm1
0x45839979 377 f20f2ac8 cvtsi2sd xmm1,eax
0x4583997d 381 7908 jns 391 (0x45839987)
0x4583997f 383 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@116,#368> uint32-to-double
0x45839987 391 83ff00 cmp edi,0x0
0x4583998a 394 0f57d2 xorps xmm2,xmm2
0x4583998d 397 f20f2ad7 cvtsi2sd xmm2,edi
0x45839991 401 7908 jns 411 (0x4583999b)
0x45839993 403 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@118,#172> add-d
0x4583999b 411 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@120,#369> double-to-i
0x4583999f 415 f20f2cc1 cvttsd2si eax,xmm1
0x458399a3 419 83f801 cmp eax,0x1
0x458399a6 422 7110 jno 440 (0x458399b8)
0x458399a8 424 83ec08 sub esp,0x8
0x458399ab 427 f20f110c24 movsd [esp],xmm1
0x458399b0 432 e8ebcdffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x458399b5 437 83c408 add esp,0x8
;;; <@122,#183> store-keyed
0x458399b8 440 89449907 mov [ecx+ebx*4+0x7],eax
;;; <@123,#183> gap
0x458399bc 444 8b45e8 mov eax,[ebp-0x18]
;;; <@124,#190> load-keyed
0x458399bf 447 8b7c8107 mov edi,[ecx+eax*4+0x7] ;; debug: position 1937
;;; <@126,#196> load-keyed
0x458399c3 451 8b5c9907 mov ebx,[ecx+ebx*4+0x7] ;; debug: position 1944
;;; <@128,#197> bit-i
0x458399c7 455 33df xor ebx,edi ;; debug: position 1941
;;; <@129,#197> gap
0x458399c9 457 89df mov edi,ebx
;;; <@130,#200> shift-i
0x458399cb 459 c1e708 shl edi,8 ;; debug: position 1949
;;; <@132,#217> shift-i
0x458399ce 462 c1eb18 shr ebx,24 ;; debug: position 1973
;;; <@134,#219> bit-i
0x458399d1 465 0bdf or ebx,edi ;; debug: position 1956
;;; <@136,#230> store-keyed
0x458399d3 467 895c8107 mov [ecx+eax*4+0x7],ebx ;; debug: position 1932
;;; <@138,#237> load-keyed
0x458399d7 471 8b5cb107 mov ebx,[ecx+esi*4+0x7] ;; debug: position 1995
;;; <@140,#243> load-keyed
0x458399db 475 8b448107 mov eax,[ecx+eax*4+0x7] ;; debug: position 1999
;;; <@142,#379> uint32-to-double
0x458399df 479 83fb00 cmp ebx,0x0 ;; debug: position 1995
0x458399e2 482 0f57c9 xorps xmm1,xmm1
0x458399e5 485 f20f2acb cvtsi2sd xmm1,ebx
0x458399e9 489 7908 jns 499 (0x458399f3)
0x458399eb 491 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@144,#381> uint32-to-double
0x458399f3 499 83f800 cmp eax,0x0
0x458399f6 502 0f57d2 xorps xmm2,xmm2
0x458399f9 505 f20f2ad0 cvtsi2sd xmm2,eax
0x458399fd 509 7908 jns 519 (0x45839a07)
0x458399ff 511 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@146,#244> add-d
0x45839a07 519 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@148,#382> double-to-i
0x45839a0b 523 f20f2cc1 cvttsd2si eax,xmm1
0x45839a0f 527 83f801 cmp eax,0x1
0x45839a12 530 7110 jno 548 (0x45839a24)
0x45839a14 532 83ec08 sub esp,0x8
0x45839a17 535 f20f110c24 movsd [esp],xmm1
0x45839a1c 540 e87fcdffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x45839a21 545 83c408 add esp,0x8
;;; <@150,#255> store-keyed
0x45839a24 548 8944b107 mov [ecx+esi*4+0x7],eax
;;; <@152,#262> load-keyed
0x45839a28 552 8b449107 mov eax,[ecx+edx*4+0x7] ;; debug: position 2014
;;; <@154,#268> load-keyed
0x45839a2c 556 8b5cb107 mov ebx,[ecx+esi*4+0x7] ;; debug: position 2021
;;; <@156,#269> bit-i
0x45839a30 560 33d8 xor ebx,eax ;; debug: position 2018
;;; <@157,#269> gap
0x45839a32 562 89d8 mov eax,ebx
;;; <@158,#272> shift-i
0x45839a34 564 c1e007 shl eax,7 ;; debug: position 2026
;;; <@160,#289> shift-i
0x45839a37 567 c1eb19 shr ebx,25 ;; debug: position 2050
;;; <@162,#291> bit-i
0x45839a3a 570 0bd8 or ebx,eax ;; debug: position 2033
;;; <@164,#302> store-keyed
0x45839a3c 572 895c9107 mov [ecx+edx*4+0x7],ebx ;; debug: position 2009
;;; <@166,#9> constant-t
0x45839a40 576 b8b1808026 mov eax,0x268080b1 ;; debug: position 1733
;; object: 0x268080b1 <undefined>
;;; <@168,#305> return
0x45839a45 581 89ec mov esp,ebp
0x45839a47 583 5d pop ebp
0x45839a48 584 c21800 ret 0x18
;;; <@32,#314> -------------------- Deferred tagged-to-i --------------------
0x45839a4b 587 8d1c5d01000000 lea ebx,[ebx*2+0x1] ;; debug: position 1764
0x45839a52 594 817bff0d822030 cmp [ebx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839a59 601 0f85ee000000 jnz 845 (0x45839b4d)
0x45839a5f 607 f20f104303 movsd xmm0,[ebx+0x3]
0x45839a64 612 f20f2cd8 cvttsd2si ebx,xmm0
0x45839a68 616 0f57c9 xorps xmm1,xmm1
0x45839a6b 619 f20f2acb cvtsi2sd xmm1,ebx
0x45839a6f 623 660f2ec1 ucomisd xmm0,xmm1
0x45839a73 627 0f85d9000000 jnz 850 (0x45839b52)
0x45839a79 633 0f8ad8000000 jpe 855 (0x45839b57)
0x45839a7f 639 e9c9fdffff jmp 77 (0x4583984d)
;;; <@40,#322> -------------------- Deferred tagged-to-i --------------------
0x45839a84 644 8d3c7d01000000 lea edi,[edi*2+0x1] ;; debug: position 1768
0x45839a8b 651 817fff0d822030 cmp [edi-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839a92 658 0f85c4000000 jnz 860 (0x45839b5c)
0x45839a98 664 f20f104703 movsd xmm0,[edi+0x3]
0x45839a9d 669 f20f2cf8 cvttsd2si edi,xmm0
0x45839aa1 673 0f57c9 xorps xmm1,xmm1
0x45839aa4 676 f20f2acf cvtsi2sd xmm1,edi
0x45839aa8 680 660f2ec1 ucomisd xmm0,xmm1
0x45839aac 684 0f85af000000 jnz 865 (0x45839b61)
0x45839ab2 690 0f8aae000000 jpe 870 (0x45839b66)
0x45839ab8 696 e9a9fdffff jmp 102 (0x45839866)
;;; <@60,#338> -------------------- Deferred tagged-to-i --------------------
0x45839abd 701 8d044501000000 lea eax,[eax*2+0x1] ;; debug: position 1783
0x45839ac4 708 8178ff0d822030 cmp [eax-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839acb 715 0f859a000000 jnz 875 (0x45839b6b)
0x45839ad1 721 f20f104003 movsd xmm0,[eax+0x3]
0x45839ad6 726 f20f2cc0 cvttsd2si eax,xmm0
0x45839ada 730 0f57c9 xorps xmm1,xmm1
0x45839add 733 f20f2ac8 cvtsi2sd xmm1,eax
0x45839ae1 737 660f2ec1 ucomisd xmm0,xmm1
0x45839ae5 741 0f8585000000 jnz 880 (0x45839b70)
0x45839aeb 747 0f8a84000000 jpe 885 (0x45839b75)
0x45839af1 753 e9d3fdffff jmp 201 (0x458398c9)
;;; <@78,#330> -------------------- Deferred tagged-to-i --------------------
0x45839af6 758 8d347501000000 lea esi,[esi*2+0x1] ;; debug: position 1841
0x45839afd 765 817eff0d822030 cmp [esi-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839b04 772 0f8570000000 jnz 890 (0x45839b7a)
0x45839b0a 778 f20f104603 movsd xmm0,[esi+0x3]
0x45839b0f 783 f20f2cf0 cvttsd2si esi,xmm0
0x45839b13 787 0f57c9 xorps xmm1,xmm1
0x45839b16 790 f20f2ace cvtsi2sd xmm1,esi
0x45839b1a 794 660f2ec1 ucomisd xmm0,xmm1
0x45839b1e 798 0f855b000000 jnz 895 (0x45839b7f)
0x45839b24 804 0f8a5a000000 jpe 900 (0x45839b84)
0x45839b2a 810 e9c8fdffff jmp 247 (0x458398f7)
;;; -------------------- Jump table --------------------
0x45839b2f 815 e8d604fdf6 call 0x3c80a00a ;; debug: position 15872
;; debug: deopt reason 'Smi'
;; deoptimization bailout 1
0x45839b34 820 e8db04fdf6 call 0x3c80a014 ;; debug: position 15872
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 2
0x45839b39 825 e8e004fdf6 call 0x3c80a01e ;; debug: position 15872
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 3
0x45839b3e 830 e8e504fdf6 call 0x3c80a028 ;; debug: position 17920
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 4
0x45839b43 835 e8ea04fdf6 call 0x3c80a032 ;; debug: position 25600
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 5
0x45839b48 840 e8ef04fdf6 call 0x3c80a03c ;; debug: position 55296
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 6
0x45839b4d 845 e8f404fdf6 call 0x3c80a046 ;; debug: position 15872
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 7
0x45839b52 850 e8ef04fdf6 call 0x3c80a046 ;; debug: position 15872
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 7
0x45839b57 855 e8ea04fdf6 call 0x3c80a046 ;; debug: position 15872
;; debug: deopt reason 'NaN'
;; deoptimization bailout 7
0x45839b5c 860 e8ef04fdf6 call 0x3c80a050 ;; debug: position 17920
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 8
0x45839b61 865 e8ea04fdf6 call 0x3c80a050 ;; debug: position 17920
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 8
0x45839b66 870 e8e504fdf6 call 0x3c80a050 ;; debug: position 17920
;; debug: deopt reason 'NaN'
;; deoptimization bailout 8
0x45839b6b 875 e8ea04fdf6 call 0x3c80a05a ;; debug: position 25600
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 9
0x45839b70 880 e8e504fdf6 call 0x3c80a05a ;; debug: position 25600
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 9
0x45839b75 885 e8e004fdf6 call 0x3c80a05a ;; debug: position 25600
;; debug: deopt reason 'NaN'
;; deoptimization bailout 9
0x45839b7a 890 e8e504fdf6 call 0x3c80a064 ;; debug: position 55296
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 10
0x45839b7f 895 e8e004fdf6 call 0x3c80a064 ;; debug: position 55296
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 10
0x45839b84 900 e8db04fdf6 call 0x3c80a064 ;; debug: position 55296
;; debug: deopt reason 'NaN'
;; deoptimization bailout 10
0x45839b89 905 90 nop
0x45839b8a 906 90 nop
0x45839b8b 907 90 nop
0x45839b8c 908 90 nop
0x45839b8d 909 90 nop
0x45839b8e 910 66 nop
0x45839b8f 911 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 11)
index ast id argc pc
0 3 0 36
1 3 0 -1
2 3 0 -1
3 3 0 -1
4 3 0 -1
5 4 0 -1
6 44 0 -1
7 3 0 -1
8 3 0 -1
9 4 0 -1
10 44 0 -1
Safepoints (size = 18)
0x45839824 36 0010 (sp -> fp) 0
RelocInfo (size = 981)
0x45839808 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583980f position (1733)
0x4583980f comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583980f comment (;;; <@2,#1> context)
0x45839812 comment (;;; <@3,#1> gap)
0x45839815 comment (;;; <@18,#12> -------------------- B1 --------------------)
0x45839815 comment (;;; <@19,#12> gap)
0x45839817 comment (;;; <@20,#14> stack-check)
0x45839820 code target (BUILTIN) (0x4582efc0)
0x45839824 comment (;;; <@22,#14> lazy-bailout)
0x45839824 comment (;;; <@23,#14> gap)
0x45839827 comment (;;; <@24,#16> check-non-smi)
0x45839827 position (1764)
0x4583982f comment (;;; <@26,#17> check-maps)
0x45839832 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583983c comment (;;; <@28,#18> load-named-field)
0x4583983f comment (;;; <@30,#19> load-named-field)
0x45839842 comment (;;; <@31,#19> gap)
0x45839845 comment (;;; <@32,#314> tagged-to-i)
0x4583984d comment (;;; <@34,#339> smi-untag)
0x4583984f comment (;;; <@36,#20> bounds-check)
0x45839857 comment (;;; <@38,#21> load-keyed)
0x4583985b comment (;;; <@39,#21> gap)
0x4583985e comment (;;; <@40,#322> tagged-to-i)
0x4583985e position (1768)
0x45839866 comment (;;; <@41,#322> gap)
0x45839869 comment (;;; <@42,#26> bounds-check)
0x45839871 comment (;;; <@44,#27> load-keyed)
0x45839875 comment (;;; <@46,#340> uint32-to-double)
0x45839875 position (1764)
0x45839889 comment (;;; <@48,#342> uint32-to-double)
0x4583989d comment (;;; <@50,#28> add-d)
0x458398a1 comment (;;; <@52,#33> check-maps)
0x458398a1 comment (;;; <@54,#35> check-maps)
0x458398a1 comment (;;; <@56,#343> double-to-i)
0x458398b3 code target (STUB) (0x458367a0)
0x458398ba comment (;;; <@58,#39> store-keyed)
0x458398be comment (;;; <@59,#39> gap)
0x458398c1 comment (;;; <@60,#338> tagged-to-i)
0x458398c1 position (1783)
0x458398c9 comment (;;; <@61,#338> gap)
0x458398cc comment (;;; <@62,#45> bounds-check)
0x458398d4 comment (;;; <@64,#46> load-keyed)
0x458398d8 comment (;;; <@66,#52> load-keyed)
0x458398d8 position (1790)
0x458398dc comment (;;; <@68,#53> bit-i)
0x458398dc position (1787)
0x458398de comment (;;; <@69,#53> gap)
0x458398e0 comment (;;; <@70,#56> shift-i)
0x458398e0 position (1795)
0x458398e3 comment (;;; <@72,#73> shift-i)
0x458398e3 position (1819)
0x458398e6 comment (;;; <@74,#75> bit-i)
0x458398e6 position (1802)
0x458398e8 comment (;;; <@76,#86> store-keyed)
0x458398e8 position (1778)
0x458398ec comment (;;; <@77,#86> gap)
0x458398ef comment (;;; <@78,#330> tagged-to-i)
0x458398ef position (1841)
0x458398f7 comment (;;; <@80,#92> bounds-check)
0x458398ff comment (;;; <@82,#93> load-keyed)
0x45839903 comment (;;; <@84,#99> load-keyed)
0x45839903 position (1845)
0x45839907 comment (;;; <@86,#353> uint32-to-double)
0x45839907 position (1841)
0x4583991b comment (;;; <@88,#355> uint32-to-double)
0x4583992f comment (;;; <@90,#100> add-d)
0x45839933 comment (;;; <@92,#356> double-to-i)
0x45839945 code target (STUB) (0x45839760)
0x4583994c comment (;;; <@94,#111> store-keyed)
0x45839950 comment (;;; <@95,#111> gap)
0x45839953 comment (;;; <@96,#118> load-keyed)
0x45839953 position (1860)
0x45839957 comment (;;; <@98,#124> load-keyed)
0x45839957 position (1867)
0x4583995b comment (;;; <@100,#125> bit-i)
0x4583995b position (1864)
0x4583995d comment (;;; <@101,#125> gap)
0x4583995f comment (;;; <@102,#128> shift-i)
0x4583995f position (1872)
0x45839962 comment (;;; <@104,#145> shift-i)
0x45839962 position (1896)
0x45839965 comment (;;; <@106,#147> bit-i)
0x45839965 position (1879)
0x45839967 comment (;;; <@108,#158> store-keyed)
0x45839967 position (1855)
0x4583996b comment (;;; <@110,#165> load-keyed)
0x4583996b position (1918)
0x4583996f comment (;;; <@112,#171> load-keyed)
0x4583996f position (1922)
0x45839973 comment (;;; <@114,#366> uint32-to-double)
0x45839973 position (1918)
0x45839987 comment (;;; <@116,#368> uint32-to-double)
0x4583999b comment (;;; <@118,#172> add-d)
0x4583999f comment (;;; <@120,#369> double-to-i)
0x458399b1 code target (STUB) (0x458367a0)
0x458399b8 comment (;;; <@122,#183> store-keyed)
0x458399bc comment (;;; <@123,#183> gap)
0x458399bf comment (;;; <@124,#190> load-keyed)
0x458399bf position (1937)
0x458399c3 comment (;;; <@126,#196> load-keyed)
0x458399c3 position (1944)
0x458399c7 comment (;;; <@128,#197> bit-i)
0x458399c7 position (1941)
0x458399c9 comment (;;; <@129,#197> gap)
0x458399cb comment (;;; <@130,#200> shift-i)
0x458399cb position (1949)
0x458399ce comment (;;; <@132,#217> shift-i)
0x458399ce position (1973)
0x458399d1 comment (;;; <@134,#219> bit-i)
0x458399d1 position (1956)
0x458399d3 comment (;;; <@136,#230> store-keyed)
0x458399d3 position (1932)
0x458399d7 comment (;;; <@138,#237> load-keyed)
0x458399d7 position (1995)
0x458399db comment (;;; <@140,#243> load-keyed)
0x458399db position (1999)
0x458399df comment (;;; <@142,#379> uint32-to-double)
0x458399df position (1995)
0x458399f3 comment (;;; <@144,#381> uint32-to-double)
0x45839a07 comment (;;; <@146,#244> add-d)
0x45839a0b comment (;;; <@148,#382> double-to-i)
0x45839a1d code target (STUB) (0x458367a0)
0x45839a24 comment (;;; <@150,#255> store-keyed)
0x45839a28 comment (;;; <@152,#262> load-keyed)
0x45839a28 position (2014)
0x45839a2c comment (;;; <@154,#268> load-keyed)
0x45839a2c position (2021)
0x45839a30 comment (;;; <@156,#269> bit-i)
0x45839a30 position (2018)
0x45839a32 comment (;;; <@157,#269> gap)
0x45839a34 comment (;;; <@158,#272> shift-i)
0x45839a34 position (2026)
0x45839a37 comment (;;; <@160,#289> shift-i)
0x45839a37 position (2050)
0x45839a3a comment (;;; <@162,#291> bit-i)
0x45839a3a position (2033)
0x45839a3c comment (;;; <@164,#302> store-keyed)
0x45839a3c position (2009)
0x45839a40 comment (;;; <@166,#9> constant-t)
0x45839a40 position (1733)
0x45839a41 embedded object (0x268080b1 <undefined>)
0x45839a45 comment (;;; <@168,#305> return)
0x45839a4b position (1764)
0x45839a4b comment (;;; <@32,#314> -------------------- Deferred tagged-to-i --------------------)
0x45839a55 embedded object (0x3020820d <Map(elements=3)>)
0x45839a84 position (1768)
0x45839a84 comment (;;; <@40,#322> -------------------- Deferred tagged-to-i --------------------)
0x45839a8e embedded object (0x3020820d <Map(elements=3)>)
0x45839abd position (1783)
0x45839abd comment (;;; <@60,#338> -------------------- Deferred tagged-to-i --------------------)
0x45839ac7 embedded object (0x3020820d <Map(elements=3)>)
0x45839af6 position (1841)
0x45839af6 comment (;;; <@78,#330> -------------------- Deferred tagged-to-i --------------------)
0x45839b00 embedded object (0x3020820d <Map(elements=3)>)
0x45839b2f comment (;;; -------------------- Jump table --------------------)
0x45839b2f position (15872)
0x45839b2f deopt reason (Smi)
0x45839b30 runtime entry (deoptimization bailout 1)
0x45839b34 position (15872)
0x45839b34 deopt reason (wrong map)
0x45839b35 runtime entry (deoptimization bailout 2)
0x45839b39 position (15872)
0x45839b39 deopt reason (out of bounds)
0x45839b3a runtime entry (deoptimization bailout 3)
0x45839b3e position (17920)
0x45839b3e deopt reason (out of bounds)
0x45839b3f runtime entry (deoptimization bailout 4)
0x45839b43 position (25600)
0x45839b43 deopt reason (out of bounds)
0x45839b44 runtime entry (deoptimization bailout 5)
0x45839b48 position (55296)
0x45839b48 deopt reason (out of bounds)
0x45839b49 runtime entry (deoptimization bailout 6)
0x45839b4d position (15872)
0x45839b4d deopt reason (not a heap number)
0x45839b4e runtime entry (deoptimization bailout 7)
0x45839b52 position (15872)
0x45839b52 deopt reason (lost precision)
0x45839b53 runtime entry (deoptimization bailout 7)
0x45839b57 position (15872)
0x45839b57 deopt reason (NaN)
0x45839b58 runtime entry (deoptimization bailout 7)
0x45839b5c position (17920)
0x45839b5c deopt reason (not a heap number)
0x45839b5d runtime entry (deoptimization bailout 8)
0x45839b61 position (17920)
0x45839b61 deopt reason (lost precision)
0x45839b62 runtime entry (deoptimization bailout 8)
0x45839b66 position (17920)
0x45839b66 deopt reason (NaN)
0x45839b67 runtime entry (deoptimization bailout 8)
0x45839b6b position (25600)
0x45839b6b deopt reason (not a heap number)
0x45839b6c runtime entry (deoptimization bailout 9)
0x45839b70 position (25600)
0x45839b70 deopt reason (lost precision)
0x45839b71 runtime entry (deoptimization bailout 9)
0x45839b75 position (25600)
0x45839b75 deopt reason (NaN)
0x45839b76 runtime entry (deoptimization bailout 9)
0x45839b7a position (55296)
0x45839b7a deopt reason (not a heap number)
0x45839b7b runtime entry (deoptimization bailout 10)
0x45839b7f position (55296)
0x45839b7f deopt reason (lost precision)
0x45839b80 runtime entry (deoptimization bailout 10)
0x45839b84 position (55296)
0x45839b84 deopt reason (NaN)
0x45839b85 runtime entry (deoptimization bailout 10)
0x45839b90 comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (U32TO8_LE) id{2,0} ---
(x, i, u) {
x[i] = u; u >>>= 8;
x[i+1] = u; u >>>= 8;
x[i+2] = u; u >>>= 8;
x[i+3] = u;
}
--- END ---
--- Raw source ---
(x, i, u) {
x[i] = u; u >>>= 8;
x[i+1] = u; u >>>= 8;
x[i+2] = u; u >>>= 8;
x[i+3] = u;
}
--- Optimized code ---
optimization_id = 2
source_position = 1450
kind = OPTIMIZED_FUNCTION
name = U32TO8_LE
stack_slots = 2
Instructions (size = 470)
0x45839d20 0 55 push ebp
0x45839d21 1 89e5 mov ebp,esp
0x45839d23 3 56 push esi
0x45839d24 4 57 push edi
0x45839d25 5 83ec08 sub esp,0x8
;;; Store dynamic frame alignment tag for spilled doubles
0x45839d28 8 c745f400000000 mov [ebp-0xc],0x0
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x45839d2f 15 8b45fc mov eax,[ebp-0x4] ;; debug: position 1450
;;; <@3,#1> gap
0x45839d32 18 8945f0 mov [ebp-0x10],eax
;;; <@14,#10> -------------------- B1 --------------------
;;; <@15,#10> gap
0x45839d35 21 89c6 mov esi,eax
;;; <@16,#12> stack-check
0x45839d37 23 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x45839d3d 29 7305 jnc 36 (0x45839d44)
0x45839d3f 31 e87c52ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@18,#12> lazy-bailout
;;; <@19,#12> gap
0x45839d44 36 8b4d10 mov ecx,[ebp+0x10]
;;; <@20,#14> check-non-smi
0x45839d47 39 f6c101 test_b cl,0x1 ;; debug: position 1477
0x45839d4a 42 0f8452010000 jz 386 (0x45839ea2)
;;; <@22,#15> check-maps
0x45839d50 48 8179ff91da2030 cmp [ecx-0x1],0x3020da91 ;; object: 0x3020da91 <Map(elements=17)>
0x45839d57 55 0f854a010000 jnz 391 (0x45839ea7)
;;; <@24,#17> check-maps
;;; <@26,#19> check-maps
;;; <@28,#20> load-named-field
0x45839d5d 61 8b5107 mov edx,[ecx+0x7]
;;; <@30,#21> load-named-field
0x45839d60 64 8b5a03 mov ebx,[edx+0x3]
;;; <@31,#21> gap
0x45839d63 67 8b750c mov esi,[ebp+0xc]
;;; <@32,#82> tagged-to-i
0x45839d66 70 d1fe sar esi,1
0x45839d68 72 0f8282000000 jc 208 (0x45839df0)
;;; <@33,#82> gap
0x45839d6e 78 89d8 mov eax,ebx
;;; <@34,#85> smi-untag
0x45839d70 80 d1f8 sar eax,1
;;; <@36,#22> bounds-check
0x45839d72 82 3bf0 cmp esi,eax
0x45839d74 84 0f8332010000 jnc 396 (0x45839eac)
;;; <@37,#22> gap
0x45839d7a 90 8b7d08 mov edi,[ebp+0x8]
;;; <@38,#84> tagged-to-i
0x45839d7d 93 d1ff sar edi,1
0x45839d7f 95 0f82a4000000 jc 265 (0x45839e29)
;;; <@39,#84> gap
0x45839d85 101 89f8 mov eax,edi
;;; <@40,#23> store-keyed
0x45839d87 103 88443207 mov_b [edx+esi*1+0x7],al
;;; <@42,#26> shift-i
0x45839d8b 107 c1ef08 shr edi,8 ;; debug: position 1485
;;; <@43,#26> gap
0x45839d8e 110 8b750c mov esi,[ebp+0xc]
;;; <@44,#81> check-smi
0x45839d91 113 f7c601000000 test esi,0x1 ;; debug: position 1502
0x45839d97 119 0f8514010000 jnz 401 (0x45839eb1)
;;; <@45,#81> gap
0x45839d9d 125 89f0 mov eax,esi
;;; <@46,#29> add-i
0x45839d9f 127 83c002 add eax,0x2 ;; debug: position 1503
0x45839da2 130 0f800e010000 jo 406 (0x45839eb6)
;;; <@48,#39> bounds-check
0x45839da8 136 3bc3 cmp eax,ebx ;; debug: position 1507
0x45839daa 138 0f830b010000 jnc 411 (0x45839ebb)
;;; <@49,#39> gap
0x45839db0 144 89f0 mov eax,esi
;;; <@50,#63> add-i
0x45839db2 146 83c006 add eax,0x6 ;; debug: position 1563
0x45839db5 149 0f8005010000 jo 416 (0x45839ec0)
;;; <@52,#56> bounds-check
0x45839dbb 155 3bc3 cmp eax,ebx ;; debug: position 1537
0x45839dbd 157 0f8302010000 jnc 421 (0x45839ec5)
;;; <@53,#56> gap
0x45839dc3 163 89f1 mov ecx,esi
0x45839dc5 165 89f8 mov eax,edi
;;; <@54,#40> store-keyed
0x45839dc7 167 d1f9 sar ecx,1 ;; debug: position 1507
0x45839dc9 169 88440a08 mov_b [edx+ecx*1+0x8],al
;;; <@56,#43> shift-i
0x45839dcd 173 c1ef08 shr edi,8 ;; debug: position 1515
;;; <@57,#43> gap
0x45839dd0 176 89f1 mov ecx,esi
0x45839dd2 178 89f8 mov eax,edi
;;; <@58,#57> store-keyed
0x45839dd4 180 d1f9 sar ecx,1 ;; debug: position 1537
0x45839dd6 182 88440a09 mov_b [edx+ecx*1+0x9],al
;;; <@60,#60> shift-i
0x45839dda 186 c1ef08 shr edi,8 ;; debug: position 1545
;;; <@61,#60> gap
0x45839ddd 189 89f8 mov eax,edi
;;; <@62,#74> store-keyed
0x45839ddf 191 d1fe sar esi,1 ;; debug: position 1567
0x45839de1 193 8844320a mov_b [edx+esi*1+0xa],al
;;; <@64,#7> constant-t
0x45839de5 197 b8b1808026 mov eax,0x268080b1 ;; debug: position 1450
;; object: 0x268080b1 <undefined>
;;; <@66,#77> return
0x45839dea 202 89ec mov esp,ebp
0x45839dec 204 5d pop ebp
0x45839ded 205 c21000 ret 0x10
;;; <@32,#82> -------------------- Deferred tagged-to-i --------------------
0x45839df0 208 8d347501000000 lea esi,[esi*2+0x1] ;; debug: position 1477
0x45839df7 215 817eff0d822030 cmp [esi-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839dfe 222 0f85c6000000 jnz 426 (0x45839eca)
0x45839e04 228 f20f104603 movsd xmm0,[esi+0x3]
0x45839e09 233 f20f2cf0 cvttsd2si esi,xmm0
0x45839e0d 237 0f57c9 xorps xmm1,xmm1
0x45839e10 240 f20f2ace cvtsi2sd xmm1,esi
0x45839e14 244 660f2ec1 ucomisd xmm0,xmm1
0x45839e18 248 0f85b1000000 jnz 431 (0x45839ecf)
0x45839e1e 254 0f8ab0000000 jpe 436 (0x45839ed4)
0x45839e24 260 e945ffffff jmp 78 (0x45839d6e)
;;; <@38,#84> -------------------- Deferred tagged-to-i --------------------
0x45839e29 265 8d3c7d01000000 lea edi,[edi*2+0x1]
0x45839e30 272 817fff0d822030 cmp [edi-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x45839e37 279 7535 jnz 334 (0x45839e6e)
0x45839e39 281 dd4703 fld_d [edi+0x3]
0x45839e3c 284 8b7f07 mov edi,[edi+0x7]
0x45839e3f 287 81e70000f07f and edi,0x7ff00000
0x45839e45 293 81ff0000e043 cmp edi,0x43e00000
0x45839e4b 299 7d0e jnl 315 (0x45839e5b)
0x45839e4d 301 83ec08 sub esp,0x8
0x45839e50 304 dd0c24 fisttp_d [esp]
0x45839e53 307 8b3c24 mov edi,[esp]
0x45839e56 310 83c408 add esp,0x8
0x45839e59 313 eb0e jmp 329 (0x45839e69)
0x45839e5b 315 83ec08 sub esp,0x8
0x45839e5e 318 dd1c24 fstp_d [esp]
0x45839e61 321 e83a8effff call 0x45832ca0 ;; code: STUB, DoubleToIStub, minor: 135620
0x45839e66 326 83c408 add esp,0x8
0x45839e69 329 e917ffffff jmp 101 (0x45839d85)
0x45839e6e 334 81ffb1808026 cmp edi,0x268080b1 ;; object: 0x268080b1 <undefined>
0x45839e74 340 7507 jnz 349 (0x45839e7d)
0x45839e76 342 33ff xor edi,edi
0x45839e78 344 e908ffffff jmp 101 (0x45839d85)
0x45839e7d 349 81ff05818026 cmp edi,0x26808105 ;; object: 0x26808105 <true>
0x45839e83 355 750a jnz 367 (0x45839e8f)
0x45839e85 357 bf01000000 mov edi,0x1
0x45839e8a 362 e9f6feffff jmp 101 (0x45839d85)
0x45839e8f 367 81ff25818026 cmp edi,0x26808125 ;; object: 0x26808125 <false>
0x45839e95 373 0f853e000000 jnz 441 (0x45839ed9)
0x45839e9b 379 33ff xor edi,edi
0x45839e9d 381 e9e3feffff jmp 101 (0x45839d85)
;;; -------------------- Jump table --------------------
0x45839ea2 386 e86301fdf6 call 0x3c80a00a ;; debug: position 13824
;; debug: deopt reason 'Smi'
;; deoptimization bailout 1
0x45839ea7 391 e86801fdf6 call 0x3c80a014 ;; debug: position 13824
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 2
0x45839eac 396 e86d01fdf6 call 0x3c80a01e ;; debug: position 13824
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 3
0x45839eb1 401 e87201fdf6 call 0x3c80a028 ;; debug: position 26624
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 4
0x45839eb6 406 e87701fdf6 call 0x3c80a032 ;; debug: position 27136
;; debug: deopt reason 'overflow'
;; deoptimization bailout 5
0x45839ebb 411 e87c01fdf6 call 0x3c80a03c ;; debug: position 29184
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 6
0x45839ec0 416 e88101fdf6 call 0x3c80a046 ;; debug: position 57856
;; debug: deopt reason 'overflow'
;; deoptimization bailout 7
0x45839ec5 421 e88601fdf6 call 0x3c80a050 ;; debug: position 44544
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 8
0x45839eca 426 e88b01fdf6 call 0x3c80a05a ;; debug: position 13824
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 9
0x45839ecf 431 e88601fdf6 call 0x3c80a05a ;; debug: position 13824
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 9
0x45839ed4 436 e88101fdf6 call 0x3c80a05a ;; debug: position 13824
;; debug: deopt reason 'NaN'
;; deoptimization bailout 9
0x45839ed9 441 e88601fdf6 call 0x3c80a064 ;; debug: position 13824
;; debug: deopt reason 'not a heap number/undefined/true/false'
;; deoptimization bailout 10
0x45839ede 446 90 nop
0x45839edf 447 90 nop
0x45839ee0 448 90 nop
0x45839ee1 449 90 nop
0x45839ee2 450 90 nop
0x45839ee3 451 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 11)
index ast id argc pc
0 3 0 36
1 3 0 -1
2 3 0 -1
3 3 0 -1
4 4 0 -1
5 4 0 -1
6 4 0 -1
7 4 0 -1
8 4 0 -1
9 3 0 -1
10 3 0 -1
Safepoints (size = 18)
0x45839d44 36 10 (sp -> fp) 0
RelocInfo (size = 490)
0x45839d28 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x45839d2f position (1450)
0x45839d2f comment (;;; <@0,#0> -------------------- B0 --------------------)
0x45839d2f comment (;;; <@2,#1> context)
0x45839d32 comment (;;; <@3,#1> gap)
0x45839d35 comment (;;; <@14,#10> -------------------- B1 --------------------)
0x45839d35 comment (;;; <@15,#10> gap)
0x45839d37 comment (;;; <@16,#12> stack-check)
0x45839d40 code target (BUILTIN) (0x4582efc0)
0x45839d44 comment (;;; <@18,#12> lazy-bailout)
0x45839d44 comment (;;; <@19,#12> gap)
0x45839d47 comment (;;; <@20,#14> check-non-smi)
0x45839d47 position (1477)
0x45839d50 comment (;;; <@22,#15> check-maps)
0x45839d53 embedded object (0x3020da91 <Map(elements=17)>)
0x45839d5d comment (;;; <@24,#17> check-maps)
0x45839d5d comment (;;; <@26,#19> check-maps)
0x45839d5d comment (;;; <@28,#20> load-named-field)
0x45839d60 comment (;;; <@30,#21> load-named-field)
0x45839d63 comment (;;; <@31,#21> gap)
0x45839d66 comment (;;; <@32,#82> tagged-to-i)
0x45839d6e comment (;;; <@33,#82> gap)
0x45839d70 comment (;;; <@34,#85> smi-untag)
0x45839d72 comment (;;; <@36,#22> bounds-check)
0x45839d7a comment (;;; <@37,#22> gap)
0x45839d7d comment (;;; <@38,#84> tagged-to-i)
0x45839d85 comment (;;; <@39,#84> gap)
0x45839d87 comment (;;; <@40,#23> store-keyed)
0x45839d8b comment (;;; <@42,#26> shift-i)
0x45839d8b position (1485)
0x45839d8e comment (;;; <@43,#26> gap)
0x45839d91 comment (;;; <@44,#81> check-smi)
0x45839d91 position (1502)
0x45839d9d comment (;;; <@45,#81> gap)
0x45839d9f comment (;;; <@46,#29> add-i)
0x45839d9f position (1503)
0x45839da8 comment (;;; <@48,#39> bounds-check)
0x45839da8 position (1507)
0x45839db0 comment (;;; <@49,#39> gap)
0x45839db2 comment (;;; <@50,#63> add-i)
0x45839db2 position (1563)
0x45839dbb comment (;;; <@52,#56> bounds-check)
0x45839dbb position (1537)
0x45839dc3 comment (;;; <@53,#56> gap)
0x45839dc7 comment (;;; <@54,#40> store-keyed)
0x45839dc7 position (1507)
0x45839dcd comment (;;; <@56,#43> shift-i)
0x45839dcd position (1515)
0x45839dd0 comment (;;; <@57,#43> gap)
0x45839dd4 comment (;;; <@58,#57> store-keyed)
0x45839dd4 position (1537)
0x45839dda comment (;;; <@60,#60> shift-i)
0x45839dda position (1545)
0x45839ddd comment (;;; <@61,#60> gap)
0x45839ddf comment (;;; <@62,#74> store-keyed)
0x45839ddf position (1567)
0x45839de5 comment (;;; <@64,#7> constant-t)
0x45839de5 position (1450)
0x45839de6 embedded object (0x268080b1 <undefined>)
0x45839dea comment (;;; <@66,#77> return)
0x45839df0 position (1477)
0x45839df0 comment (;;; <@32,#82> -------------------- Deferred tagged-to-i --------------------)
0x45839dfa embedded object (0x3020820d <Map(elements=3)>)
0x45839e29 comment (;;; <@38,#84> -------------------- Deferred tagged-to-i --------------------)
0x45839e33 embedded object (0x3020820d <Map(elements=3)>)
0x45839e62 code target (STUB) (0x45832ca0)
0x45839e70 embedded object (0x268080b1 <undefined>)
0x45839e7f embedded object (0x26808105 <true>)
0x45839e91 embedded object (0x26808125 <false>)
0x45839ea2 comment (;;; -------------------- Jump table --------------------)
0x45839ea2 position (13824)
0x45839ea2 deopt reason (Smi)
0x45839ea3 runtime entry (deoptimization bailout 1)
0x45839ea7 position (13824)
0x45839ea7 deopt reason (wrong map)
0x45839ea8 runtime entry (deoptimization bailout 2)
0x45839eac position (13824)
0x45839eac deopt reason (out of bounds)
0x45839ead runtime entry (deoptimization bailout 3)
0x45839eb1 position (26624)
0x45839eb1 deopt reason (not a Smi)
0x45839eb2 runtime entry (deoptimization bailout 4)
0x45839eb6 position (27136)
0x45839eb6 deopt reason (overflow)
0x45839eb7 runtime entry (deoptimization bailout 5)
0x45839ebb position (29184)
0x45839ebb deopt reason (out of bounds)
0x45839ebc runtime entry (deoptimization bailout 6)
0x45839ec0 position (57856)
0x45839ec0 deopt reason (overflow)
0x45839ec1 runtime entry (deoptimization bailout 7)
0x45839ec5 position (44544)
0x45839ec5 deopt reason (out of bounds)
0x45839ec6 runtime entry (deoptimization bailout 8)
0x45839eca position (13824)
0x45839eca deopt reason (not a heap number)
0x45839ecb runtime entry (deoptimization bailout 9)
0x45839ecf position (13824)
0x45839ecf deopt reason (lost precision)
0x45839ed0 runtime entry (deoptimization bailout 9)
0x45839ed4 position (13824)
0x45839ed4 deopt reason (NaN)
0x45839ed5 runtime entry (deoptimization bailout 9)
0x45839ed9 position (13824)
0x45839ed9 deopt reason (not a heap number/undefined/true/false)
0x45839eda runtime entry (deoptimization bailout 10)
0x45839ee4 comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (Uint32ArrayConstructByLength) id{3,0} ---
(a,b){
var c=(b===(void 0))?
0:ToPositiveInteger(b,"invalid_typed_array_length");
if(c>%_MaxSmi()){
throw MakeRangeError("invalid_typed_array_length");
}
var d=c*4;
if(d>%_TypedArrayMaxSizeInHeap()){
var g=new $ArrayBuffer(d);
%_TypedArrayInitialize(a,5,g,0,d);
}else{
%_TypedArrayInitialize(a,5,null,0,d);
}
}
--- END ---
--- FUNCTION SOURCE (getBlock) id{4,0} ---
(buffer) {
var x = new Uint32Array(16);
for (var i = 16; i--;) x[i] = input[i];
for (var i = 20; i > 0; i -= 2) {
quarterRound(x, 0, 4, 8,12);
quarterRound(x, 1, 5, 9,13);
quarterRound(x, 2, 6,10,14);
quarterRound(x, 3, 7,11,15);
quarterRound(x, 0, 5,10,15);
quarterRound(x, 1, 6,11,12);
quarterRound(x, 2, 7, 8,13);
quarterRound(x, 3, 4, 9,14);
}
for (i = 16; i--;) x[i] += input[i];
for (i = 16; i--;) U32TO8_LE(buffer, 4 * i, x[i]);
input[12]++;
return buffer;
}
--- END ---
--- FUNCTION SOURCE (quarterRound) id{4,1} ---
(x, a, b, c, d) {
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 16) | ((x[d] ^ x[a]) >>> 16);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 12) | ((x[b] ^ x[c]) >>> 20);
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 8) | ((x[d] ^ x[a]) >>> 24);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 7) | ((x[b] ^ x[c]) >>> 25);
}
--- END ---
INLINE (quarterRound) id{4,1} AS 1 AT <0:159>
--- FUNCTION SOURCE (quarterRound) id{4,2} ---
(x, a, b, c, d) {
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 16) | ((x[d] ^ x[a]) >>> 16);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 12) | ((x[b] ^ x[c]) >>> 20);
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 8) | ((x[d] ^ x[a]) >>> 24);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 7) | ((x[b] ^ x[c]) >>> 25);
}
--- END ---
INLINE (quarterRound) id{4,2} AS 2 AT <0:200>
--- FUNCTION SOURCE (quarterRound) id{4,3} ---
(x, a, b, c, d) {
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 16) | ((x[d] ^ x[a]) >>> 16);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 12) | ((x[b] ^ x[c]) >>> 20);
x[a] += x[b]; x[d] = ((x[d] ^ x[a]) << 8) | ((x[d] ^ x[a]) >>> 24);
x[c] += x[d]; x[b] = ((x[b] ^ x[c]) << 7) | ((x[b] ^ x[c]) >>> 25);
}
--- END ---
INLINE (quarterRound) id{4,3} AS 3 AT <0:241>
--- Raw source ---
(buffer) {
var x = new Uint32Array(16);
for (var i = 16; i--;) x[i] = input[i];
for (var i = 20; i > 0; i -= 2) {
quarterRound(x, 0, 4, 8,12);
quarterRound(x, 1, 5, 9,13);
quarterRound(x, 2, 6,10,14);
quarterRound(x, 3, 7,11,15);
quarterRound(x, 0, 5,10,15);
quarterRound(x, 1, 6,11,12);
quarterRound(x, 2, 7, 8,13);
quarterRound(x, 3, 4, 9,14);
}
for (i = 16; i--;) x[i] += input[i];
for (i = 16; i--;) U32TO8_LE(buffer, 4 * i, x[i]);
input[12]++;
return buffer;
}
--- Optimized code ---
optimization_id = 4
source_position = 2091
kind = OPTIMIZED_FUNCTION
name = getBlock
stack_slots = 6
Instructions (size = 2554)
0x4583a600 0 55 push ebp
0x4583a601 1 89e5 mov ebp,esp
0x4583a603 3 56 push esi
0x4583a604 4 57 push edi
0x4583a605 5 83ec18 sub esp,0x18
;;; Store dynamic frame alignment tag for spilled doubles
0x4583a608 8 c745f400000000 mov [ebp-0xc],0x0
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583a60f 15 8b45fc mov eax,[ebp-0x4] ;; debug: position 2091
;;; <@3,#1> gap
0x4583a612 18 8945f0 mov [ebp-0x10],eax
;;; <@10,#8> -------------------- B1 --------------------
;;; <@11,#8> gap
0x4583a615 21 89c6 mov esi,eax
;;; <@12,#10> stack-check
0x4583a617 23 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583a61d 29 7305 jnc 36 (0x4583a624)
0x4583a61f 31 e89c49ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@14,#10> lazy-bailout
;;; <@16,#13> push-argument
0x4583a624 36 68394b8826 push 0x26884b39 ;; debug: position 2118
;; object: 0x26884b39 <JS Function Uint32Array (SharedFunctionInfo 0x26843555)>
;;; <@18,#13> push-argument
0x4583a629 41 6a20 push 0x20
;;; <@20,#11> constant-t
0x4583a62b 43 bf394b8826 mov edi,0x26884b39 ;; debug: position 2122
;; object: 0x26884b39 <JS Function Uint32Array (SharedFunctionInfo 0x26843555)>
;;; <@21,#11> gap
0x4583a630 48 8b75f0 mov esi,[ebp-0x10]
;;; <@22,#14> call-new
0x4583a633 51 bbb1808026 mov ebx,0x268080b1 ;; debug: position 2118
;; object: 0x268080b1 <undefined>
0x4583a638 56 b801000000 mov eax,0x1
0x4583a63d 61 e87eb1feff call 0x458257c0 ;; code: constructor, STUB, CallConstructStub, minor: 0
;;; <@23,#14> gap
0x4583a642 66 8945ec mov [ebp-0x14],eax
;;; <@24,#15> lazy-bailout
;;; <@25,#15> gap
0x4583a645 69 8b4df0 mov ecx,[ebp-0x10]
;;; <@26,#45> load-context-slot
0x4583a648 72 8b5123 mov edx,[ecx+0x23] ;; debug: position 2186
;;; <@28,#47> check-non-smi
0x4583a64b 75 f6c201 test_b dl,0x1 ;; debug: position 2191
0x4583a64e 78 0f8483080000 jz 2263 (0x4583aed7)
;;; <@30,#48> check-maps
0x4583a654 84 817affa1dc2030 cmp [edx-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583a65b 91 0f857b080000 jnz 2268 (0x4583aedc)
;;; <@32,#49> load-named-field
0x4583a661 97 8b5207 mov edx,[edx+0x7]
;;; <@34,#50> load-named-field
0x4583a664 100 8b5a03 mov ebx,[edx+0x3]
;;; <@36,#53> check-non-smi
0x4583a667 103 a801 test al,0x1 ;; debug: position 2184
0x4583a669 105 0f8472080000 jz 2273 (0x4583aee1)
;;; <@38,#54> check-maps
0x4583a66f 111 8178ffa1dc2030 cmp [eax-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583a676 118 0f856a080000 jnz 2278 (0x4583aee6)
;;; <@40,#56> check-maps
;;; <@42,#58> check-maps
;;; <@44,#59> load-named-field
0x4583a67c 124 8b7007 mov esi,[eax+0x7]
;;; <@46,#60> load-named-field
0x4583a67f 127 8b7e03 mov edi,[esi+0x3]
;;; <@48,#25> gap
0x4583a682 130 b820000000 mov eax,0x20 ;; debug: position 2156
;;; <@50,#26> -------------------- B2 (loop header) --------------------
;;; <@51,#26> gap
0x4583a687 135 89c1 mov ecx,eax ;; debug: position 2173
;;; <@52,#31> add-i
0x4583a689 137 83c1fe add ecx,0xfe ;; debug: position 2174
0x4583a68c 140 0f8059080000 jo 2283 (0x4583aeeb)
;;; <@55,#33> branch
0x4583a692 146 85c0 test eax,eax
0x4583a694 148 0f8430000000 jz 202 (0x4583a6ca)
;;; <@56,#34> -------------------- B3 (unreachable/replaced) --------------------
;;; <@60,#40> -------------------- B4 --------------------
;;; <@62,#42> stack-check
0x4583a69a 154 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 2156
0x4583a6a0 160 0f82a3070000 jc 2121 (0x4583ae49)
;;; <@64,#51> bounds-check
0x4583a6a6 166 3bcb cmp ecx,ebx ;; debug: position 2191
0x4583a6a8 168 0f8342080000 jnc 2288 (0x4583aef0)
;;; <@66,#52> load-keyed
0x4583a6ae 174 8b444a07 mov eax,[edx+ecx*2+0x7]
0x4583a6b2 178 85c0 test eax,eax
0x4583a6b4 180 0f883b080000 js 2293 (0x4583aef5)
;;; <@68,#61> bounds-check
0x4583a6ba 186 3bcf cmp ecx,edi ;; debug: position 2184
0x4583a6bc 188 0f8338080000 jnc 2298 (0x4583aefa)
;;; <@70,#62> store-keyed
0x4583a6c2 194 89444e07 mov [esi+ecx*2+0x7],eax
;;; <@72,#65> gap
0x4583a6c6 198 89c8 mov eax,ecx ;; debug: position 2156
;;; <@73,#65> goto
0x4583a6c8 200 ebbd jmp 135 (0x4583a687)
;;; <@74,#37> -------------------- B5 (unreachable/replaced) --------------------
;;; <@78,#66> -------------------- B6 --------------------
;;; <@80,#75> gap
0x4583a6ca 202 8b4df0 mov ecx,[ebp-0x10] ;; debug: position 2217
;; debug: position 2204
0x4583a6cd 205 8b55ec mov edx,[ebp-0x14]
0x4583a6d0 208 b828000000 mov eax,0x28
;;; <@82,#76> -------------------- B7 (loop header) --------------------
0x4583a6d5 213 8945e8 mov [ebp-0x18],eax ;; debug: position 2221
;;; <@85,#79> compare-numeric-and-branch
0x4583a6d8 216 83f800 cmp eax,0x0 ;; debug: position 2223
0x4583a6db 219 0f8ecd050000 jng 1710 (0x4583acae)
;;; <@86,#80> -------------------- B8 (unreachable/replaced) --------------------
;;; <@90,#86> -------------------- B9 --------------------
;;; <@92,#89> load-context-slot
0x4583a6e1 225 8b592f mov ebx,[ecx+0x2f] ;; debug: position 2204
;; debug: position 2250
;;; <@94,#95> check-value
0x4583a6e4 228 3b1dcc81c039 cmp ebx,[0x39c081cc] ;; property cell
0x4583a6ea 234 0f850f080000 jnz 2303 (0x4583aeff)
;;; <@96,#101> check-maps
0x4583a6f0 240 817affa1dc2030 cmp [edx-0x1],0x3020dca1 ;; debug: position 1764
;; object: 0x3020dca1 <Map(elements=21)>
0x4583a6f7 247 0f8507080000 jnz 2308 (0x4583af04)
;;; <@98,#102> load-named-field
0x4583a6fd 253 8b7207 mov esi,[edx+0x7]
;;; <@100,#103> load-named-field
0x4583a700 256 8b7e03 mov edi,[esi+0x3]
;;; <@102,#104> bounds-check
0x4583a703 259 83ff00 cmp edi,0x0
0x4583a706 262 0f86fd070000 jna 2313 (0x4583af09)
;;; <@104,#110> bounds-check
0x4583a70c 268 83ff18 cmp edi,0x18 ;; debug: position 1768
0x4583a70f 271 0f86f9070000 jna 2318 (0x4583af0e)
;;; <@106,#105> load-keyed
0x4583a715 277 8b4607 mov eax,[esi+0x7] ;; debug: position 1764
;;; <@108,#111> load-keyed
0x4583a718 280 8b4e17 mov ecx,[esi+0x17] ;; debug: position 1768
;;; <@110,#1188> uint32-to-double
0x4583a71b 283 83f800 cmp eax,0x0 ;; debug: position 1764
0x4583a71e 286 0f57c9 xorps xmm1,xmm1
0x4583a721 289 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a725 293 7908 jns 303 (0x4583a72f)
0x4583a727 295 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@112,#1189> uint32-to-double
0x4583a72f 303 83f900 cmp ecx,0x0
0x4583a732 306 0f57d2 xorps xmm2,xmm2
0x4583a735 309 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a739 313 7908 jns 323 (0x4583a743)
0x4583a73b 315 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@114,#112> add-d
0x4583a743 323 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@116,#1190> double-to-i
0x4583a747 327 f20f2cc1 cvttsd2si eax,xmm1
0x4583a74b 331 83f801 cmp eax,0x1
0x4583a74e 334 7110 jno 352 (0x4583a760)
0x4583a750 336 83ec08 sub esp,0x8
0x4583a753 339 f20f110c24 movsd [esp],xmm1
0x4583a758 344 e843c0ffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a75d 349 83c408 add esp,0x8
;;; <@118,#123> store-keyed
0x4583a760 352 894607 mov [esi+0x7],eax
;;; <@120,#130> load-keyed
0x4583a763 355 8b4637 mov eax,[esi+0x37] ;; debug: position 1783
;;; <@122,#136> load-keyed
0x4583a766 358 8b4e07 mov ecx,[esi+0x7] ;; debug: position 1790
;;; <@124,#137> bit-i
0x4583a769 361 33c8 xor ecx,eax ;; debug: position 1787
;;; <@125,#137> gap
0x4583a76b 363 89c8 mov eax,ecx
;;; <@126,#140> shift-i
0x4583a76d 365 c1e010 shl eax,16 ;; debug: position 1795
;;; <@128,#157> shift-i
0x4583a770 368 c1e910 shr ecx,16 ;; debug: position 1819
;;; <@130,#159> bit-i
0x4583a773 371 0bc8 or ecx,eax ;; debug: position 1802
;;; <@132,#170> store-keyed
0x4583a775 373 894e37 mov [esi+0x37],ecx ;; debug: position 1778
;;; <@134,#177> load-keyed
0x4583a778 376 8b4627 mov eax,[esi+0x27] ;; debug: position 1841
;;; <@136,#183> load-keyed
0x4583a77b 379 8b4e37 mov ecx,[esi+0x37] ;; debug: position 1845
;;; <@138,#1193> uint32-to-double
0x4583a77e 382 83f800 cmp eax,0x0 ;; debug: position 1841
0x4583a781 385 0f57c9 xorps xmm1,xmm1
0x4583a784 388 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a788 392 7908 jns 402 (0x4583a792)
0x4583a78a 394 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@140,#1194> uint32-to-double
0x4583a792 402 83f900 cmp ecx,0x0
0x4583a795 405 0f57d2 xorps xmm2,xmm2
0x4583a798 408 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a79c 412 7908 jns 422 (0x4583a7a6)
0x4583a79e 414 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@142,#184> add-d
0x4583a7a6 422 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@144,#1195> double-to-i
0x4583a7aa 426 f20f2cc1 cvttsd2si eax,xmm1
0x4583a7ae 430 83f801 cmp eax,0x1
0x4583a7b1 433 7110 jno 451 (0x4583a7c3)
0x4583a7b3 435 83ec08 sub esp,0x8
0x4583a7b6 438 f20f110c24 movsd [esp],xmm1
0x4583a7bb 443 e8e0bfffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a7c0 448 83c408 add esp,0x8
;;; <@146,#195> store-keyed
0x4583a7c3 451 894627 mov [esi+0x27],eax
;;; <@148,#202> load-keyed
0x4583a7c6 454 8b4617 mov eax,[esi+0x17] ;; debug: position 1860
;;; <@150,#208> load-keyed
0x4583a7c9 457 8b4e27 mov ecx,[esi+0x27] ;; debug: position 1867
;;; <@152,#209> bit-i
0x4583a7cc 460 33c8 xor ecx,eax ;; debug: position 1864
;;; <@153,#209> gap
0x4583a7ce 462 89c8 mov eax,ecx
;;; <@154,#212> shift-i
0x4583a7d0 464 c1e00c shl eax,12 ;; debug: position 1872
;;; <@156,#229> shift-i
0x4583a7d3 467 c1e914 shr ecx,20 ;; debug: position 1896
;;; <@158,#231> bit-i
0x4583a7d6 470 0bc8 or ecx,eax ;; debug: position 1879
;;; <@160,#242> store-keyed
0x4583a7d8 472 894e17 mov [esi+0x17],ecx ;; debug: position 1855
;;; <@162,#249> load-keyed
0x4583a7db 475 8b4607 mov eax,[esi+0x7] ;; debug: position 1918
;;; <@164,#255> load-keyed
0x4583a7de 478 8b4e17 mov ecx,[esi+0x17] ;; debug: position 1922
;;; <@166,#1198> uint32-to-double
0x4583a7e1 481 83f800 cmp eax,0x0 ;; debug: position 1918
0x4583a7e4 484 0f57c9 xorps xmm1,xmm1
0x4583a7e7 487 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a7eb 491 7908 jns 501 (0x4583a7f5)
0x4583a7ed 493 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@168,#1199> uint32-to-double
0x4583a7f5 501 83f900 cmp ecx,0x0
0x4583a7f8 504 0f57d2 xorps xmm2,xmm2
0x4583a7fb 507 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a7ff 511 7908 jns 521 (0x4583a809)
0x4583a801 513 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@170,#256> add-d
0x4583a809 521 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@172,#1200> double-to-i
0x4583a80d 525 f20f2cc1 cvttsd2si eax,xmm1
0x4583a811 529 83f801 cmp eax,0x1
0x4583a814 532 7110 jno 550 (0x4583a826)
0x4583a816 534 83ec08 sub esp,0x8
0x4583a819 537 f20f110c24 movsd [esp],xmm1
0x4583a81e 542 e87dbfffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a823 547 83c408 add esp,0x8
;;; <@174,#267> store-keyed
0x4583a826 550 894607 mov [esi+0x7],eax
;;; <@176,#274> load-keyed
0x4583a829 553 8b4637 mov eax,[esi+0x37] ;; debug: position 1937
;;; <@178,#280> load-keyed
0x4583a82c 556 8b4e07 mov ecx,[esi+0x7] ;; debug: position 1944
;;; <@180,#281> bit-i
0x4583a82f 559 33c8 xor ecx,eax ;; debug: position 1941
;;; <@181,#281> gap
0x4583a831 561 89c8 mov eax,ecx
;;; <@182,#284> shift-i
0x4583a833 563 c1e008 shl eax,8 ;; debug: position 1949
;;; <@184,#301> shift-i
0x4583a836 566 c1e918 shr ecx,24 ;; debug: position 1973
;;; <@186,#303> bit-i
0x4583a839 569 0bc8 or ecx,eax ;; debug: position 1956
;;; <@188,#314> store-keyed
0x4583a83b 571 894e37 mov [esi+0x37],ecx ;; debug: position 1932
;;; <@190,#321> load-keyed
0x4583a83e 574 8b4627 mov eax,[esi+0x27] ;; debug: position 1995
;;; <@192,#327> load-keyed
0x4583a841 577 8b4e37 mov ecx,[esi+0x37] ;; debug: position 1999
;;; <@194,#1203> uint32-to-double
0x4583a844 580 83f800 cmp eax,0x0 ;; debug: position 1995
0x4583a847 583 0f57c9 xorps xmm1,xmm1
0x4583a84a 586 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a84e 590 7908 jns 600 (0x4583a858)
0x4583a850 592 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@196,#1204> uint32-to-double
0x4583a858 600 83f900 cmp ecx,0x0
0x4583a85b 603 0f57d2 xorps xmm2,xmm2
0x4583a85e 606 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a862 610 7908 jns 620 (0x4583a86c)
0x4583a864 612 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@198,#328> add-d
0x4583a86c 620 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@200,#1205> double-to-i
0x4583a870 624 f20f2cc1 cvttsd2si eax,xmm1
0x4583a874 628 83f801 cmp eax,0x1
0x4583a877 631 7110 jno 649 (0x4583a889)
0x4583a879 633 83ec08 sub esp,0x8
0x4583a87c 636 f20f110c24 movsd [esp],xmm1
0x4583a881 641 e81abfffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a886 646 83c408 add esp,0x8
;;; <@202,#339> store-keyed
0x4583a889 649 894627 mov [esi+0x27],eax
;;; <@204,#346> load-keyed
0x4583a88c 652 8b4617 mov eax,[esi+0x17] ;; debug: position 2014
;;; <@206,#352> load-keyed
0x4583a88f 655 8b4e27 mov ecx,[esi+0x27] ;; debug: position 2021
;;; <@208,#353> bit-i
0x4583a892 658 33c8 xor ecx,eax ;; debug: position 2018
;;; <@209,#353> gap
0x4583a894 660 89c8 mov eax,ecx
;;; <@210,#356> shift-i
0x4583a896 662 c1e007 shl eax,7 ;; debug: position 2026
;;; <@212,#373> shift-i
0x4583a899 665 c1e919 shr ecx,25 ;; debug: position 2050
;;; <@214,#375> bit-i
0x4583a89c 668 0bc8 or ecx,eax ;; debug: position 2033
;;; <@216,#386> store-keyed
0x4583a89e 670 894e17 mov [esi+0x17],ecx ;; debug: position 2009
;;; <@220,#391> -------------------- B10 --------------------
;;; <@222,#408> load-keyed
0x4583a8a1 673 8b460b mov eax,[esi+0xb] ;; debug: position 2291
;; debug: position 1764
;;; <@224,#414> load-keyed
0x4583a8a4 676 8b4e1b mov ecx,[esi+0x1b] ;; debug: position 1768
;;; <@226,#1208> uint32-to-double
0x4583a8a7 679 83f800 cmp eax,0x0 ;; debug: position 1764
0x4583a8aa 682 0f57c9 xorps xmm1,xmm1
0x4583a8ad 685 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a8b1 689 7908 jns 699 (0x4583a8bb)
0x4583a8b3 691 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@228,#1209> uint32-to-double
0x4583a8bb 699 83f900 cmp ecx,0x0
0x4583a8be 702 0f57d2 xorps xmm2,xmm2
0x4583a8c1 705 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a8c5 709 7908 jns 719 (0x4583a8cf)
0x4583a8c7 711 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@230,#415> add-d
0x4583a8cf 719 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@232,#1210> double-to-i
0x4583a8d3 723 f20f2cc1 cvttsd2si eax,xmm1
0x4583a8d7 727 83f801 cmp eax,0x1
0x4583a8da 730 7110 jno 748 (0x4583a8ec)
0x4583a8dc 732 83ec08 sub esp,0x8
0x4583a8df 735 f20f110c24 movsd [esp],xmm1
0x4583a8e4 740 e8b7beffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a8e9 745 83c408 add esp,0x8
;;; <@234,#426> store-keyed
0x4583a8ec 748 89460b mov [esi+0xb],eax
;;; <@236,#432> bounds-check
0x4583a8ef 751 83ff1a cmp edi,0x1a ;; debug: position 1783
0x4583a8f2 754 0f861b060000 jna 2323 (0x4583af13)
;;; <@238,#433> load-keyed
0x4583a8f8 760 8b463b mov eax,[esi+0x3b]
;;; <@240,#439> load-keyed
0x4583a8fb 763 8b4e0b mov ecx,[esi+0xb] ;; debug: position 1790
;;; <@242,#440> bit-i
0x4583a8fe 766 33c8 xor ecx,eax ;; debug: position 1787
;;; <@243,#440> gap
0x4583a900 768 89c8 mov eax,ecx
;;; <@244,#443> shift-i
0x4583a902 770 c1e010 shl eax,16 ;; debug: position 1795
;;; <@246,#460> shift-i
0x4583a905 773 c1e910 shr ecx,16 ;; debug: position 1819
;;; <@248,#462> bit-i
0x4583a908 776 0bc8 or ecx,eax ;; debug: position 1802
;;; <@250,#473> store-keyed
0x4583a90a 778 894e3b mov [esi+0x3b],ecx ;; debug: position 1778
;;; <@252,#480> load-keyed
0x4583a90d 781 8b462b mov eax,[esi+0x2b] ;; debug: position 1841
;;; <@254,#486> load-keyed
0x4583a910 784 8b4e3b mov ecx,[esi+0x3b] ;; debug: position 1845
;;; <@256,#1213> uint32-to-double
0x4583a913 787 83f800 cmp eax,0x0 ;; debug: position 1841
0x4583a916 790 0f57c9 xorps xmm1,xmm1
0x4583a919 793 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a91d 797 7908 jns 807 (0x4583a927)
0x4583a91f 799 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@258,#1214> uint32-to-double
0x4583a927 807 83f900 cmp ecx,0x0
0x4583a92a 810 0f57d2 xorps xmm2,xmm2
0x4583a92d 813 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a931 817 7908 jns 827 (0x4583a93b)
0x4583a933 819 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@260,#487> add-d
0x4583a93b 827 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@262,#1215> double-to-i
0x4583a93f 831 f20f2cc1 cvttsd2si eax,xmm1
0x4583a943 835 83f801 cmp eax,0x1
0x4583a946 838 7110 jno 856 (0x4583a958)
0x4583a948 840 83ec08 sub esp,0x8
0x4583a94b 843 f20f110c24 movsd [esp],xmm1
0x4583a950 848 e84bbeffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a955 853 83c408 add esp,0x8
;;; <@264,#498> store-keyed
0x4583a958 856 89462b mov [esi+0x2b],eax
;;; <@266,#505> load-keyed
0x4583a95b 859 8b461b mov eax,[esi+0x1b] ;; debug: position 1860
;;; <@268,#511> load-keyed
0x4583a95e 862 8b4e2b mov ecx,[esi+0x2b] ;; debug: position 1867
;;; <@270,#512> bit-i
0x4583a961 865 33c8 xor ecx,eax ;; debug: position 1864
;;; <@271,#512> gap
0x4583a963 867 89c8 mov eax,ecx
;;; <@272,#515> shift-i
0x4583a965 869 c1e00c shl eax,12 ;; debug: position 1872
;;; <@274,#532> shift-i
0x4583a968 872 c1e914 shr ecx,20 ;; debug: position 1896
;;; <@276,#534> bit-i
0x4583a96b 875 0bc8 or ecx,eax ;; debug: position 1879
;;; <@278,#545> store-keyed
0x4583a96d 877 894e1b mov [esi+0x1b],ecx ;; debug: position 1855
;;; <@280,#552> load-keyed
0x4583a970 880 8b460b mov eax,[esi+0xb] ;; debug: position 1918
;;; <@282,#558> load-keyed
0x4583a973 883 8b4e1b mov ecx,[esi+0x1b] ;; debug: position 1922
;;; <@284,#1218> uint32-to-double
0x4583a976 886 83f800 cmp eax,0x0 ;; debug: position 1918
0x4583a979 889 0f57c9 xorps xmm1,xmm1
0x4583a97c 892 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a980 896 7908 jns 906 (0x4583a98a)
0x4583a982 898 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@286,#1219> uint32-to-double
0x4583a98a 906 83f900 cmp ecx,0x0
0x4583a98d 909 0f57d2 xorps xmm2,xmm2
0x4583a990 912 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a994 916 7908 jns 926 (0x4583a99e)
0x4583a996 918 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@288,#559> add-d
0x4583a99e 926 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@290,#1220> double-to-i
0x4583a9a2 930 f20f2cc1 cvttsd2si eax,xmm1
0x4583a9a6 934 83f801 cmp eax,0x1
0x4583a9a9 937 7110 jno 955 (0x4583a9bb)
0x4583a9ab 939 83ec08 sub esp,0x8
0x4583a9ae 942 f20f110c24 movsd [esp],xmm1
0x4583a9b3 947 e8e8bdffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583a9b8 952 83c408 add esp,0x8
;;; <@292,#570> store-keyed
0x4583a9bb 955 89460b mov [esi+0xb],eax
;;; <@294,#577> load-keyed
0x4583a9be 958 8b463b mov eax,[esi+0x3b] ;; debug: position 1937
;;; <@296,#583> load-keyed
0x4583a9c1 961 8b4e0b mov ecx,[esi+0xb] ;; debug: position 1944
;;; <@298,#584> bit-i
0x4583a9c4 964 33c8 xor ecx,eax ;; debug: position 1941
;;; <@299,#584> gap
0x4583a9c6 966 89c8 mov eax,ecx
;;; <@300,#587> shift-i
0x4583a9c8 968 c1e008 shl eax,8 ;; debug: position 1949
;;; <@302,#604> shift-i
0x4583a9cb 971 c1e918 shr ecx,24 ;; debug: position 1973
;;; <@304,#606> bit-i
0x4583a9ce 974 0bc8 or ecx,eax ;; debug: position 1956
;;; <@306,#617> store-keyed
0x4583a9d0 976 894e3b mov [esi+0x3b],ecx ;; debug: position 1932
;;; <@308,#624> load-keyed
0x4583a9d3 979 8b462b mov eax,[esi+0x2b] ;; debug: position 1995
;;; <@310,#630> load-keyed
0x4583a9d6 982 8b4e3b mov ecx,[esi+0x3b] ;; debug: position 1999
;;; <@312,#1223> uint32-to-double
0x4583a9d9 985 83f800 cmp eax,0x0 ;; debug: position 1995
0x4583a9dc 988 0f57c9 xorps xmm1,xmm1
0x4583a9df 991 f20f2ac8 cvtsi2sd xmm1,eax
0x4583a9e3 995 7908 jns 1005 (0x4583a9ed)
0x4583a9e5 997 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@314,#1224> uint32-to-double
0x4583a9ed 1005 83f900 cmp ecx,0x0
0x4583a9f0 1008 0f57d2 xorps xmm2,xmm2
0x4583a9f3 1011 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583a9f7 1015 7908 jns 1025 (0x4583aa01)
0x4583a9f9 1017 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@316,#631> add-d
0x4583aa01 1025 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@318,#1225> double-to-i
0x4583aa05 1029 f20f2cc1 cvttsd2si eax,xmm1
0x4583aa09 1033 83f801 cmp eax,0x1
0x4583aa0c 1036 7110 jno 1054 (0x4583aa1e)
0x4583aa0e 1038 83ec08 sub esp,0x8
0x4583aa11 1041 f20f110c24 movsd [esp],xmm1
0x4583aa16 1046 e885bdffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583aa1b 1051 83c408 add esp,0x8
;;; <@320,#642> store-keyed
0x4583aa1e 1054 89462b mov [esi+0x2b],eax
;;; <@322,#649> load-keyed
0x4583aa21 1057 8b461b mov eax,[esi+0x1b] ;; debug: position 2014
;;; <@324,#655> load-keyed
0x4583aa24 1060 8b4e2b mov ecx,[esi+0x2b] ;; debug: position 2021
;;; <@326,#656> bit-i
0x4583aa27 1063 33c8 xor ecx,eax ;; debug: position 2018
;;; <@327,#656> gap
0x4583aa29 1065 89c8 mov eax,ecx
;;; <@328,#659> shift-i
0x4583aa2b 1067 c1e007 shl eax,7 ;; debug: position 2026
;;; <@330,#676> shift-i
0x4583aa2e 1070 c1e919 shr ecx,25 ;; debug: position 2050
;;; <@332,#678> bit-i
0x4583aa31 1073 0bc8 or ecx,eax ;; debug: position 2033
;;; <@334,#689> store-keyed
0x4583aa33 1075 894e1b mov [esi+0x1b],ecx ;; debug: position 2009
;;; <@338,#694> -------------------- B11 --------------------
;;; <@340,#711> load-keyed
0x4583aa36 1078 8b460f mov eax,[esi+0xf] ;; debug: position 2332
;; debug: position 1764
;;; <@342,#717> load-keyed
0x4583aa39 1081 8b4e1f mov ecx,[esi+0x1f] ;; debug: position 1768
;;; <@344,#1228> uint32-to-double
0x4583aa3c 1084 83f800 cmp eax,0x0 ;; debug: position 1764
0x4583aa3f 1087 0f57c9 xorps xmm1,xmm1
0x4583aa42 1090 f20f2ac8 cvtsi2sd xmm1,eax
0x4583aa46 1094 7908 jns 1104 (0x4583aa50)
0x4583aa48 1096 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@346,#1229> uint32-to-double
0x4583aa50 1104 83f900 cmp ecx,0x0
0x4583aa53 1107 0f57d2 xorps xmm2,xmm2
0x4583aa56 1110 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583aa5a 1114 7908 jns 1124 (0x4583aa64)
0x4583aa5c 1116 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@348,#718> add-d
0x4583aa64 1124 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@350,#1230> double-to-i
0x4583aa68 1128 f20f2cc1 cvttsd2si eax,xmm1
0x4583aa6c 1132 83f801 cmp eax,0x1
0x4583aa6f 1135 7110 jno 1153 (0x4583aa81)
0x4583aa71 1137 83ec08 sub esp,0x8
0x4583aa74 1140 f20f110c24 movsd [esp],xmm1
0x4583aa79 1145 e822bdffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583aa7e 1150 83c408 add esp,0x8
;;; <@352,#729> store-keyed
0x4583aa81 1153 89460f mov [esi+0xf],eax
;;; <@354,#735> bounds-check
0x4583aa84 1156 83ff1c cmp edi,0x1c ;; debug: position 1783
0x4583aa87 1159 0f868b040000 jna 2328 (0x4583af18)
;;; <@356,#736> load-keyed
0x4583aa8d 1165 8b463f mov eax,[esi+0x3f]
;;; <@358,#742> load-keyed
0x4583aa90 1168 8b4e0f mov ecx,[esi+0xf] ;; debug: position 1790
;;; <@360,#743> bit-i
0x4583aa93 1171 33c8 xor ecx,eax ;; debug: position 1787
;;; <@361,#743> gap
0x4583aa95 1173 89c8 mov eax,ecx
;;; <@362,#746> shift-i
0x4583aa97 1175 c1e010 shl eax,16 ;; debug: position 1795
;;; <@364,#763> shift-i
0x4583aa9a 1178 c1e910 shr ecx,16 ;; debug: position 1819
;;; <@366,#765> bit-i
0x4583aa9d 1181 0bc8 or ecx,eax ;; debug: position 1802
;;; <@368,#776> store-keyed
0x4583aa9f 1183 894e3f mov [esi+0x3f],ecx ;; debug: position 1778
;;; <@370,#783> load-keyed
0x4583aaa2 1186 8b462f mov eax,[esi+0x2f] ;; debug: position 1841
;;; <@372,#789> load-keyed
0x4583aaa5 1189 8b4e3f mov ecx,[esi+0x3f] ;; debug: position 1845
;;; <@374,#1233> uint32-to-double
0x4583aaa8 1192 83f800 cmp eax,0x0 ;; debug: position 1841
0x4583aaab 1195 0f57c9 xorps xmm1,xmm1
0x4583aaae 1198 f20f2ac8 cvtsi2sd xmm1,eax
0x4583aab2 1202 7908 jns 1212 (0x4583aabc)
0x4583aab4 1204 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@376,#1234> uint32-to-double
0x4583aabc 1212 83f900 cmp ecx,0x0
0x4583aabf 1215 0f57d2 xorps xmm2,xmm2
0x4583aac2 1218 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583aac6 1222 7908 jns 1232 (0x4583aad0)
0x4583aac8 1224 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@378,#790> add-d
0x4583aad0 1232 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@380,#1235> double-to-i
0x4583aad4 1236 f20f2cc1 cvttsd2si eax,xmm1
0x4583aad8 1240 83f801 cmp eax,0x1
0x4583aadb 1243 7110 jno 1261 (0x4583aaed)
0x4583aadd 1245 83ec08 sub esp,0x8
0x4583aae0 1248 f20f110c24 movsd [esp],xmm1
0x4583aae5 1253 e8b6bcffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583aaea 1258 83c408 add esp,0x8
;;; <@382,#801> store-keyed
0x4583aaed 1261 89462f mov [esi+0x2f],eax
;;; <@384,#808> load-keyed
0x4583aaf0 1264 8b461f mov eax,[esi+0x1f] ;; debug: position 1860
;;; <@386,#814> load-keyed
0x4583aaf3 1267 8b4e2f mov ecx,[esi+0x2f] ;; debug: position 1867
;;; <@388,#815> bit-i
0x4583aaf6 1270 33c8 xor ecx,eax ;; debug: position 1864
;;; <@389,#815> gap
0x4583aaf8 1272 89c8 mov eax,ecx
;;; <@390,#818> shift-i
0x4583aafa 1274 c1e00c shl eax,12 ;; debug: position 1872
;;; <@392,#835> shift-i
0x4583aafd 1277 c1e914 shr ecx,20 ;; debug: position 1896
;;; <@394,#837> bit-i
0x4583ab00 1280 0bc8 or ecx,eax ;; debug: position 1879
;;; <@396,#848> store-keyed
0x4583ab02 1282 894e1f mov [esi+0x1f],ecx ;; debug: position 1855
;;; <@398,#855> load-keyed
0x4583ab05 1285 8b460f mov eax,[esi+0xf] ;; debug: position 1918
;;; <@400,#861> load-keyed
0x4583ab08 1288 8b4e1f mov ecx,[esi+0x1f] ;; debug: position 1922
;;; <@402,#1238> uint32-to-double
0x4583ab0b 1291 83f800 cmp eax,0x0 ;; debug: position 1918
0x4583ab0e 1294 0f57c9 xorps xmm1,xmm1
0x4583ab11 1297 f20f2ac8 cvtsi2sd xmm1,eax
0x4583ab15 1301 7908 jns 1311 (0x4583ab1f)
0x4583ab17 1303 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@404,#1239> uint32-to-double
0x4583ab1f 1311 83f900 cmp ecx,0x0
0x4583ab22 1314 0f57d2 xorps xmm2,xmm2
0x4583ab25 1317 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583ab29 1321 7908 jns 1331 (0x4583ab33)
0x4583ab2b 1323 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@406,#862> add-d
0x4583ab33 1331 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@408,#1240> double-to-i
0x4583ab37 1335 f20f2cc1 cvttsd2si eax,xmm1
0x4583ab3b 1339 83f801 cmp eax,0x1
0x4583ab3e 1342 7110 jno 1360 (0x4583ab50)
0x4583ab40 1344 83ec08 sub esp,0x8
0x4583ab43 1347 f20f110c24 movsd [esp],xmm1
0x4583ab48 1352 e853bcffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583ab4d 1357 83c408 add esp,0x8
;;; <@410,#873> store-keyed
0x4583ab50 1360 89460f mov [esi+0xf],eax
;;; <@412,#880> load-keyed
0x4583ab53 1363 8b463f mov eax,[esi+0x3f] ;; debug: position 1937
;;; <@414,#886> load-keyed
0x4583ab56 1366 8b4e0f mov ecx,[esi+0xf] ;; debug: position 1944
;;; <@416,#887> bit-i
0x4583ab59 1369 33c8 xor ecx,eax ;; debug: position 1941
;;; <@417,#887> gap
0x4583ab5b 1371 89c8 mov eax,ecx
;;; <@418,#890> shift-i
0x4583ab5d 1373 c1e008 shl eax,8 ;; debug: position 1949
;;; <@420,#907> shift-i
0x4583ab60 1376 c1e918 shr ecx,24 ;; debug: position 1973
;;; <@422,#909> bit-i
0x4583ab63 1379 0bc8 or ecx,eax ;; debug: position 1956
;;; <@424,#920> store-keyed
0x4583ab65 1381 894e3f mov [esi+0x3f],ecx ;; debug: position 1932
;;; <@426,#927> load-keyed
0x4583ab68 1384 8b462f mov eax,[esi+0x2f] ;; debug: position 1995
;;; <@428,#933> load-keyed
0x4583ab6b 1387 8b4e3f mov ecx,[esi+0x3f] ;; debug: position 1999
;;; <@430,#1243> uint32-to-double
0x4583ab6e 1390 83f800 cmp eax,0x0 ;; debug: position 1995
0x4583ab71 1393 0f57c9 xorps xmm1,xmm1
0x4583ab74 1396 f20f2ac8 cvtsi2sd xmm1,eax
0x4583ab78 1400 7908 jns 1410 (0x4583ab82)
0x4583ab7a 1402 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@432,#1244> uint32-to-double
0x4583ab82 1410 83f900 cmp ecx,0x0
0x4583ab85 1413 0f57d2 xorps xmm2,xmm2
0x4583ab88 1416 f20f2ad1 cvtsi2sd xmm2,ecx
0x4583ab8c 1420 7908 jns 1430 (0x4583ab96)
0x4583ab8e 1422 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@434,#934> add-d
0x4583ab96 1430 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@436,#1245> double-to-i
0x4583ab9a 1434 f20f2cc1 cvttsd2si eax,xmm1
0x4583ab9e 1438 83f801 cmp eax,0x1
0x4583aba1 1441 7110 jno 1459 (0x4583abb3)
0x4583aba3 1443 83ec08 sub esp,0x8
0x4583aba6 1446 f20f110c24 movsd [esp],xmm1
0x4583abab 1451 e8f0bbffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583abb0 1456 83c408 add esp,0x8
;;; <@438,#945> store-keyed
0x4583abb3 1459 89462f mov [esi+0x2f],eax
;;; <@440,#952> load-keyed
0x4583abb6 1462 8b461f mov eax,[esi+0x1f] ;; debug: position 2014
;;; <@442,#958> load-keyed
0x4583abb9 1465 8b4e2f mov ecx,[esi+0x2f] ;; debug: position 2021
;;; <@444,#959> bit-i
0x4583abbc 1468 33c8 xor ecx,eax ;; debug: position 2018
;;; <@445,#959> gap
0x4583abbe 1470 89c8 mov eax,ecx
;;; <@446,#962> shift-i
0x4583abc0 1472 c1e007 shl eax,7 ;; debug: position 2026
;;; <@448,#979> shift-i
0x4583abc3 1475 c1e919 shr ecx,25 ;; debug: position 2050
;;; <@450,#981> bit-i
0x4583abc6 1478 0bc8 or ecx,eax ;; debug: position 2033
;;; <@452,#992> store-keyed
0x4583abc8 1480 894e1f mov [esi+0x1f],ecx ;; debug: position 2009
;;; <@456,#997> -------------------- B12 --------------------
;;; <@458,#1005> push-argument
0x4583abcb 1483 68b1808026 push 0x268080b1 ;; debug: position 2373
;; object: 0x268080b1 <undefined>
;;; <@460,#1005> push-argument
0x4583abd0 1488 52 push edx
;;; <@462,#1005> push-argument
0x4583abd1 1489 6a06 push 0x6
;;; <@464,#1005> push-argument
0x4583abd3 1491 6a0e push 0xe
;;; <@466,#1005> push-argument
0x4583abd5 1493 6a16 push 0x16
;;; <@468,#1005> push-argument
0x4583abd7 1495 6a1e push 0x1e
;;; <@470,#1006> constant-t
0x4583abd9 1497 8b3dd481c039 mov edi,[0x39c081d4] ;; property cell
;;; <@472,#1007> call-js-function
0x4583abdf 1503 8b7717 mov esi,[edi+0x17]
0x4583abe2 1506 ff570b call [edi+0xb]
;;; <@474,#1008> lazy-bailout
;;; <@475,#1008> gap
0x4583abe5 1509 8b45f0 mov eax,[ebp-0x10]
;;; <@476,#1009> load-context-slot
0x4583abe8 1512 8b482f mov ecx,[eax+0x2f] ;; debug: position 2414
;;; <@478,#1015> check-value
0x4583abeb 1515 3b0ddc81c039 cmp ecx,[0x39c081dc] ;; property cell
0x4583abf1 1521 0f8526030000 jnz 2333 (0x4583af1d)
;;; <@480,#1016> push-argument
0x4583abf7 1527 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@482,#1016> push-argument
0x4583abfc 1532 ff75ec push [ebp-0x14]
;;; <@484,#1016> push-argument
0x4583abff 1535 6a00 push 0x0
;;; <@486,#1016> push-argument
0x4583ac01 1537 6a0a push 0xa
;;; <@488,#1016> push-argument
0x4583ac03 1539 6a14 push 0x14
;;; <@490,#1016> push-argument
0x4583ac05 1541 6a1e push 0x1e
;;; <@492,#1006> constant-t
0x4583ac07 1543 8b3de481c039 mov edi,[0x39c081e4] ;; debug: position 2373
;; property cell
;;; <@494,#1018> call-js-function
0x4583ac0d 1549 8b7717 mov esi,[edi+0x17] ;; debug: position 2414
0x4583ac10 1552 ff570b call [edi+0xb]
;;; <@496,#1019> lazy-bailout
;;; <@497,#1019> gap
0x4583ac13 1555 8b45f0 mov eax,[ebp-0x10]
;;; <@498,#1020> load-context-slot
0x4583ac16 1558 8b482f mov ecx,[eax+0x2f] ;; debug: position 2455
;;; <@500,#1026> check-value
0x4583ac19 1561 3b0dec81c039 cmp ecx,[0x39c081ec] ;; property cell
0x4583ac1f 1567 0f85fd020000 jnz 2338 (0x4583af22)
;;; <@502,#1027> push-argument
0x4583ac25 1573 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@504,#1027> push-argument
0x4583ac2a 1578 ff75ec push [ebp-0x14]
;;; <@506,#1027> push-argument
0x4583ac2d 1581 6a02 push 0x2
;;; <@508,#1027> push-argument
0x4583ac2f 1583 6a0c push 0xc
;;; <@510,#1027> push-argument
0x4583ac31 1585 6a16 push 0x16
;;; <@512,#1027> push-argument
0x4583ac33 1587 6a18 push 0x18
;;; <@514,#1006> constant-t
0x4583ac35 1589 8b3df481c039 mov edi,[0x39c081f4] ;; debug: position 2373
;; property cell
;;; <@516,#1029> call-js-function
0x4583ac3b 1595 8b7717 mov esi,[edi+0x17] ;; debug: position 2455
0x4583ac3e 1598 ff570b call [edi+0xb]
;;; <@518,#1030> lazy-bailout
;;; <@519,#1030> gap
0x4583ac41 1601 8b45f0 mov eax,[ebp-0x10]
;;; <@520,#1031> load-context-slot
0x4583ac44 1604 8b482f mov ecx,[eax+0x2f] ;; debug: position 2496
;;; <@522,#1037> check-value
0x4583ac47 1607 3b0dfc81c039 cmp ecx,[0x39c081fc] ;; property cell
0x4583ac4d 1613 0f85d4020000 jnz 2343 (0x4583af27)
;;; <@524,#1038> push-argument
0x4583ac53 1619 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@526,#1038> push-argument
0x4583ac58 1624 ff75ec push [ebp-0x14]
;;; <@528,#1038> push-argument
0x4583ac5b 1627 6a04 push 0x4
;;; <@530,#1038> push-argument
0x4583ac5d 1629 6a0e push 0xe
;;; <@532,#1038> push-argument
0x4583ac5f 1631 6a10 push 0x10
;;; <@534,#1038> push-argument
0x4583ac61 1633 6a1a push 0x1a
;;; <@536,#1006> constant-t
0x4583ac63 1635 8b3d0482c039 mov edi,[0x39c08204] ;; debug: position 2373
;; property cell
;;; <@538,#1040> call-js-function
0x4583ac69 1641 8b7717 mov esi,[edi+0x17] ;; debug: position 2496
0x4583ac6c 1644 ff570b call [edi+0xb]
;;; <@540,#1041> lazy-bailout
;;; <@541,#1041> gap
0x4583ac6f 1647 8b45f0 mov eax,[ebp-0x10]
;;; <@542,#1042> load-context-slot
0x4583ac72 1650 8b482f mov ecx,[eax+0x2f] ;; debug: position 2537
;;; <@544,#1048> check-value
0x4583ac75 1653 3b0d0c82c039 cmp ecx,[0x39c0820c] ;; property cell
0x4583ac7b 1659 0f85ab020000 jnz 2348 (0x4583af2c)
;;; <@546,#1049> push-argument
0x4583ac81 1665 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@548,#1049> push-argument
0x4583ac86 1670 ff75ec push [ebp-0x14]
;;; <@550,#1049> push-argument
0x4583ac89 1673 6a06 push 0x6
;;; <@552,#1049> push-argument
0x4583ac8b 1675 6a08 push 0x8
;;; <@554,#1049> push-argument
0x4583ac8d 1677 6a12 push 0x12
;;; <@556,#1049> push-argument
0x4583ac8f 1679 6a1c push 0x1c
;;; <@558,#1006> constant-t
0x4583ac91 1681 8b3d1482c039 mov edi,[0x39c08214] ;; debug: position 2373
;; property cell
;;; <@560,#1051> call-js-function
0x4583ac97 1687 8b7717 mov esi,[edi+0x17] ;; debug: position 2537
0x4583ac9a 1690 ff570b call [edi+0xb]
;;; <@562,#1052> lazy-bailout
;;; <@563,#1052> gap
0x4583ac9d 1693 8b45e8 mov eax,[ebp-0x18]
;;; <@564,#1055> sub-i
0x4583aca0 1696 83e804 sub eax,0x4 ;; debug: position 2231
;;; <@566,#1059> gap
0x4583aca3 1699 8b4df0 mov ecx,[ebp-0x10] ;; debug: position 2204
0x4583aca6 1702 8b55ec mov edx,[ebp-0x14]
;;; <@567,#1059> goto
0x4583aca9 1705 e927faffff jmp 213 (0x4583a6d5)
;;; <@568,#83> -------------------- B13 (unreachable/replaced) --------------------
;;; <@572,#1060> -------------------- B14 --------------------
;;; <@573,#1060> gap
0x4583acae 1710 8b45ec mov eax,[ebp-0x14] ;; debug: position 2593
;;; <@574,#1088> check-maps
0x4583acb1 1713 8178ffa1dc2030 cmp [eax-0x1],0x3020dca1 ;; debug: position 2608
;; object: 0x3020dca1 <Map(elements=21)>
0x4583acb8 1720 0f8573020000 jnz 2353 (0x4583af31)
;;; <@576,#1089> load-named-field
0x4583acbe 1726 8b4807 mov ecx,[eax+0x7]
;;; <@578,#1090> load-named-field
0x4583acc1 1729 8b5103 mov edx,[ecx+0x3]
;;; <@579,#1090> gap
0x4583acc4 1732 8955e4 mov [ebp-0x1c],edx
0x4583acc7 1735 8b5df0 mov ebx,[ebp-0x10]
;;; <@580,#1093> load-context-slot
0x4583acca 1738 8b7323 mov esi,[ebx+0x23] ;; debug: position 2611
;;; <@582,#1095> check-non-smi
0x4583accd 1741 f7c601000000 test esi,0x1 ;; debug: position 2616
0x4583acd3 1747 0f845d020000 jz 2358 (0x4583af36)
;;; <@584,#1096> check-maps
0x4583acd9 1753 817effa1dc2030 cmp [esi-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583ace0 1760 0f8555020000 jnz 2363 (0x4583af3b)
;;; <@586,#1097> load-named-field
0x4583ace6 1766 8b7607 mov esi,[esi+0x7]
;;; <@588,#1098> load-named-field
0x4583ace9 1769 8b7e03 mov edi,[esi+0x3]
;;; <@590,#1069> gap
0x4583acec 1772 b820000000 mov eax,0x20 ;; debug: position 2584
;;; <@592,#1070> -------------------- B15 (loop header) --------------------
;;; <@593,#1070> gap
0x4583acf1 1777 89c3 mov ebx,eax ;; debug: position 2597
;;; <@594,#1073> add-i
0x4583acf3 1779 83c3fe add ebx,0xfe ;; debug: position 2598
0x4583acf6 1782 0f8044020000 jo 2368 (0x4583af40)
;;; <@597,#1075> branch
0x4583acfc 1788 85c0 test eax,eax
0x4583acfe 1790 0f8477000000 jz 1915 (0x4583ad7b)
;;; <@598,#1076> -------------------- B16 (unreachable/replaced) --------------------
;;; <@602,#1082> -------------------- B17 --------------------
;;; <@604,#1084> stack-check
0x4583ad04 1796 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 2584
0x4583ad0a 1802 0f824f010000 jc 2143 (0x4583ae5f)
;;; <@606,#1091> bounds-check
0x4583ad10 1808 3bda cmp ebx,edx ;; debug: position 2608
0x4583ad12 1810 0f832d020000 jnc 2373 (0x4583af45)
;;; <@608,#1092> load-keyed
0x4583ad18 1816 8b445907 mov eax,[ecx+ebx*2+0x7]
;;; <@610,#1099> bounds-check
0x4583ad1c 1820 3bdf cmp ebx,edi ;; debug: position 2616
0x4583ad1e 1822 0f8326020000 jnc 2378 (0x4583af4a)
;;; <@612,#1100> load-keyed
0x4583ad24 1828 8b545e07 mov edx,[esi+ebx*2+0x7]
;;; <@614,#1268> uint32-to-double
0x4583ad28 1832 83f800 cmp eax,0x0 ;; debug: position 2608
0x4583ad2b 1835 0f57c9 xorps xmm1,xmm1
0x4583ad2e 1838 f20f2ac8 cvtsi2sd xmm1,eax
0x4583ad32 1842 7908 jns 1852 (0x4583ad3c)
0x4583ad34 1844 f20f580d58416708 addsd xmm1,[0x8674158]
;;; <@616,#1269> uint32-to-double
0x4583ad3c 1852 83fa00 cmp edx,0x0
0x4583ad3f 1855 0f57d2 xorps xmm2,xmm2
0x4583ad42 1858 f20f2ad2 cvtsi2sd xmm2,edx
0x4583ad46 1862 7908 jns 1872 (0x4583ad50)
0x4583ad48 1864 f20f581558416708 addsd xmm2,[0x8674158]
;;; <@618,#1101> add-d
0x4583ad50 1872 c5eb58c9 vaddsd xmm1,xmm2,xmm1
;;; <@620,#1270> double-to-i
0x4583ad54 1876 f20f2cc1 cvttsd2si eax,xmm1
0x4583ad58 1880 83f801 cmp eax,0x1
0x4583ad5b 1883 7110 jno 1901 (0x4583ad6d)
0x4583ad5d 1885 83ec08 sub esp,0x8
0x4583ad60 1888 f20f110c24 movsd [esp],xmm1
0x4583ad65 1893 e836baffff call 0x458367a0 ;; code: STUB, DoubleToIStub, minor: 135172
0x4583ad6a 1898 83c408 add esp,0x8
;;; <@622,#1112> store-keyed
0x4583ad6d 1901 89445907 mov [ecx+ebx*2+0x7],eax
;;; <@624,#1115> gap
0x4583ad71 1905 89d8 mov eax,ebx ;; debug: position 2584
0x4583ad73 1907 8b55e4 mov edx,[ebp-0x1c]
;;; <@625,#1115> goto
0x4583ad76 1910 e976ffffff jmp 1777 (0x4583acf1)
;;; <@626,#1079> -------------------- B18 (unreachable/replaced) --------------------
;;; <@630,#1116> -------------------- B19 --------------------
;;; <@632,#1125> gap
0x4583ad7b 1915 8b55f0 mov edx,[ebp-0x10] ;; debug: position 2638
;; debug: position 2629
0x4583ad7e 1918 8b4dec mov ecx,[ebp-0x14]
0x4583ad81 1921 b820000000 mov eax,0x20
;;; <@634,#1126> -------------------- B20 (loop header) --------------------
;;; <@635,#1126> gap
0x4583ad86 1926 89c3 mov ebx,eax ;; debug: position 2642
;;; <@636,#1129> add-i
0x4583ad88 1928 83c3fe add ebx,0xfe ;; debug: position 2643
0x4583ad8b 1931 0f80be010000 jo 2383 (0x4583af4f)
;;; <@637,#1129> gap
0x4583ad91 1937 895de0 mov [ebp-0x20],ebx
;;; <@639,#1131> branch
0x4583ad94 1940 85c0 test eax,eax
0x4583ad96 1942 0f8468000000 jz 2052 (0x4583ae04)
;;; <@640,#1132> -------------------- B21 (unreachable/replaced) --------------------
;;; <@644,#1138> -------------------- B22 --------------------
;;; <@646,#1141> load-context-slot
0x4583ad9c 1948 8b422b mov eax,[edx+0x2b] ;; debug: position 2629
;; debug: position 2648
;;; <@647,#1141> gap
0x4583ad9f 1951 89de mov esi,ebx
;;; <@648,#1144> mul-i
0x4583ada1 1953 6bf604 imul esi,esi,4 ;; debug: position 2668
0x4583ada4 1956 0f80aa010000 jo 2388 (0x4583af54)
;;; <@650,#1149> check-maps
0x4583adaa 1962 8179ffa1dc2030 cmp [ecx-0x1],0x3020dca1 ;; debug: position 2674
;; object: 0x3020dca1 <Map(elements=21)>
0x4583adb1 1969 0f85a2010000 jnz 2393 (0x4583af59)
;;; <@652,#1150> load-named-field
0x4583adb7 1975 8b7907 mov edi,[ecx+0x7]
;;; <@654,#1151> load-named-field
0x4583adba 1978 8b4f03 mov ecx,[edi+0x3]
;;; <@656,#1152> bounds-check
0x4583adbd 1981 3bd9 cmp ebx,ecx
0x4583adbf 1983 0f8399010000 jnc 2398 (0x4583af5e)
;;; <@658,#1153> load-keyed
0x4583adc5 1989 8b4c5f07 mov ecx,[edi+ebx*2+0x7]
;;; <@660,#1154> check-value
0x4583adc9 1993 3b051c82c039 cmp eax,[0x39c0821c] ;; debug: position 2648
;; property cell
0x4583adcf 1999 0f858e010000 jnz 2403 (0x4583af63)
;;; <@662,#1271> dummy-use
;;; <@664,#1272> number-tag-u
0x4583add5 2005 81f9ffffff3f cmp ecx,0x3fffffff
0x4583addb 2011 0f8794000000 ja 2165 (0x4583ae75)
0x4583ade1 2017 03c9 add ecx,ecx
;;; <@666,#1155> push-argument
0x4583ade3 2019 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@668,#1155> push-argument
0x4583ade8 2024 ff7508 push [ebp+0x8]
;;; <@670,#1155> push-argument
0x4583adeb 2027 56 push esi
;;; <@672,#1155> push-argument
0x4583adec 2028 51 push ecx
;;; <@674,#1156> constant-t
0x4583aded 2029 8b3d2482c039 mov edi,[0x39c08224] ;; property cell
;;; <@676,#1157> call-js-function
0x4583adf3 2035 8b7717 mov esi,[edi+0x17]
0x4583adf6 2038 ff570b call [edi+0xb]
;;; <@678,#1158> lazy-bailout
;;; <@680,#1160> gap
0x4583adf9 2041 8b45e0 mov eax,[ebp-0x20] ;; debug: position 2629
0x4583adfc 2044 8b55f0 mov edx,[ebp-0x10]
0x4583adff 2047 8b4dec mov ecx,[ebp-0x14]
;;; <@681,#1160> goto
0x4583ae02 2050 eb82 jmp 1926 (0x4583ad86)
;;; <@682,#1135> -------------------- B23 (unreachable/replaced) --------------------
;;; <@686,#1161> -------------------- B24 --------------------
;;; <@687,#1161> gap
0x4583ae04 2052 8b45f0 mov eax,[ebp-0x10] ;; debug: position 2688
;;; <@688,#1162> load-context-slot
0x4583ae07 2055 8b4823 mov ecx,[eax+0x23]
;;; <@690,#1164> check-non-smi
0x4583ae0a 2058 f6c101 test_b cl,0x1 ;; debug: position 2697
0x4583ae0d 2061 0f8455010000 jz 2408 (0x4583af68)
;;; <@692,#1165> check-maps
0x4583ae13 2067 8179ffa1dc2030 cmp [ecx-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583ae1a 2074 0f854d010000 jnz 2413 (0x4583af6d)
;;; <@694,#1166> load-named-field
0x4583ae20 2080 8b4907 mov ecx,[ecx+0x7]
;;; <@696,#1167> load-named-field
0x4583ae23 2083 8b5103 mov edx,[ecx+0x3]
;;; <@698,#1168> bounds-check
0x4583ae26 2086 83fa18 cmp edx,0x18
0x4583ae29 2089 0f8643010000 jna 2418 (0x4583af72)
;;; <@700,#1169> load-keyed
0x4583ae2f 2095 8b5137 mov edx,[ecx+0x37]
0x4583ae32 2098 85d2 test edx,edx
0x4583ae34 2100 0f883d010000 js 2423 (0x4583af77)
;;; <@702,#1171> add-i
0x4583ae3a 2106 83c201 add edx,0x1
;;; <@704,#1181> store-keyed
0x4583ae3d 2109 895137 mov [ecx+0x37],edx
;;; <@705,#1181> gap
0x4583ae40 2112 8b4508 mov eax,[ebp+0x8]
;;; <@706,#1184> return
0x4583ae43 2115 89ec mov esp,ebp ;; debug: position 2709
0x4583ae45 2117 5d pop ebp
0x4583ae46 2118 c20800 ret 0x8
;;; <@62,#42> -------------------- Deferred stack-check --------------------
0x4583ae49 2121 60 pushad ;; debug: position 2156
0x4583ae4a 2122 8b75fc mov esi,[ebp-0x4]
0x4583ae4d 2125 33c0 xor eax,eax
0x4583ae4f 2127 bb003d4608 mov ebx,0x8463d00
0x4583ae54 2132 e8670dfdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583ae59 2137 61 popad
0x4583ae5a 2138 e947f8ffff jmp 166 (0x4583a6a6)
;;; <@604,#1084> -------------------- Deferred stack-check --------------------
0x4583ae5f 2143 60 pushad ;; debug: position 2584
0x4583ae60 2144 8b75fc mov esi,[ebp-0x4]
0x4583ae63 2147 33c0 xor eax,eax
0x4583ae65 2149 bb003d4608 mov ebx,0x8463d00
0x4583ae6a 2154 e8510dfdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583ae6f 2159 61 popad
0x4583ae70 2160 e99bfeffff jmp 1808 (0x4583ad10)
;;; <@664,#1272> -------------------- Deferred number-tag-u --------------------
0x4583ae75 2165 83f900 cmp ecx,0x0 ;; debug: position 2648
0x4583ae78 2168 0f57c0 xorps xmm0,xmm0
0x4583ae7b 2171 f20f2ac1 cvtsi2sd xmm0,ecx
0x4583ae7f 2175 7908 jns 2185 (0x4583ae89)
0x4583ae81 2177 f20f580558416708 addsd xmm0,[0x8674158]
0x4583ae89 2185 8b0d04a8b608 mov ecx,[0x8b6a804]
0x4583ae8f 2191 89c8 mov eax,ecx
0x4583ae91 2193 83c00c add eax,0xc
0x4583ae94 2196 0f821c000000 jc 2230 (0x4583aeb6)
0x4583ae9a 2202 3b0508a8b608 cmp eax,[0x8b6a808]
0x4583aea0 2208 0f8710000000 ja 2230 (0x4583aeb6)
0x4583aea6 2214 890504a8b608 mov [0x8b6a804],eax
0x4583aeac 2220 41 inc ecx
0x4583aead 2221 c741ff0d822030 mov [ecx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583aeb4 2228 eb17 jmp 2253 (0x4583aecd)
0x4583aeb6 2230 33c9 xor ecx,ecx
0x4583aeb8 2232 60 pushad
0x4583aeb9 2233 8b75fc mov esi,[ebp-0x4]
0x4583aebc 2236 33c0 xor eax,eax
0x4583aebe 2238 bba0b12f08 mov ebx,0x82fb1a0
0x4583aec3 2243 e8f80cfdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583aec8 2248 89442418 mov [esp+0x18],eax
0x4583aecc 2252 61 popad
0x4583aecd 2253 f20f114103 movsd [ecx+0x3],xmm0
0x4583aed2 2258 e90cffffff jmp 2019 (0x4583ade3)
;;; -------------------- Jump table --------------------
0x4583aed7 2263 e838f1fcf6 call 0x3c80a014 ;; debug: position 51200
;; debug: deopt reason 'Smi'
;; deoptimization bailout 2
0x4583aedc 2268 e83df1fcf6 call 0x3c80a01e ;; debug: position 51200
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 3
0x4583aee1 2273 e842f1fcf6 call 0x3c80a028 ;; debug: position 47616
;; debug: deopt reason 'Smi'
;; deoptimization bailout 4
0x4583aee6 2278 e847f1fcf6 call 0x3c80a032 ;; debug: position 47616
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 5
0x4583aeeb 2283 e84cf1fcf6 call 0x3c80a03c ;; debug: position 42496
;; debug: deopt reason 'overflow'
;; deoptimization bailout 6
0x4583aef0 2288 e85bf1fcf6 call 0x3c80a050 ;; debug: position 51200
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 8
0x4583aef5 2293 e860f1fcf6 call 0x3c80a05a ;; debug: position 51200
;; debug: deopt reason 'negative value'
;; deoptimization bailout 9
0x4583aefa 2298 e865f1fcf6 call 0x3c80a064 ;; debug: position 47616
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 10
0x4583aeff 2303 e86af1fcf6 call 0x3c80a06e ;; debug: position 81408
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 11
0x4583af04 2308 e86ff1fcf6 call 0x3c80a078 ;; debug: position 15873
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 12
0x4583af09 2313 e874f1fcf6 call 0x3c80a082 ;; debug: position 15873
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 13
0x4583af0e 2318 e879f1fcf6 call 0x3c80a08c ;; debug: position 17921
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 14
0x4583af13 2323 e87ef1fcf6 call 0x3c80a096 ;; debug: position 25602
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 15
0x4583af18 2328 e883f1fcf6 call 0x3c80a0a0 ;; debug: position 25603
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 16
0x4583af1d 2333 e892f1fcf6 call 0x3c80a0b4 ;; debug: position 165376
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 18
0x4583af22 2338 e8a1f1fcf6 call 0x3c80a0c8 ;; debug: position 186368
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 20
0x4583af27 2343 e8b0f1fcf6 call 0x3c80a0dc ;; debug: position 207360
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 22
0x4583af2c 2348 e8bff1fcf6 call 0x3c80a0f0 ;; debug: position 228352
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 24
0x4583af31 2353 e8cef1fcf6 call 0x3c80a104 ;; debug: position 264704
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 26
0x4583af36 2358 e8d3f1fcf6 call 0x3c80a10e ;; debug: position 268800
;; debug: deopt reason 'Smi'
;; deoptimization bailout 27
0x4583af3b 2363 e8d8f1fcf6 call 0x3c80a118 ;; debug: position 268800
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 28
0x4583af40 2368 e8ddf1fcf6 call 0x3c80a122 ;; debug: position 259584
;; debug: deopt reason 'overflow'
;; deoptimization bailout 29
0x4583af45 2373 e8ecf1fcf6 call 0x3c80a136 ;; debug: position 264704
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 31
0x4583af4a 2378 e8f1f1fcf6 call 0x3c80a140 ;; debug: position 268800
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 32
0x4583af4f 2383 e8f6f1fcf6 call 0x3c80a14a ;; debug: position 282624
;; debug: deopt reason 'overflow'
;; deoptimization bailout 33
0x4583af54 2388 e8fbf1fcf6 call 0x3c80a154 ;; debug: position 295424
;; debug: deopt reason 'overflow'
;; deoptimization bailout 34
0x4583af59 2393 e800f2fcf6 call 0x3c80a15e ;; debug: position 298496
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 35
0x4583af5e 2398 e805f2fcf6 call 0x3c80a168 ;; debug: position 298496
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 36
0x4583af63 2403 e80af2fcf6 call 0x3c80a172 ;; debug: position 285184
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 37
0x4583af68 2408 e819f2fcf6 call 0x3c80a186 ;; debug: position 310272
;; debug: deopt reason 'Smi'
;; deoptimization bailout 39
0x4583af6d 2413 e81ef2fcf6 call 0x3c80a190 ;; debug: position 310272
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 40
0x4583af72 2418 e823f2fcf6 call 0x3c80a19a ;; debug: position 310272
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 41
0x4583af77 2423 e828f2fcf6 call 0x3c80a1a4 ;; debug: position 310272
;; debug: deopt reason 'negative value'
;; deoptimization bailout 42
0x4583af7c 2428 90 nop
0x4583af7d 2429 90 nop
0x4583af7e 2430 90 nop
0x4583af7f 2431 90 nop
0x4583af80 2432 90 nop
0x4583af81 2433 0f1f00 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 43)
index ast id argc pc
0 3 0 36
1 19 0 69
2 27 0 -1
3 27 0 -1
4 27 0 -1
5 27 0 -1
6 27 0 -1
7 31 0 166
8 31 0 -1
9 31 0 -1
10 31 0 -1
11 76 0 -1
12 2 0 -1
13 2 0 -1
14 2 0 -1
15 4 0 -1
16 4 0 -1
17 178 0 1509
18 178 0 -1
19 198 0 1555
20 198 0 -1
21 218 0 1601
22 218 0 -1
23 238 0 1647
24 238 0 -1
25 258 0 1693
26 278 0 -1
27 278 0 -1
28 278 0 -1
29 278 0 -1
30 282 0 1808
31 282 0 -1
32 282 0 -1
33 340 0 -1
34 344 0 -1
35 344 0 -1
36 344 0 -1
37 344 0 -1
38 362 0 2041
39 341 0 -1
40 341 0 -1
41 341 0 -1
42 341 0 -1
Safepoints (size = 118)
0x4583a624 36 000010 (sp -> fp) 0
0x4583a642 66 000010 (sp -> fp) 1
0x4583abe5 1509 000110 (sp -> fp) 17
0x4583ac13 1555 000110 (sp -> fp) 19
0x4583ac41 1601 000110 (sp -> fp) 21
0x4583ac6f 1647 000110 (sp -> fp) 23
0x4583ac9d 1693 000110 (sp -> fp) 25
0x4583adf9 2041 000110 (sp -> fp) 38
0x4583ae59 2137 000110 | edx | esi (sp -> fp) 7
0x4583ae6f 2159 000110 | ecx | esi (sp -> fp) 30
0x4583aec8 2248 000110 | ecx | edx (sp -> fp) <none>
RelocInfo (size = 3609)
0x4583a608 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583a60f position (2091)
0x4583a60f comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583a60f comment (;;; <@2,#1> context)
0x4583a612 comment (;;; <@3,#1> gap)
0x4583a615 comment (;;; <@10,#8> -------------------- B1 --------------------)
0x4583a615 comment (;;; <@11,#8> gap)
0x4583a617 comment (;;; <@12,#10> stack-check)
0x4583a620 code target (BUILTIN) (0x4582efc0)
0x4583a624 comment (;;; <@14,#10> lazy-bailout)
0x4583a624 comment (;;; <@16,#13> push-argument)
0x4583a624 position (2118)
0x4583a625 embedded object (0x26884b39 <JS Function Uint32Array (SharedFunctionInfo 0x26843555)>)
0x4583a629 comment (;;; <@18,#13> push-argument)
0x4583a62b comment (;;; <@20,#11> constant-t)
0x4583a62b position (2122)
0x4583a62c embedded object (0x26884b39 <JS Function Uint32Array (SharedFunctionInfo 0x26843555)>)
0x4583a630 comment (;;; <@21,#11> gap)
0x4583a633 comment (;;; <@22,#14> call-new)
0x4583a633 position (2118)
0x4583a634 embedded object (0x268080b1 <undefined>)
0x4583a63e code target (js construct call) (STUB) (0x458257c0)
0x4583a642 comment (;;; <@23,#14> gap)
0x4583a645 comment (;;; <@24,#15> lazy-bailout)
0x4583a645 comment (;;; <@25,#15> gap)
0x4583a648 comment (;;; <@26,#45> load-context-slot)
0x4583a648 position (2186)
0x4583a64b comment (;;; <@28,#47> check-non-smi)
0x4583a64b position (2191)
0x4583a654 comment (;;; <@30,#48> check-maps)
0x4583a657 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583a661 comment (;;; <@32,#49> load-named-field)
0x4583a664 comment (;;; <@34,#50> load-named-field)
0x4583a667 comment (;;; <@36,#53> check-non-smi)
0x4583a667 position (2184)
0x4583a66f comment (;;; <@38,#54> check-maps)
0x4583a672 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583a67c comment (;;; <@40,#56> check-maps)
0x4583a67c comment (;;; <@42,#58> check-maps)
0x4583a67c comment (;;; <@44,#59> load-named-field)
0x4583a67f comment (;;; <@46,#60> load-named-field)
0x4583a682 comment (;;; <@48,#25> gap)
0x4583a682 position (2156)
0x4583a687 position (2173)
0x4583a687 comment (;;; <@50,#26> -------------------- B2 (loop header) --------------------)
0x4583a687 comment (;;; <@51,#26> gap)
0x4583a689 comment (;;; <@52,#31> add-i)
0x4583a689 position (2174)
0x4583a692 comment (;;; <@55,#33> branch)
0x4583a69a comment (;;; <@56,#34> -------------------- B3 (unreachable/replaced) --------------------)
0x4583a69a position (2156)
0x4583a69a comment (;;; <@60,#40> -------------------- B4 --------------------)
0x4583a69a comment (;;; <@62,#42> stack-check)
0x4583a6a6 comment (;;; <@64,#51> bounds-check)
0x4583a6a6 position (2191)
0x4583a6ae comment (;;; <@66,#52> load-keyed)
0x4583a6ba comment (;;; <@68,#61> bounds-check)
0x4583a6ba position (2184)
0x4583a6c2 comment (;;; <@70,#62> store-keyed)
0x4583a6c6 comment (;;; <@72,#65> gap)
0x4583a6c6 position (2156)
0x4583a6c8 comment (;;; <@73,#65> goto)
0x4583a6ca comment (;;; <@74,#37> -------------------- B5 (unreachable/replaced) --------------------)
0x4583a6ca position (2217)
0x4583a6ca comment (;;; <@78,#66> -------------------- B6 --------------------)
0x4583a6ca comment (;;; <@80,#75> gap)
0x4583a6ca position (2204)
0x4583a6d5 position (2221)
0x4583a6d5 comment (;;; <@82,#76> -------------------- B7 (loop header) --------------------)
0x4583a6d8 position (2223)
0x4583a6d8 comment (;;; <@85,#79> compare-numeric-and-branch)
0x4583a6e1 comment (;;; <@86,#80> -------------------- B8 (unreachable/replaced) --------------------)
0x4583a6e1 position (2204)
0x4583a6e1 comment (;;; <@90,#86> -------------------- B9 --------------------)
0x4583a6e1 comment (;;; <@92,#89> load-context-slot)
0x4583a6e1 position (2250)
0x4583a6e4 comment (;;; <@94,#95> check-value)
0x4583a6e6 property cell
0x4583a6f0 comment (;;; <@96,#101> check-maps)
0x4583a6f0 position (1764)
0x4583a6f3 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583a6fd comment (;;; <@98,#102> load-named-field)
0x4583a700 comment (;;; <@100,#103> load-named-field)
0x4583a703 comment (;;; <@102,#104> bounds-check)
0x4583a70c comment (;;; <@104,#110> bounds-check)
0x4583a70c position (1768)
0x4583a715 comment (;;; <@106,#105> load-keyed)
0x4583a715 position (1764)
0x4583a718 comment (;;; <@108,#111> load-keyed)
0x4583a718 position (1768)
0x4583a71b comment (;;; <@110,#1188> uint32-to-double)
0x4583a71b position (1764)
0x4583a72f comment (;;; <@112,#1189> uint32-to-double)
0x4583a743 comment (;;; <@114,#112> add-d)
0x4583a747 comment (;;; <@116,#1190> double-to-i)
0x4583a759 code target (STUB) (0x458367a0)
0x4583a760 comment (;;; <@118,#123> store-keyed)
0x4583a763 comment (;;; <@120,#130> load-keyed)
0x4583a763 position (1783)
0x4583a766 comment (;;; <@122,#136> load-keyed)
0x4583a766 position (1790)
0x4583a769 comment (;;; <@124,#137> bit-i)
0x4583a769 position (1787)
0x4583a76b comment (;;; <@125,#137> gap)
0x4583a76d comment (;;; <@126,#140> shift-i)
0x4583a76d position (1795)
0x4583a770 comment (;;; <@128,#157> shift-i)
0x4583a770 position (1819)
0x4583a773 comment (;;; <@130,#159> bit-i)
0x4583a773 position (1802)
0x4583a775 comment (;;; <@132,#170> store-keyed)
0x4583a775 position (1778)
0x4583a778 comment (;;; <@134,#177> load-keyed)
0x4583a778 position (1841)
0x4583a77b comment (;;; <@136,#183> load-keyed)
0x4583a77b position (1845)
0x4583a77e comment (;;; <@138,#1193> uint32-to-double)
0x4583a77e position (1841)
0x4583a792 comment (;;; <@140,#1194> uint32-to-double)
0x4583a7a6 comment (;;; <@142,#184> add-d)
0x4583a7aa comment (;;; <@144,#1195> double-to-i)
0x4583a7bc code target (STUB) (0x458367a0)
0x4583a7c3 comment (;;; <@146,#195> store-keyed)
0x4583a7c6 comment (;;; <@148,#202> load-keyed)
0x4583a7c6 position (1860)
0x4583a7c9 comment (;;; <@150,#208> load-keyed)
0x4583a7c9 position (1867)
0x4583a7cc comment (;;; <@152,#209> bit-i)
0x4583a7cc position (1864)
0x4583a7ce comment (;;; <@153,#209> gap)
0x4583a7d0 comment (;;; <@154,#212> shift-i)
0x4583a7d0 position (1872)
0x4583a7d3 comment (;;; <@156,#229> shift-i)
0x4583a7d3 position (1896)
0x4583a7d6 comment (;;; <@158,#231> bit-i)
0x4583a7d6 position (1879)
0x4583a7d8 comment (;;; <@160,#242> store-keyed)
0x4583a7d8 position (1855)
0x4583a7db comment (;;; <@162,#249> load-keyed)
0x4583a7db position (1918)
0x4583a7de comment (;;; <@164,#255> load-keyed)
0x4583a7de position (1922)
0x4583a7e1 comment (;;; <@166,#1198> uint32-to-double)
0x4583a7e1 position (1918)
0x4583a7f5 comment (;;; <@168,#1199> uint32-to-double)
0x4583a809 comment (;;; <@170,#256> add-d)
0x4583a80d comment (;;; <@172,#1200> double-to-i)
0x4583a81f code target (STUB) (0x458367a0)
0x4583a826 comment (;;; <@174,#267> store-keyed)
0x4583a829 comment (;;; <@176,#274> load-keyed)
0x4583a829 position (1937)
0x4583a82c comment (;;; <@178,#280> load-keyed)
0x4583a82c position (1944)
0x4583a82f comment (;;; <@180,#281> bit-i)
0x4583a82f position (1941)
0x4583a831 comment (;;; <@181,#281> gap)
0x4583a833 comment (;;; <@182,#284> shift-i)
0x4583a833 position (1949)
0x4583a836 comment (;;; <@184,#301> shift-i)
0x4583a836 position (1973)
0x4583a839 comment (;;; <@186,#303> bit-i)
0x4583a839 position (1956)
0x4583a83b comment (;;; <@188,#314> store-keyed)
0x4583a83b position (1932)
0x4583a83e comment (;;; <@190,#321> load-keyed)
0x4583a83e position (1995)
0x4583a841 comment (;;; <@192,#327> load-keyed)
0x4583a841 position (1999)
0x4583a844 comment (;;; <@194,#1203> uint32-to-double)
0x4583a844 position (1995)
0x4583a858 comment (;;; <@196,#1204> uint32-to-double)
0x4583a86c comment (;;; <@198,#328> add-d)
0x4583a870 comment (;;; <@200,#1205> double-to-i)
0x4583a882 code target (STUB) (0x458367a0)
0x4583a889 comment (;;; <@202,#339> store-keyed)
0x4583a88c comment (;;; <@204,#346> load-keyed)
0x4583a88c position (2014)
0x4583a88f comment (;;; <@206,#352> load-keyed)
0x4583a88f position (2021)
0x4583a892 comment (;;; <@208,#353> bit-i)
0x4583a892 position (2018)
0x4583a894 comment (;;; <@209,#353> gap)
0x4583a896 comment (;;; <@210,#356> shift-i)
0x4583a896 position (2026)
0x4583a899 comment (;;; <@212,#373> shift-i)
0x4583a899 position (2050)
0x4583a89c comment (;;; <@214,#375> bit-i)
0x4583a89c position (2033)
0x4583a89e comment (;;; <@216,#386> store-keyed)
0x4583a89e position (2009)
0x4583a8a1 position (2291)
0x4583a8a1 comment (;;; <@220,#391> -------------------- B10 --------------------)
0x4583a8a1 comment (;;; <@222,#408> load-keyed)
0x4583a8a1 position (1764)
0x4583a8a4 comment (;;; <@224,#414> load-keyed)
0x4583a8a4 position (1768)
0x4583a8a7 comment (;;; <@226,#1208> uint32-to-double)
0x4583a8a7 position (1764)
0x4583a8bb comment (;;; <@228,#1209> uint32-to-double)
0x4583a8cf comment (;;; <@230,#415> add-d)
0x4583a8d3 comment (;;; <@232,#1210> double-to-i)
0x4583a8e5 code target (STUB) (0x458367a0)
0x4583a8ec comment (;;; <@234,#426> store-keyed)
0x4583a8ef comment (;;; <@236,#432> bounds-check)
0x4583a8ef position (1783)
0x4583a8f8 comment (;;; <@238,#433> load-keyed)
0x4583a8fb comment (;;; <@240,#439> load-keyed)
0x4583a8fb position (1790)
0x4583a8fe comment (;;; <@242,#440> bit-i)
0x4583a8fe position (1787)
0x4583a900 comment (;;; <@243,#440> gap)
0x4583a902 comment (;;; <@244,#443> shift-i)
0x4583a902 position (1795)
0x4583a905 comment (;;; <@246,#460> shift-i)
0x4583a905 position (1819)
0x4583a908 comment (;;; <@248,#462> bit-i)
0x4583a908 position (1802)
0x4583a90a comment (;;; <@250,#473> store-keyed)
0x4583a90a position (1778)
0x4583a90d comment (;;; <@252,#480> load-keyed)
0x4583a90d position (1841)
0x4583a910 comment (;;; <@254,#486> load-keyed)
0x4583a910 position (1845)
0x4583a913 comment (;;; <@256,#1213> uint32-to-double)
0x4583a913 position (1841)
0x4583a927 comment (;;; <@258,#1214> uint32-to-double)
0x4583a93b comment (;;; <@260,#487> add-d)
0x4583a93f comment (;;; <@262,#1215> double-to-i)
0x4583a951 code target (STUB) (0x458367a0)
0x4583a958 comment (;;; <@264,#498> store-keyed)
0x4583a95b comment (;;; <@266,#505> load-keyed)
0x4583a95b position (1860)
0x4583a95e comment (;;; <@268,#511> load-keyed)
0x4583a95e position (1867)
0x4583a961 comment (;;; <@270,#512> bit-i)
0x4583a961 position (1864)
0x4583a963 comment (;;; <@271,#512> gap)
0x4583a965 comment (;;; <@272,#515> shift-i)
0x4583a965 position (1872)
0x4583a968 comment (;;; <@274,#532> shift-i)
0x4583a968 position (1896)
0x4583a96b comment (;;; <@276,#534> bit-i)
0x4583a96b position (1879)
0x4583a96d comment (;;; <@278,#545> store-keyed)
0x4583a96d position (1855)
0x4583a970 comment (;;; <@280,#552> load-keyed)
0x4583a970 position (1918)
0x4583a973 comment (;;; <@282,#558> load-keyed)
0x4583a973 position (1922)
0x4583a976 comment (;;; <@284,#1218> uint32-to-double)
0x4583a976 position (1918)
0x4583a98a comment (;;; <@286,#1219> uint32-to-double)
0x4583a99e comment (;;; <@288,#559> add-d)
0x4583a9a2 comment (;;; <@290,#1220> double-to-i)
0x4583a9b4 code target (STUB) (0x458367a0)
0x4583a9bb comment (;;; <@292,#570> store-keyed)
0x4583a9be comment (;;; <@294,#577> load-keyed)
0x4583a9be position (1937)
0x4583a9c1 comment (;;; <@296,#583> load-keyed)
0x4583a9c1 position (1944)
0x4583a9c4 comment (;;; <@298,#584> bit-i)
0x4583a9c4 position (1941)
0x4583a9c6 comment (;;; <@299,#584> gap)
0x4583a9c8 comment (;;; <@300,#587> shift-i)
0x4583a9c8 position (1949)
0x4583a9cb comment (;;; <@302,#604> shift-i)
0x4583a9cb position (1973)
0x4583a9ce comment (;;; <@304,#606> bit-i)
0x4583a9ce position (1956)
0x4583a9d0 comment (;;; <@306,#617> store-keyed)
0x4583a9d0 position (1932)
0x4583a9d3 comment (;;; <@308,#624> load-keyed)
0x4583a9d3 position (1995)
0x4583a9d6 comment (;;; <@310,#630> load-keyed)
0x4583a9d6 position (1999)
0x4583a9d9 comment (;;; <@312,#1223> uint32-to-double)
0x4583a9d9 position (1995)
0x4583a9ed comment (;;; <@314,#1224> uint32-to-double)
0x4583aa01 comment (;;; <@316,#631> add-d)
0x4583aa05 comment (;;; <@318,#1225> double-to-i)
0x4583aa17 code target (STUB) (0x458367a0)
0x4583aa1e comment (;;; <@320,#642> store-keyed)
0x4583aa21 comment (;;; <@322,#649> load-keyed)
0x4583aa21 position (2014)
0x4583aa24 comment (;;; <@324,#655> load-keyed)
0x4583aa24 position (2021)
0x4583aa27 comment (;;; <@326,#656> bit-i)
0x4583aa27 position (2018)
0x4583aa29 comment (;;; <@327,#656> gap)
0x4583aa2b comment (;;; <@328,#659> shift-i)
0x4583aa2b position (2026)
0x4583aa2e comment (;;; <@330,#676> shift-i)
0x4583aa2e position (2050)
0x4583aa31 comment (;;; <@332,#678> bit-i)
0x4583aa31 position (2033)
0x4583aa33 comment (;;; <@334,#689> store-keyed)
0x4583aa33 position (2009)
0x4583aa36 position (2332)
0x4583aa36 comment (;;; <@338,#694> -------------------- B11 --------------------)
0x4583aa36 comment (;;; <@340,#711> load-keyed)
0x4583aa36 position (1764)
0x4583aa39 comment (;;; <@342,#717> load-keyed)
0x4583aa39 position (1768)
0x4583aa3c comment (;;; <@344,#1228> uint32-to-double)
0x4583aa3c position (1764)
0x4583aa50 comment (;;; <@346,#1229> uint32-to-double)
0x4583aa64 comment (;;; <@348,#718> add-d)
0x4583aa68 comment (;;; <@350,#1230> double-to-i)
0x4583aa7a code target (STUB) (0x458367a0)
0x4583aa81 comment (;;; <@352,#729> store-keyed)
0x4583aa84 comment (;;; <@354,#735> bounds-check)
0x4583aa84 position (1783)
0x4583aa8d comment (;;; <@356,#736> load-keyed)
0x4583aa90 comment (;;; <@358,#742> load-keyed)
0x4583aa90 position (1790)
0x4583aa93 comment (;;; <@360,#743> bit-i)
0x4583aa93 position (1787)
0x4583aa95 comment (;;; <@361,#743> gap)
0x4583aa97 comment (;;; <@362,#746> shift-i)
0x4583aa97 position (1795)
0x4583aa9a comment (;;; <@364,#763> shift-i)
0x4583aa9a position (1819)
0x4583aa9d comment (;;; <@366,#765> bit-i)
0x4583aa9d position (1802)
0x4583aa9f comment (;;; <@368,#776> store-keyed)
0x4583aa9f position (1778)
0x4583aaa2 comment (;;; <@370,#783> load-keyed)
0x4583aaa2 position (1841)
0x4583aaa5 comment (;;; <@372,#789> load-keyed)
0x4583aaa5 position (1845)
0x4583aaa8 comment (;;; <@374,#1233> uint32-to-double)
0x4583aaa8 position (1841)
0x4583aabc comment (;;; <@376,#1234> uint32-to-double)
0x4583aad0 comment (;;; <@378,#790> add-d)
0x4583aad4 comment (;;; <@380,#1235> double-to-i)
0x4583aae6 code target (STUB) (0x458367a0)
0x4583aaed comment (;;; <@382,#801> store-keyed)
0x4583aaf0 comment (;;; <@384,#808> load-keyed)
0x4583aaf0 position (1860)
0x4583aaf3 comment (;;; <@386,#814> load-keyed)
0x4583aaf3 position (1867)
0x4583aaf6 comment (;;; <@388,#815> bit-i)
0x4583aaf6 position (1864)
0x4583aaf8 comment (;;; <@389,#815> gap)
0x4583aafa comment (;;; <@390,#818> shift-i)
0x4583aafa position (1872)
0x4583aafd comment (;;; <@392,#835> shift-i)
0x4583aafd position (1896)
0x4583ab00 comment (;;; <@394,#837> bit-i)
0x4583ab00 position (1879)
0x4583ab02 comment (;;; <@396,#848> store-keyed)
0x4583ab02 position (1855)
0x4583ab05 comment (;;; <@398,#855> load-keyed)
0x4583ab05 position (1918)
0x4583ab08 comment (;;; <@400,#861> load-keyed)
0x4583ab08 position (1922)
0x4583ab0b comment (;;; <@402,#1238> uint32-to-double)
0x4583ab0b position (1918)
0x4583ab1f comment (;;; <@404,#1239> uint32-to-double)
0x4583ab33 comment (;;; <@406,#862> add-d)
0x4583ab37 comment (;;; <@408,#1240> double-to-i)
0x4583ab49 code target (STUB) (0x458367a0)
0x4583ab50 comment (;;; <@410,#873> store-keyed)
0x4583ab53 comment (;;; <@412,#880> load-keyed)
0x4583ab53 position (1937)
0x4583ab56 comment (;;; <@414,#886> load-keyed)
0x4583ab56 position (1944)
0x4583ab59 comment (;;; <@416,#887> bit-i)
0x4583ab59 position (1941)
0x4583ab5b comment (;;; <@417,#887> gap)
0x4583ab5d comment (;;; <@418,#890> shift-i)
0x4583ab5d position (1949)
0x4583ab60 comment (;;; <@420,#907> shift-i)
0x4583ab60 position (1973)
0x4583ab63 comment (;;; <@422,#909> bit-i)
0x4583ab63 position (1956)
0x4583ab65 comment (;;; <@424,#920> store-keyed)
0x4583ab65 position (1932)
0x4583ab68 comment (;;; <@426,#927> load-keyed)
0x4583ab68 position (1995)
0x4583ab6b comment (;;; <@428,#933> load-keyed)
0x4583ab6b position (1999)
0x4583ab6e comment (;;; <@430,#1243> uint32-to-double)
0x4583ab6e position (1995)
0x4583ab82 comment (;;; <@432,#1244> uint32-to-double)
0x4583ab96 comment (;;; <@434,#934> add-d)
0x4583ab9a comment (;;; <@436,#1245> double-to-i)
0x4583abac code target (STUB) (0x458367a0)
0x4583abb3 comment (;;; <@438,#945> store-keyed)
0x4583abb6 comment (;;; <@440,#952> load-keyed)
0x4583abb6 position (2014)
0x4583abb9 comment (;;; <@442,#958> load-keyed)
0x4583abb9 position (2021)
0x4583abbc comment (;;; <@444,#959> bit-i)
0x4583abbc position (2018)
0x4583abbe comment (;;; <@445,#959> gap)
0x4583abc0 comment (;;; <@446,#962> shift-i)
0x4583abc0 position (2026)
0x4583abc3 comment (;;; <@448,#979> shift-i)
0x4583abc3 position (2050)
0x4583abc6 comment (;;; <@450,#981> bit-i)
0x4583abc6 position (2033)
0x4583abc8 comment (;;; <@452,#992> store-keyed)
0x4583abc8 position (2009)
0x4583abcb position (2373)
0x4583abcb comment (;;; <@456,#997> -------------------- B12 --------------------)
0x4583abcb comment (;;; <@458,#1005> push-argument)
0x4583abcc embedded object (0x268080b1 <undefined>)
0x4583abd0 comment (;;; <@460,#1005> push-argument)
0x4583abd1 comment (;;; <@462,#1005> push-argument)
0x4583abd3 comment (;;; <@464,#1005> push-argument)
0x4583abd5 comment (;;; <@466,#1005> push-argument)
0x4583abd7 comment (;;; <@468,#1005> push-argument)
0x4583abd9 comment (;;; <@470,#1006> constant-t)
0x4583abdb property cell
0x4583abdf comment (;;; <@472,#1007> call-js-function)
0x4583abe5 comment (;;; <@474,#1008> lazy-bailout)
0x4583abe5 comment (;;; <@475,#1008> gap)
0x4583abe8 comment (;;; <@476,#1009> load-context-slot)
0x4583abe8 position (2414)
0x4583abeb comment (;;; <@478,#1015> check-value)
0x4583abed property cell
0x4583abf7 comment (;;; <@480,#1016> push-argument)
0x4583abf8 embedded object (0x268080b1 <undefined>)
0x4583abfc comment (;;; <@482,#1016> push-argument)
0x4583abff comment (;;; <@484,#1016> push-argument)
0x4583ac01 comment (;;; <@486,#1016> push-argument)
0x4583ac03 comment (;;; <@488,#1016> push-argument)
0x4583ac05 comment (;;; <@490,#1016> push-argument)
0x4583ac07 comment (;;; <@492,#1006> constant-t)
0x4583ac07 position (2373)
0x4583ac09 property cell
0x4583ac0d comment (;;; <@494,#1018> call-js-function)
0x4583ac0d position (2414)
0x4583ac13 comment (;;; <@496,#1019> lazy-bailout)
0x4583ac13 comment (;;; <@497,#1019> gap)
0x4583ac16 comment (;;; <@498,#1020> load-context-slot)
0x4583ac16 position (2455)
0x4583ac19 comment (;;; <@500,#1026> check-value)
0x4583ac1b property cell
0x4583ac25 comment (;;; <@502,#1027> push-argument)
0x4583ac26 embedded object (0x268080b1 <undefined>)
0x4583ac2a comment (;;; <@504,#1027> push-argument)
0x4583ac2d comment (;;; <@506,#1027> push-argument)
0x4583ac2f comment (;;; <@508,#1027> push-argument)
0x4583ac31 comment (;;; <@510,#1027> push-argument)
0x4583ac33 comment (;;; <@512,#1027> push-argument)
0x4583ac35 comment (;;; <@514,#1006> constant-t)
0x4583ac35 position (2373)
0x4583ac37 property cell
0x4583ac3b comment (;;; <@516,#1029> call-js-function)
0x4583ac3b position (2455)
0x4583ac41 comment (;;; <@518,#1030> lazy-bailout)
0x4583ac41 comment (;;; <@519,#1030> gap)
0x4583ac44 comment (;;; <@520,#1031> load-context-slot)
0x4583ac44 position (2496)
0x4583ac47 comment (;;; <@522,#1037> check-value)
0x4583ac49 property cell
0x4583ac53 comment (;;; <@524,#1038> push-argument)
0x4583ac54 embedded object (0x268080b1 <undefined>)
0x4583ac58 comment (;;; <@526,#1038> push-argument)
0x4583ac5b comment (;;; <@528,#1038> push-argument)
0x4583ac5d comment (;;; <@530,#1038> push-argument)
0x4583ac5f comment (;;; <@532,#1038> push-argument)
0x4583ac61 comment (;;; <@534,#1038> push-argument)
0x4583ac63 comment (;;; <@536,#1006> constant-t)
0x4583ac63 position (2373)
0x4583ac65 property cell
0x4583ac69 comment (;;; <@538,#1040> call-js-function)
0x4583ac69 position (2496)
0x4583ac6f comment (;;; <@540,#1041> lazy-bailout)
0x4583ac6f comment (;;; <@541,#1041> gap)
0x4583ac72 comment (;;; <@542,#1042> load-context-slot)
0x4583ac72 position (2537)
0x4583ac75 comment (;;; <@544,#1048> check-value)
0x4583ac77 property cell
0x4583ac81 comment (;;; <@546,#1049> push-argument)
0x4583ac82 embedded object (0x268080b1 <undefined>)
0x4583ac86 comment (;;; <@548,#1049> push-argument)
0x4583ac89 comment (;;; <@550,#1049> push-argument)
0x4583ac8b comment (;;; <@552,#1049> push-argument)
0x4583ac8d comment (;;; <@554,#1049> push-argument)
0x4583ac8f comment (;;; <@556,#1049> push-argument)
0x4583ac91 comment (;;; <@558,#1006> constant-t)
0x4583ac91 position (2373)
0x4583ac93 property cell
0x4583ac97 comment (;;; <@560,#1051> call-js-function)
0x4583ac97 position (2537)
0x4583ac9d comment (;;; <@562,#1052> lazy-bailout)
0x4583ac9d comment (;;; <@563,#1052> gap)
0x4583aca0 comment (;;; <@564,#1055> sub-i)
0x4583aca0 position (2231)
0x4583aca3 comment (;;; <@566,#1059> gap)
0x4583aca3 position (2204)
0x4583aca9 comment (;;; <@567,#1059> goto)
0x4583acae comment (;;; <@568,#83> -------------------- B13 (unreachable/replaced) --------------------)
0x4583acae position (2593)
0x4583acae comment (;;; <@572,#1060> -------------------- B14 --------------------)
0x4583acae comment (;;; <@573,#1060> gap)
0x4583acb1 comment (;;; <@574,#1088> check-maps)
0x4583acb1 position (2608)
0x4583acb4 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583acbe comment (;;; <@576,#1089> load-named-field)
0x4583acc1 comment (;;; <@578,#1090> load-named-field)
0x4583acc4 comment (;;; <@579,#1090> gap)
0x4583acca comment (;;; <@580,#1093> load-context-slot)
0x4583acca position (2611)
0x4583accd comment (;;; <@582,#1095> check-non-smi)
0x4583accd position (2616)
0x4583acd9 comment (;;; <@584,#1096> check-maps)
0x4583acdc embedded object (0x3020dca1 <Map(elements=21)>)
0x4583ace6 comment (;;; <@586,#1097> load-named-field)
0x4583ace9 comment (;;; <@588,#1098> load-named-field)
0x4583acec comment (;;; <@590,#1069> gap)
0x4583acec position (2584)
0x4583acf1 position (2597)
0x4583acf1 comment (;;; <@592,#1070> -------------------- B15 (loop header) --------------------)
0x4583acf1 comment (;;; <@593,#1070> gap)
0x4583acf3 comment (;;; <@594,#1073> add-i)
0x4583acf3 position (2598)
0x4583acfc comment (;;; <@597,#1075> branch)
0x4583ad04 comment (;;; <@598,#1076> -------------------- B16 (unreachable/replaced) --------------------)
0x4583ad04 position (2584)
0x4583ad04 comment (;;; <@602,#1082> -------------------- B17 --------------------)
0x4583ad04 comment (;;; <@604,#1084> stack-check)
0x4583ad10 comment (;;; <@606,#1091> bounds-check)
0x4583ad10 position (2608)
0x4583ad18 comment (;;; <@608,#1092> load-keyed)
0x4583ad1c comment (;;; <@610,#1099> bounds-check)
0x4583ad1c position (2616)
0x4583ad24 comment (;;; <@612,#1100> load-keyed)
0x4583ad28 comment (;;; <@614,#1268> uint32-to-double)
0x4583ad28 position (2608)
0x4583ad3c comment (;;; <@616,#1269> uint32-to-double)
0x4583ad50 comment (;;; <@618,#1101> add-d)
0x4583ad54 comment (;;; <@620,#1270> double-to-i)
0x4583ad66 code target (STUB) (0x458367a0)
0x4583ad6d comment (;;; <@622,#1112> store-keyed)
0x4583ad71 comment (;;; <@624,#1115> gap)
0x4583ad71 position (2584)
0x4583ad76 comment (;;; <@625,#1115> goto)
0x4583ad7b comment (;;; <@626,#1079> -------------------- B18 (unreachable/replaced) --------------------)
0x4583ad7b position (2638)
0x4583ad7b comment (;;; <@630,#1116> -------------------- B19 --------------------)
0x4583ad7b comment (;;; <@632,#1125> gap)
0x4583ad7b position (2629)
0x4583ad86 position (2642)
0x4583ad86 comment (;;; <@634,#1126> -------------------- B20 (loop header) --------------------)
0x4583ad86 comment (;;; <@635,#1126> gap)
0x4583ad88 comment (;;; <@636,#1129> add-i)
0x4583ad88 position (2643)
0x4583ad91 comment (;;; <@637,#1129> gap)
0x4583ad94 comment (;;; <@639,#1131> branch)
0x4583ad9c comment (;;; <@640,#1132> -------------------- B21 (unreachable/replaced) --------------------)
0x4583ad9c position (2629)
0x4583ad9c comment (;;; <@644,#1138> -------------------- B22 --------------------)
0x4583ad9c comment (;;; <@646,#1141> load-context-slot)
0x4583ad9c position (2648)
0x4583ad9f comment (;;; <@647,#1141> gap)
0x4583ada1 comment (;;; <@648,#1144> mul-i)
0x4583ada1 position (2668)
0x4583adaa comment (;;; <@650,#1149> check-maps)
0x4583adaa position (2674)
0x4583adad embedded object (0x3020dca1 <Map(elements=21)>)
0x4583adb7 comment (;;; <@652,#1150> load-named-field)
0x4583adba comment (;;; <@654,#1151> load-named-field)
0x4583adbd comment (;;; <@656,#1152> bounds-check)
0x4583adc5 comment (;;; <@658,#1153> load-keyed)
0x4583adc9 comment (;;; <@660,#1154> check-value)
0x4583adc9 position (2648)
0x4583adcb property cell
0x4583add5 comment (;;; <@662,#1271> dummy-use)
0x4583add5 comment (;;; <@664,#1272> number-tag-u)
0x4583ade3 comment (;;; <@666,#1155> push-argument)
0x4583ade4 embedded object (0x268080b1 <undefined>)
0x4583ade8 comment (;;; <@668,#1155> push-argument)
0x4583adeb comment (;;; <@670,#1155> push-argument)
0x4583adec comment (;;; <@672,#1155> push-argument)
0x4583aded comment (;;; <@674,#1156> constant-t)
0x4583adef property cell
0x4583adf3 comment (;;; <@676,#1157> call-js-function)
0x4583adf9 comment (;;; <@678,#1158> lazy-bailout)
0x4583adf9 comment (;;; <@680,#1160> gap)
0x4583adf9 position (2629)
0x4583ae02 comment (;;; <@681,#1160> goto)
0x4583ae04 comment (;;; <@682,#1135> -------------------- B23 (unreachable/replaced) --------------------)
0x4583ae04 position (2688)
0x4583ae04 comment (;;; <@686,#1161> -------------------- B24 --------------------)
0x4583ae04 comment (;;; <@687,#1161> gap)
0x4583ae07 comment (;;; <@688,#1162> load-context-slot)
0x4583ae0a comment (;;; <@690,#1164> check-non-smi)
0x4583ae0a position (2697)
0x4583ae13 comment (;;; <@692,#1165> check-maps)
0x4583ae16 embedded object (0x3020dca1 <Map(elements=21)>)
0x4583ae20 comment (;;; <@694,#1166> load-named-field)
0x4583ae23 comment (;;; <@696,#1167> load-named-field)
0x4583ae26 comment (;;; <@698,#1168> bounds-check)
0x4583ae2f comment (;;; <@700,#1169> load-keyed)
0x4583ae3a comment (;;; <@702,#1171> add-i)
0x4583ae3d comment (;;; <@704,#1181> store-keyed)
0x4583ae40 comment (;;; <@705,#1181> gap)
0x4583ae43 comment (;;; <@706,#1184> return)
0x4583ae43 position (2709)
0x4583ae49 position (2156)
0x4583ae49 comment (;;; <@62,#42> -------------------- Deferred stack-check --------------------)
0x4583ae55 code target (STUB) (0x4580bbc0)
0x4583ae5f position (2584)
0x4583ae5f comment (;;; <@604,#1084> -------------------- Deferred stack-check --------------------)
0x4583ae6b code target (STUB) (0x4580bbc0)
0x4583ae75 position (2648)
0x4583ae75 comment (;;; <@664,#1272> -------------------- Deferred number-tag-u --------------------)
0x4583aeb0 embedded object (0x3020820d <Map(elements=3)>)
0x4583aec4 code target (STUB) (0x4580bbc0)
0x4583aed7 comment (;;; -------------------- Jump table --------------------)
0x4583aed7 position (51200)
0x4583aed7 deopt reason (Smi)
0x4583aed8 runtime entry (deoptimization bailout 2)
0x4583aedc position (51200)
0x4583aedc deopt reason (wrong map)
0x4583aedd runtime entry (deoptimization bailout 3)
0x4583aee1 position (47616)
0x4583aee1 deopt reason (Smi)
0x4583aee2 runtime entry (deoptimization bailout 4)
0x4583aee6 position (47616)
0x4583aee6 deopt reason (wrong map)
0x4583aee7 runtime entry (deoptimization bailout 5)
0x4583aeeb position (42496)
0x4583aeeb deopt reason (overflow)
0x4583aeec runtime entry (deoptimization bailout 6)
0x4583aef0 position (51200)
0x4583aef0 deopt reason (out of bounds)
0x4583aef1 runtime entry (deoptimization bailout 8)
0x4583aef5 position (51200)
0x4583aef5 deopt reason (negative value)
0x4583aef6 runtime entry (deoptimization bailout 9)
0x4583aefa position (47616)
0x4583aefa deopt reason (out of bounds)
0x4583aefb runtime entry (deoptimization bailout 10)
0x4583aeff position (81408)
0x4583aeff deopt reason (value mismatch)
0x4583af00 runtime entry (deoptimization bailout 11)
0x4583af04 position (15873)
0x4583af04 deopt reason (wrong map)
0x4583af05 runtime entry (deoptimization bailout 12)
0x4583af09 position (15873)
0x4583af09 deopt reason (out of bounds)
0x4583af0a runtime entry (deoptimization bailout 13)
0x4583af0e position (17921)
0x4583af0e deopt reason (out of bounds)
0x4583af0f runtime entry (deoptimization bailout 14)
0x4583af13 position (25602)
0x4583af13 deopt reason (out of bounds)
0x4583af14 runtime entry (deoptimization bailout 15)
0x4583af18 position (25603)
0x4583af18 deopt reason (out of bounds)
0x4583af19 runtime entry (deoptimization bailout 16)
0x4583af1d position (165376)
0x4583af1d deopt reason (value mismatch)
0x4583af1e runtime entry (deoptimization bailout 18)
0x4583af22 position (186368)
0x4583af22 deopt reason (value mismatch)
0x4583af23 runtime entry (deoptimization bailout 20)
0x4583af27 position (207360)
0x4583af27 deopt reason (value mismatch)
0x4583af28 runtime entry (deoptimization bailout 22)
0x4583af2c position (228352)
0x4583af2c deopt reason (value mismatch)
0x4583af2d runtime entry (deoptimization bailout 24)
0x4583af31 position (264704)
0x4583af31 deopt reason (wrong map)
0x4583af32 runtime entry (deoptimization bailout 26)
0x4583af36 position (268800)
0x4583af36 deopt reason (Smi)
0x4583af37 runtime entry (deoptimization bailout 27)
0x4583af3b position (268800)
0x4583af3b deopt reason (wrong map)
0x4583af3c runtime entry (deoptimization bailout 28)
0x4583af40 position (259584)
0x4583af40 deopt reason (overflow)
0x4583af41 runtime entry (deoptimization bailout 29)
0x4583af45 position (264704)
0x4583af45 deopt reason (out of bounds)
0x4583af46 runtime entry (deoptimization bailout 31)
0x4583af4a position (268800)
0x4583af4a deopt reason (out of bounds)
0x4583af4b runtime entry (deoptimization bailout 32)
0x4583af4f position (282624)
0x4583af4f deopt reason (overflow)
0x4583af50 runtime entry (deoptimization bailout 33)
0x4583af54 position (295424)
0x4583af54 deopt reason (overflow)
0x4583af55 runtime entry (deoptimization bailout 34)
0x4583af59 position (298496)
0x4583af59 deopt reason (wrong map)
0x4583af5a runtime entry (deoptimization bailout 35)
0x4583af5e position (298496)
0x4583af5e deopt reason (out of bounds)
0x4583af5f runtime entry (deoptimization bailout 36)
0x4583af63 position (285184)
0x4583af63 deopt reason (value mismatch)
0x4583af64 runtime entry (deoptimization bailout 37)
0x4583af68 position (310272)
0x4583af68 deopt reason (Smi)
0x4583af69 runtime entry (deoptimization bailout 39)
0x4583af6d position (310272)
0x4583af6d deopt reason (wrong map)
0x4583af6e runtime entry (deoptimization bailout 40)
0x4583af72 position (310272)
0x4583af72 deopt reason (out of bounds)
0x4583af73 runtime entry (deoptimization bailout 41)
0x4583af77 position (310272)
0x4583af77 deopt reason (negative value)
0x4583af78 runtime entry (deoptimization bailout 42)
0x4583af84 comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (keystreamToBuffer) id{5,0} ---
(buffer) {
var startBlock = input[12];
var skipBytes = startIndex % 64;
var lastBytes = (startIndex + buffer.length) % 64;
var buf = new Uint8Array(64);
var streamPos = 0;
//First block
getBlock(buf);
for (var i = skipBytes; i < 64; i++) buffer[streamPos++] = buf[i]
//Fill full blocks
while (streamPos + 64 <= buffer.length) {
getBlock(buf);
for (var i = 0; i < 64; i++) buffer[streamPos++] = buf[i];
}
//Last partial block
if (lastBytes > 0) {
getBlock(buf);
for (var i = 0; i < lastBytes; i++) buffer[streamPos++] = buf[i];
}
this.setPosition(startIndex + buffer.length);
}
--- END ---
--- Raw source ---
(buffer) {
var startBlock = input[12];
var skipBytes = startIndex % 64;
var lastBytes = (startIndex + buffer.length) % 64;
var buf = new Uint8Array(64);
var streamPos = 0;
//First block
getBlock(buf);
for (var i = skipBytes; i < 64; i++) buffer[streamPos++] = buf[i]
//Fill full blocks
while (streamPos + 64 <= buffer.length) {
getBlock(buf);
for (var i = 0; i < 64; i++) buffer[streamPos++] = buf[i];
}
//Last partial block
if (lastBytes > 0) {
getBlock(buf);
for (var i = 0; i < lastBytes; i++) buffer[streamPos++] = buf[i];
}
this.setPosition(startIndex + buffer.length);
}
--- Optimized code ---
optimization_id = 5
source_position = 2772
kind = OPTIMIZED_FUNCTION
name = keystreamToBuffer
stack_slots = 24
Instructions (size = 1260)
0x4583b560 0 33d2 xor edx,edx
0x4583b562 2 f7c404000000 test esp,0x4
0x4583b568 8 751f jnz 41 (0x4583b589)
0x4583b56a 10 6a00 push 0x0
0x4583b56c 12 89e3 mov ebx,esp
0x4583b56e 14 ba02000000 mov edx,0x2
0x4583b573 19 b903000000 mov ecx,0x3
0x4583b578 24 8b4304 mov eax,[ebx+0x4]
0x4583b57b 27 8903 mov [ebx],eax
0x4583b57d 29 83c304 add ebx,0x4
0x4583b580 32 49 dec ecx
0x4583b581 33 75f5 jnz 24 (0x4583b578)
0x4583b583 35 c70378563412 mov [ebx],0x12345678
0x4583b589 41 55 push ebp
0x4583b58a 42 89e5 mov ebp,esp
0x4583b58c 44 56 push esi
0x4583b58d 45 57 push edi
0x4583b58e 46 83ec60 sub esp,0x60
;;; Store dynamic frame alignment tag for spilled doubles
0x4583b591 49 8955f4 mov [ebp-0xc],edx
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583b594 52 8b45fc mov eax,[ebp-0x4] ;; debug: position 2772
;;; <@3,#1> gap
0x4583b597 55 8945d8 mov [ebp-0x28],eax
;;; <@10,#8> -------------------- B1 --------------------
;;; <@11,#8> gap
0x4583b59a 58 89c6 mov esi,eax
;;; <@12,#10> stack-check
0x4583b59c 60 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583b5a2 66 7305 jnc 73 (0x4583b5a9)
0x4583b5a4 68 e8173affff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@14,#10> lazy-bailout
;;; <@15,#10> gap
0x4583b5a9 73 8b45d8 mov eax,[ebp-0x28]
;;; <@16,#11> load-context-slot
0x4583b5ac 76 8b4823 mov ecx,[eax+0x23] ;; debug: position 2808
;;; <@18,#13> check-non-smi
0x4583b5af 79 f6c101 test_b cl,0x1 ;; debug: position 2813
0x4583b5b2 82 0f8498030000 jz 1008 (0x4583b950)
;;; <@20,#14> check-maps
0x4583b5b8 88 8179ffa1dc2030 cmp [ecx-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583b5bf 95 0f8590030000 jnz 1013 (0x4583b955)
;;; <@22,#15> load-named-field
0x4583b5c5 101 8b4907 mov ecx,[ecx+0x7]
;;; <@24,#16> load-named-field
0x4583b5c8 104 8b5103 mov edx,[ecx+0x3]
;;; <@26,#17> bounds-check
0x4583b5cb 107 83fa18 cmp edx,0x18
0x4583b5ce 110 0f8686030000 jna 1018 (0x4583b95a)
;;; <@28,#18> load-keyed
0x4583b5d4 116 8b5137 mov edx,[ecx+0x37]
;;; <@30,#20> load-context-slot
0x4583b5d7 119 8b481f mov ecx,[eax+0x1f] ;; debug: position 2852
;;; <@31,#20> gap
0x4583b5da 122 894dd4 mov [ebp-0x2c],ecx
0x4583b5dd 125 89cb mov ebx,ecx
;;; <@32,#336> tagged-to-i
0x4583b5df 127 d1fb sar ebx,1
0x4583b5e1 129 0f82b6020000 jc 829 (0x4583b89d)
;;; <@33,#336> gap
0x4583b5e7 135 895dcc mov [ebp-0x34],ebx
0x4583b5ea 138 89df mov edi,ebx
;;; <@34,#22> mod-by-power-of-2-i
0x4583b5ec 140 85ff test edi,edi ;; debug: position 2863
0x4583b5ee 142 7909 jns 153 (0x4583b5f9)
0x4583b5f0 144 f7df neg edi
0x4583b5f2 146 83e73f and edi,0x3f
0x4583b5f5 149 f7df neg edi
0x4583b5f7 151 eb03 jmp 156 (0x4583b5fc)
0x4583b5f9 153 83e73f and edi,0x3f
;;; <@35,#22> gap
0x4583b5fc 156 897dd0 mov [ebp-0x30],edi
0x4583b5ff 159 89c6 mov esi,eax
0x4583b601 161 8b5508 mov edx,[ebp+0x8]
;;; <@36,#27> load-named-generic
0x4583b604 164 b981968226 mov ecx,0x26829681 ;; debug: position 2913
;; object: 0x26829681 <String[6]: length>
0x4583b609 169 e8b202ffff call 0x4582b8c0 ;; code: LOAD_IC, PREMONOMORPHIC
;;; <@38,#28> lazy-bailout
;;; <@39,#28> gap
0x4583b60e 174 89c1 mov ecx,eax
;;; <@40,#339> tagged-to-i
0x4583b610 176 d1f9 sar ecx,1
0x4583b612 178 0f82d3020000 jc 907 (0x4583b8eb)
;;; <@42,#29> add-i
0x4583b618 184 034dcc add ecx,[ebp-0x34] ;; debug: position 2905
0x4583b61b 187 0f803e030000 jo 1023 (0x4583b95f)
;;; <@44,#32> mod-by-power-of-2-i
0x4583b621 193 85c9 test ecx,ecx ;; debug: position 2922
0x4583b623 195 790f jns 212 (0x4583b634)
0x4583b625 197 f7d9 neg ecx
0x4583b627 199 83e13f and ecx,0x3f
0x4583b62a 202 f7d9 neg ecx
0x4583b62c 204 0f8432030000 jz 1028 (0x4583b964)
0x4583b632 210 eb03 jmp 215 (0x4583b637)
0x4583b634 212 83e13f and ecx,0x3f
;;; <@45,#32> gap
0x4583b637 215 894dc8 mov [ebp-0x38],ecx
;;; <@46,#37> push-argument
0x4583b63a 218 6859438826 push 0x26884359 ;; debug: position 2955
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@48,#37> push-argument
0x4583b63f 223 6880000000 push 0x80
;;; <@50,#35> constant-t
0x4583b644 228 bf59438826 mov edi,0x26884359 ;; debug: position 2959
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@51,#35> gap
0x4583b649 233 8b75d8 mov esi,[ebp-0x28]
;;; <@52,#38> call-new
0x4583b64c 236 bbb1808026 mov ebx,0x268080b1 ;; debug: position 2955
;; object: 0x268080b1 <undefined>
0x4583b651 241 b801000000 mov eax,0x1
0x4583b656 246 e865a1feff call 0x458257c0 ;; code: constructor, STUB, CallConstructStub, minor: 0
;;; <@53,#38> gap
0x4583b65b 251 8945c4 mov [ebp-0x3c],eax
;;; <@54,#39> lazy-bailout
;;; <@55,#39> gap
0x4583b65e 254 8b4dd8 mov ecx,[ebp-0x28]
;;; <@56,#43> load-context-slot
0x4583b661 257 8b5133 mov edx,[ecx+0x33] ;; debug: position 3050
;;; <@58,#45> check-value
0x4583b664 260 3b153482c039 cmp edx,[0x39c08234] ;; property cell
0x4583b66a 266 0f85f9020000 jnz 1033 (0x4583b969)
;;; <@60,#46> push-argument
0x4583b670 272 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@62,#46> push-argument
0x4583b675 277 50 push eax
;;; <@64,#47> constant-t
0x4583b676 278 8b3d3c82c039 mov edi,[0x39c0823c] ;; property cell
;;; <@66,#48> call-js-function
0x4583b67c 284 8b7717 mov esi,[edi+0x17]
0x4583b67f 287 ff570b call [edi+0xb]
;;; <@68,#49> lazy-bailout
;;; <@70,#83> check-non-smi
0x4583b682 290 f645c401 test_b [ebp-0x3c],0x1 ;; debug: position 3135
0x4583b686 294 0f84e2020000 jz 1038 (0x4583b96e)
;;; <@71,#83> gap
0x4583b68c 300 8b4dc4 mov ecx,[ebp-0x3c]
;;; <@72,#84> check-maps
0x4583b68f 303 8179ff91da2030 cmp [ecx-0x1],0x3020da91 ;; object: 0x3020da91 <Map(elements=17)>
0x4583b696 310 0f85d7020000 jnz 1043 (0x4583b973)
;;; <@74,#85> load-named-field
0x4583b69c 316 8b5107 mov edx,[ecx+0x7]
;;; <@76,#86> load-named-field
0x4583b69f 319 8b4203 mov eax,[edx+0x3]
;;; <@77,#86> gap
0x4583b6a2 322 89c3 mov ebx,eax
;;; <@78,#344> smi-untag
0x4583b6a4 324 d1fb sar ebx,1
;;; <@79,#344> gap
0x4583b6a6 326 895dbc mov [ebp-0x44],ebx
0x4583b6a9 329 8b7508 mov esi,[ebp+0x8]
;;; <@80,#89> check-non-smi
0x4583b6ac 332 f7c601000000 test esi,0x1 ;; debug: position 3130
0x4583b6b2 338 0f84c0020000 jz 1048 (0x4583b978)
;;; <@82,#90> check-maps
0x4583b6b8 344 817eff09f52030 cmp [esi-0x1],0x3020f509 ;; object: 0x3020f509 <Map(elements=9)>
0x4583b6bf 351 0f85b8020000 jnz 1053 (0x4583b97d)
;;; <@84,#92> check-maps
;;; <@86,#94> check-maps
;;; <@88,#95> load-named-field
0x4583b6c5 357 8b4607 mov eax,[esi+0x7]
;;; <@90,#96> load-named-field
0x4583b6c8 360 8b7803 mov edi,[eax+0x3]
;;; <@92,#97> load-named-field
0x4583b6cb 363 8b4007 mov eax,[eax+0x7]
;;; <@93,#97> gap
0x4583b6ce 366 8945c0 mov [ebp-0x40],eax
;;; <@94,#62> gap
0x4583b6d1 369 8b4dd0 mov ecx,[ebp-0x30] ;; debug: position 3073
0x4583b6d4 372 33f6 xor esi,esi
;;; <@96,#63> -------------------- B2 (loop header) --------------------
;;; <@99,#66> compare-numeric-and-branch
0x4583b6d6 374 83f940 cmp ecx,0x40 ;; debug: position 3097
;; debug: position 3099
0x4583b6d9 377 0f8d9d000000 jnl 540 (0x4583b77c)
;;; <@100,#67> -------------------- B3 (unreachable/replaced) --------------------
;;; <@104,#73> -------------------- B4 --------------------
;;; <@106,#75> stack-check
0x4583b6df 383 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 3073
0x4583b6e5 389 0f8239020000 jc 964 (0x4583b924)
;;; <@107,#75> gap
0x4583b6eb 395 89f0 mov eax,esi
;;; <@108,#79> add-i
0x4583b6ed 397 83c002 add eax,0x2 ;; debug: position 3126
0x4583b6f0 400 0f808c020000 jo 1058 (0x4583b982)
;;; <@109,#79> gap
0x4583b6f6 406 8945b8 mov [ebp-0x48],eax
;;; <@110,#87> bounds-check
0x4583b6f9 409 3bcb cmp ecx,ebx ;; debug: position 3135
0x4583b6fb 411 0f8386020000 jnc 1063 (0x4583b987)
;;; <@112,#88> load-keyed
0x4583b701 417 0fb65c0a07 movzx_b ebx,[edx+ecx*1+0x7]
;;; <@114,#98> bounds-check
0x4583b706 422 3bf7 cmp esi,edi ;; debug: position 3130
0x4583b708 424 0f837e020000 jnc 1068 (0x4583b98c)
;;; <@115,#98> gap
0x4583b70e 430 89d8 mov eax,ebx
0x4583b710 432 8b5dc0 mov ebx,[ebp-0x40]
;;; <@116,#99> store-keyed
0x4583b713 435 d1fe sar esi,1
0x4583b715 437 880433 mov_b [ebx+esi*1],al
;;; <@118,#102> add-i
0x4583b718 440 83c101 add ecx,0x1 ;; debug: position 3106
;;; <@120,#105> gap
0x4583b71b 443 8b75b8 mov esi,[ebp-0x48] ;; debug: position 3073
0x4583b71e 446 8b5dbc mov ebx,[ebp-0x44]
;;; <@121,#105> goto
0x4583b721 449 ebb3 jmp 374 (0x4583b6d6)
;;; <@122,#70> -------------------- B5 (unreachable/replaced) --------------------
;;; <@126,#107> -------------------- B6 (unreachable/replaced) --------------------
;;; <@130,#112> -------------------- B7 (OSR entry) --------------------
0x4583b723 451 33d2 xor edx,edx ;; debug: position 3183
0x4583b725 453 f7c504000000 test ebp,0x4
0x4583b72b 459 7422 jz 495 (0x4583b74f)
0x4583b72d 461 6a00 push 0x0
0x4583b72f 463 89e3 mov ebx,esp
0x4583b731 465 ba02000000 mov edx,0x2
0x4583b736 470 b90c000000 mov ecx,0xc
0x4583b73b 475 8b4304 mov eax,[ebx+0x4]
0x4583b73e 478 8903 mov [ebx],eax
0x4583b740 480 83c304 add ebx,0x4
0x4583b743 483 49 dec ecx
0x4583b744 484 75f5 jnz 475 (0x4583b73b)
0x4583b746 486 c70378563412 mov [ebx],0x12345678
0x4583b74c 492 83ed04 sub ebp,0x4
0x4583b74f 495 ff75f4 push [ebp-0xc]
0x4583b752 498 8955f4 mov [ebp-0xc],edx
0x4583b755 501 83ec44 sub esp,0x44
;;; <@152,#124> context
0x4583b758 504 8b45fc mov eax,[ebp-0x4]
;;; <@153,#124> gap
0x4583b75b 507 8b4de4 mov ecx,[ebp-0x1c]
;;; <@154,#345> check-smi
0x4583b75e 510 f6c101 test_b cl,0x1
0x4583b761 513 0f852a020000 jnz 1073 (0x4583b991)
;;; <@156,#126> gap
0x4583b767 519 8b7d0c mov edi,[ebp+0xc]
0x4583b76a 522 8b5d08 mov ebx,[ebp+0x8]
0x4583b76d 525 89c2 mov edx,eax
0x4583b76f 527 89ce mov esi,ecx
0x4583b771 529 8b4dec mov ecx,[ebp-0x14]
0x4583b774 532 8b45e8 mov eax,[ebp-0x18]
;;; <@157,#126> goto
0x4583b777 535 e913000000 jmp 559 (0x4583b78f)
;;; <@158,#109> -------------------- B8 --------------------
;;; <@159,#109> gap
0x4583b77c 540 8b45c8 mov eax,[ebp-0x38]
;;; <@160,#341> smi-tag
0x4583b77f 543 03c0 add eax,eax
;;; <@162,#111> gap
0x4583b781 545 8b7d0c mov edi,[ebp+0xc]
0x4583b784 548 8b5d08 mov ebx,[ebp+0x8]
0x4583b787 551 8b55d8 mov edx,[ebp-0x28]
0x4583b78a 554 89c1 mov ecx,eax
0x4583b78c 556 8b45c4 mov eax,[ebp-0x3c]
;;; <@164,#145> -------------------- B9 --------------------
0x4583b78f 559 897da4 mov [ebp-0x5c],edi
0x4583b792 562 895dac mov [ebp-0x54],ebx
0x4583b795 565 8955b0 mov [ebp-0x50],edx
0x4583b798 568 894db4 mov [ebp-0x4c],ecx
0x4583b79b 571 8945c0 mov [ebp-0x40],eax
;;; <@166,#153> check-non-smi
0x4583b79e 574 f6c301 test_b bl,0x1 ;; debug: position 3214
0x4583b7a1 577 0f84ef010000 jz 1078 (0x4583b996)
;;; <@168,#205> check-non-smi
0x4583b7a7 583 a801 test al,0x1 ;; debug: position 3318
0x4583b7a9 585 0f84ec010000 jz 1083 (0x4583b99b)
;;; <@170,#214> check-maps
;;; <@172,#216> check-maps
;;; <@176,#148> -------------------- B10 (loop header) --------------------
0x4583b7af 591 8975a8 mov [ebp-0x58],esi ;; debug: position 3313
;; debug: position 3190
;;; <@177,#148> gap
0x4583b7b2 594 89f0 mov eax,esi
;;; <@178,#151> add-i
0x4583b7b4 596 0580000000 add eax,0x80 ;; debug: position 3200
0x4583b7b9 601 0f80e1010000 jo 1088 (0x4583b9a0)
;;; <@180,#154> check-maps
0x4583b7bf 607 817bff09f52030 cmp [ebx-0x1],0x3020f509 ;; debug: position 3214
;; object: 0x3020f509 <Map(elements=9)>
0x4583b7c6 614 0f85d9010000 jnz 1093 (0x4583b9a5)
;;; <@182,#155> load-named-field
0x4583b7cc 620 8b4b1f mov ecx,[ebx+0x1f]
;;; <@184,#346> check-smi
0x4583b7cf 623 f6c101 test_b cl,0x1
0x4583b7d2 626 0f85d2010000 jnz 1098 (0x4583b9aa)
;;; <@187,#156> compare-numeric-and-branch
0x4583b7d8 632 3bc1 cmp eax,ecx ;; debug: position 3205
0x4583b7da 634 0f8fb8000000 jg 824 (0x4583b898)
;;; <@188,#157> -------------------- B11 (unreachable/replaced) --------------------
;;; <@192,#163> -------------------- B12 --------------------
;;; <@194,#166> load-context-slot
0x4583b7e0 640 8b4233 mov eax,[edx+0x33] ;; debug: position 3183
;; debug: position 3237
;;; <@196,#168> check-value
0x4583b7e3 643 3b054482c039 cmp eax,[0x39c08244] ;; property cell
0x4583b7e9 649 0f85c0010000 jnz 1103 (0x4583b9af)
;;; <@198,#169> push-argument
0x4583b7ef 655 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@200,#169> push-argument
0x4583b7f4 660 ff75c0 push [ebp-0x40]
;;; <@202,#170> constant-t
0x4583b7f7 663 8b054c82c039 mov eax,[0x39c0824c] ;; property cell
;;; <@203,#170> gap
0x4583b7fd 669 97 xchg eax, edi
;;; <@204,#171> call-js-function
0x4583b7fe 670 8b7717 mov esi,[edi+0x17]
0x4583b801 673 ff570b call [edi+0xb]
;;; <@206,#172> lazy-bailout
;;; <@207,#172> gap
0x4583b804 676 8b4dc0 mov ecx,[ebp-0x40]
;;; <@208,#206> check-maps
0x4583b807 679 8179ff91da2030 cmp [ecx-0x1],0x3020da91 ;; debug: position 3318
;; object: 0x3020da91 <Map(elements=17)>
0x4583b80e 686 0f85a0010000 jnz 1108 (0x4583b9b4)
;;; <@210,#207> load-named-field
0x4583b814 692 8b5107 mov edx,[ecx+0x7]
;;; <@212,#208> load-named-field
0x4583b817 695 8b5a03 mov ebx,[edx+0x3]
;;; <@213,#208> gap
0x4583b81a 698 895d9c mov [ebp-0x64],ebx
;;; <@214,#212> check-maps
;;; <@215,#212> gap
0x4583b81d 701 8b75ac mov esi,[ebp-0x54] ;; debug: position 3313
;;; <@216,#217> load-named-field
0x4583b820 704 8b4607 mov eax,[esi+0x7]
;;; <@218,#218> load-named-field
0x4583b823 707 8b7803 mov edi,[eax+0x3]
;;; <@220,#219> load-named-field
0x4583b826 710 8b4007 mov eax,[eax+0x7]
;;; <@221,#219> gap
0x4583b829 713 8945a0 mov [ebp-0x60],eax
;;; <@222,#185> gap
0x4583b82c 716 8b4da8 mov ecx,[ebp-0x58] ;; debug: position 3264
0x4583b82f 719 33f6 xor esi,esi
;;; <@224,#186> -------------------- B13 (loop header) --------------------
0x4583b831 721 897598 mov [ebp-0x68],esi ;; debug: position 3280
;;; <@227,#189> compare-numeric-and-branch
0x4583b834 724 81fe80000000 cmp esi,0x80 ;; debug: position 3282
0x4583b83a 730 0f8d48000000 jnl 808 (0x4583b888)
;;; <@228,#190> -------------------- B14 (unreachable/replaced) --------------------
;;; <@232,#196> -------------------- B15 --------------------
;;; <@234,#198> stack-check
0x4583b840 736 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 3264
0x4583b846 742 0f82ee000000 jc 986 (0x4583b93a)
;;; <@235,#198> gap
0x4583b84c 748 89c8 mov eax,ecx
;;; <@236,#201> add-i
0x4583b84e 750 83c002 add eax,0x2 ;; debug: position 3309
0x4583b851 753 0f8062010000 jo 1113 (0x4583b9b9)
;;; <@238,#209> bounds-check
0x4583b857 759 3bf3 cmp esi,ebx ;; debug: position 3318
0x4583b859 761 0f835f010000 jnc 1118 (0x4583b9be)
;;; <@239,#209> gap
0x4583b85f 767 89f3 mov ebx,esi
;;; <@240,#210> load-keyed
0x4583b861 769 d1fb sar ebx,1
0x4583b863 771 0fb6741a07 movzx_b esi,[edx+ebx*1+0x7]
;;; <@242,#220> bounds-check
0x4583b868 776 3bcf cmp ecx,edi ;; debug: position 3313
0x4583b86a 778 0f8353010000 jnc 1123 (0x4583b9c3)
;;; <@243,#220> gap
0x4583b870 784 96 xchg eax, esi
0x4583b871 785 8b5da0 mov ebx,[ebp-0x60]
;;; <@244,#221> store-keyed
0x4583b874 788 d1f9 sar ecx,1
0x4583b876 790 88040b mov_b [ebx+ecx*1],al
;;; <@245,#221> gap
0x4583b879 793 8b4598 mov eax,[ebp-0x68]
;;; <@246,#224> add-i
0x4583b87c 796 83c002 add eax,0x2 ;; debug: position 3289
;;; <@248,#227> gap
0x4583b87f 799 89f1 mov ecx,esi ;; debug: position 3264
0x4583b881 801 89c6 mov esi,eax
0x4583b883 803 8b5d9c mov ebx,[ebp-0x64]
;;; <@249,#227> goto
0x4583b886 806 eba9 jmp 721 (0x4583b831)
;;; <@250,#193> -------------------- B16 (unreachable/replaced) --------------------
;;; <@254,#228> -------------------- B17 --------------------
;;; <@256,#230> gap
0x4583b888 808 89ce mov esi,ecx ;; debug: position 3183
0x4583b88a 810 8b7da4 mov edi,[ebp-0x5c]
0x4583b88d 813 8b5dac mov ebx,[ebp-0x54]
0x4583b890 816 8b55b0 mov edx,[ebp-0x50]
;;; <@257,#230> goto
0x4583b893 819 e917ffffff jmp 591 (0x4583b7af)
;;; <@258,#160> -------------------- B18 (unreachable/replaced) --------------------
;;; <@262,#231> -------------------- B19 --------------------
;;; <@265,#234> deoptimize
0x4583b898 824 e8a3e85c12 call 0x57e0a140 ;; debug: position 3383
;; debug: position 3393
;; debug: position 317952
;; debug: deopt reason 'Insufficient type feedback for combined type of binary operation'
;; soft deoptimization bailout 32
;;; <@266,#235> -------------------- B20 (unreachable/replaced) --------------------
;;; <@276,#242> -------------------- B21 (unreachable/replaced) --------------------
;;; <@280,#303> -------------------- B22 (unreachable/replaced) --------------------
;;; <@284,#239> -------------------- B23 (unreachable/replaced) --------------------
;;; <@288,#245> -------------------- B24 (unreachable/replaced) --------------------
;;; <@302,#264> -------------------- B25 (unreachable/replaced) --------------------
;;; <@306,#268> -------------------- B26 (unreachable/replaced) --------------------
;;; <@316,#272> -------------------- B27 (unreachable/replaced) --------------------
;;; <@320,#278> -------------------- B28 (unreachable/replaced) --------------------
;;; <@332,#288> -------------------- B29 (unreachable/replaced) --------------------
;;; <@342,#292> -------------------- B30 (unreachable/replaced) --------------------
;;; <@366,#275> -------------------- B31 (unreachable/replaced) --------------------
;;; <@370,#300> -------------------- B32 (unreachable/replaced) --------------------
;;; <@374,#315> -------------------- B33 (unreachable/replaced) --------------------
;;; <@384,#320> -------------------- B34 (unreachable/replaced) --------------------
;;; <@392,#324> -------------------- B35 (unreachable/replaced) --------------------
;;; <@396,#326> -------------------- B36 (unreachable/replaced) --------------------
;;; <@32,#336> -------------------- Deferred tagged-to-i --------------------
0x4583b89d 829 8d1c5d01000000 lea ebx,[ebx*2+0x1] ;; debug: position 2852
0x4583b8a4 836 817bff0d822030 cmp [ebx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583b8ab 843 0f8517010000 jnz 1128 (0x4583b9c8)
0x4583b8b1 849 f20f104303 movsd xmm0,[ebx+0x3]
0x4583b8b6 854 f20f2cd8 cvttsd2si ebx,xmm0
0x4583b8ba 858 0f57c9 xorps xmm1,xmm1
0x4583b8bd 861 f20f2acb cvtsi2sd xmm1,ebx
0x4583b8c1 865 660f2ec1 ucomisd xmm0,xmm1
0x4583b8c5 869 0f8502010000 jnz 1133 (0x4583b9cd)
0x4583b8cb 875 0f8a01010000 jpe 1138 (0x4583b9d2)
0x4583b8d1 881 85db test ebx,ebx
0x4583b8d3 883 0f850efdffff jnz 135 (0x4583b5e7)
0x4583b8d9 889 660f50d8 movmskpd ebx,xmm0
0x4583b8dd 893 83e301 and ebx,0x1
0x4583b8e0 896 0f85f1000000 jnz 1143 (0x4583b9d7)
0x4583b8e6 902 e9fcfcffff jmp 135 (0x4583b5e7)
;;; <@40,#339> -------------------- Deferred tagged-to-i --------------------
0x4583b8eb 907 8d0c4d01000000 lea ecx,[ecx*2+0x1] ;; debug: position 2913
0x4583b8f2 914 8179ff0d822030 cmp [ecx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583b8f9 921 0f85dd000000 jnz 1148 (0x4583b9dc)
0x4583b8ff 927 f20f104103 movsd xmm0,[ecx+0x3]
0x4583b904 932 f20f2cc8 cvttsd2si ecx,xmm0
0x4583b908 936 0f57c9 xorps xmm1,xmm1
0x4583b90b 939 f20f2ac9 cvtsi2sd xmm1,ecx
0x4583b90f 943 660f2ec1 ucomisd xmm0,xmm1
0x4583b913 947 0f85c8000000 jnz 1153 (0x4583b9e1)
0x4583b919 953 0f8ac7000000 jpe 1158 (0x4583b9e6)
0x4583b91f 959 e9f4fcffff jmp 184 (0x4583b618)
;;; <@106,#75> -------------------- Deferred stack-check --------------------
0x4583b924 964 60 pushad ;; debug: position 3073
0x4583b925 965 8b75fc mov esi,[ebp-0x4]
0x4583b928 968 33c0 xor eax,eax
0x4583b92a 970 bb003d4608 mov ebx,0x8463d00
0x4583b92f 975 e88c02fdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583b934 980 61 popad
0x4583b935 981 e9b1fdffff jmp 395 (0x4583b6eb)
;;; <@234,#198> -------------------- Deferred stack-check --------------------
0x4583b93a 986 60 pushad ;; debug: position 3264
0x4583b93b 987 8b75fc mov esi,[ebp-0x4]
0x4583b93e 990 33c0 xor eax,eax
0x4583b940 992 bb003d4608 mov ebx,0x8463d00
0x4583b945 997 e87602fdff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583b94a 1002 61 popad
0x4583b94b 1003 e9fcfeffff jmp 748 (0x4583b84c)
;;; -------------------- Jump table --------------------
0x4583b950 1008 e8b5e6fcf6 call 0x3c80a00a ;; debug: position 20992
;; debug: deopt reason 'Smi'
;; deoptimization bailout 1
0x4583b955 1013 e8bae6fcf6 call 0x3c80a014 ;; debug: position 20992
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 2
0x4583b95a 1018 e8bfe6fcf6 call 0x3c80a01e ;; debug: position 20992
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 3
0x4583b95f 1023 e8cee6fcf6 call 0x3c80a032 ;; debug: position 68096
;; debug: deopt reason 'overflow'
;; deoptimization bailout 5
0x4583b964 1028 e8d3e6fcf6 call 0x3c80a03c ;; debug: position 76800
;; debug: deopt reason 'minus zero'
;; deoptimization bailout 6
0x4583b969 1033 e8e2e6fcf6 call 0x3c80a050 ;; debug: position 142336
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 8
0x4583b96e 1038 e8f1e6fcf6 call 0x3c80a064 ;; debug: position 185856
;; debug: deopt reason 'Smi'
;; deoptimization bailout 10
0x4583b973 1043 e8f6e6fcf6 call 0x3c80a06e ;; debug: position 185856
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 11
0x4583b978 1048 e8fbe6fcf6 call 0x3c80a078 ;; debug: position 183296
;; debug: deopt reason 'Smi'
;; deoptimization bailout 12
0x4583b97d 1053 e800e7fcf6 call 0x3c80a082 ;; debug: position 183296
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 13
0x4583b982 1058 e80fe7fcf6 call 0x3c80a096 ;; debug: position 181248
;; debug: deopt reason 'overflow'
;; deoptimization bailout 15
0x4583b987 1063 e814e7fcf6 call 0x3c80a0a0 ;; debug: position 185856
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 16
0x4583b98c 1068 e819e7fcf6 call 0x3c80a0aa ;; debug: position 183296
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 17
0x4583b991 1073 e828e7fcf6 call 0x3c80a0be ;; debug: position 210432
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 19
0x4583b996 1078 e82de7fcf6 call 0x3c80a0c8 ;; debug: position 226304
;; debug: deopt reason 'Smi'
;; deoptimization bailout 20
0x4583b99b 1083 e832e7fcf6 call 0x3c80a0d2 ;; debug: position 279552
;; debug: deopt reason 'Smi'
;; deoptimization bailout 21
0x4583b9a0 1088 e837e7fcf6 call 0x3c80a0dc ;; debug: position 219136
;; debug: deopt reason 'overflow'
;; deoptimization bailout 22
0x4583b9a5 1093 e83ce7fcf6 call 0x3c80a0e6 ;; debug: position 226304
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 23
0x4583b9aa 1098 e841e7fcf6 call 0x3c80a0f0 ;; debug: position 226304
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 24
0x4583b9af 1103 e846e7fcf6 call 0x3c80a0fa ;; debug: position 238080
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 25
0x4583b9b4 1108 e855e7fcf6 call 0x3c80a10e ;; debug: position 279552
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 27
0x4583b9b9 1113 e864e7fcf6 call 0x3c80a122 ;; debug: position 274944
;; debug: deopt reason 'overflow'
;; deoptimization bailout 29
0x4583b9be 1118 e869e7fcf6 call 0x3c80a12c ;; debug: position 279552
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 30
0x4583b9c3 1123 e86ee7fcf6 call 0x3c80a136 ;; debug: position 276992
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 31
0x4583b9c8 1128 e87de7fcf6 call 0x3c80a14a ;; debug: position 40960
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 33
0x4583b9cd 1133 e878e7fcf6 call 0x3c80a14a ;; debug: position 40960
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 33
0x4583b9d2 1138 e873e7fcf6 call 0x3c80a14a ;; debug: position 40960
;; debug: deopt reason 'NaN'
;; deoptimization bailout 33
0x4583b9d7 1143 e86ee7fcf6 call 0x3c80a14a ;; debug: position 40960
;; debug: deopt reason 'minus zero'
;; deoptimization bailout 33
0x4583b9dc 1148 e873e7fcf6 call 0x3c80a154 ;; debug: position 72192
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 34
0x4583b9e1 1153 e86ee7fcf6 call 0x3c80a154 ;; debug: position 72192
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 34
0x4583b9e6 1158 e869e7fcf6 call 0x3c80a154 ;; debug: position 72192
;; debug: deopt reason 'NaN'
;; deoptimization bailout 34
0x4583b9eb 1163 90 nop
0x4583b9ec 1164 90 nop
0x4583b9ed 1165 90 nop
0x4583b9ee 1166 90 nop
0x4583b9ef 1167 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 35)
index ast id argc pc
0 3 0 73
1 3 0 -1
2 3 0 -1
3 3 0 -1
4 75 0 174
5 75 0 -1
6 75 0 -1
7 96 0 254
8 96 0 -1
9 116 0 290
10 124 0 -1
11 124 0 -1
12 124 0 -1
13 124 0 -1
14 128 0 395
15 128 0 -1
16 128 0 -1
17 128 0 -1
18 184 0 -1
19 182 0 -1
20 182 0 -1
21 182 0 -1
22 182 0 -1
23 189 0 -1
24 189 0 -1
25 185 0 -1
26 210 0 676
27 218 0 -1
28 222 0 748
29 222 0 -1
30 222 0 -1
31 222 0 -1
32 183 0 -1
33 3 0 -1
34 75 0 -1
Safepoints (size = 92)
0x4583b5a9 73 000000000000000010000000 (sp -> fp) 0
0x4583b60e 174 000000000000000110000000 (sp -> fp) 4
0x4583b65b 251 000000000000000010000000 (sp -> fp) 7
0x4583b682 290 000000000001000010000000 (sp -> fp) 9
0x4583b804 676 000101110010000000000000 (sp -> fp) 26
0x4583b934 980 000000000001000010000000 | edx (sp -> fp) 14
0x4583b94a 1002 000101110010000000000000 | edx (sp -> fp) 28
RelocInfo (size = 1738)
0x4583b591 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583b594 position (2772)
0x4583b594 comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583b594 comment (;;; <@2,#1> context)
0x4583b597 comment (;;; <@3,#1> gap)
0x4583b59a comment (;;; <@10,#8> -------------------- B1 --------------------)
0x4583b59a comment (;;; <@11,#8> gap)
0x4583b59c comment (;;; <@12,#10> stack-check)
0x4583b5a5 code target (BUILTIN) (0x4582efc0)
0x4583b5a9 comment (;;; <@14,#10> lazy-bailout)
0x4583b5a9 comment (;;; <@15,#10> gap)
0x4583b5ac comment (;;; <@16,#11> load-context-slot)
0x4583b5ac position (2808)
0x4583b5af comment (;;; <@18,#13> check-non-smi)
0x4583b5af position (2813)
0x4583b5b8 comment (;;; <@20,#14> check-maps)
0x4583b5bb embedded object (0x3020dca1 <Map(elements=21)>)
0x4583b5c5 comment (;;; <@22,#15> load-named-field)
0x4583b5c8 comment (;;; <@24,#16> load-named-field)
0x4583b5cb comment (;;; <@26,#17> bounds-check)
0x4583b5d4 comment (;;; <@28,#18> load-keyed)
0x4583b5d7 comment (;;; <@30,#20> load-context-slot)
0x4583b5d7 position (2852)
0x4583b5da comment (;;; <@31,#20> gap)
0x4583b5df comment (;;; <@32,#336> tagged-to-i)
0x4583b5e7 comment (;;; <@33,#336> gap)
0x4583b5ec comment (;;; <@34,#22> mod-by-power-of-2-i)
0x4583b5ec position (2863)
0x4583b5fc comment (;;; <@35,#22> gap)
0x4583b604 comment (;;; <@36,#27> load-named-generic)
0x4583b604 position (2913)
0x4583b605 embedded object (0x26829681 <String[6]: length>)
0x4583b60a code target (LOAD_IC) (0x4582b8c0)
0x4583b60e comment (;;; <@38,#28> lazy-bailout)
0x4583b60e comment (;;; <@39,#28> gap)
0x4583b610 comment (;;; <@40,#339> tagged-to-i)
0x4583b618 comment (;;; <@42,#29> add-i)
0x4583b618 position (2905)
0x4583b621 comment (;;; <@44,#32> mod-by-power-of-2-i)
0x4583b621 position (2922)
0x4583b637 comment (;;; <@45,#32> gap)
0x4583b63a comment (;;; <@46,#37> push-argument)
0x4583b63a position (2955)
0x4583b63b embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x4583b63f comment (;;; <@48,#37> push-argument)
0x4583b644 comment (;;; <@50,#35> constant-t)
0x4583b644 position (2959)
0x4583b645 embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x4583b649 comment (;;; <@51,#35> gap)
0x4583b64c comment (;;; <@52,#38> call-new)
0x4583b64c position (2955)
0x4583b64d embedded object (0x268080b1 <undefined>)
0x4583b657 code target (js construct call) (STUB) (0x458257c0)
0x4583b65b comment (;;; <@53,#38> gap)
0x4583b65e comment (;;; <@54,#39> lazy-bailout)
0x4583b65e comment (;;; <@55,#39> gap)
0x4583b661 comment (;;; <@56,#43> load-context-slot)
0x4583b661 position (3050)
0x4583b664 comment (;;; <@58,#45> check-value)
0x4583b666 property cell
0x4583b670 comment (;;; <@60,#46> push-argument)
0x4583b671 embedded object (0x268080b1 <undefined>)
0x4583b675 comment (;;; <@62,#46> push-argument)
0x4583b676 comment (;;; <@64,#47> constant-t)
0x4583b678 property cell
0x4583b67c comment (;;; <@66,#48> call-js-function)
0x4583b682 comment (;;; <@68,#49> lazy-bailout)
0x4583b682 comment (;;; <@70,#83> check-non-smi)
0x4583b682 position (3135)
0x4583b68c comment (;;; <@71,#83> gap)
0x4583b68f comment (;;; <@72,#84> check-maps)
0x4583b692 embedded object (0x3020da91 <Map(elements=17)>)
0x4583b69c comment (;;; <@74,#85> load-named-field)
0x4583b69f comment (;;; <@76,#86> load-named-field)
0x4583b6a2 comment (;;; <@77,#86> gap)
0x4583b6a4 comment (;;; <@78,#344> smi-untag)
0x4583b6a6 comment (;;; <@79,#344> gap)
0x4583b6ac comment (;;; <@80,#89> check-non-smi)
0x4583b6ac position (3130)
0x4583b6b8 comment (;;; <@82,#90> check-maps)
0x4583b6bb embedded object (0x3020f509 <Map(elements=9)>)
0x4583b6c5 comment (;;; <@84,#92> check-maps)
0x4583b6c5 comment (;;; <@86,#94> check-maps)
0x4583b6c5 comment (;;; <@88,#95> load-named-field)
0x4583b6c8 comment (;;; <@90,#96> load-named-field)
0x4583b6cb comment (;;; <@92,#97> load-named-field)
0x4583b6ce comment (;;; <@93,#97> gap)
0x4583b6d1 comment (;;; <@94,#62> gap)
0x4583b6d1 position (3073)
0x4583b6d6 position (3097)
0x4583b6d6 comment (;;; <@96,#63> -------------------- B2 (loop header) --------------------)
0x4583b6d6 position (3099)
0x4583b6d6 comment (;;; <@99,#66> compare-numeric-and-branch)
0x4583b6df comment (;;; <@100,#67> -------------------- B3 (unreachable/replaced) --------------------)
0x4583b6df position (3073)
0x4583b6df comment (;;; <@104,#73> -------------------- B4 --------------------)
0x4583b6df comment (;;; <@106,#75> stack-check)
0x4583b6eb comment (;;; <@107,#75> gap)
0x4583b6ed comment (;;; <@108,#79> add-i)
0x4583b6ed position (3126)
0x4583b6f6 comment (;;; <@109,#79> gap)
0x4583b6f9 comment (;;; <@110,#87> bounds-check)
0x4583b6f9 position (3135)
0x4583b701 comment (;;; <@112,#88> load-keyed)
0x4583b706 comment (;;; <@114,#98> bounds-check)
0x4583b706 position (3130)
0x4583b70e comment (;;; <@115,#98> gap)
0x4583b713 comment (;;; <@116,#99> store-keyed)
0x4583b718 comment (;;; <@118,#102> add-i)
0x4583b718 position (3106)
0x4583b71b comment (;;; <@120,#105> gap)
0x4583b71b position (3073)
0x4583b721 comment (;;; <@121,#105> goto)
0x4583b723 comment (;;; <@122,#70> -------------------- B5 (unreachable/replaced) --------------------)
0x4583b723 comment (;;; <@126,#107> -------------------- B6 (unreachable/replaced) --------------------)
0x4583b723 position (3183)
0x4583b723 comment (;;; <@130,#112> -------------------- B7 (OSR entry) --------------------)
0x4583b758 comment (;;; <@152,#124> context)
0x4583b75b comment (;;; <@153,#124> gap)
0x4583b75e comment (;;; <@154,#345> check-smi)
0x4583b767 comment (;;; <@156,#126> gap)
0x4583b777 comment (;;; <@157,#126> goto)
0x4583b77c comment (;;; <@158,#109> -------------------- B8 --------------------)
0x4583b77c comment (;;; <@159,#109> gap)
0x4583b77f comment (;;; <@160,#341> smi-tag)
0x4583b781 comment (;;; <@162,#111> gap)
0x4583b78f comment (;;; <@164,#145> -------------------- B9 --------------------)
0x4583b79e comment (;;; <@166,#153> check-non-smi)
0x4583b79e position (3214)
0x4583b7a7 comment (;;; <@168,#205> check-non-smi)
0x4583b7a7 position (3318)
0x4583b7af comment (;;; <@170,#214> check-maps)
0x4583b7af position (3313)
0x4583b7af comment (;;; <@172,#216> check-maps)
0x4583b7af position (3190)
0x4583b7af comment (;;; <@176,#148> -------------------- B10 (loop header) --------------------)
0x4583b7b2 comment (;;; <@177,#148> gap)
0x4583b7b4 comment (;;; <@178,#151> add-i)
0x4583b7b4 position (3200)
0x4583b7bf comment (;;; <@180,#154> check-maps)
0x4583b7bf position (3214)
0x4583b7c2 embedded object (0x3020f509 <Map(elements=9)>)
0x4583b7cc comment (;;; <@182,#155> load-named-field)
0x4583b7cf comment (;;; <@184,#346> check-smi)
0x4583b7d8 position (3205)
0x4583b7d8 comment (;;; <@187,#156> compare-numeric-and-branch)
0x4583b7e0 comment (;;; <@188,#157> -------------------- B11 (unreachable/replaced) --------------------)
0x4583b7e0 position (3183)
0x4583b7e0 comment (;;; <@192,#163> -------------------- B12 --------------------)
0x4583b7e0 comment (;;; <@194,#166> load-context-slot)
0x4583b7e0 position (3237)
0x4583b7e3 comment (;;; <@196,#168> check-value)
0x4583b7e5 property cell
0x4583b7ef comment (;;; <@198,#169> push-argument)
0x4583b7f0 embedded object (0x268080b1 <undefined>)
0x4583b7f4 comment (;;; <@200,#169> push-argument)
0x4583b7f7 comment (;;; <@202,#170> constant-t)
0x4583b7f9 property cell
0x4583b7fd comment (;;; <@203,#170> gap)
0x4583b7fe comment (;;; <@204,#171> call-js-function)
0x4583b804 comment (;;; <@206,#172> lazy-bailout)
0x4583b804 comment (;;; <@207,#172> gap)
0x4583b807 comment (;;; <@208,#206> check-maps)
0x4583b807 position (3318)
0x4583b80a embedded object (0x3020da91 <Map(elements=17)>)
0x4583b814 comment (;;; <@210,#207> load-named-field)
0x4583b817 comment (;;; <@212,#208> load-named-field)
0x4583b81a comment (;;; <@213,#208> gap)
0x4583b81d comment (;;; <@214,#212> check-maps)
0x4583b81d position (3313)
0x4583b81d comment (;;; <@215,#212> gap)
0x4583b820 comment (;;; <@216,#217> load-named-field)
0x4583b823 comment (;;; <@218,#218> load-named-field)
0x4583b826 comment (;;; <@220,#219> load-named-field)
0x4583b829 comment (;;; <@221,#219> gap)
0x4583b82c comment (;;; <@222,#185> gap)
0x4583b82c position (3264)
0x4583b831 position (3280)
0x4583b831 comment (;;; <@224,#186> -------------------- B13 (loop header) --------------------)
0x4583b834 position (3282)
0x4583b834 comment (;;; <@227,#189> compare-numeric-and-branch)
0x4583b840 comment (;;; <@228,#190> -------------------- B14 (unreachable/replaced) --------------------)
0x4583b840 position (3264)
0x4583b840 comment (;;; <@232,#196> -------------------- B15 --------------------)
0x4583b840 comment (;;; <@234,#198> stack-check)
0x4583b84c comment (;;; <@235,#198> gap)
0x4583b84e comment (;;; <@236,#201> add-i)
0x4583b84e position (3309)
0x4583b857 comment (;;; <@238,#209> bounds-check)
0x4583b857 position (3318)
0x4583b85f comment (;;; <@239,#209> gap)
0x4583b861 comment (;;; <@240,#210> load-keyed)
0x4583b868 comment (;;; <@242,#220> bounds-check)
0x4583b868 position (3313)
0x4583b870 comment (;;; <@243,#220> gap)
0x4583b874 comment (;;; <@244,#221> store-keyed)
0x4583b879 comment (;;; <@245,#221> gap)
0x4583b87c comment (;;; <@246,#224> add-i)
0x4583b87c position (3289)
0x4583b87f comment (;;; <@248,#227> gap)
0x4583b87f position (3264)
0x4583b886 comment (;;; <@249,#227> goto)
0x4583b888 comment (;;; <@250,#193> -------------------- B16 (unreachable/replaced) --------------------)
0x4583b888 position (3183)
0x4583b888 comment (;;; <@254,#228> -------------------- B17 --------------------)
0x4583b888 comment (;;; <@256,#230> gap)
0x4583b893 comment (;;; <@257,#230> goto)
0x4583b898 comment (;;; <@258,#160> -------------------- B18 (unreachable/replaced) --------------------)
0x4583b898 position (3383)
0x4583b898 comment (;;; <@262,#231> -------------------- B19 --------------------)
0x4583b898 position (3393)
0x4583b898 comment (;;; <@265,#234> deoptimize)
0x4583b898 position (317952)
0x4583b898 deopt reason (Insufficient type feedback for combined type of binary operation)
0x4583b899 runtime entry
0x4583b89d comment (;;; <@266,#235> -------------------- B20 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@276,#242> -------------------- B21 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@280,#303> -------------------- B22 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@284,#239> -------------------- B23 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@288,#245> -------------------- B24 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@302,#264> -------------------- B25 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@306,#268> -------------------- B26 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@316,#272> -------------------- B27 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@320,#278> -------------------- B28 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@332,#288> -------------------- B29 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@342,#292> -------------------- B30 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@366,#275> -------------------- B31 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@370,#300> -------------------- B32 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@374,#315> -------------------- B33 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@384,#320> -------------------- B34 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@392,#324> -------------------- B35 (unreachable/replaced) --------------------)
0x4583b89d comment (;;; <@396,#326> -------------------- B36 (unreachable/replaced) --------------------)
0x4583b89d position (2852)
0x4583b89d comment (;;; <@32,#336> -------------------- Deferred tagged-to-i --------------------)
0x4583b8a7 embedded object (0x3020820d <Map(elements=3)>)
0x4583b8eb position (2913)
0x4583b8eb comment (;;; <@40,#339> -------------------- Deferred tagged-to-i --------------------)
0x4583b8f5 embedded object (0x3020820d <Map(elements=3)>)
0x4583b924 position (3073)
0x4583b924 comment (;;; <@106,#75> -------------------- Deferred stack-check --------------------)
0x4583b930 code target (STUB) (0x4580bbc0)
0x4583b93a position (3264)
0x4583b93a comment (;;; <@234,#198> -------------------- Deferred stack-check --------------------)
0x4583b946 code target (STUB) (0x4580bbc0)
0x4583b950 comment (;;; -------------------- Jump table --------------------)
0x4583b950 position (20992)
0x4583b950 deopt reason (Smi)
0x4583b951 runtime entry (deoptimization bailout 1)
0x4583b955 position (20992)
0x4583b955 deopt reason (wrong map)
0x4583b956 runtime entry (deoptimization bailout 2)
0x4583b95a position (20992)
0x4583b95a deopt reason (out of bounds)
0x4583b95b runtime entry (deoptimization bailout 3)
0x4583b95f position (68096)
0x4583b95f deopt reason (overflow)
0x4583b960 runtime entry (deoptimization bailout 5)
0x4583b964 position (76800)
0x4583b964 deopt reason (minus zero)
0x4583b965 runtime entry (deoptimization bailout 6)
0x4583b969 position (142336)
0x4583b969 deopt reason (value mismatch)
0x4583b96a runtime entry (deoptimization bailout 8)
0x4583b96e position (185856)
0x4583b96e deopt reason (Smi)
0x4583b96f runtime entry (deoptimization bailout 10)
0x4583b973 position (185856)
0x4583b973 deopt reason (wrong map)
0x4583b974 runtime entry (deoptimization bailout 11)
0x4583b978 position (183296)
0x4583b978 deopt reason (Smi)
0x4583b979 runtime entry (deoptimization bailout 12)
0x4583b97d position (183296)
0x4583b97d deopt reason (wrong map)
0x4583b97e runtime entry (deoptimization bailout 13)
0x4583b982 position (181248)
0x4583b982 deopt reason (overflow)
0x4583b983 runtime entry (deoptimization bailout 15)
0x4583b987 position (185856)
0x4583b987 deopt reason (out of bounds)
0x4583b988 runtime entry (deoptimization bailout 16)
0x4583b98c position (183296)
0x4583b98c deopt reason (out of bounds)
0x4583b98d runtime entry (deoptimization bailout 17)
0x4583b991 position (210432)
0x4583b991 deopt reason (not a Smi)
0x4583b992 runtime entry (deoptimization bailout 19)
0x4583b996 position (226304)
0x4583b996 deopt reason (Smi)
0x4583b997 runtime entry (deoptimization bailout 20)
0x4583b99b position (279552)
0x4583b99b deopt reason (Smi)
0x4583b99c runtime entry (deoptimization bailout 21)
0x4583b9a0 position (219136)
0x4583b9a0 deopt reason (overflow)
0x4583b9a1 runtime entry (deoptimization bailout 22)
0x4583b9a5 position (226304)
0x4583b9a5 deopt reason (wrong map)
0x4583b9a6 runtime entry (deoptimization bailout 23)
0x4583b9aa position (226304)
0x4583b9aa deopt reason (not a Smi)
0x4583b9ab runtime entry (deoptimization bailout 24)
0x4583b9af position (238080)
0x4583b9af deopt reason (value mismatch)
0x4583b9b0 runtime entry (deoptimization bailout 25)
0x4583b9b4 position (279552)
0x4583b9b4 deopt reason (wrong map)
0x4583b9b5 runtime entry (deoptimization bailout 27)
0x4583b9b9 position (274944)
0x4583b9b9 deopt reason (overflow)
0x4583b9ba runtime entry (deoptimization bailout 29)
0x4583b9be position (279552)
0x4583b9be deopt reason (out of bounds)
0x4583b9bf runtime entry (deoptimization bailout 30)
0x4583b9c3 position (276992)
0x4583b9c3 deopt reason (out of bounds)
0x4583b9c4 runtime entry (deoptimization bailout 31)
0x4583b9c8 position (40960)
0x4583b9c8 deopt reason (not a heap number)
0x4583b9c9 runtime entry (deoptimization bailout 33)
0x4583b9cd position (40960)
0x4583b9cd deopt reason (lost precision)
0x4583b9ce runtime entry (deoptimization bailout 33)
0x4583b9d2 position (40960)
0x4583b9d2 deopt reason (NaN)
0x4583b9d3 runtime entry (deoptimization bailout 33)
0x4583b9d7 position (40960)
0x4583b9d7 deopt reason (minus zero)
0x4583b9d8 runtime entry (deoptimization bailout 33)
0x4583b9dc position (72192)
0x4583b9dc deopt reason (not a heap number)
0x4583b9dd runtime entry (deoptimization bailout 34)
0x4583b9e1 position (72192)
0x4583b9e1 deopt reason (lost precision)
0x4583b9e2 runtime entry (deoptimization bailout 34)
0x4583b9e6 position (72192)
0x4583b9e6 deopt reason (NaN)
0x4583b9e7 runtime entry (deoptimization bailout 34)
0x4583b9f0 comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (ToPositiveInteger) id{6,0} ---
(a,b){
var c=(%_IsSmi(%IS_VAR(a))?a:%NumberToIntegerMapMinusZero(ToNumber(a)));
if(c<0)throw MakeRangeError(b);
return c;
}
--- END ---
--- Raw source ---
(a,b){
var c=(%_IsSmi(%IS_VAR(a))?a:%NumberToIntegerMapMinusZero(ToNumber(a)));
if(c<0)throw MakeRangeError(b);
return c;
}
--- Optimized code ---
optimization_id = 6
source_position = 12844
kind = OPTIMIZED_FUNCTION
name = ToPositiveInteger
stack_slots = 2
Instructions (size = 262)
0x4583bc00 0 55 push ebp
0x4583bc01 1 89e5 mov ebp,esp
0x4583bc03 3 56 push esi
0x4583bc04 4 57 push edi
0x4583bc05 5 83ec08 sub esp,0x8
;;; Store dynamic frame alignment tag for spilled doubles
0x4583bc08 8 c745f400000000 mov [ebp-0xc],0x0
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583bc0f 15 8b45fc mov eax,[ebp-0x4] ;; debug: position 12844
;;; <@3,#1> gap
0x4583bc12 18 8945f0 mov [ebp-0x10],eax
;;; <@12,#9> -------------------- B1 --------------------
;;; <@13,#9> gap
0x4583bc15 21 89c6 mov esi,eax
;;; <@14,#11> stack-check
0x4583bc17 23 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583bc1d 29 7305 jnc 36 (0x4583bc24)
0x4583bc1f 31 e89c33ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@16,#11> lazy-bailout
;;; <@18,#13> gap
0x4583bc24 36 8b450c mov eax,[ebp+0xc] ;; debug: position 12858
;;; <@19,#13> is-smi-and-branch
0x4583bc27 39 a801 test al,0x1
0x4583bc29 41 0f8437000000 jz 102 (0x4583bc66)
;;; <@20,#17> -------------------- B2 (unreachable/replaced) --------------------
;;; <@24,#20> -------------------- B3 --------------------
;;; <@26,#24> push-argument
0x4583bc2f 47 68a9ebd028 push 0x28d0eba9 ;; debug: position 12909
;; object: 0x28d0eba9 <JS Global Object>
;;; <@28,#24> push-argument
0x4583bc34 52 50 push eax
;;; <@30,#21> constant-t
0x4583bc35 53 bfd52a8826 mov edi,0x26882ad5 ;; object: 0x26882ad5 <JS Function ToNumber (SharedFunctionInfo 0x26840995)>
;;; <@32,#26> call-js-function
0x4583bc3a 58 8b7717 mov esi,[edi+0x17]
0x4583bc3d 61 ff570b call [edi+0xb]
;;; <@34,#27> lazy-bailout
;;; <@36,#28> push-argument
0x4583bc40 64 50 push eax ;; debug: position 12880
;;; <@37,#28> gap
0x4583bc41 65 8b75f0 mov esi,[ebp-0x10]
;;; <@38,#29> call-runtime
0x4583bc44 68 90 nop
0x4583bc45 69 b801000000 mov eax,0x1
0x4583bc4a 74 bb90dd4608 mov ebx,0x846dd90
0x4583bc4f 79 e8cc00fdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@40,#30> lazy-bailout
;;; <@41,#30> gap
0x4583bc54 84 89c1 mov ecx,eax
;;; <@42,#70> check-smi
0x4583bc56 86 f6c101 test_b cl,0x1 ;; debug: position 12856
0x4583bc59 89 0f855e000000 jnz 189 (0x4583bcbd)
;;; <@44,#35> gap
0x4583bc5f 95 89c8 mov eax,ecx ;; debug: position 12858
;;; <@45,#35> goto
0x4583bc61 97 e90b000000 jmp 113 (0x4583bc71)
;;; <@46,#14> -------------------- B4 (unreachable/replaced) --------------------
;;; <@50,#31> -------------------- B5 --------------------
;;; <@51,#31> gap
0x4583bc66 102 8b450c mov eax,[ebp+0xc]
;;; <@52,#69> check-smi
0x4583bc69 105 a801 test al,0x1 ;; debug: position 12856
0x4583bc6b 107 0f8551000000 jnz 194 (0x4583bcc2)
;;; <@56,#37> -------------------- B6 --------------------
;;; <@59,#41> compare-numeric-and-branch
0x4583bc71 113 83f800 cmp eax,0x0 ;; debug: position 12856
;; debug: position 12928
0x4583bc74 116 0f8c06000000 jl 128 (0x4583bc80)
;;; <@60,#45> -------------------- B7 (unreachable/replaced) --------------------
;;; <@64,#64> -------------------- B8 --------------------
;;; <@66,#71> dummy-use
;;; <@68,#67> return
0x4583bc7a 122 89ec mov esp,ebp ;; debug: position 12963
;; debug: position 12956
0x4583bc7c 124 5d pop ebp
0x4583bc7d 125 c20c00 ret 0xc
;;; <@70,#42> -------------------- B9 (unreachable/replaced) --------------------
;;; <@74,#48> -------------------- B10 --------------------
;;; <@76,#52> push-argument
0x4583bc80 128 68a9ebd028 push 0x28d0eba9 ;; debug: position 12937
;; object: 0x28d0eba9 <JS Global Object>
;;; <@78,#52> push-argument
0x4583bc85 133 ff7508 push [ebp+0x8]
;;; <@80,#49> constant-t
0x4583bc88 136 bf4d788826 mov edi,0x2688784d ;; object: 0x2688784d <JS Function MakeRangeError (SharedFunctionInfo 0x2684a919)>
;;; <@82,#55> load-named-field
0x4583bc8d 141 8b7717 mov esi,[edi+0x17]
;;; <@84,#49> constant-t
0x4583bc90 144 bf4d788826 mov edi,0x2688784d ;; object: 0x2688784d <JS Function MakeRangeError (SharedFunctionInfo 0x2684a919)>
;;; <@86,#73> constant-i
0x4583bc95 149 b801000000 mov eax,0x1
;;; <@88,#72> constant-i
0x4583bc9a 154 bb02000000 mov ebx,0x2
;;; <@90,#58> call-with-descriptor
0x4583bc9f 159 e8dceefcff call ArgumentsAdaptorTrampoline (0x4580ab80) ;; code: BUILTIN
;;; <@92,#59> lazy-bailout
;;; <@94,#60> push-argument
0x4583bca4 164 50 push eax ;; debug: position 12931
;;; <@95,#60> gap
0x4583bca5 165 8b75f0 mov esi,[ebp-0x10]
;;; <@96,#61> call-runtime
0x4583bca8 168 90 nop
0x4583bca9 169 b801000000 mov eax,0x1
0x4583bcae 174 bb30374608 mov ebx,0x8463730
0x4583bcb3 179 e86800fdff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@98,#62> lazy-bailout
0x4583bcb8 184 0f1f440000 nop
;;; -------------------- Jump table --------------------
0x4583bcbd 189 e85ce3fcf6 call 0x3c80a01e ;; debug: position 6144
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 3
0x4583bcc2 194 e861e3fcf6 call 0x3c80a028 ;; debug: position 6144
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 4
0x4583bcc7 199 90 nop
0x4583bcc8 200 90 nop
0x4583bcc9 201 90 nop
0x4583bcca 202 90 nop
0x4583bccb 203 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 7)
index ast id argc pc
0 3 0 36
1 29 0 64
2 26 0 84
3 15 0 -1
4 15 0 -1
5 50 0 164
6 48 0 184
Safepoints (size = 58)
0x4583bc24 36 10 (sp -> fp) 0
0x4583bc40 64 10 (sp -> fp) 1
0x4583bc54 84 10 (sp -> fp) 2
0x4583bca4 164 10 (sp -> fp) 5
0x4583bcb8 184 10 (sp -> fp) 6
RelocInfo (size = 436)
0x4583bc08 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583bc0f position (12844)
0x4583bc0f comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583bc0f comment (;;; <@2,#1> context)
0x4583bc12 comment (;;; <@3,#1> gap)
0x4583bc15 comment (;;; <@12,#9> -------------------- B1 --------------------)
0x4583bc15 comment (;;; <@13,#9> gap)
0x4583bc17 comment (;;; <@14,#11> stack-check)
0x4583bc20 code target (BUILTIN) (0x4582efc0)
0x4583bc24 comment (;;; <@16,#11> lazy-bailout)
0x4583bc24 comment (;;; <@18,#13> gap)
0x4583bc24 position (12858)
0x4583bc27 comment (;;; <@19,#13> is-smi-and-branch)
0x4583bc2f comment (;;; <@20,#17> -------------------- B2 (unreachable/replaced) --------------------)
0x4583bc2f position (12909)
0x4583bc2f comment (;;; <@24,#20> -------------------- B3 --------------------)
0x4583bc2f comment (;;; <@26,#24> push-argument)
0x4583bc30 embedded object (0x28d0eba9 <JS Global Object>)
0x4583bc34 comment (;;; <@28,#24> push-argument)
0x4583bc35 comment (;;; <@30,#21> constant-t)
0x4583bc36 embedded object (0x26882ad5 <JS Function ToNumber (SharedFunctionInfo 0x26840995)>)
0x4583bc3a comment (;;; <@32,#26> call-js-function)
0x4583bc40 comment (;;; <@34,#27> lazy-bailout)
0x4583bc40 comment (;;; <@36,#28> push-argument)
0x4583bc40 position (12880)
0x4583bc41 comment (;;; <@37,#28> gap)
0x4583bc44 comment (;;; <@38,#29> call-runtime)
0x4583bc50 code target (STUB) (0x4580bd20)
0x4583bc54 comment (;;; <@40,#30> lazy-bailout)
0x4583bc54 comment (;;; <@41,#30> gap)
0x4583bc56 comment (;;; <@42,#70> check-smi)
0x4583bc56 position (12856)
0x4583bc5f comment (;;; <@44,#35> gap)
0x4583bc5f position (12858)
0x4583bc61 comment (;;; <@45,#35> goto)
0x4583bc66 comment (;;; <@46,#14> -------------------- B4 (unreachable/replaced) --------------------)
0x4583bc66 comment (;;; <@50,#31> -------------------- B5 --------------------)
0x4583bc66 comment (;;; <@51,#31> gap)
0x4583bc69 comment (;;; <@52,#69> check-smi)
0x4583bc69 position (12856)
0x4583bc71 position (12856)
0x4583bc71 comment (;;; <@56,#37> -------------------- B6 --------------------)
0x4583bc71 position (12928)
0x4583bc71 comment (;;; <@59,#41> compare-numeric-and-branch)
0x4583bc7a comment (;;; <@60,#45> -------------------- B7 (unreachable/replaced) --------------------)
0x4583bc7a position (12963)
0x4583bc7a comment (;;; <@64,#64> -------------------- B8 --------------------)
0x4583bc7a comment (;;; <@66,#71> dummy-use)
0x4583bc7a position (12956)
0x4583bc7a comment (;;; <@68,#67> return)
0x4583bc80 comment (;;; <@70,#42> -------------------- B9 (unreachable/replaced) --------------------)
0x4583bc80 position (12937)
0x4583bc80 comment (;;; <@74,#48> -------------------- B10 --------------------)
0x4583bc80 comment (;;; <@76,#52> push-argument)
0x4583bc81 embedded object (0x28d0eba9 <JS Global Object>)
0x4583bc85 comment (;;; <@78,#52> push-argument)
0x4583bc88 comment (;;; <@80,#49> constant-t)
0x4583bc89 embedded object (0x2688784d <JS Function MakeRangeError (SharedFunctionInfo 0x2684a919)>)
0x4583bc8d comment (;;; <@82,#55> load-named-field)
0x4583bc90 comment (;;; <@84,#49> constant-t)
0x4583bc91 embedded object (0x2688784d <JS Function MakeRangeError (SharedFunctionInfo 0x2684a919)>)
0x4583bc95 comment (;;; <@86,#73> constant-i)
0x4583bc9a comment (;;; <@88,#72> constant-i)
0x4583bc9f comment (;;; <@90,#58> call-with-descriptor)
0x4583bca0 code target (BUILTIN) (0x4580ab80)
0x4583bca4 comment (;;; <@92,#59> lazy-bailout)
0x4583bca4 comment (;;; <@94,#60> push-argument)
0x4583bca4 position (12931)
0x4583bca5 comment (;;; <@95,#60> gap)
0x4583bca8 comment (;;; <@96,#61> call-runtime)
0x4583bcb4 code target (STUB) (0x4580bd20)
0x4583bcb8 comment (;;; <@98,#62> lazy-bailout)
0x4583bcbd comment (;;; -------------------- Jump table --------------------)
0x4583bcbd position (6144)
0x4583bcbd deopt reason (not a Smi)
0x4583bcbe runtime entry (deoptimization bailout 3)
0x4583bcc2 position (6144)
0x4583bcc2 deopt reason (not a Smi)
0x4583bcc3 runtime entry (deoptimization bailout 4)
0x4583bccc comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (Uint32Array) id{7,0} ---
(a,b,c){
if(%_IsConstructCall()){
if((%_ClassOf(a)==='ArrayBuffer')){
Uint32ArrayConstructByArrayBuffer(this,a,b,c);
}else if((typeof(a)==='number')||(typeof(a)==='string')||
(typeof(a)==='boolean')||(a===(void 0))){
Uint32ArrayConstructByLength(this,a);
}else{
Uint32ArrayConstructByArrayLike(this,a);
}
}else{
throw MakeTypeError("constructor_not_function",["Uint32Array"])
}
}
--- END ---
--- Raw source ---
(a,b,c){
if(%_IsConstructCall()){
if((%_ClassOf(a)==='ArrayBuffer')){
Uint32ArrayConstructByArrayBuffer(this,a,b,c);
}else if((typeof(a)==='number')||(typeof(a)==='string')||
(typeof(a)==='boolean')||(a===(void 0))){
Uint32ArrayConstructByLength(this,a);
}else{
Uint32ArrayConstructByArrayLike(this,a);
}
}else{
throw MakeTypeError("constructor_not_function",["Uint32Array"])
}
}
--- Optimized code ---
optimization_id = 7
source_position = 14329
kind = OPTIMIZED_FUNCTION
name = Uint32Array
stack_slots = 2
Instructions (size = 562)
0x4583c040 0 55 push ebp
0x4583c041 1 89e5 mov ebp,esp
0x4583c043 3 56 push esi
0x4583c044 4 57 push edi
0x4583c045 5 83ec08 sub esp,0x8
;;; Store dynamic frame alignment tag for spilled doubles
0x4583c048 8 c745f400000000 mov [ebp-0xc],0x0
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583c04f 15 8b45fc mov eax,[ebp-0x4] ;; debug: position 14329
;;; <@3,#1> gap
0x4583c052 18 8945f0 mov [ebp-0x10],eax
;;; <@14,#10> -------------------- B1 --------------------
;;; <@15,#10> gap
0x4583c055 21 89c6 mov esi,eax
;;; <@16,#12> stack-check
0x4583c057 23 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583c05d 29 7305 jnc 36 (0x4583c064)
0x4583c05f 31 e85c2fffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@18,#12> lazy-bailout
;;; <@21,#13> is-construct-call-and-branch
0x4583c064 36 8b4500 mov eax,[ebp+0x0] ;; debug: position 14341
0x4583c067 39 8378fc14 cmp [eax-0x4],0x14
0x4583c06b 43 7502 jnz 47 (0x4583c06f)
0x4583c06d 45 8b00 mov eax,[eax]
0x4583c06f 47 8378f812 cmp [eax-0x8],0x12
0x4583c073 51 0f8473000000 jz 172 (0x4583c0ec)
;;; <@22,#17> -------------------- B2 (unreachable/replaced) --------------------
;;; <@26,#91> -------------------- B3 --------------------
;;; <@28,#95> allocate
0x4583c079 57 8b0d04a8b608 mov ecx,[0x8b6a804] ;; debug: position 14647
;; debug: position 14688
0x4583c07f 63 89c8 mov eax,ecx
0x4583c081 65 83c010 add eax,0x10
0x4583c084 68 0f826f010000 jc 441 (0x4583c1f9)
0x4583c08a 74 3b0508a8b608 cmp eax,[0x8b6a808]
0x4583c090 80 0f8763010000 ja 441 (0x4583c1f9)
0x4583c096 86 890504a8b608 mov [0x8b6a804],eax
0x4583c09c 92 41 inc ecx
;;; <@30,#97> store-named-field
0x4583c09d 93 c7410799808026 mov [ecx+0x7],0x26808099 ;; object: 0x26808099 <FixedArray[0]>
;;; <@32,#99> store-named-field
0x4583c0a4 100 c741ff01c82030 mov [ecx-0x1],0x3020c801 ;; object: 0x3020c801 <Map(elements=2)>
;;; <@34,#101> store-named-field
0x4583c0ab 107 c7410399808026 mov [ecx+0x3],0x26808099 ;; object: 0x26808099 <FixedArray[0]>
;;; <@36,#103> store-named-field
0x4583c0b2 114 c7410b02000000 mov [ecx+0xb],0x2
;;; <@38,#104> constant-t
0x4583c0b9 121 8b056482c039 mov eax,[0x39c08264] ;; property cell
;;; <@40,#105> store-named-field
0x4583c0bf 127 894107 mov [ecx+0x7],eax
;;; <@42,#109> push-argument
0x4583c0c2 130 68a9ebd028 push 0x28d0eba9 ;; debug: position 14647
;; object: 0x28d0eba9 <JS Global Object>
;;; <@44,#109> push-argument
0x4583c0c7 135 682d5c8426 push 0x26845c2d ;; object: 0x26845c2d <String[24]: constructor_not_function>
;;; <@46,#109> push-argument
0x4583c0cc 140 51 push ecx
;;; <@48,#92> constant-t
0x4583c0cd 141 bfd1558826 mov edi,0x268855d1 ;; object: 0x268855d1 <JS Function MakeTypeError (SharedFunctionInfo 0x26844a81)>
;;; <@50,#111> call-js-function
0x4583c0d2 146 8b7717 mov esi,[edi+0x17]
0x4583c0d5 149 ff570b call [edi+0xb]
;;; <@52,#112> lazy-bailout
;;; <@54,#113> push-argument
0x4583c0d8 152 50 push eax ;; debug: position 14641
;;; <@55,#113> gap
0x4583c0d9 153 8b75f0 mov esi,[ebp-0x10]
;;; <@56,#114> call-runtime
0x4583c0dc 156 90 nop
0x4583c0dd 157 b801000000 mov eax,0x1
0x4583c0e2 162 bb30374608 mov ebx,0x8463730
0x4583c0e7 167 e834fcfcff call 0x4580bd20 ;; code: STUB, CEntryStub, minor: 0
;;; <@58,#115> lazy-bailout
;;; <@60,#14> -------------------- B4 (unreachable/replaced) --------------------
;;; <@64,#21> -------------------- B5 --------------------
;;; <@66,#22> gap
0x4583c0ec 172 8b4510 mov eax,[ebp+0x10] ;; debug: position 14379
;;; <@67,#22> class-of-test-and-branch
0x4583c0ef 175 a801 test al,0x1
0x4583c0f1 177 0f8450000000 jz 263 (0x4583c147)
0x4583c0f7 183 8b50ff mov edx,[eax-0x1]
0x4583c0fa 186 0fb64a07 movzx_b ecx,[edx+0x7]
0x4583c0fe 190 81e9ba000000 sub ecx,0xba
0x4583c104 196 83f915 cmp ecx,0x15
0x4583c107 199 0f873a000000 ja 263 (0x4583c147)
0x4583c10d 205 8b5213 mov edx,[edx+0x13]
0x4583c110 208 f6c201 test_b dl,0x1
0x4583c113 211 0f8412000000 jz 235 (0x4583c12b)
0x4583c119 217 8b4aff mov ecx,[edx-0x1]
0x4583c11c 220 80790781 cmpb [ecx+0x7],0x81
0x4583c120 224 0f8505000000 jnz 235 (0x4583c12b)
0x4583c126 230 8b5213 mov edx,[edx+0x13]
0x4583c129 233 ebe5 jmp 208 (0x4583c110)
0x4583c12b 235 807907d0 cmpb [ecx+0x7],0xd0
0x4583c12f 239 0f8512000000 jnz 263 (0x4583c147)
0x4583c135 245 8b5213 mov edx,[edx+0x13]
0x4583c138 248 8b5217 mov edx,[edx+0x17]
0x4583c13b 251 81fa458b8326 cmp edx,0x26838b45 ;; object: 0x26838b45 <String[11]: ArrayBuffer>
0x4583c141 257 0f848b000000 jz 402 (0x4583c1d2)
;;; <@68,#26> -------------------- B6 (unreachable/replaced) --------------------
;;; <@72,#36> -------------------- B7 --------------------
;;; <@74,#37> gap
0x4583c147 263 89c1 mov ecx,eax ;; debug: position 14465
;;; <@75,#37> typeof-is-and-branch
0x4583c149 265 f6c101 test_b cl,0x1
0x4583c14c 268 0f8465000000 jz 375 (0x4583c1b7)
0x4583c152 274 8179ff0d822030 cmp [ecx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583c159 281 0f8458000000 jz 375 (0x4583c1b7)
;;; <@76,#41> -------------------- B8 (unreachable/replaced) --------------------
;;; <@80,#44> -------------------- B9 --------------------
;;; <@82,#45> gap
0x4583c15f 287 89c1 mov ecx,eax ;; debug: position 14489
;;; <@83,#45> typeof-is-and-branch
0x4583c161 289 f6c101 test_b cl,0x1
0x4583c164 292 7413 jz 313 (0x4583c179)
0x4583c166 294 8b49ff mov ecx,[ecx-0x1]
0x4583c169 297 80790780 cmpb [ecx+0x7],0x80
0x4583c16d 301 730a jnc 313 (0x4583c179)
0x4583c16f 303 f6410810 test_b [ecx+0x8],0x10
0x4583c173 307 0f843e000000 jz 375 (0x4583c1b7)
;;; <@84,#49> -------------------- B10 (unreachable/replaced) --------------------
;;; <@88,#52> -------------------- B11 --------------------
;;; <@90,#53> gap
0x4583c179 313 89c1 mov ecx,eax ;; debug: position 14514
;;; <@91,#53> typeof-is-and-branch
0x4583c17b 315 81f905818026 cmp ecx,0x26808105 ;; object: 0x26808105 <true>
0x4583c181 321 0f8430000000 jz 375 (0x4583c1b7)
0x4583c187 327 81f925818026 cmp ecx,0x26808125 ;; object: 0x26808125 <false>
0x4583c18d 333 0f8424000000 jz 375 (0x4583c1b7)
;;; <@92,#57> -------------------- B12 (unreachable/replaced) --------------------
;;; <@96,#60> -------------------- B13 --------------------
;;; <@99,#61> cmp-object-eq-and-branch
0x4583c193 339 3db1808026 cmp eax,0x268080b1 ;; debug: position 14531
;; object: 0x268080b1 <undefined>
0x4583c198 344 0f8419000000 jz 375 (0x4583c1b7)
;;; <@100,#65> -------------------- B14 (unreachable/replaced) --------------------
;;; <@104,#75> -------------------- B15 --------------------
;;; <@106,#78> push-argument
0x4583c19e 350 68b1808026 push 0x268080b1 ;; debug: position 14591
;; object: 0x268080b1 <undefined>
;;; <@108,#78> push-argument
0x4583c1a3 355 ff7514 push [ebp+0x14]
;;; <@110,#78> push-argument
0x4583c1a6 358 50 push eax
;;; <@112,#76> constant-t
0x4583c1a7 359 bf59b08726 mov edi,0x2687b059 ;; object: 0x2687b059 <JS Function Uint32ArrayConstructByArrayLike (SharedFunctionInfo 0x2682f621)>
;;; <@114,#80> call-js-function
0x4583c1ac 364 8b7717 mov esi,[edi+0x17]
0x4583c1af 367 ff570b call [edi+0xb]
;;; <@116,#81> lazy-bailout
;;; <@119,#85> goto
0x4583c1b2 370 e937000000 jmp 430 (0x4583c1ee) ;; debug: position 14452
;;; <@120,#62> -------------------- B16 (unreachable/replaced) --------------------
;;; <@124,#54> -------------------- B17 (unreachable/replaced) --------------------
;;; <@128,#46> -------------------- B18 (unreachable/replaced) --------------------
;;; <@132,#38> -------------------- B19 (unreachable/replaced) --------------------
;;; <@136,#68> -------------------- B20 --------------------
;;; <@138,#71> push-argument
0x4583c1b7 375 68b1808026 push 0x268080b1 ;; debug: position 14546
;; object: 0x268080b1 <undefined>
;;; <@140,#71> push-argument
0x4583c1bc 380 ff7514 push [ebp+0x14]
;;; <@142,#71> push-argument
0x4583c1bf 383 ff7510 push [ebp+0x10]
;;; <@144,#69> constant-t
0x4583c1c2 386 bf51828826 mov edi,0x26888251 ;; object: 0x26888251 <JS Function Uint32ArrayConstructByLength (SharedFunctionInfo 0x2684c4f5)>
;;; <@146,#73> call-js-function
0x4583c1c7 391 8b7717 mov esi,[edi+0x17]
0x4583c1ca 394 ff570b call [edi+0xb]
;;; <@148,#74> lazy-bailout
;;; <@151,#83> goto
0x4583c1cd 397 e91c000000 jmp 430 (0x4583c1ee) ;; debug: position 14452
;;; <@152,#88> -------------------- B21 (unreachable/replaced) --------------------
;;; <@156,#23> -------------------- B22 (unreachable/replaced) --------------------
;;; <@160,#29> -------------------- B23 --------------------
;;; <@162,#32> push-argument
0x4583c1d2 402 68b1808026 push 0x268080b1 ;; debug: position 14399
;; object: 0x268080b1 <undefined>
;;; <@164,#32> push-argument
0x4583c1d7 407 ff7514 push [ebp+0x14]
;;; <@166,#32> push-argument
0x4583c1da 410 ff7510 push [ebp+0x10]
;;; <@168,#32> push-argument
0x4583c1dd 413 ff750c push [ebp+0xc]
;;; <@170,#32> push-argument
0x4583c1e0 416 ff7508 push [ebp+0x8]
;;; <@172,#30> constant-t
0x4583c1e3 419 bf21b38726 mov edi,0x2687b321 ;; object: 0x2687b321 <JS Function Uint32ArrayConstructByArrayBuffer (SharedFunctionInfo 0x2682ff2d)>
;;; <@174,#34> call-js-function
0x4583c1e8 424 8b7717 mov esi,[edi+0x17]
0x4583c1eb 427 ff570b call [edi+0xb]
;;; <@176,#35> lazy-bailout
;;; <@180,#117> -------------------- B24 --------------------
;;; <@182,#7> constant-t
0x4583c1ee 430 b8b1808026 mov eax,0x268080b1 ;; debug: position 14329
;; object: 0x268080b1 <undefined>
;;; <@184,#119> return
0x4583c1f3 435 89ec mov esp,ebp
0x4583c1f5 437 5d pop ebp
0x4583c1f6 438 c21000 ret 0x10
;;; <@28,#95> -------------------- Deferred allocate --------------------
0x4583c1f9 441 33c9 xor ecx,ecx ;; debug: position 14688
0x4583c1fb 443 60 pushad
0x4583c1fc 444 6a20 push 0x20
0x4583c1fe 446 6a00 push 0x0
0x4583c200 448 8b75f0 mov esi,[ebp-0x10]
0x4583c203 451 b802000000 mov eax,0x2
0x4583c208 456 bb203e4608 mov ebx,0x8463e20
0x4583c20d 461 e8aef9fcff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583c212 466 89442418 mov [esp+0x18],eax
0x4583c216 470 61 popad
0x4583c217 471 e981feffff jmp 93 (0x4583c09d)
0x4583c21c 476 90 nop
0x4583c21d 477 90 nop
0x4583c21e 478 90 nop
0x4583c21f 479 90 nop
0x4583c220 480 90 nop
0x4583c221 481 0f1f00 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 6)
index ast id argc pc
0 3 0 36
1 138 0 152
2 136 0 172
3 123 0 370
4 110 0 397
5 30 0 430
Safepoints (size = 78)
0x4583c064 36 10 (sp -> fp) 0
0x4583c0d8 152 10 (sp -> fp) 1
0x4583c0ec 172 10 (sp -> fp) 2
0x4583c1b2 370 10 (sp -> fp) 3
0x4583c1cd 397 10 (sp -> fp) 4
0x4583c1ee 430 10 (sp -> fp) 5
0x4583c212 466 10 | ecx (sp -> fp) <none> argc: 2
RelocInfo (size = 714)
0x4583c048 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583c04f position (14329)
0x4583c04f comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583c04f comment (;;; <@2,#1> context)
0x4583c052 comment (;;; <@3,#1> gap)
0x4583c055 comment (;;; <@14,#10> -------------------- B1 --------------------)
0x4583c055 comment (;;; <@15,#10> gap)
0x4583c057 comment (;;; <@16,#12> stack-check)
0x4583c060 code target (BUILTIN) (0x4582efc0)
0x4583c064 comment (;;; <@18,#12> lazy-bailout)
0x4583c064 position (14341)
0x4583c064 comment (;;; <@21,#13> is-construct-call-and-branch)
0x4583c079 comment (;;; <@22,#17> -------------------- B2 (unreachable/replaced) --------------------)
0x4583c079 position (14647)
0x4583c079 comment (;;; <@26,#91> -------------------- B3 --------------------)
0x4583c079 comment (;;; <@28,#95> allocate)
0x4583c079 position (14688)
0x4583c09d comment (;;; <@30,#97> store-named-field)
0x4583c0a0 embedded object (0x26808099 <FixedArray[0]>)
0x4583c0a4 comment (;;; <@32,#99> store-named-field)
0x4583c0a7 embedded object (0x3020c801 <Map(elements=2)>)
0x4583c0ab comment (;;; <@34,#101> store-named-field)
0x4583c0ae embedded object (0x26808099 <FixedArray[0]>)
0x4583c0b2 comment (;;; <@36,#103> store-named-field)
0x4583c0b9 comment (;;; <@38,#104> constant-t)
0x4583c0bb property cell
0x4583c0bf comment (;;; <@40,#105> store-named-field)
0x4583c0c2 comment (;;; <@42,#109> push-argument)
0x4583c0c2 position (14647)
0x4583c0c3 embedded object (0x28d0eba9 <JS Global Object>)
0x4583c0c7 comment (;;; <@44,#109> push-argument)
0x4583c0c8 embedded object (0x26845c2d <String[24]: constructor_not_function>)
0x4583c0cc comment (;;; <@46,#109> push-argument)
0x4583c0cd comment (;;; <@48,#92> constant-t)
0x4583c0ce embedded object (0x268855d1 <JS Function MakeTypeError (SharedFunctionInfo 0x26844a81)>)
0x4583c0d2 comment (;;; <@50,#111> call-js-function)
0x4583c0d8 comment (;;; <@52,#112> lazy-bailout)
0x4583c0d8 comment (;;; <@54,#113> push-argument)
0x4583c0d8 position (14641)
0x4583c0d9 comment (;;; <@55,#113> gap)
0x4583c0dc comment (;;; <@56,#114> call-runtime)
0x4583c0e8 code target (STUB) (0x4580bd20)
0x4583c0ec comment (;;; <@58,#115> lazy-bailout)
0x4583c0ec comment (;;; <@60,#14> -------------------- B4 (unreachable/replaced) --------------------)
0x4583c0ec position (14379)
0x4583c0ec comment (;;; <@64,#21> -------------------- B5 --------------------)
0x4583c0ec comment (;;; <@66,#22> gap)
0x4583c0ef comment (;;; <@67,#22> class-of-test-and-branch)
0x4583c13d embedded object (0x26838b45 <String[11]: ArrayBuffer>)
0x4583c147 comment (;;; <@68,#26> -------------------- B6 (unreachable/replaced) --------------------)
0x4583c147 position (14465)
0x4583c147 comment (;;; <@72,#36> -------------------- B7 --------------------)
0x4583c147 comment (;;; <@74,#37> gap)
0x4583c149 comment (;;; <@75,#37> typeof-is-and-branch)
0x4583c155 embedded object (0x3020820d <Map(elements=3)>)
0x4583c15f comment (;;; <@76,#41> -------------------- B8 (unreachable/replaced) --------------------)
0x4583c15f position (14489)
0x4583c15f comment (;;; <@80,#44> -------------------- B9 --------------------)
0x4583c15f comment (;;; <@82,#45> gap)
0x4583c161 comment (;;; <@83,#45> typeof-is-and-branch)
0x4583c179 comment (;;; <@84,#49> -------------------- B10 (unreachable/replaced) --------------------)
0x4583c179 position (14514)
0x4583c179 comment (;;; <@88,#52> -------------------- B11 --------------------)
0x4583c179 comment (;;; <@90,#53> gap)
0x4583c17b comment (;;; <@91,#53> typeof-is-and-branch)
0x4583c17d embedded object (0x26808105 <true>)
0x4583c189 embedded object (0x26808125 <false>)
0x4583c193 comment (;;; <@92,#57> -------------------- B12 (unreachable/replaced) --------------------)
0x4583c193 position (14531)
0x4583c193 comment (;;; <@96,#60> -------------------- B13 --------------------)
0x4583c193 comment (;;; <@99,#61> cmp-object-eq-and-branch)
0x4583c194 embedded object (0x268080b1 <undefined>)
0x4583c19e comment (;;; <@100,#65> -------------------- B14 (unreachable/replaced) --------------------)
0x4583c19e position (14591)
0x4583c19e comment (;;; <@104,#75> -------------------- B15 --------------------)
0x4583c19e comment (;;; <@106,#78> push-argument)
0x4583c19f embedded object (0x268080b1 <undefined>)
0x4583c1a3 comment (;;; <@108,#78> push-argument)
0x4583c1a6 comment (;;; <@110,#78> push-argument)
0x4583c1a7 comment (;;; <@112,#76> constant-t)
0x4583c1a8 embedded object (0x2687b059 <JS Function Uint32ArrayConstructByArrayLike (SharedFunctionInfo 0x2682f621)>)
0x4583c1ac comment (;;; <@114,#80> call-js-function)
0x4583c1b2 comment (;;; <@116,#81> lazy-bailout)
0x4583c1b2 position (14452)
0x4583c1b2 comment (;;; <@119,#85> goto)
0x4583c1b7 comment (;;; <@120,#62> -------------------- B16 (unreachable/replaced) --------------------)
0x4583c1b7 comment (;;; <@124,#54> -------------------- B17 (unreachable/replaced) --------------------)
0x4583c1b7 comment (;;; <@128,#46> -------------------- B18 (unreachable/replaced) --------------------)
0x4583c1b7 comment (;;; <@132,#38> -------------------- B19 (unreachable/replaced) --------------------)
0x4583c1b7 position (14546)
0x4583c1b7 comment (;;; <@136,#68> -------------------- B20 --------------------)
0x4583c1b7 comment (;;; <@138,#71> push-argument)
0x4583c1b8 embedded object (0x268080b1 <undefined>)
0x4583c1bc comment (;;; <@140,#71> push-argument)
0x4583c1bf comment (;;; <@142,#71> push-argument)
0x4583c1c2 comment (;;; <@144,#69> constant-t)
0x4583c1c3 embedded object (0x26888251 <JS Function Uint32ArrayConstructByLength (SharedFunctionInfo 0x2684c4f5)>)
0x4583c1c7 comment (;;; <@146,#73> call-js-function)
0x4583c1cd comment (;;; <@148,#74> lazy-bailout)
0x4583c1cd position (14452)
0x4583c1cd comment (;;; <@151,#83> goto)
0x4583c1d2 comment (;;; <@152,#88> -------------------- B21 (unreachable/replaced) --------------------)
0x4583c1d2 comment (;;; <@156,#23> -------------------- B22 (unreachable/replaced) --------------------)
0x4583c1d2 position (14399)
0x4583c1d2 comment (;;; <@160,#29> -------------------- B23 --------------------)
0x4583c1d2 comment (;;; <@162,#32> push-argument)
0x4583c1d3 embedded object (0x268080b1 <undefined>)
0x4583c1d7 comment (;;; <@164,#32> push-argument)
0x4583c1da comment (;;; <@166,#32> push-argument)
0x4583c1dd comment (;;; <@168,#32> push-argument)
0x4583c1e0 comment (;;; <@170,#32> push-argument)
0x4583c1e3 comment (;;; <@172,#30> constant-t)
0x4583c1e4 embedded object (0x2687b321 <JS Function Uint32ArrayConstructByArrayBuffer (SharedFunctionInfo 0x2682ff2d)>)
0x4583c1e8 comment (;;; <@174,#34> call-js-function)
0x4583c1ee comment (;;; <@176,#35> lazy-bailout)
0x4583c1ee position (14329)
0x4583c1ee comment (;;; <@180,#117> -------------------- B24 --------------------)
0x4583c1ee comment (;;; <@182,#7> constant-t)
0x4583c1ef embedded object (0x268080b1 <undefined>)
0x4583c1f3 comment (;;; <@184,#119> return)
0x4583c1f9 position (14688)
0x4583c1f9 comment (;;; <@28,#95> -------------------- Deferred allocate --------------------)
0x4583c20e code target (STUB) (0x4580bbc0)
0x4583c224 comment (;;; Safepoint table.)
--- End code ---
[deoptimizing (DEOPT soft): begin 0x2688fbc5 <JS Function keystreamToBuffer (SharedFunctionInfo 0x2688ee5d)> (opt #5) @32, FP to SP delta: 104]
;;; deoptimize at 0_621: Insufficient type feedback for combined type of binary operation
translating keystreamToBuffer => node=183, height=24
0xffcac578: [top + 44] <- 0x28d0eb09 ; [sp + 12] 0x28d0eb09 <JS Object>
0xffcac574: [top + 40] <- 0x28d0eb51 ; [sp + 20] 0x28d0eb51 <an Uint8Array with map 0x3020f509>
0xffcac570: [top + 36] <- 0x45836e7f ; caller's pc
0xffcac56c: [top + 32] <- 0xffcac58c ; caller's fp
0xffcac568: [top + 28] <- 0x28d0ea81 ; [sp + 24] 0x28d0ea81 <FixedArray[12]>
0xffcac568: [top + 28] <- 0x28d0ea81; context
0xffcac564: [top + 24] <- 0x2688fbc5; function
0xffcac560: [top + 20] <- 0x268080b1 <undefined> ; literal
0xffcac55c: [top + 16] <- 0x268080b1 <undefined> ; literal
0xffcac558: [top + 12] <- 0x00000000 ; [sp + 28] 0
0xffcac554: [top + 8] <- 0x28d0eadd ; [sp + 40] 0x28d0eadd <an Uint8Array with map 0x3020da91>
0xffcac550: [top + 4] <- 0x00200000 ; [sp + 16] 1048576
0xffcac54c: [top + 0] <- 0x268080b1 <undefined> ; literal
[deoptimizing (soft): end 0x2688fbc5 <JS Function keystreamToBuffer (SharedFunctionInfo 0x2688ee5d)> @32 => node=183, pc=0x458372ee, state=NO_REGISTERS, alignment=with padding, took 0.043 ms]
--- FUNCTION SOURCE (encryptToBuffer.decryptToBuffer) id{8,0} ---
(uInt8Data, buffer) {
this.keystreamToBuffer(buffer);
for (var i = 0; i < buffer.length; i++) buffer[i] ^= uInt8Data[i];
}
--- END ---
--- Raw source ---
(uInt8Data, buffer) {
this.keystreamToBuffer(buffer);
for (var i = 0; i < buffer.length; i++) buffer[i] ^= uInt8Data[i];
}
--- Optimized code ---
optimization_id = 8
source_position = 3806
kind = OPTIMIZED_FUNCTION
name = encryptToBuffer.decryptToBuffer
stack_slots = 10
Instructions (size = 520)
0x4583c820 0 33d2 xor edx,edx
0x4583c822 2 f7c404000000 test esp,0x4
0x4583c828 8 751f jnz 41 (0x4583c849)
0x4583c82a 10 6a00 push 0x0
0x4583c82c 12 89e3 mov ebx,esp
0x4583c82e 14 ba02000000 mov edx,0x2
0x4583c833 19 b904000000 mov ecx,0x4
0x4583c838 24 8b4304 mov eax,[ebx+0x4]
0x4583c83b 27 8903 mov [ebx],eax
0x4583c83d 29 83c304 add ebx,0x4
0x4583c840 32 49 dec ecx
0x4583c841 33 75f5 jnz 24 (0x4583c838)
0x4583c843 35 c70378563412 mov [ebx],0x12345678
0x4583c849 41 55 push ebp
0x4583c84a 42 89e5 mov ebp,esp
0x4583c84c 44 56 push esi
0x4583c84d 45 57 push edi
0x4583c84e 46 83ec28 sub esp,0x28
;;; Store dynamic frame alignment tag for spilled doubles
0x4583c851 49 8955f4 mov [ebp-0xc],edx
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583c854 52 8b45fc mov eax,[ebp-0x4] ;; debug: position 3806
;;; <@3,#1> gap
0x4583c857 55 8945ec mov [ebp-0x14],eax
;;; <@12,#9> -------------------- B1 --------------------
;;; <@13,#9> gap
0x4583c85a 58 89c6 mov esi,eax
;;; <@14,#11> stack-check
0x4583c85c 60 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583c862 66 7305 jnc 73 (0x4583c869)
0x4583c864 68 e85727ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@16,#11> lazy-bailout
;;; <@17,#11> gap
0x4583c869 73 8b75ec mov esi,[ebp-0x14]
0x4583c86c 76 8b5510 mov edx,[ebp+0x10]
;;; <@18,#13> load-named-generic
0x4583c86f 79 b90dea8826 mov ecx,0x2688ea0d ;; debug: position 3841
;; object: 0x2688ea0d <String[17]: keystreamToBuffer>
0x4583c874 84 e847f0feff call 0x4582b8c0 ;; code: LOAD_IC, PREMONOMORPHIC
;;; <@20,#14> lazy-bailout
;;; <@22,#15> push-argument
0x4583c879 89 ff7510 push [ebp+0x10]
;;; <@24,#15> push-argument
0x4583c87c 92 ff7508 push [ebp+0x8]
;;; <@25,#15> gap
0x4583c87f 95 8b75ec mov esi,[ebp-0x14]
0x4583c882 98 89c7 mov edi,eax
;;; <@26,#16> call-function
0x4583c884 100 e877feffff call 0x4583c700 ;; code: STUB, CallFunctionStub, argc = 1
;;; <@28,#17> lazy-bailout
;;; <@31,#21> goto
0x4583c889 105 e953000000 jmp 193 (0x4583c8e1) ;; debug: position 3876
;;; <@32,#25> -------------------- B2 (OSR entry) --------------------
0x4583c88e 110 33d2 xor edx,edx
0x4583c890 112 f7c504000000 test ebp,0x4
0x4583c896 118 7422 jz 154 (0x4583c8ba)
0x4583c898 120 6a00 push 0x0
0x4583c89a 122 89e3 mov ebx,esp
0x4583c89c 124 ba02000000 mov edx,0x2
0x4583c8a1 129 b908000000 mov ecx,0x8
0x4583c8a6 134 8b4304 mov eax,[ebx+0x4]
0x4583c8a9 137 8903 mov [ebx],eax
0x4583c8ab 139 83c304 add ebx,0x4
0x4583c8ae 142 49 dec ecx
0x4583c8af 143 75f5 jnz 134 (0x4583c8a6)
0x4583c8b1 145 c70378563412 mov [ebx],0x12345678
0x4583c8b7 151 83ed04 sub ebp,0x4
0x4583c8ba 154 ff75f4 push [ebp-0xc]
0x4583c8bd 157 8955f4 mov [ebp-0xc],edx
0x4583c8c0 160 83ec20 sub esp,0x20
;;; <@46,#33> context
0x4583c8c3 163 8b45fc mov eax,[ebp-0x4]
;;; <@47,#33> gap
0x4583c8c6 166 8b4df0 mov ecx,[ebp-0x10]
;;; <@48,#104> check-smi
0x4583c8c9 169 f6c101 test_b cl,0x1
0x4583c8cc 172 0f85f4000000 jnz 422 (0x4583c9c6)
;;; <@50,#35> gap
0x4583c8d2 178 8b7510 mov esi,[ebp+0x10]
0x4583c8d5 181 8b5d0c mov ebx,[ebp+0xc]
0x4583c8d8 184 8b5508 mov edx,[ebp+0x8]
0x4583c8db 187 91 xchg eax, ecx
;;; <@51,#35> goto
0x4583c8dc 188 e90e000000 jmp 207 (0x4583c8ef)
;;; <@52,#22> -------------------- B3 --------------------
;;; <@54,#24> gap
0x4583c8e1 193 8b7510 mov esi,[ebp+0x10]
0x4583c8e4 196 8b5d0c mov ebx,[ebp+0xc]
0x4583c8e7 199 8b5508 mov edx,[ebp+0x8]
0x4583c8ea 202 8b4dec mov ecx,[ebp-0x14]
0x4583c8ed 205 33c0 xor eax,eax
;;; <@56,#46> -------------------- B4 --------------------
0x4583c8ef 207 8975e0 mov [ebp-0x20],esi
0x4583c8f2 210 895ddc mov [ebp-0x24],ebx
0x4583c8f5 213 8955e4 mov [ebp-0x1c],edx
0x4583c8f8 216 894de8 mov [ebp-0x18],ecx
;;; <@58,#51> check-non-smi
0x4583c8fb 219 f6c201 test_b dl,0x1 ;; debug: position 3902
0x4583c8fe 222 0f84c7000000 jz 427 (0x4583c9cb)
;;; <@60,#52> check-maps
0x4583c904 228 817aff09f52030 cmp [edx-0x1],0x3020f509 ;; object: 0x3020f509 <Map(elements=9)>
0x4583c90b 235 0f85bf000000 jnz 432 (0x4583c9d0)
;;; <@62,#53> load-named-field
0x4583c911 241 8b7a1f mov edi,[edx+0x1f]
;;; <@64,#105> check-smi
0x4583c914 244 f7c701000000 test edi,0x1
0x4583c91a 250 0f85b5000000 jnz 437 (0x4583c9d5)
;;; <@65,#105> gap
0x4583c920 256 897dd4 mov [ebp-0x2c],edi
;;; <@66,#67> load-named-field
0x4583c923 259 8b4a07 mov ecx,[edx+0x7] ;; debug: position 3926
;;; <@68,#68> load-named-field
0x4583c926 262 8b5103 mov edx,[ecx+0x3]
;;; <@69,#68> gap
0x4583c929 265 8955d8 mov [ebp-0x28],edx
;;; <@70,#69> load-named-field
0x4583c92c 268 8b4907 mov ecx,[ecx+0x7]
;;; <@72,#73> check-non-smi
0x4583c92f 271 f6c301 test_b bl,0x1 ;; debug: position 3938
0x4583c932 274 0f84a2000000 jz 442 (0x4583c9da)
;;; <@74,#74> check-maps
0x4583c938 280 817bff09f52030 cmp [ebx-0x1],0x3020f509 ;; object: 0x3020f509 <Map(elements=9)>
0x4583c93f 287 0f859a000000 jnz 447 (0x4583c9df)
;;; <@76,#75> load-named-field
0x4583c945 293 8b7307 mov esi,[ebx+0x7]
;;; <@78,#76> load-named-field
0x4583c948 296 8b5e03 mov ebx,[esi+0x3]
;;; <@79,#76> gap
0x4583c94b 299 895dd0 mov [ebp-0x30],ebx
;;; <@80,#77> load-named-field
0x4583c94e 302 8b7607 mov esi,[esi+0x7]
;;; <@82,#85> check-maps
;;; <@84,#87> check-maps
;;; <@88,#49> -------------------- B5 (loop header) --------------------
;;; <@91,#54> compare-numeric-and-branch
0x4583c951 305 3bc7 cmp eax,edi ;; debug: position 3926
;; debug: position 3892
;; debug: position 3894
0x4583c953 307 0f8d44000000 jnl 381 (0x4583c99d)
;;; <@92,#55> -------------------- B6 (unreachable/replaced) --------------------
;;; <@96,#61> -------------------- B7 --------------------
;;; <@98,#63> stack-check
0x4583c959 313 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 3876
0x4583c95f 319 0f824e000000 jc 403 (0x4583c9b3)
;;; <@100,#70> bounds-check
0x4583c965 325 3bc2 cmp eax,edx ;; debug: position 3926
0x4583c967 327 0f8377000000 jnc 452 (0x4583c9e4)
;;; <@101,#70> gap
0x4583c96d 333 89c2 mov edx,eax
;;; <@102,#71> load-keyed
0x4583c96f 335 d1fa sar edx,1
0x4583c971 337 0fb63c11 movzx_b edi,[ecx+edx*1]
;;; <@104,#78> bounds-check
0x4583c975 341 3bc3 cmp eax,ebx ;; debug: position 3938
0x4583c977 343 0f836c000000 jnc 457 (0x4583c9e9)
;;; <@105,#78> gap
0x4583c97d 349 89c2 mov edx,eax
;;; <@106,#79> load-keyed
0x4583c97f 351 d1fa sar edx,1
0x4583c981 353 0fb61c16 movzx_b ebx,[esi+edx*1]
;;; <@108,#80> bit-i
0x4583c985 357 33df xor ebx,edi ;; debug: position 3926
;;; <@109,#80> gap
0x4583c987 359 89c2 mov edx,eax
0x4583c989 361 93 xchg eax, ebx
;;; <@110,#92> store-keyed
0x4583c98a 362 d1fa sar edx,1
0x4583c98c 364 880411 mov_b [ecx+edx*1],al
;;; <@112,#96> add-i
0x4583c98f 367 8d4302 lea eax,[ebx+0x2] ;; debug: position 3912
;;; <@114,#99> gap
0x4583c992 370 8b55d8 mov edx,[ebp-0x28] ;; debug: position 3876
0x4583c995 373 8b5dd0 mov ebx,[ebp-0x30]
0x4583c998 376 8b7dd4 mov edi,[ebp-0x2c]
;;; <@115,#99> goto
0x4583c99b 379 ebb4 jmp 305 (0x4583c951)
;;; <@116,#58> -------------------- B8 (unreachable/replaced) --------------------
;;; <@120,#100> -------------------- B9 --------------------
;;; <@122,#6> constant-t
0x4583c99d 381 b8b1808026 mov eax,0x268080b1 ;; debug: position 3806
;; object: 0x268080b1 <undefined>
;;; <@124,#102> return
0x4583c9a2 386 8b55f4 mov edx,[ebp-0xc]
0x4583c9a5 389 89ec mov esp,ebp
0x4583c9a7 391 5d pop ebp
0x4583c9a8 392 83fa00 cmp edx,0x0
0x4583c9ab 395 7403 jz 400 (0x4583c9b0)
0x4583c9ad 397 c21000 ret 0x10
0x4583c9b0 400 c20c00 ret 0xc
;;; <@98,#63> -------------------- Deferred stack-check --------------------
0x4583c9b3 403 60 pushad ;; debug: position 3876
0x4583c9b4 404 8b75fc mov esi,[ebp-0x4]
0x4583c9b7 407 33c0 xor eax,eax
0x4583c9b9 409 bb003d4608 mov ebx,0x8463d00
0x4583c9be 414 e8fdf1fcff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583c9c3 419 61 popad
0x4583c9c4 420 eb9f jmp 325 (0x4583c965)
;;; -------------------- Jump table --------------------
0x4583c9c6 422 e85dd6fcf6 call 0x3c80a028 ;; debug: position 35840
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 4
0x4583c9cb 427 e862d6fcf6 call 0x3c80a032 ;; debug: position 49152
;; debug: deopt reason 'Smi'
;; deoptimization bailout 5
0x4583c9d0 432 e867d6fcf6 call 0x3c80a03c ;; debug: position 49152
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 6
0x4583c9d5 437 e86cd6fcf6 call 0x3c80a046 ;; debug: position 49152
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 7
0x4583c9da 442 e871d6fcf6 call 0x3c80a050 ;; debug: position 67584
;; debug: deopt reason 'Smi'
;; deoptimization bailout 8
0x4583c9df 447 e876d6fcf6 call 0x3c80a05a ;; debug: position 67584
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 9
0x4583c9e4 452 e885d6fcf6 call 0x3c80a06e ;; debug: position 61440
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 11
0x4583c9e9 457 e88ad6fcf6 call 0x3c80a078 ;; debug: position 67584
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 12
0x4583c9ee 462 90 nop
0x4583c9ef 463 90 nop
0x4583c9f0 464 90 nop
0x4583c9f1 465 90 nop
0x4583c9f2 466 90 nop
0x4583c9f3 467 90 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 13)
index ast id argc pc
0 3 0 73
1 12 0 89
2 6 0 105
3 23 0 -1
4 21 0 -1
5 21 0 -1
6 21 0 -1
7 21 0 -1
8 21 0 -1
9 21 0 -1
10 25 0 325
11 25 0 -1
12 25 0 -1
Safepoints (size = 52)
0x4583c869 73 0000000100 (sp -> fp) 0
0x4583c879 89 0000000100 (sp -> fp) 1
0x4583c889 105 0000000100 (sp -> fp) 2
0x4583c9c3 419 0001111000 (sp -> fp) 10
RelocInfo (size = 624)
0x4583c851 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583c854 position (3806)
0x4583c854 comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583c854 comment (;;; <@2,#1> context)
0x4583c857 comment (;;; <@3,#1> gap)
0x4583c85a comment (;;; <@12,#9> -------------------- B1 --------------------)
0x4583c85a comment (;;; <@13,#9> gap)
0x4583c85c comment (;;; <@14,#11> stack-check)
0x4583c865 code target (BUILTIN) (0x4582efc0)
0x4583c869 comment (;;; <@16,#11> lazy-bailout)
0x4583c869 comment (;;; <@17,#11> gap)
0x4583c86f comment (;;; <@18,#13> load-named-generic)
0x4583c86f position (3841)
0x4583c870 embedded object (0x2688ea0d <String[17]: keystreamToBuffer>)
0x4583c875 code target (LOAD_IC) (0x4582b8c0)
0x4583c879 comment (;;; <@20,#14> lazy-bailout)
0x4583c879 comment (;;; <@22,#15> push-argument)
0x4583c87c comment (;;; <@24,#15> push-argument)
0x4583c87f comment (;;; <@25,#15> gap)
0x4583c884 comment (;;; <@26,#16> call-function)
0x4583c885 code target (STUB) (0x4583c700)
0x4583c889 comment (;;; <@28,#17> lazy-bailout)
0x4583c889 position (3876)
0x4583c889 comment (;;; <@31,#21> goto)
0x4583c88e comment (;;; <@32,#25> -------------------- B2 (OSR entry) --------------------)
0x4583c8c3 comment (;;; <@46,#33> context)
0x4583c8c6 comment (;;; <@47,#33> gap)
0x4583c8c9 comment (;;; <@48,#104> check-smi)
0x4583c8d2 comment (;;; <@50,#35> gap)
0x4583c8dc comment (;;; <@51,#35> goto)
0x4583c8e1 comment (;;; <@52,#22> -------------------- B3 --------------------)
0x4583c8e1 comment (;;; <@54,#24> gap)
0x4583c8ef comment (;;; <@56,#46> -------------------- B4 --------------------)
0x4583c8fb comment (;;; <@58,#51> check-non-smi)
0x4583c8fb position (3902)
0x4583c904 comment (;;; <@60,#52> check-maps)
0x4583c907 embedded object (0x3020f509 <Map(elements=9)>)
0x4583c911 comment (;;; <@62,#53> load-named-field)
0x4583c914 comment (;;; <@64,#105> check-smi)
0x4583c920 comment (;;; <@65,#105> gap)
0x4583c923 comment (;;; <@66,#67> load-named-field)
0x4583c923 position (3926)
0x4583c926 comment (;;; <@68,#68> load-named-field)
0x4583c929 comment (;;; <@69,#68> gap)
0x4583c92c comment (;;; <@70,#69> load-named-field)
0x4583c92f comment (;;; <@72,#73> check-non-smi)
0x4583c92f position (3938)
0x4583c938 comment (;;; <@74,#74> check-maps)
0x4583c93b embedded object (0x3020f509 <Map(elements=9)>)
0x4583c945 comment (;;; <@76,#75> load-named-field)
0x4583c948 comment (;;; <@78,#76> load-named-field)
0x4583c94b comment (;;; <@79,#76> gap)
0x4583c94e comment (;;; <@80,#77> load-named-field)
0x4583c951 comment (;;; <@82,#85> check-maps)
0x4583c951 position (3926)
0x4583c951 comment (;;; <@84,#87> check-maps)
0x4583c951 position (3892)
0x4583c951 comment (;;; <@88,#49> -------------------- B5 (loop header) --------------------)
0x4583c951 position (3894)
0x4583c951 comment (;;; <@91,#54> compare-numeric-and-branch)
0x4583c959 comment (;;; <@92,#55> -------------------- B6 (unreachable/replaced) --------------------)
0x4583c959 position (3876)
0x4583c959 comment (;;; <@96,#61> -------------------- B7 --------------------)
0x4583c959 comment (;;; <@98,#63> stack-check)
0x4583c965 comment (;;; <@100,#70> bounds-check)
0x4583c965 position (3926)
0x4583c96d comment (;;; <@101,#70> gap)
0x4583c96f comment (;;; <@102,#71> load-keyed)
0x4583c975 comment (;;; <@104,#78> bounds-check)
0x4583c975 position (3938)
0x4583c97d comment (;;; <@105,#78> gap)
0x4583c97f comment (;;; <@106,#79> load-keyed)
0x4583c985 comment (;;; <@108,#80> bit-i)
0x4583c985 position (3926)
0x4583c987 comment (;;; <@109,#80> gap)
0x4583c98a comment (;;; <@110,#92> store-keyed)
0x4583c98f comment (;;; <@112,#96> add-i)
0x4583c98f position (3912)
0x4583c992 comment (;;; <@114,#99> gap)
0x4583c992 position (3876)
0x4583c99b comment (;;; <@115,#99> goto)
0x4583c99d comment (;;; <@116,#58> -------------------- B8 (unreachable/replaced) --------------------)
0x4583c99d position (3806)
0x4583c99d comment (;;; <@120,#100> -------------------- B9 --------------------)
0x4583c99d comment (;;; <@122,#6> constant-t)
0x4583c99e embedded object (0x268080b1 <undefined>)
0x4583c9a2 comment (;;; <@124,#102> return)
0x4583c9b3 position (3876)
0x4583c9b3 comment (;;; <@98,#63> -------------------- Deferred stack-check --------------------)
0x4583c9bf code target (STUB) (0x4580bbc0)
0x4583c9c6 comment (;;; -------------------- Jump table --------------------)
0x4583c9c6 position (35840)
0x4583c9c6 deopt reason (not a Smi)
0x4583c9c7 runtime entry (deoptimization bailout 4)
0x4583c9cb position (49152)
0x4583c9cb deopt reason (Smi)
0x4583c9cc runtime entry (deoptimization bailout 5)
0x4583c9d0 position (49152)
0x4583c9d0 deopt reason (wrong map)
0x4583c9d1 runtime entry (deoptimization bailout 6)
0x4583c9d5 position (49152)
0x4583c9d5 deopt reason (not a Smi)
0x4583c9d6 runtime entry (deoptimization bailout 7)
0x4583c9da position (67584)
0x4583c9da deopt reason (Smi)
0x4583c9db runtime entry (deoptimization bailout 8)
0x4583c9df position (67584)
0x4583c9df deopt reason (wrong map)
0x4583c9e0 runtime entry (deoptimization bailout 9)
0x4583c9e4 position (61440)
0x4583c9e4 deopt reason (out of bounds)
0x4583c9e5 runtime entry (deoptimization bailout 11)
0x4583c9e9 position (67584)
0x4583c9e9 deopt reason (out of bounds)
0x4583c9ea runtime entry (deoptimization bailout 12)
0x4583c9f4 comment (;;; Safepoint table.)
--- End code ---
--- FUNCTION SOURCE (keystreamToBuffer) id{9,0} ---
(buffer) {
var startBlock = input[12];
var skipBytes = startIndex % 64;
var lastBytes = (startIndex + buffer.length) % 64;
var buf = new Uint8Array(64);
var streamPos = 0;
//First block
getBlock(buf);
for (var i = skipBytes; i < 64; i++) buffer[streamPos++] = buf[i]
//Fill full blocks
while (streamPos + 64 <= buffer.length) {
getBlock(buf);
for (var i = 0; i < 64; i++) buffer[streamPos++] = buf[i];
}
//Last partial block
if (lastBytes > 0) {
getBlock(buf);
for (var i = 0; i < lastBytes; i++) buffer[streamPos++] = buf[i];
}
this.setPosition(startIndex + buffer.length);
}
--- END ---
--- Raw source ---
(buffer) {
var startBlock = input[12];
var skipBytes = startIndex % 64;
var lastBytes = (startIndex + buffer.length) % 64;
var buf = new Uint8Array(64);
var streamPos = 0;
//First block
getBlock(buf);
for (var i = skipBytes; i < 64; i++) buffer[streamPos++] = buf[i]
//Fill full blocks
while (streamPos + 64 <= buffer.length) {
getBlock(buf);
for (var i = 0; i < 64; i++) buffer[streamPos++] = buf[i];
}
//Last partial block
if (lastBytes > 0) {
getBlock(buf);
for (var i = 0; i < lastBytes; i++) buffer[streamPos++] = buf[i];
}
this.setPosition(startIndex + buffer.length);
}
--- Optimized code ---
optimization_id = 9
source_position = 2772
kind = OPTIMIZED_FUNCTION
name = keystreamToBuffer
stack_slots = 22
Instructions (size = 1464)
0x4583cba0 0 33d2 xor edx,edx
0x4583cba2 2 f7c404000000 test esp,0x4
0x4583cba8 8 751f jnz 41 (0x4583cbc9)
0x4583cbaa 10 6a00 push 0x0
0x4583cbac 12 89e3 mov ebx,esp
0x4583cbae 14 ba02000000 mov edx,0x2
0x4583cbb3 19 b903000000 mov ecx,0x3
0x4583cbb8 24 8b4304 mov eax,[ebx+0x4]
0x4583cbbb 27 8903 mov [ebx],eax
0x4583cbbd 29 83c304 add ebx,0x4
0x4583cbc0 32 49 dec ecx
0x4583cbc1 33 75f5 jnz 24 (0x4583cbb8)
0x4583cbc3 35 c70378563412 mov [ebx],0x12345678
0x4583cbc9 41 55 push ebp
0x4583cbca 42 89e5 mov ebp,esp
0x4583cbcc 44 56 push esi
0x4583cbcd 45 57 push edi
0x4583cbce 46 83ec58 sub esp,0x58
;;; Store dynamic frame alignment tag for spilled doubles
0x4583cbd1 49 8955f4 mov [ebp-0xc],edx
;;; <@0,#0> -------------------- B0 --------------------
;;; <@2,#1> context
0x4583cbd4 52 8b45fc mov eax,[ebp-0x4] ;; debug: position 2772
;;; <@3,#1> gap
0x4583cbd7 55 8945d8 mov [ebp-0x28],eax
;;; <@10,#8> -------------------- B1 --------------------
;;; <@11,#8> gap
0x4583cbda 58 89c6 mov esi,eax
;;; <@12,#10> stack-check
0x4583cbdc 60 3b25f4e5b608 cmp esp,[0x8b6e5f4]
0x4583cbe2 66 7305 jnc 73 (0x4583cbe9)
0x4583cbe4 68 e8d723ffff call StackCheck (0x4582efc0) ;; code: BUILTIN
;;; <@14,#10> lazy-bailout
;;; <@15,#10> gap
0x4583cbe9 73 8b45d8 mov eax,[ebp-0x28]
;;; <@16,#11> load-context-slot
0x4583cbec 76 8b4823 mov ecx,[eax+0x23] ;; debug: position 2808
;;; <@18,#13> check-non-smi
0x4583cbef 79 f6c101 test_b cl,0x1 ;; debug: position 2813
0x4583cbf2 82 0f8429040000 jz 1153 (0x4583d021)
;;; <@20,#14> check-maps
0x4583cbf8 88 8179ffa1dc2030 cmp [ecx-0x1],0x3020dca1 ;; object: 0x3020dca1 <Map(elements=21)>
0x4583cbff 95 0f8521040000 jnz 1158 (0x4583d026)
;;; <@22,#15> load-named-field
0x4583cc05 101 8b4907 mov ecx,[ecx+0x7]
;;; <@24,#16> load-named-field
0x4583cc08 104 8b5103 mov edx,[ecx+0x3]
;;; <@26,#17> bounds-check
0x4583cc0b 107 83fa18 cmp edx,0x18
0x4583cc0e 110 0f8617040000 jna 1163 (0x4583d02b)
;;; <@28,#18> load-keyed
0x4583cc14 116 8b5137 mov edx,[ecx+0x37]
;;; <@30,#20> load-context-slot
0x4583cc17 119 8b481f mov ecx,[eax+0x1f] ;; debug: position 2852
;;; <@32,#327> tagged-to-i
0x4583cc1a 122 d1f9 sar ecx,1
0x4583cc1c 124 0f824c030000 jc 974 (0x4583cf6e)
;;; <@33,#327> gap
0x4583cc22 130 89ca mov edx,ecx
;;; <@34,#22> mod-by-power-of-2-i
0x4583cc24 132 85d2 test edx,edx ;; debug: position 2863
0x4583cc26 134 7909 jns 145 (0x4583cc31)
0x4583cc28 136 f7da neg edx
0x4583cc2a 138 83e23f and edx,0x3f
0x4583cc2d 141 f7da neg edx
0x4583cc2f 143 eb03 jmp 148 (0x4583cc34)
0x4583cc31 145 83e23f and edx,0x3f
;;; <@35,#22> gap
0x4583cc34 148 8955d4 mov [ebp-0x2c],edx
0x4583cc37 151 8b5d08 mov ebx,[ebp+0x8]
;;; <@36,#27> check-non-smi
0x4583cc3a 154 f6c301 test_b bl,0x1 ;; debug: position 2913
0x4583cc3d 157 0f84ed030000 jz 1168 (0x4583d030)
;;; <@38,#28> check-maps
0x4583cc43 163 817bff09f52030 cmp [ebx-0x1],0x3020f509 ;; object: 0x3020f509 <Map(elements=9)>
0x4583cc4a 170 0f85e5030000 jnz 1173 (0x4583d035)
;;; <@40,#29> load-named-field
0x4583cc50 176 8b731f mov esi,[ebx+0x1f]
;;; <@42,#330> tagged-to-i
0x4583cc53 179 d1fe sar esi,1
0x4583cc55 181 0f8261030000 jc 1052 (0x4583cfbc)
;;; <@44,#30> add-i
0x4583cc5b 187 03f1 add esi,ecx ;; debug: position 2905
0x4583cc5d 189 0f80d7030000 jo 1178 (0x4583d03a)
;;; <@45,#30> gap
0x4583cc63 195 89f1 mov ecx,esi
;;; <@46,#33> mod-by-power-of-2-i
0x4583cc65 197 85c9 test ecx,ecx ;; debug: position 2922
0x4583cc67 199 790f jns 216 (0x4583cc78)
0x4583cc69 201 f7d9 neg ecx
0x4583cc6b 203 83e13f and ecx,0x3f
0x4583cc6e 206 f7d9 neg ecx
0x4583cc70 208 0f84c9030000 jz 1183 (0x4583d03f)
0x4583cc76 214 eb03 jmp 219 (0x4583cc7b)
0x4583cc78 216 83e13f and ecx,0x3f
;;; <@47,#33> gap
0x4583cc7b 219 894dd0 mov [ebp-0x30],ecx
;;; <@48,#38> push-argument
0x4583cc7e 222 6859438826 push 0x26884359 ;; debug: position 2955
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@50,#38> push-argument
0x4583cc83 227 6880000000 push 0x80
;;; <@52,#36> constant-t
0x4583cc88 232 bf59438826 mov edi,0x26884359 ;; debug: position 2959
;; object: 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>
;;; <@53,#36> gap
0x4583cc8d 237 89c6 mov esi,eax
;;; <@54,#39> call-new
0x4583cc8f 239 bbb1808026 mov ebx,0x268080b1 ;; debug: position 2955
;; object: 0x268080b1 <undefined>
0x4583cc94 244 b801000000 mov eax,0x1
0x4583cc99 249 e8228bfeff call 0x458257c0 ;; code: constructor, STUB, CallConstructStub, minor: 0
;;; <@55,#39> gap
0x4583cc9e 254 8945cc mov [ebp-0x34],eax
;;; <@56,#40> lazy-bailout
;;; <@57,#40> gap
0x4583cca1 257 8b4dd8 mov ecx,[ebp-0x28]
;;; <@58,#44> load-context-slot
0x4583cca4 260 8b5133 mov edx,[ecx+0x33] ;; debug: position 3050
;;; <@60,#46> check-value
0x4583cca7 263 81fab9ead028 cmp edx,0x28d0eab9 ;; object: 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>
0x4583ccad 269 0f8591030000 jnz 1188 (0x4583d044)
;;; <@62,#47> push-argument
0x4583ccb3 275 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@64,#47> push-argument
0x4583ccb8 280 50 push eax
;;; <@66,#48> constant-t
0x4583ccb9 281 bfb9ead028 mov edi,0x28d0eab9 ;; object: 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>
;;; <@68,#49> call-js-function
0x4583ccbe 286 8b7717 mov esi,[edi+0x17]
0x4583ccc1 289 ff570b call [edi+0xb]
;;; <@70,#50> lazy-bailout
;;; <@72,#84> check-non-smi
0x4583ccc4 292 f645cc01 test_b [ebp-0x34],0x1 ;; debug: position 3135
0x4583ccc8 296 0f847b030000 jz 1193 (0x4583d049)
;;; <@73,#84> gap
0x4583ccce 302 8b4dcc mov ecx,[ebp-0x34]
;;; <@74,#85> check-maps
0x4583ccd1 305 8179ff91da2030 cmp [ecx-0x1],0x3020da91 ;; object: 0x3020da91 <Map(elements=17)>
0x4583ccd8 312 0f8570030000 jnz 1198 (0x4583d04e)
;;; <@76,#86> load-named-field
0x4583ccde 318 8b5107 mov edx,[ecx+0x7]
;;; <@78,#87> load-named-field
0x4583cce1 321 8b4203 mov eax,[edx+0x3]
;;; <@79,#87> gap
0x4583cce4 324 89c3 mov ebx,eax
;;; <@80,#335> smi-untag
0x4583cce6 326 d1fb sar ebx,1
;;; <@81,#335> gap
0x4583cce8 328 895dc4 mov [ebp-0x3c],ebx
;;; <@82,#91> check-maps
;;; <@84,#93> check-maps
;;; <@86,#95> check-maps
;;; <@87,#95> gap
0x4583cceb 331 8b7508 mov esi,[ebp+0x8] ;; debug: position 3130
;;; <@88,#96> load-named-field
0x4583ccee 334 8b4607 mov eax,[esi+0x7]
;;; <@90,#97> load-named-field
0x4583ccf1 337 8b7803 mov edi,[eax+0x3]
;;; <@92,#98> load-named-field
0x4583ccf4 340 8b4007 mov eax,[eax+0x7]
;;; <@93,#98> gap
0x4583ccf7 343 8945c8 mov [ebp-0x38],eax
;;; <@94,#63> gap
0x4583ccfa 346 8b4dd4 mov ecx,[ebp-0x2c] ;; debug: position 3073
0x4583ccfd 349 33f6 xor esi,esi
;;; <@96,#64> -------------------- B2 (loop header) --------------------
;;; <@99,#67> compare-numeric-and-branch
0x4583ccff 351 83f940 cmp ecx,0x40 ;; debug: position 3097
;; debug: position 3099
0x4583cd02 354 0f8d9c000000 jnl 516 (0x4583cda4)
;;; <@100,#68> -------------------- B3 (unreachable/replaced) --------------------
;;; <@104,#74> -------------------- B4 --------------------
;;; <@106,#76> stack-check
0x4583cd08 360 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 3073
0x4583cd0e 366 0f82e1020000 jc 1109 (0x4583cff5)
;;; <@107,#76> gap
0x4583cd14 372 89f0 mov eax,esi
;;; <@108,#80> add-i
0x4583cd16 374 83c002 add eax,0x2 ;; debug: position 3126
0x4583cd19 377 0f8034030000 jo 1203 (0x4583d053)
;;; <@109,#80> gap
0x4583cd1f 383 8945c0 mov [ebp-0x40],eax
;;; <@110,#88> bounds-check
0x4583cd22 386 3bcb cmp ecx,ebx ;; debug: position 3135
0x4583cd24 388 0f832e030000 jnc 1208 (0x4583d058)
;;; <@112,#89> load-keyed
0x4583cd2a 394 0fb65c0a07 movzx_b ebx,[edx+ecx*1+0x7]
;;; <@114,#99> bounds-check
0x4583cd2f 399 3bf7 cmp esi,edi ;; debug: position 3130
0x4583cd31 401 0f8326030000 jnc 1213 (0x4583d05d)
;;; <@115,#99> gap
0x4583cd37 407 89d8 mov eax,ebx
0x4583cd39 409 8b5dc8 mov ebx,[ebp-0x38]
;;; <@116,#100> store-keyed
0x4583cd3c 412 d1fe sar esi,1
0x4583cd3e 414 880433 mov_b [ebx+esi*1],al
;;; <@118,#103> add-i
0x4583cd41 417 83c101 add ecx,0x1 ;; debug: position 3106
;;; <@120,#106> gap
0x4583cd44 420 8b75c0 mov esi,[ebp-0x40] ;; debug: position 3073
0x4583cd47 423 8b5dc4 mov ebx,[ebp-0x3c]
;;; <@121,#106> goto
0x4583cd4a 426 ebb3 jmp 351 (0x4583ccff)
;;; <@122,#71> -------------------- B5 (unreachable/replaced) --------------------
;;; <@126,#108> -------------------- B6 (unreachable/replaced) --------------------
;;; <@130,#113> -------------------- B7 (OSR entry) --------------------
0x4583cd4c 428 33d2 xor edx,edx ;; debug: position 3183
0x4583cd4e 430 f7c504000000 test ebp,0x4
0x4583cd54 436 7422 jz 472 (0x4583cd78)
0x4583cd56 438 6a00 push 0x0
0x4583cd58 440 89e3 mov ebx,esp
0x4583cd5a 442 ba02000000 mov edx,0x2
0x4583cd5f 447 b90c000000 mov ecx,0xc
0x4583cd64 452 8b4304 mov eax,[ebx+0x4]
0x4583cd67 455 8903 mov [ebx],eax
0x4583cd69 457 83c304 add ebx,0x4
0x4583cd6c 460 49 dec ecx
0x4583cd6d 461 75f5 jnz 452 (0x4583cd64)
0x4583cd6f 463 c70378563412 mov [ebx],0x12345678
0x4583cd75 469 83ed04 sub ebp,0x4
0x4583cd78 472 ff75f4 push [ebp-0xc]
0x4583cd7b 475 8955f4 mov [ebp-0xc],edx
0x4583cd7e 478 83ec3c sub esp,0x3c
;;; <@152,#125> context
0x4583cd81 481 8b75fc mov esi,[ebp-0x4]
;;; <@153,#125> gap
0x4583cd84 484 8b45e4 mov eax,[ebp-0x1c]
;;; <@154,#336> check-smi
0x4583cd87 487 a801 test al,0x1
0x4583cd89 489 0f85d3020000 jnz 1218 (0x4583d062)
;;; <@156,#127> gap
0x4583cd8f 495 8b7d0c mov edi,[ebp+0xc]
0x4583cd92 498 8b5d08 mov ebx,[ebp+0x8]
0x4583cd95 501 89f2 mov edx,esi
0x4583cd97 503 8b4dec mov ecx,[ebp-0x14]
0x4583cd9a 506 89c6 mov esi,eax
0x4583cd9c 508 8b45e8 mov eax,[ebp-0x18]
;;; <@157,#127> goto
0x4583cd9f 511 e913000000 jmp 535 (0x4583cdb7)
;;; <@158,#110> -------------------- B8 --------------------
;;; <@159,#110> gap
0x4583cda4 516 8b45d0 mov eax,[ebp-0x30]
;;; <@160,#332> smi-tag
0x4583cda7 519 03c0 add eax,eax
;;; <@162,#112> gap
0x4583cda9 521 8b7d0c mov edi,[ebp+0xc]
0x4583cdac 524 8b5d08 mov ebx,[ebp+0x8]
0x4583cdaf 527 8b55d8 mov edx,[ebp-0x28]
0x4583cdb2 530 89c1 mov ecx,eax
0x4583cdb4 532 8b45cc mov eax,[ebp-0x34]
;;; <@164,#146> -------------------- B9 --------------------
0x4583cdb7 535 897dac mov [ebp-0x54],edi
0x4583cdba 538 895db4 mov [ebp-0x4c],ebx
0x4583cdbd 541 8955b8 mov [ebp-0x48],edx
0x4583cdc0 544 894dbc mov [ebp-0x44],ecx
0x4583cdc3 547 8945c8 mov [ebp-0x38],eax
;;; <@166,#154> check-non-smi
0x4583cdc6 550 f6c301 test_b bl,0x1 ;; debug: position 3214
0x4583cdc9 553 0f8498020000 jz 1223 (0x4583d067)
;;; <@168,#206> check-non-smi
0x4583cdcf 559 a801 test al,0x1 ;; debug: position 3318
0x4583cdd1 561 0f8495020000 jz 1228 (0x4583d06c)
;;; <@170,#215> check-maps
;;; <@172,#217> check-maps
;;; <@176,#149> -------------------- B10 (loop header) --------------------
0x4583cdd7 567 8975b0 mov [ebp-0x50],esi ;; debug: position 3313
;; debug: position 3190
;;; <@177,#149> gap
0x4583cdda 570 89f0 mov eax,esi
;;; <@178,#152> add-i
0x4583cddc 572 0580000000 add eax,0x80 ;; debug: position 3200
0x4583cde1 577 0f808a020000 jo 1233 (0x4583d071)
;;; <@180,#155> check-maps
0x4583cde7 583 817bff09f52030 cmp [ebx-0x1],0x3020f509 ;; debug: position 3214
;; object: 0x3020f509 <Map(elements=9)>
0x4583cdee 590 0f8582020000 jnz 1238 (0x4583d076)
;;; <@182,#156> load-named-field
0x4583cdf4 596 8b4b1f mov ecx,[ebx+0x1f]
;;; <@184,#338> check-smi
0x4583cdf7 599 f6c101 test_b cl,0x1
0x4583cdfa 602 0f857b020000 jnz 1243 (0x4583d07b)
;;; <@187,#157> compare-numeric-and-branch
0x4583ce00 608 3bc1 cmp eax,ecx ;; debug: position 3205
0x4583ce02 610 0f8fb7000000 jg 799 (0x4583cebf)
;;; <@188,#158> -------------------- B11 (unreachable/replaced) --------------------
;;; <@192,#164> -------------------- B12 --------------------
;;; <@194,#167> load-context-slot
0x4583ce08 616 8b4233 mov eax,[edx+0x33] ;; debug: position 3183
;; debug: position 3237
;;; <@196,#169> check-value
0x4583ce0b 619 3db9ead028 cmp eax,0x28d0eab9 ;; object: 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>
0x4583ce10 624 0f856a020000 jnz 1248 (0x4583d080)
;;; <@198,#170> push-argument
0x4583ce16 630 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@200,#170> push-argument
0x4583ce1b 635 ff75c8 push [ebp-0x38]
;;; <@202,#171> constant-t
0x4583ce1e 638 b8b9ead028 mov eax,0x28d0eab9 ;; object: 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>
;;; <@203,#171> gap
0x4583ce23 643 97 xchg eax, edi
;;; <@204,#172> call-js-function
0x4583ce24 644 8b7717 mov esi,[edi+0x17]
0x4583ce27 647 ff570b call [edi+0xb]
;;; <@206,#173> lazy-bailout
;;; <@207,#173> gap
0x4583ce2a 650 8b4dc8 mov ecx,[ebp-0x38]
;;; <@208,#207> check-maps
0x4583ce2d 653 8179ff91da2030 cmp [ecx-0x1],0x3020da91 ;; debug: position 3318
;; object: 0x3020da91 <Map(elements=17)>
0x4583ce34 660 0f854b020000 jnz 1253 (0x4583d085)
;;; <@210,#208> load-named-field
0x4583ce3a 666 8b5107 mov edx,[ecx+0x7]
;;; <@212,#209> load-named-field
0x4583ce3d 669 8b5a03 mov ebx,[edx+0x3]
;;; <@213,#209> gap
0x4583ce40 672 895da4 mov [ebp-0x5c],ebx
;;; <@214,#213> check-maps
;;; <@215,#213> gap
0x4583ce43 675 8b75b4 mov esi,[ebp-0x4c] ;; debug: position 3313
;;; <@216,#218> load-named-field
0x4583ce46 678 8b4607 mov eax,[esi+0x7]
;;; <@218,#219> load-named-field
0x4583ce49 681 8b7803 mov edi,[eax+0x3]
;;; <@220,#220> load-named-field
0x4583ce4c 684 8b4007 mov eax,[eax+0x7]
;;; <@221,#220> gap
0x4583ce4f 687 8945a8 mov [ebp-0x58],eax
;;; <@222,#186> gap
0x4583ce52 690 8b75b0 mov esi,[ebp-0x50] ;; debug: position 3264
0x4583ce55 693 33c9 xor ecx,ecx
;;; <@224,#187> -------------------- B13 (loop header) --------------------
0x4583ce57 695 894da0 mov [ebp-0x60],ecx ;; debug: position 3280
;;; <@227,#190> compare-numeric-and-branch
0x4583ce5a 698 81f980000000 cmp ecx,0x80 ;; debug: position 3282
0x4583ce60 704 0f8d4b000000 jnl 785 (0x4583ceb1)
;;; <@228,#191> -------------------- B14 (unreachable/replaced) --------------------
;;; <@232,#197> -------------------- B15 --------------------
;;; <@234,#199> stack-check
0x4583ce66 710 3b25f4e5b608 cmp esp,[0x8b6e5f4] ;; debug: position 3264
0x4583ce6c 716 0f8299010000 jc 1131 (0x4583d00b)
;;; <@235,#199> gap
0x4583ce72 722 89f0 mov eax,esi
;;; <@236,#202> add-i
0x4583ce74 724 83c002 add eax,0x2 ;; debug: position 3309
0x4583ce77 727 0f800d020000 jo 1258 (0x4583d08a)
;;; <@238,#210> bounds-check
0x4583ce7d 733 3bcb cmp ecx,ebx ;; debug: position 3318
0x4583ce7f 735 0f830a020000 jnc 1263 (0x4583d08f)
;;; <@239,#210> gap
0x4583ce85 741 89cb mov ebx,ecx
;;; <@240,#211> load-keyed
0x4583ce87 743 d1fb sar ebx,1
0x4583ce89 745 0fb64c1a07 movzx_b ecx,[edx+ebx*1+0x7]
;;; <@242,#221> bounds-check
0x4583ce8e 750 3bf7 cmp esi,edi ;; debug: position 3313
0x4583ce90 752 0f83fe010000 jnc 1268 (0x4583d094)
;;; <@243,#221> gap
0x4583ce96 758 89c3 mov ebx,eax
0x4583ce98 760 89c8 mov eax,ecx
0x4583ce9a 762 8b4da8 mov ecx,[ebp-0x58]
;;; <@244,#222> store-keyed
0x4583ce9d 765 d1fe sar esi,1
0x4583ce9f 767 880431 mov_b [ecx+esi*1],al
;;; <@245,#222> gap
0x4583cea2 770 8b45a0 mov eax,[ebp-0x60]
;;; <@246,#225> add-i
0x4583cea5 773 83c002 add eax,0x2 ;; debug: position 3289
;;; <@248,#228> gap
0x4583cea8 776 89de mov esi,ebx ;; debug: position 3264
0x4583ceaa 778 89c1 mov ecx,eax
0x4583ceac 780 8b5da4 mov ebx,[ebp-0x5c]
;;; <@249,#228> goto
0x4583ceaf 783 eba6 jmp 695 (0x4583ce57)
;;; <@250,#194> -------------------- B16 (unreachable/replaced) --------------------
;;; <@254,#229> -------------------- B17 --------------------
;;; <@256,#231> gap
0x4583ceb1 785 8b7dac mov edi,[ebp-0x54] ;; debug: position 3183
0x4583ceb4 788 8b5db4 mov ebx,[ebp-0x4c]
0x4583ceb7 791 8b55b8 mov edx,[ebp-0x48]
;;; <@257,#231> goto
0x4583ceba 794 e918ffffff jmp 567 (0x4583cdd7)
;;; <@258,#161> -------------------- B18 (unreachable/replaced) --------------------
;;; <@262,#232> -------------------- B19 --------------------
;;; <@263,#232> gap
0x4583cebf 799 8b45bc mov eax,[ebp-0x44] ;; debug: position 3383
;;; <@264,#337> check-smi
0x4583cec2 802 a801 test al,0x1
0x4583cec4 804 0f85cf010000 jnz 1273 (0x4583d099)
;;; <@267,#235> compare-numeric-and-branch
0x4583ceca 810 83f800 cmp eax,0x0 ;; debug: position 3393
0x4583cecd 813 0f8e2c000000 jng 863 (0x4583ceff)
;;; <@268,#239> -------------------- B20 (unreachable/replaced) --------------------
;;; <@272,#300> -------------------- B21 (unreachable/replaced) --------------------
;;; <@276,#236> -------------------- B22 (unreachable/replaced) --------------------
;;; <@280,#242> -------------------- B23 --------------------
;;; <@281,#242> gap
0x4583ced3 819 8b45b8 mov eax,[ebp-0x48] ;; debug: position 3412
;;; <@282,#243> load-context-slot
0x4583ced6 822 8b7833 mov edi,[eax+0x33]
;;; <@284,#245> push-argument
0x4583ced9 825 68b1808026 push 0x268080b1 ;; object: 0x268080b1 <undefined>
;;; <@286,#245> push-argument
0x4583cede 830 ff75c8 push [ebp-0x38]
;;; <@287,#245> gap
0x4583cee1 833 89c6 mov esi,eax
0x4583cee3 835 8b4db4 mov ecx,[ebp-0x4c]
;;; <@288,#246> call-function
0x4583cee6 838 bb3588d028 mov ebx,0x28d08835 ;; object: 0x28d08835 <FixedArray[8]>
0x4583ceeb 843 ba0c000000 mov edx,0xc
0x4583cef0 848 e8ab7cfdff call 0x45814ba0 ;; code: CALL_IC, DEFAULT
;;; <@290,#247> lazy-bailout
;;; <@292,#260> gap
0x4583cef5 853 8b4db0 mov ecx,[ebp-0x50] ;; debug: position 3439
0x4583cef8 856 33c0 xor eax,eax
;;; <@294,#261> -------------------- B24 (loop header) --------------------
;;; <@297,#264> deoptimize
0x4583cefa 858 e84bd25c12 call 0x57e0a14a ;; debug: position 3455
;; debug: position 3457
;; debug: position 350720
;; debug: deopt reason 'Insufficient type feedback for combined type of binary operation'
;; soft deoptimization bailout 33
;;; <@298,#265> -------------------- B25 (unreachable/replaced) --------------------
;;; <@308,#269> -------------------- B26 (unreachable/replaced) --------------------
;;; <@312,#275> -------------------- B27 (unreachable/replaced) --------------------
;;; <@324,#285> -------------------- B28 (unreachable/replaced) --------------------
;;; <@334,#289> -------------------- B29 (unreachable/replaced) --------------------
;;; <@358,#272> -------------------- B30 (unreachable/replaced) --------------------
;;; <@362,#297> -------------------- B31 (unreachable/replaced) --------------------
;;; <@366,#312> -------------------- B32 --------------------
;;; <@367,#312> gap
0x4583ceff 863 8b75b8 mov esi,[ebp-0x48] ;; debug: position 3528
0x4583cf02 866 8b55ac mov edx,[ebp-0x54]
;;; <@368,#313> load-named-generic
0x4583cf05 869 b9c9e98826 mov ecx,0x2688e9c9 ;; object: 0x2688e9c9 <String[11]: setPosition>
0x4583cf0a 874 e8b1e9feff call 0x4582b8c0 ;; code: LOAD_IC, PREMONOMORPHIC
;;; <@369,#313> gap
0x4583cf0f 879 8945a0 mov [ebp-0x60],eax
;;; <@370,#314> lazy-bailout
;;; <@371,#314> gap
0x4583cf12 882 8b4db8 mov ecx,[ebp-0x48]
;;; <@372,#315> load-context-slot
0x4583cf15 885 8b591f mov ebx,[ecx+0x1f] ;; debug: position 3540
;;; <@373,#315> gap
0x4583cf18 888 895da8 mov [ebp-0x58],ebx
0x4583cf1b 891 89ce mov esi,ecx
0x4583cf1d 893 8b55b4 mov edx,[ebp-0x4c]
;;; <@374,#316> load-named-generic
0x4583cf20 896 b981968226 mov ecx,0x26829681 ;; debug: position 3559
;; object: 0x26829681 <String[6]: length>
0x4583cf25 901 e896e9feff call 0x4582b8c0 ;; code: LOAD_IC, PREMONOMORPHIC
;;; <@376,#317> lazy-bailout
;;; <@377,#317> gap
0x4583cf2a 906 8b4da8 mov ecx,[ebp-0x58]
;;; <@378,#343> check-smi
0x4583cf2d 909 f6c101 test_b cl,0x1 ;; debug: position 3540
0x4583cf30 912 0f8568010000 jnz 1278 (0x4583d09e)
;;; <@379,#343> gap
0x4583cf36 918 89c2 mov edx,eax
;;; <@380,#344> check-smi
0x4583cf38 920 f6c201 test_b dl,0x1 ;; debug: position 3559
0x4583cf3b 923 0f8562010000 jnz 1283 (0x4583d0a3)
;;; <@382,#318> add-i
0x4583cf41 929 03d1 add edx,ecx ;; debug: position 3551
0x4583cf43 931 0f805f010000 jo 1288 (0x4583d0a8)
;;; <@384,#345> dummy-use
;;; <@386,#320> push-argument
0x4583cf49 937 ff75ac push [ebp-0x54] ;; debug: position 3528
;;; <@388,#320> push-argument
0x4583cf4c 940 52 push edx
;;; <@389,#320> gap
0x4583cf4d 941 8b75b8 mov esi,[ebp-0x48]
0x4583cf50 944 8b7da0 mov edi,[ebp-0x60]
;;; <@390,#321> call-function
0x4583cf53 947 e8a8f7ffff call 0x4583c700 ;; code: STUB, CallFunctionStub, argc = 1
;;; <@392,#322> lazy-bailout
;;; <@394,#5> constant-t
0x4583cf58 952 b8b1808026 mov eax,0x268080b1 ;; debug: position 2772
;; object: 0x268080b1 <undefined>
;;; <@396,#324> return
0x4583cf5d 957 8b55f4 mov edx,[ebp-0xc]
0x4583cf60 960 89ec mov esp,ebp
0x4583cf62 962 5d pop ebp
0x4583cf63 963 83fa00 cmp edx,0x0
0x4583cf66 966 7403 jz 971 (0x4583cf6b)
0x4583cf68 968 c20c00 ret 0xc
0x4583cf6b 971 c20800 ret 0x8
;;; <@32,#327> -------------------- Deferred tagged-to-i --------------------
0x4583cf6e 974 8d0c4d01000000 lea ecx,[ecx*2+0x1] ;; debug: position 2852
0x4583cf75 981 8179ff0d822030 cmp [ecx-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583cf7c 988 0f852b010000 jnz 1293 (0x4583d0ad)
0x4583cf82 994 f20f104103 movsd xmm0,[ecx+0x3]
0x4583cf87 999 f20f2cc8 cvttsd2si ecx,xmm0
0x4583cf8b 1003 0f57c9 xorps xmm1,xmm1
0x4583cf8e 1006 f20f2ac9 cvtsi2sd xmm1,ecx
0x4583cf92 1010 660f2ec1 ucomisd xmm0,xmm1
0x4583cf96 1014 0f8516010000 jnz 1298 (0x4583d0b2)
0x4583cf9c 1020 0f8a15010000 jpe 1303 (0x4583d0b7)
0x4583cfa2 1026 85c9 test ecx,ecx
0x4583cfa4 1028 0f8578fcffff jnz 130 (0x4583cc22)
0x4583cfaa 1034 660f50c8 movmskpd ecx,xmm0
0x4583cfae 1038 83e101 and ecx,0x1
0x4583cfb1 1041 0f8505010000 jnz 1308 (0x4583d0bc)
0x4583cfb7 1047 e966fcffff jmp 130 (0x4583cc22)
;;; <@42,#330> -------------------- Deferred tagged-to-i --------------------
0x4583cfbc 1052 8d347501000000 lea esi,[esi*2+0x1] ;; debug: position 2913
0x4583cfc3 1059 817eff0d822030 cmp [esi-0x1],0x3020820d ;; object: 0x3020820d <Map(elements=3)>
0x4583cfca 1066 0f85f1000000 jnz 1313 (0x4583d0c1)
0x4583cfd0 1072 f20f104603 movsd xmm0,[esi+0x3]
0x4583cfd5 1077 f20f2cf0 cvttsd2si esi,xmm0
0x4583cfd9 1081 0f57c9 xorps xmm1,xmm1
0x4583cfdc 1084 f20f2ace cvtsi2sd xmm1,esi
0x4583cfe0 1088 660f2ec1 ucomisd xmm0,xmm1
0x4583cfe4 1092 0f85dc000000 jnz 1318 (0x4583d0c6)
0x4583cfea 1098 0f8adb000000 jpe 1323 (0x4583d0cb)
0x4583cff0 1104 e966fcffff jmp 187 (0x4583cc5b)
;;; <@106,#76> -------------------- Deferred stack-check --------------------
0x4583cff5 1109 60 pushad ;; debug: position 3073
0x4583cff6 1110 8b75fc mov esi,[ebp-0x4]
0x4583cff9 1113 33c0 xor eax,eax
0x4583cffb 1115 bb003d4608 mov ebx,0x8463d00
0x4583d000 1120 e8bbebfcff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583d005 1125 61 popad
0x4583d006 1126 e909fdffff jmp 372 (0x4583cd14)
;;; <@234,#199> -------------------- Deferred stack-check --------------------
0x4583d00b 1131 60 pushad ;; debug: position 3264
0x4583d00c 1132 8b75fc mov esi,[ebp-0x4]
0x4583d00f 1135 33c0 xor eax,eax
0x4583d011 1137 bb003d4608 mov ebx,0x8463d00
0x4583d016 1142 e8a5ebfcff call 0x4580bbc0 ;; code: STUB, CEntryStub, minor: 1
0x4583d01b 1147 61 popad
0x4583d01c 1148 e951feffff jmp 722 (0x4583ce72)
;;; -------------------- Jump table --------------------
0x4583d021 1153 e8e4cffcf6 call 0x3c80a00a ;; debug: position 20992
;; debug: deopt reason 'Smi'
;; deoptimization bailout 1
0x4583d026 1158 e8e9cffcf6 call 0x3c80a014 ;; debug: position 20992
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 2
0x4583d02b 1163 e8eecffcf6 call 0x3c80a01e ;; debug: position 20992
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 3
0x4583d030 1168 e8f3cffcf6 call 0x3c80a028 ;; debug: position 72192
;; debug: deopt reason 'Smi'
;; deoptimization bailout 4
0x4583d035 1173 e8f8cffcf6 call 0x3c80a032 ;; debug: position 72192
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 5
0x4583d03a 1178 e8fdcffcf6 call 0x3c80a03c ;; debug: position 68096
;; debug: deopt reason 'overflow'
;; deoptimization bailout 6
0x4583d03f 1183 e802d0fcf6 call 0x3c80a046 ;; debug: position 76800
;; debug: deopt reason 'minus zero'
;; deoptimization bailout 7
0x4583d044 1188 e811d0fcf6 call 0x3c80a05a ;; debug: position 142336
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 9
0x4583d049 1193 e820d0fcf6 call 0x3c80a06e ;; debug: position 185856
;; debug: deopt reason 'Smi'
;; deoptimization bailout 11
0x4583d04e 1198 e825d0fcf6 call 0x3c80a078 ;; debug: position 185856
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 12
0x4583d053 1203 e834d0fcf6 call 0x3c80a08c ;; debug: position 181248
;; debug: deopt reason 'overflow'
;; deoptimization bailout 14
0x4583d058 1208 e839d0fcf6 call 0x3c80a096 ;; debug: position 185856
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 15
0x4583d05d 1213 e83ed0fcf6 call 0x3c80a0a0 ;; debug: position 183296
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 16
0x4583d062 1218 e84dd0fcf6 call 0x3c80a0b4 ;; debug: position 210432
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 18
0x4583d067 1223 e852d0fcf6 call 0x3c80a0be ;; debug: position 226304
;; debug: deopt reason 'Smi'
;; deoptimization bailout 19
0x4583d06c 1228 e857d0fcf6 call 0x3c80a0c8 ;; debug: position 279552
;; debug: deopt reason 'Smi'
;; deoptimization bailout 20
0x4583d071 1233 e85cd0fcf6 call 0x3c80a0d2 ;; debug: position 219136
;; debug: deopt reason 'overflow'
;; deoptimization bailout 21
0x4583d076 1238 e861d0fcf6 call 0x3c80a0dc ;; debug: position 226304
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 22
0x4583d07b 1243 e866d0fcf6 call 0x3c80a0e6 ;; debug: position 226304
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 23
0x4583d080 1248 e86bd0fcf6 call 0x3c80a0f0 ;; debug: position 238080
;; debug: deopt reason 'value mismatch'
;; deoptimization bailout 24
0x4583d085 1253 e87ad0fcf6 call 0x3c80a104 ;; debug: position 279552
;; debug: deopt reason 'wrong map'
;; deoptimization bailout 26
0x4583d08a 1258 e889d0fcf6 call 0x3c80a118 ;; debug: position 274944
;; debug: deopt reason 'overflow'
;; deoptimization bailout 28
0x4583d08f 1263 e88ed0fcf6 call 0x3c80a122 ;; debug: position 279552
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 29
0x4583d094 1268 e893d0fcf6 call 0x3c80a12c ;; debug: position 276992
;; debug: deopt reason 'out of bounds'
;; deoptimization bailout 30
0x4583d099 1273 e898d0fcf6 call 0x3c80a136 ;; debug: position 312832
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 31
0x4583d09e 1278 e8c5d0fcf6 call 0x3c80a168 ;; debug: position 393216
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 36
0x4583d0a3 1283 e8cad0fcf6 call 0x3c80a172 ;; debug: position 402944
;; debug: deopt reason 'not a Smi'
;; deoptimization bailout 37
0x4583d0a8 1288 e8cfd0fcf6 call 0x3c80a17c ;; debug: position 398848
;; debug: deopt reason 'overflow'
;; deoptimization bailout 38
0x4583d0ad 1293 e8ded0fcf6 call 0x3c80a190 ;; debug: position 40960
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 40
0x4583d0b2 1298 e8d9d0fcf6 call 0x3c80a190 ;; debug: position 40960
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 40
0x4583d0b7 1303 e8d4d0fcf6 call 0x3c80a190 ;; debug: position 40960
;; debug: deopt reason 'NaN'
;; deoptimization bailout 40
0x4583d0bc 1308 e8cfd0fcf6 call 0x3c80a190 ;; debug: position 40960
;; debug: deopt reason 'minus zero'
;; deoptimization bailout 40
0x4583d0c1 1313 e8d4d0fcf6 call 0x3c80a19a ;; debug: position 72192
;; debug: deopt reason 'not a heap number'
;; deoptimization bailout 41
0x4583d0c6 1318 e8cfd0fcf6 call 0x3c80a19a ;; debug: position 72192
;; debug: deopt reason 'lost precision'
;; deoptimization bailout 41
0x4583d0cb 1323 e8cad0fcf6 call 0x3c80a19a ;; debug: position 72192
;; debug: deopt reason 'NaN'
;; deoptimization bailout 41
0x4583d0d0 1328 90 nop
0x4583d0d1 1329 90 nop
0x4583d0d2 1330 90 nop
0x4583d0d3 1331 90 nop
0x4583d0d4 1332 90 nop
0x4583d0d5 1333 0f1f00 nop
;;; Safepoint table.
Deoptimization Input Data (deopt points = 42)
index ast id argc pc
0 3 0 73
1 3 0 -1
2 3 0 -1
3 3 0 -1
4 3 0 -1
5 3 0 -1
6 3 0 -1
7 3 0 -1
8 96 0 257
9 96 0 -1
10 116 0 292
11 124 0 -1
12 124 0 -1
13 128 0 372
14 128 0 -1
15 128 0 -1
16 128 0 -1
17 184 0 -1
18 182 0 -1
19 182 0 -1
20 182 0 -1
21 182 0 -1
22 189 0 -1
23 189 0 -1
24 185 0 -1
25 210 0 650
26 218 0 -1
27 222 0 722
28 222 0 -1
29 222 0 -1
30 222 0 -1
31 183 0 -1
32 291 0 853
33 299 0 -1
34 363 0 882
35 376 0 906
36 376 0 -1
37 376 0 -1
38 376 0 -1
39 357 0 952
40 3 0 -1
41 3 0 -1
Safepoints (size = 128)
0x4583cbe9 73 0000000000000010000000 (sp -> fp) 0
0x4583cc9e 254 0000000000000010000000 (sp -> fp) 8
0x4583ccc4 292 0000000000010010000000 (sp -> fp) 10
0x4583ce2a 650 0001011100100000000000 (sp -> fp) 25
0x4583cef5 853 0001011100100000000000 (sp -> fp) 32
0x4583cf0f 879 0001011000000000000000 (sp -> fp) 34
0x4583cf2a 906 1011011000000000000000 (sp -> fp) 35
0x4583cf58 952 0001011000000000000000 (sp -> fp) 39
0x4583d005 1125 0000000000010010000000 | edx (sp -> fp) 13
0x4583d01b 1147 0001011100100000000000 | edx (sp -> fp) 27
RelocInfo (size = 2022)
0x4583cbd1 comment (;;; Store dynamic frame alignment tag for spilled doubles)
0x4583cbd4 position (2772)
0x4583cbd4 comment (;;; <@0,#0> -------------------- B0 --------------------)
0x4583cbd4 comment (;;; <@2,#1> context)
0x4583cbd7 comment (;;; <@3,#1> gap)
0x4583cbda comment (;;; <@10,#8> -------------------- B1 --------------------)
0x4583cbda comment (;;; <@11,#8> gap)
0x4583cbdc comment (;;; <@12,#10> stack-check)
0x4583cbe5 code target (BUILTIN) (0x4582efc0)
0x4583cbe9 comment (;;; <@14,#10> lazy-bailout)
0x4583cbe9 comment (;;; <@15,#10> gap)
0x4583cbec comment (;;; <@16,#11> load-context-slot)
0x4583cbec position (2808)
0x4583cbef comment (;;; <@18,#13> check-non-smi)
0x4583cbef position (2813)
0x4583cbf8 comment (;;; <@20,#14> check-maps)
0x4583cbfb embedded object (0x3020dca1 <Map(elements=21)>)
0x4583cc05 comment (;;; <@22,#15> load-named-field)
0x4583cc08 comment (;;; <@24,#16> load-named-field)
0x4583cc0b comment (;;; <@26,#17> bounds-check)
0x4583cc14 comment (;;; <@28,#18> load-keyed)
0x4583cc17 comment (;;; <@30,#20> load-context-slot)
0x4583cc17 position (2852)
0x4583cc1a comment (;;; <@32,#327> tagged-to-i)
0x4583cc22 comment (;;; <@33,#327> gap)
0x4583cc24 comment (;;; <@34,#22> mod-by-power-of-2-i)
0x4583cc24 position (2863)
0x4583cc34 comment (;;; <@35,#22> gap)
0x4583cc3a comment (;;; <@36,#27> check-non-smi)
0x4583cc3a position (2913)
0x4583cc43 comment (;;; <@38,#28> check-maps)
0x4583cc46 embedded object (0x3020f509 <Map(elements=9)>)
0x4583cc50 comment (;;; <@40,#29> load-named-field)
0x4583cc53 comment (;;; <@42,#330> tagged-to-i)
0x4583cc5b comment (;;; <@44,#30> add-i)
0x4583cc5b position (2905)
0x4583cc63 comment (;;; <@45,#30> gap)
0x4583cc65 comment (;;; <@46,#33> mod-by-power-of-2-i)
0x4583cc65 position (2922)
0x4583cc7b comment (;;; <@47,#33> gap)
0x4583cc7e comment (;;; <@48,#38> push-argument)
0x4583cc7e position (2955)
0x4583cc7f embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x4583cc83 comment (;;; <@50,#38> push-argument)
0x4583cc88 comment (;;; <@52,#36> constant-t)
0x4583cc88 position (2959)
0x4583cc89 embedded object (0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)>)
0x4583cc8d comment (;;; <@53,#36> gap)
0x4583cc8f comment (;;; <@54,#39> call-new)
0x4583cc8f position (2955)
0x4583cc90 embedded object (0x268080b1 <undefined>)
0x4583cc9a code target (js construct call) (STUB) (0x458257c0)
0x4583cc9e comment (;;; <@55,#39> gap)
0x4583cca1 comment (;;; <@56,#40> lazy-bailout)
0x4583cca1 comment (;;; <@57,#40> gap)
0x4583cca4 comment (;;; <@58,#44> load-context-slot)
0x4583cca4 position (3050)
0x4583cca7 comment (;;; <@60,#46> check-value)
0x4583cca9 embedded object (0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>)
0x4583ccb3 comment (;;; <@62,#47> push-argument)
0x4583ccb4 embedded object (0x268080b1 <undefined>)
0x4583ccb8 comment (;;; <@64,#47> push-argument)
0x4583ccb9 comment (;;; <@66,#48> constant-t)
0x4583ccba embedded object (0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>)
0x4583ccbe comment (;;; <@68,#49> call-js-function)
0x4583ccc4 comment (;;; <@70,#50> lazy-bailout)
0x4583ccc4 comment (;;; <@72,#84> check-non-smi)
0x4583ccc4 position (3135)
0x4583ccce comment (;;; <@73,#84> gap)
0x4583ccd1 comment (;;; <@74,#85> check-maps)
0x4583ccd4 embedded object (0x3020da91 <Map(elements=17)>)
0x4583ccde comment (;;; <@76,#86> load-named-field)
0x4583cce1 comment (;;; <@78,#87> load-named-field)
0x4583cce4 comment (;;; <@79,#87> gap)
0x4583cce6 comment (;;; <@80,#335> smi-untag)
0x4583cce8 comment (;;; <@81,#335> gap)
0x4583cceb comment (;;; <@82,#91> check-maps)
0x4583cceb position (3130)
0x4583cceb comment (;;; <@84,#93> check-maps)
0x4583cceb comment (;;; <@86,#95> check-maps)
0x4583cceb comment (;;; <@87,#95> gap)
0x4583ccee comment (;;; <@88,#96> load-named-field)
0x4583ccf1 comment (;;; <@90,#97> load-named-field)
0x4583ccf4 comment (;;; <@92,#98> load-named-field)
0x4583ccf7 comment (;;; <@93,#98> gap)
0x4583ccfa comment (;;; <@94,#63> gap)
0x4583ccfa position (3073)
0x4583ccff position (3097)
0x4583ccff comment (;;; <@96,#64> -------------------- B2 (loop header) --------------------)
0x4583ccff position (3099)
0x4583ccff comment (;;; <@99,#67> compare-numeric-and-branch)
0x4583cd08 comment (;;; <@100,#68> -------------------- B3 (unreachable/replaced) --------------------)
0x4583cd08 position (3073)
0x4583cd08 comment (;;; <@104,#74> -------------------- B4 --------------------)
0x4583cd08 comment (;;; <@106,#76> stack-check)
0x4583cd14 comment (;;; <@107,#76> gap)
0x4583cd16 comment (;;; <@108,#80> add-i)
0x4583cd16 position (3126)
0x4583cd1f comment (;;; <@109,#80> gap)
0x4583cd22 comment (;;; <@110,#88> bounds-check)
0x4583cd22 position (3135)
0x4583cd2a comment (;;; <@112,#89> load-keyed)
0x4583cd2f comment (;;; <@114,#99> bounds-check)
0x4583cd2f position (3130)
0x4583cd37 comment (;;; <@115,#99> gap)
0x4583cd3c comment (;;; <@116,#100> store-keyed)
0x4583cd41 comment (;;; <@118,#103> add-i)
0x4583cd41 position (3106)
0x4583cd44 comment (;;; <@120,#106> gap)
0x4583cd44 position (3073)
0x4583cd4a comment (;;; <@121,#106> goto)
0x4583cd4c comment (;;; <@122,#71> -------------------- B5 (unreachable/replaced) --------------------)
0x4583cd4c comment (;;; <@126,#108> -------------------- B6 (unreachable/replaced) --------------------)
0x4583cd4c position (3183)
0x4583cd4c comment (;;; <@130,#113> -------------------- B7 (OSR entry) --------------------)
0x4583cd81 comment (;;; <@152,#125> context)
0x4583cd84 comment (;;; <@153,#125> gap)
0x4583cd87 comment (;;; <@154,#336> check-smi)
0x4583cd8f comment (;;; <@156,#127> gap)
0x4583cd9f comment (;;; <@157,#127> goto)
0x4583cda4 comment (;;; <@158,#110> -------------------- B8 --------------------)
0x4583cda4 comment (;;; <@159,#110> gap)
0x4583cda7 comment (;;; <@160,#332> smi-tag)
0x4583cda9 comment (;;; <@162,#112> gap)
0x4583cdb7 comment (;;; <@164,#146> -------------------- B9 --------------------)
0x4583cdc6 comment (;;; <@166,#154> check-non-smi)
0x4583cdc6 position (3214)
0x4583cdcf comment (;;; <@168,#206> check-non-smi)
0x4583cdcf position (3318)
0x4583cdd7 comment (;;; <@170,#215> check-maps)
0x4583cdd7 position (3313)
0x4583cdd7 comment (;;; <@172,#217> check-maps)
0x4583cdd7 position (3190)
0x4583cdd7 comment (;;; <@176,#149> -------------------- B10 (loop header) --------------------)
0x4583cdda comment (;;; <@177,#149> gap)
0x4583cddc comment (;;; <@178,#152> add-i)
0x4583cddc position (3200)
0x4583cde7 comment (;;; <@180,#155> check-maps)
0x4583cde7 position (3214)
0x4583cdea embedded object (0x3020f509 <Map(elements=9)>)
0x4583cdf4 comment (;;; <@182,#156> load-named-field)
0x4583cdf7 comment (;;; <@184,#338> check-smi)
0x4583ce00 position (3205)
0x4583ce00 comment (;;; <@187,#157> compare-numeric-and-branch)
0x4583ce08 comment (;;; <@188,#158> -------------------- B11 (unreachable/replaced) --------------------)
0x4583ce08 position (3183)
0x4583ce08 comment (;;; <@192,#164> -------------------- B12 --------------------)
0x4583ce08 comment (;;; <@194,#167> load-context-slot)
0x4583ce08 position (3237)
0x4583ce0b comment (;;; <@196,#169> check-value)
0x4583ce0c embedded object (0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>)
0x4583ce16 comment (;;; <@198,#170> push-argument)
0x4583ce17 embedded object (0x268080b1 <undefined>)
0x4583ce1b comment (;;; <@200,#170> push-argument)
0x4583ce1e comment (;;; <@202,#171> constant-t)
0x4583ce1f embedded object (0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)>)
0x4583ce23 comment (;;; <@203,#171> gap)
0x4583ce24 comment (;;; <@204,#172> call-js-function)
0x4583ce2a comment (;;; <@206,#173> lazy-bailout)
0x4583ce2a comment (;;; <@207,#173> gap)
0x4583ce2d comment (;;; <@208,#207> check-maps)
0x4583ce2d position (3318)
0x4583ce30 embedded object (0x3020da91 <Map(elements=17)>)
0x4583ce3a comment (;;; <@210,#208> load-named-field)
0x4583ce3d comment (;;; <@212,#209> load-named-field)
0x4583ce40 comment (;;; <@213,#209> gap)
0x4583ce43 comment (;;; <@214,#213> check-maps)
0x4583ce43 position (3313)
0x4583ce43 comment (;;; <@215,#213> gap)
0x4583ce46 comment (;;; <@216,#218> load-named-field)
0x4583ce49 comment (;;; <@218,#219> load-named-field)
0x4583ce4c comment (;;; <@220,#220> load-named-field)
0x4583ce4f comment (;;; <@221,#220> gap)
0x4583ce52 comment (;;; <@222,#186> gap)
0x4583ce52 position (3264)
0x4583ce57 position (3280)
0x4583ce57 comment (;;; <@224,#187> -------------------- B13 (loop header) --------------------)
0x4583ce5a position (3282)
0x4583ce5a comment (;;; <@227,#190> compare-numeric-and-branch)
0x4583ce66 comment (;;; <@228,#191> -------------------- B14 (unreachable/replaced) --------------------)
0x4583ce66 position (3264)
0x4583ce66 comment (;;; <@232,#197> -------------------- B15 --------------------)
0x4583ce66 comment (;;; <@234,#199> stack-check)
0x4583ce72 comment (;;; <@235,#199> gap)
0x4583ce74 comment (;;; <@236,#202> add-i)
0x4583ce74 position (3309)
0x4583ce7d comment (;;; <@238,#210> bounds-check)
0x4583ce7d position (3318)
0x4583ce85 comment (;;; <@239,#210> gap)
0x4583ce87 comment (;;; <@240,#211> load-keyed)
0x4583ce8e comment (;;; <@242,#221> bounds-check)
0x4583ce8e position (3313)
0x4583ce96 comment (;;; <@243,#221> gap)
0x4583ce9d comment (;;; <@244,#222> store-keyed)
0x4583cea2 comment (;;; <@245,#222> gap)
0x4583cea5 comment (;;; <@246,#225> add-i)
0x4583cea5 position (3289)
0x4583cea8 comment (;;; <@248,#228> gap)
0x4583cea8 position (3264)
0x4583ceaf comment (;;; <@249,#228> goto)
0x4583ceb1 comment (;;; <@250,#194> -------------------- B16 (unreachable/replaced) --------------------)
0x4583ceb1 position (3183)
0x4583ceb1 comment (;;; <@254,#229> -------------------- B17 --------------------)
0x4583ceb1 comment (;;; <@256,#231> gap)
0x4583ceba comment (;;; <@257,#231> goto)
0x4583cebf comment (;;; <@258,#161> -------------------- B18 (unreachable/replaced) --------------------)
0x4583cebf position (3383)
0x4583cebf comment (;;; <@262,#232> -------------------- B19 --------------------)
0x4583cebf comment (;;; <@263,#232> gap)
0x4583cec2 comment (;;; <@264,#337> check-smi)
0x4583ceca position (3393)
0x4583ceca comment (;;; <@267,#235> compare-numeric-and-branch)
0x4583ced3 comment (;;; <@268,#239> -------------------- B20 (unreachable/replaced) --------------------)
0x4583ced3 comment (;;; <@272,#300> -------------------- B21 (unreachable/replaced) --------------------)
0x4583ced3 comment (;;; <@276,#236> -------------------- B22 (unreachable/replaced) --------------------)
0x4583ced3 position (3412)
0x4583ced3 comment (;;; <@280,#242> -------------------- B23 --------------------)
0x4583ced3 comment (;;; <@281,#242> gap)
0x4583ced6 comment (;;; <@282,#243> load-context-slot)
0x4583ced9 comment (;;; <@284,#245> push-argument)
0x4583ceda embedded object (0x268080b1 <undefined>)
0x4583cede comment (;;; <@286,#245> push-argument)
0x4583cee1 comment (;;; <@287,#245> gap)
0x4583cee6 comment (;;; <@288,#246> call-function)
0x4583cee7 embedded object (0x28d08835 <FixedArray[8]>)
0x4583cef1 code target (CALL_IC) (0x45814ba0)
0x4583cef5 comment (;;; <@290,#247> lazy-bailout)
0x4583cef5 comment (;;; <@292,#260> gap)
0x4583cef5 position (3439)
0x4583cefa position (3455)
0x4583cefa comment (;;; <@294,#261> -------------------- B24 (loop header) --------------------)
0x4583cefa position (3457)
0x4583cefa comment (;;; <@297,#264> deoptimize)
0x4583cefa position (350720)
0x4583cefa deopt reason (Insufficient type feedback for combined type of binary operation)
0x4583cefb runtime entry
0x4583ceff comment (;;; <@298,#265> -------------------- B25 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@308,#269> -------------------- B26 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@312,#275> -------------------- B27 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@324,#285> -------------------- B28 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@334,#289> -------------------- B29 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@358,#272> -------------------- B30 (unreachable/replaced) --------------------)
0x4583ceff comment (;;; <@362,#297> -------------------- B31 (unreachable/replaced) --------------------)
0x4583ceff position (3528)
0x4583ceff comment (;;; <@366,#312> -------------------- B32 --------------------)
0x4583ceff comment (;;; <@367,#312> gap)
0x4583cf05 comment (;;; <@368,#313> load-named-generic)
0x4583cf06 embedded object (0x2688e9c9 <String[11]: setPosition>)
0x4583cf0b code target (LOAD_IC) (0x4582b8c0)
0x4583cf0f comment (;;; <@369,#313> gap)
0x4583cf12 comment (;;; <@370,#314> lazy-bailout)
0x4583cf12 comment (;;; <@371,#314> gap)
0x4583cf15 comment (;;; <@372,#315> load-context-slot)
0x4583cf15 position (3540)
0x4583cf18 comment (;;; <@373,#315> gap)
0x4583cf20 comment (;;; <@374,#316> load-named-generic)
0x4583cf20 position (3559)
0x4583cf21 embedded object (0x26829681 <String[6]: length>)
0x4583cf26 code target (LOAD_IC) (0x4582b8c0)
0x4583cf2a comment (;;; <@376,#317> lazy-bailout)
0x4583cf2a comment (;;; <@377,#317> gap)
0x4583cf2d comment (;;; <@378,#343> check-smi)
0x4583cf2d position (3540)
0x4583cf36 comment (;;; <@379,#343> gap)
0x4583cf38 comment (;;; <@380,#344> check-smi)
0x4583cf38 position (3559)
0x4583cf41 comment (;;; <@382,#318> add-i)
0x4583cf41 position (3551)
0x4583cf49 comment (;;; <@384,#345> dummy-use)
0x4583cf49 position (3528)
0x4583cf49 comment (;;; <@386,#320> push-argument)
0x4583cf4c comment (;;; <@388,#320> push-argument)
0x4583cf4d comment (;;; <@389,#320> gap)
0x4583cf53 comment (;;; <@390,#321> call-function)
0x4583cf54 code target (STUB) (0x4583c700)
0x4583cf58 comment (;;; <@392,#322> lazy-bailout)
0x4583cf58 comment (;;; <@394,#5> constant-t)
0x4583cf58 position (2772)
0x4583cf59 embedded object (0x268080b1 <undefined>)
0x4583cf5d comment (;;; <@396,#324> return)
0x4583cf6e position (2852)
0x4583cf6e comment (;;; <@32,#327> -------------------- Deferred tagged-to-i --------------------)
0x4583cf78 embedded object (0x3020820d <Map(elements=3)>)
0x4583cfbc position (2913)
0x4583cfbc comment (;;; <@42,#330> -------------------- Deferred tagged-to-i --------------------)
0x4583cfc6 embedded object (0x3020820d <Map(elements=3)>)
0x4583cff5 position (3073)
0x4583cff5 comment (;;; <@106,#76> -------------------- Deferred stack-check --------------------)
0x4583d001 code target (STUB) (0x4580bbc0)
0x4583d00b position (3264)
0x4583d00b comment (;;; <@234,#199> -------------------- Deferred stack-check --------------------)
0x4583d017 code target (STUB) (0x4580bbc0)
0x4583d021 comment (;;; -------------------- Jump table --------------------)
0x4583d021 position (20992)
0x4583d021 deopt reason (Smi)
0x4583d022 runtime entry (deoptimization bailout 1)
0x4583d026 position (20992)
0x4583d026 deopt reason (wrong map)
0x4583d027 runtime entry (deoptimization bailout 2)
0x4583d02b position (20992)
0x4583d02b deopt reason (out of bounds)
0x4583d02c runtime entry (deoptimization bailout 3)
0x4583d030 position (72192)
0x4583d030 deopt reason (Smi)
0x4583d031 runtime entry (deoptimization bailout 4)
0x4583d035 position (72192)
0x4583d035 deopt reason (wrong map)
0x4583d036 runtime entry (deoptimization bailout 5)
0x4583d03a position (68096)
0x4583d03a deopt reason (overflow)
0x4583d03b runtime entry (deoptimization bailout 6)
0x4583d03f position (76800)
0x4583d03f deopt reason (minus zero)
0x4583d040 runtime entry (deoptimization bailout 7)
0x4583d044 position (142336)
0x4583d044 deopt reason (value mismatch)
0x4583d045 runtime entry (deoptimization bailout 9)
0x4583d049 position (185856)
0x4583d049 deopt reason (Smi)
0x4583d04a runtime entry (deoptimization bailout 11)
0x4583d04e position (185856)
0x4583d04e deopt reason (wrong map)
0x4583d04f runtime entry (deoptimization bailout 12)
0x4583d053 position (181248)
0x4583d053 deopt reason (overflow)
0x4583d054 runtime entry (deoptimization bailout 14)
0x4583d058 position (185856)
0x4583d058 deopt reason (out of bounds)
0x4583d059 runtime entry (deoptimization bailout 15)
0x4583d05d position (183296)
0x4583d05d deopt reason (out of bounds)
0x4583d05e runtime entry (deoptimization bailout 16)
0x4583d062 position (210432)
0x4583d062 deopt reason (not a Smi)
0x4583d063 runtime entry (deoptimization bailout 18)
0x4583d067 position (226304)
0x4583d067 deopt reason (Smi)
0x4583d068 runtime entry (deoptimization bailout 19)
0x4583d06c position (279552)
0x4583d06c deopt reason (Smi)
0x4583d06d runtime entry (deoptimization bailout 20)
0x4583d071 position (219136)
0x4583d071 deopt reason (overflow)
0x4583d072 runtime entry (deoptimization bailout 21)
0x4583d076 position (226304)
0x4583d076 deopt reason (wrong map)
0x4583d077 runtime entry (deoptimization bailout 22)
0x4583d07b position (226304)
0x4583d07b deopt reason (not a Smi)
0x4583d07c runtime entry (deoptimization bailout 23)
0x4583d080 position (238080)
0x4583d080 deopt reason (value mismatch)
0x4583d081 runtime entry (deoptimization bailout 24)
0x4583d085 position (279552)
0x4583d085 deopt reason (wrong map)
0x4583d086 runtime entry (deoptimization bailout 26)
0x4583d08a position (274944)
0x4583d08a deopt reason (overflow)
0x4583d08b runtime entry (deoptimization bailout 28)
0x4583d08f position (279552)
0x4583d08f deopt reason (out of bounds)
0x4583d090 runtime entry (deoptimization bailout 29)
0x4583d094 position (276992)
0x4583d094 deopt reason (out of bounds)
0x4583d095 runtime entry (deoptimization bailout 30)
0x4583d099 position (312832)
0x4583d099 deopt reason (not a Smi)
0x4583d09a runtime entry (deoptimization bailout 31)
0x4583d09e position (393216)
0x4583d09e deopt reason (not a Smi)
0x4583d09f runtime entry (deoptimization bailout 36)
0x4583d0a3 position (402944)
0x4583d0a3 deopt reason (not a Smi)
0x4583d0a4 runtime entry (deoptimization bailout 37)
0x4583d0a8 position (398848)
0x4583d0a8 deopt reason (overflow)
0x4583d0a9 runtime entry (deoptimization bailout 38)
0x4583d0ad position (40960)
0x4583d0ad deopt reason (not a heap number)
0x4583d0ae runtime entry (deoptimization bailout 40)
0x4583d0b2 position (40960)
0x4583d0b2 deopt reason (lost precision)
0x4583d0b3 runtime entry (deoptimization bailout 40)
0x4583d0b7 position (40960)
0x4583d0b7 deopt reason (NaN)
0x4583d0b8 runtime entry (deoptimization bailout 40)
0x4583d0bc position (40960)
0x4583d0bc deopt reason (minus zero)
0x4583d0bd runtime entry (deoptimization bailout 40)
0x4583d0c1 position (72192)
0x4583d0c1 deopt reason (not a heap number)
0x4583d0c2 runtime entry (deoptimization bailout 41)
0x4583d0c6 position (72192)
0x4583d0c6 deopt reason (lost precision)
0x4583d0c7 runtime entry (deoptimization bailout 41)
0x4583d0cb position (72192)
0x4583d0cb deopt reason (NaN)
0x4583d0cc runtime entry (deoptimization bailout 41)
0x4583d0d8 comment (;;; Safepoint table.)
--- End code ---
begin_compilation
name ""
method ":0"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 14
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 4 s106 Constant 1 type:Smi <|@
0 1 t48 Constant 0x26808105 <true> [map 0x30208265] <|@
0 3 t4 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 8 t1 Context type:Tagged <|@
0 3 t2 Parameter 0 type:Tagged <|@
0 0 t3 ArgumentsObject t2 type:Tagged <|@
0 0 v5 Simulate id=2 var[2] = t4, var[1] = t1, var[0] = t2 type:Tagged <|@
0 0 v6 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:2] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-1]= [hir:t2] <|@
10 gap () ([stack:-1];) () () [hir:t2] <|@
12 gap () () () () [hir:v6] <|@
14 goto B1 [hir:v6] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B3" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 16
last_lir_id 142
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v7 BlockEntry type:Tagged <|@
0 0 t8 DeclareGlobals t1 changes[*] type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 1 t11 Constant 0x2688bde1 <String[10]: iterations> [map 0x30208131] pos:15 <|@
0 3 t476 Constant 0 pos:15 <|@
0 1 t477 Constant 2 pos:15 <|@
0 0 t14 PushArguments t11 t476 t477 type:Tagged pos:15 <|@
0 0 t15 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:15 <|@
0 0 v16 Simulate id=29 type:Tagged pos:15 <|@
0 1 t17 Constant 0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)> pos:20 <|@
0 1 t23 Constant 0x2c013e51 <String[15]: Running (2)... > [new space] pos:51 <|@
0 4 t25 Constant 0x2c00d149 <JS Global Object> [map 0x3020f4b1] [new space] pos:20 <|@
0 0 t26 CheckMaps t25 [0x3020f4b1](stability-check) pos:20 <|@
0 0 t27 PushArguments t25 t23 type:Tagged pos:20 <|@
0 1 x29 Constant 0x804e790 type:Any pos:20 <|@
0 1 t31 Constant 0x45834101 <Code: STUB> [map 0x30208399] pos:20 <|@
0 0 t32 CallWithDescriptor t31 t1 t17 t4 t25 x29 #2 changes[*] type:Tagged pos:20 <|@
0 0 v33 Simulate id=41 type:Tagged pos:20 <|@
0 2 t34 Constant 0x2688be25 <String[8]: testData> [map 0x30208131] pos:76 <|@
0 2 s35 Constant 0 type:Smi pos:76 <|@
0 2 t36 Constant 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)> [map 0x3020cd29] pos:82 <|@
0 1 t479 Constant 1048576 pos:78 <|@
0 0 t38 PushArguments t36 t479 type:Tagged pos:78 <|@
0 2 t39 CallNew t1 t36 #2 changes[*] type:Tagged pos:78 <|@
0 0 v40 Simulate id=75 push t34, push s35, push t39 type:Tagged pos:78 <|@
0 0 t41 PushArguments t34 t476 t39 type:Tagged pos:76 <|@
0 0 t42 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:76 <|@
0 0 v43 Simulate id=66 pop 3 type:Tagged pos:76 <|@
0 2 t45 Constant 0x2688c3c5 PropertyCell for 626791 [map 0x302082e9] pos:118 <|@
0 0 v46 StoreNamedField t45.[in-object]@4 = t476 changes[GlobalVars] type:Tagged pos:118 <|@
0 0 v47 Simulate id=93 push s35 type:Tagged pos:118 <|@
0 0 v49 Branch t48 goto (B3, B2) (None) type:Tagged pos:107 <|@
end_HIR
begin_LIR
16 label () () () () [hir:v7] <|@
18 gap () ([esi|R] = [eax|R];) () () [hir:v7] <|@
20 declare-globals = [esi|R] {[esi|R];[stack:2]} [hir:t8] <|@
22 gap () () () () [hir:t8] <|@
24 lazy-bailout = [id=3|deopt_id=0|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] [hir:v9] <|@
26 gap () ([esi|R] = [stack:2];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] {[esi|R];[stack:2]} [hir:v10] <|@
30 gap () () () () [hir:v10] <|@
32 lazy-bailout = [id=3|deopt_id=1|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] [hir:v10] <|@
34 gap () () () () [hir:v10] <|@
36 push-argument = [constant:11] [hir:t14] <|@
38 gap () () () () [hir:t14] <|@
40 push-argument = [constant:476] [hir:t14] <|@
42 gap () () () () [hir:t14] <|@
44 push-argument = [constant:477] [hir:t14] <|@
46 gap () ([esi|R] = [stack:2];) () () [hir:t14] <|@
48 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:2]} [hir:t15] <|@
50 gap ((0) = [eax|R];) () () () [hir:t15] <|@
52 lazy-bailout = [id=29|deopt_id=2|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] [hir:v16] <|@
54 gap () () () () [hir:v16] <|@
56 check-maps = NULL [hir:t26] <|@
58 gap () () () () [hir:t26] <|@
60 push-argument = [constant:25] [hir:t27] <|@
62 gap () () () () [hir:t27] <|@
64 push-argument = [constant:23] [hir:t27] <|@
66 gap () () () () [hir:t27] <|@
68 constant-e [edx|R]= [hir:x29] <|@
70 gap ((0) = [edx|R];) () () () [hir:x29] <|@
72 constant-t [edi|R]= [hir:t17] <|@
74 gap ((0) = [edi|R];) () () () [hir:t17] <|@
76 constant-t [ebx|R]= [hir:t4] <|@
78 gap ((0) = [ebx|R];) () () () [hir:t4] <|@
80 constant-t [ecx|R]= [hir:t25] <|@
82 gap ((0) = [ecx|R];) ([esi|R] = [stack:2]; [edi|R]; [ebx|R]; [ecx|R]; [edx|R];) () () [hir:t25] <|@
84 call-with-descriptor [eax|R][constant:31] [esi|R] [edi|R] [ebx|R] [ecx|R] [edx|R] #1 / {[esi|R];[edi|R];[ebx|R];[ecx|R];[stack:2]} [hir:t32] <|@
86 gap ((0) = [eax|R];) () () () [hir:t32] <|@
88 lazy-bailout = [id=41|deopt_id=3|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] [hir:v33] <|@
90 gap () () () () [hir:v33] <|@
92 push-argument = [constant:36] [hir:t38] <|@
94 gap () () () () [hir:t38] <|@
96 push-argument = [constant:479] [hir:t38] <|@
98 gap () () () () [hir:t38] <|@
100 constant-t [edi|R]= [hir:t36] <|@
102 gap ((0) = [edi|R];) ([esi|R] = [stack:2]; [edi|R];) () () [hir:t36] <|@
104 call-new [eax|R]= [esi|R] [edi|R] #1 / {[esi|R];[edi|R];[stack:2]} [hir:t39] <|@
106 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t39] <|@
108 lazy-bailout = [id=75|deopt_id=4|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4];[constant:34];[constant:35];[eax|R]] [hir:v40] <|@
110 gap () () () () [hir:v40] <|@
112 push-argument = [constant:34] [hir:t41] <|@
114 gap () () () () [hir:t41] <|@
116 push-argument = [constant:476] [hir:t41] <|@
118 gap () () () () [hir:t41] <|@
120 push-argument = [eax|R] [hir:t41] <|@
122 gap () ([esi|R] = [stack:2];) () () [hir:t41] <|@
124 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:2]} [hir:t42] <|@
126 gap ((0) = [eax|R];) () () () [hir:t42] <|@
128 lazy-bailout = [id=66|deopt_id=5|parameters=1|arguments_stack_height=0|[stack:-1];[stack:2];[constant:4]] [hir:v43] <|@
130 gap () () () () [hir:v43] <|@
132 constant-t [eax|R]= [hir:t45] <|@
134 gap ((0) = [eax|R];) () () () [hir:t45] <|@
136 store-named-field [eax|R].[in-object]@4 <- [constant:476] [hir:v46] <|@
138 gap () () () () [hir:v46] <|@
140 gap () () () () [hir:v49] <|@
142 goto B3 [hir:v49] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags "osr"
dominator "B1"
loop_depth 0
first_lir_id 144
last_lir_id 170
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v53 BlockEntry type:Tagged pos:107 <|@
0 2 t54 UnknownOSRValue parameter @ 0 type:Tagged pos:107 <|@
0 1 t55 UnknownOSRValue special @ 1 type:Tagged pos:107 <|@
0 1 t56 UnknownOSRValue local @ 2 type:Tagged pos:107 <|@
0 0 v57 Simulate id=85 pop 1 / var[2] = t56, var[1] = t55, var[0] = t54 type:Tagged pos:107 <|@
0 0 v58 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:107 <|@
0 2 t59 Context type:Tagged pos:107 <|@
0 0 v60 Simulate id=83 var[1] = t59 type:Tagged pos:107 <|@
0 0 v61 Goto B4 type:Tagged pos:107 <|@
end_HIR
begin_LIR
144 label () () () () [hir:v53] <|@
146 gap () () () () [hir:v53] <|@
148 unknown-osr-value [stack:-1]= [hir:t54] <|@
150 gap () ([stack:-1];) () () [hir:t54] <|@
152 unknown-osr-value [stack:-1]= [hir:t55] <|@
154 gap () ([stack:-1];) () () [hir:t55] <|@
156 unknown-osr-value [stack:1]= [hir:t56] <|@
158 gap () ([stack:1];) () () [hir:t56] <|@
160 osr-entry = [id=85|deopt_id=6|parameters=1|arguments_stack_height=0|[stack:-1];[stack:-1];[stack:1]] [hir:v58] <|@
162 gap () () () () [hir:v58] <|@
164 context [esi|R]= [hir:t59] <|@
166 gap ((0) = [esi|R];) () () () [hir:t59] <|@
168 gap () ([edx|R] = [stack:-1]; [ecx|R] = [esi|R];) () () [hir:v61] <|@
170 goto B4 [hir:v61] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 172
last_lir_id 178
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v50 BlockEntry type:Tagged pos:107 <|@
0 0 v51 Simulate id=83 pop 1 type:Tagged pos:107 <|@
0 0 v52 Goto B4 type:Tagged pos:107 <|@
end_HIR
begin_LIR
172 label () () () () [hir:v50] <|@
174 gap () () () () [hir:v50] <|@
176 gap () ([edx|R] = [stack:-1]; [ecx|R] = [stack:2];) () () [hir:v52] <|@
178 goto B4 [hir:v52] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3" "B2"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 180
last_lir_id 218
begin_states
begin_locals
size 2
method "None"
0 t62 [ t2 t54 uses:0_0s_0i_0d_0t type:Tagged]
1 t63 [ t1 t59 uses:51_0s_0i_0d_20t type:Tagged]
end_locals
end_states
begin_HIR
0 0 v68 BlockEntry type:Tagged pos:107 <|@
0 0 v69 Simulate id=83 type:Tagged pos:107 <|@
0 34 t72 Constant 0x2688c3c5 PropertyCell for 626791 [map 0x302082e9] pos:123 <|@
0 1 s74 Constant 1048576 type:Smi pos:132 <|@
0 6 t85 Constant 0x2c0133a1 <an Uint8Array with map 0x3020f509> [map 0x3020f509] [new space] pos:151 <|@
0 1 i484 Constant 256 type:Smi pos:167 <|@
0 0 t93 CheckMaps t85 [0x3020f509](stability-check) pos:163 <|@
0 2 t94 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:163 <|@
0 0 t95 CheckMaps t94 [0x3020dabd](stability-check) pos:163 <|@
0 2 t96 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:163 <|@
0 0 t97 CheckMaps t96 [0x3020c465](stability-check) pos:163 <|@
0 4 t98 LoadNamedField t85.%elements@8 type:Tagged pos:163 <|@
0 1 s99 LoadNamedField t98.%length@4 type:Smi pos:163 <|@
0 1 x100 LoadNamedField t98.%elements@8 type:Tagged pos:163 <|@
0 1 i485 Change s99 s to i type:Smi pos:163 <|@
0 0 v70 Goto B5 type:Tagged pos:107 <|@
end_HIR
begin_LIR
180 label () ([stack:4] = [edx|R]; [stack:3] = [ecx|R];) () () [hir:v68] <|@
182 gap () () () () [hir:v68] <|@
184 check-maps = NULL [hir:t93] <|@
186 gap () () () () [hir:t93] <|@
188 check-maps = NULL [hir:t95] <|@
190 gap () () () () [hir:t95] <|@
192 check-maps = NULL [hir:t97] <|@
194 gap () () () () [hir:t97] <|@
196 constant-t [eax|R]= [hir:t85] <|@
198 gap ((0) = [eax|R];) () () () [hir:t85] <|@
200 load-named-field [eax|R]= [eax|R] [hir:t98] <|@
202 gap ((0) = [eax|R];) () () () [hir:t98] <|@
204 load-named-field [ebx|R]= [eax|R] [hir:s99] <|@
206 gap ((0) = [ebx|R];) () () () [hir:s99] <|@
208 load-named-field [esi|R]= [eax|R] [hir:x100] <|@
210 gap ((0) = [esi|R];) ([ebx|R];) () () [hir:x100] <|@
212 smi-untag [ebx|R]= [ebx|R] [hir:i485] <|@
214 gap ((0) = [ebx|R];) () () () [hir:i485] <|@
216 gap () () () () [hir:v70] <|@
218 goto B5 [hir:v70] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4" "B7"
successors "B6" "B8"
xhandlers
flags "dom-loop-succ"
dominator "B4"
loop_depth 1
first_lir_id 220
last_lir_id 238
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v71 BlockEntry type:Tagged pos:123 <|@
0 2 t73 LoadNamedField t72.[in-object]@4 type:Tagged pos:123 <|@
0 2 s481 Change t73 t to s type:TaggedNumber pos:123 <|@
0 0 s75 CompareNumericAndBranch LT s481 s74 goto (B6, B8) type:Tagged pos:125 <|@
end_HIR
begin_LIR
220 label () () () () [hir:v71] <|@
222 gap () () () () [hir:v71] <|@
224 constant-t [eax|R]= [hir:t72] <|@
226 gap ((0) = [eax|R];) () () () [hir:t72] <|@
228 load-named-field [eax|R]= [eax|R] [hir:t73] <|@
230 gap ((0) = [eax|R];) ([edi|R] = [eax|R];) () () [hir:t73] <|@
232 check-smi [edi|R]= [edi|R] [id=83|deopt_id=7|parameters=1|arguments_stack_height=0|[edx|R];[stack:3];[constant:4]] [hir:s481] <|@
234 gap ((0) = [edi|R];) () () () [hir:s481] <|@
236 gap () () () () [hir:s75] <|@
238 compare-numeric-and-branch if [edi|R] < [constant:74] then B6 else B8 [hir:s75] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags "dom-loop-succ"
dominator "B5"
loop_depth 1
first_lir_id 240
last_lir_id 246
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v76 BlockEntry type:Tagged pos:125 <|@
0 0 v77 Simulate id=87 type:Tagged pos:125 <|@
0 0 v78 Goto B7 type:Tagged pos:125 <|@
end_HIR
begin_LIR
240 label () () () () Dead block replaced with B7 [hir:v76] <|@
242 gap () () () () [hir:v76] <|@
244 gap () () () () [hir:v78] <|@
246 goto B7 [hir:v78] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B5"
xhandlers
flags "dom-loop-succ"
dominator "B6"
loop_depth 1
first_lir_id 248
last_lir_id 290
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v82 BlockEntry type:Tagged pos:107 <|@
0 0 v83 Simulate id=87 type:Tagged pos:107 <|@
0 0 v84 StackCheck t63 changes[NewSpacePromotion] type:Tagged pos:107 <|@
0 3 i483 Change t73 t to i type:TaggedNumber pos:165 <|@
0 1 i91 Mod i483 i484 type:TaggedNumber pos:167 <|@
0 0 i101 BoundsCheck i483 i485 type:Tagged pos:163 <|@
0 0 v102 StoreKeyed x100.EXTERNAL_UINT8_ELEMENTS[i483] = i91 changes[ExternalMemory] type:Tagged pos:163 <|@
0 0 v103 Simulate id=119 type:Tagged pos:163 <|@
0 2 s107 Add s481 s106 type:TaggedNumber pos:141 <|@
0 1 t487 Change s107 s to t pos:141 <|@
0 0 v109 StoreNamedField t72.[in-object]@4 = t487 changes[GlobalVars] type:Tagged pos:141 <|@
0 0 v110 Simulate id=110 push s107 type:Tagged pos:141 <|@
0 0 v111 Simulate id=83 pop 1 type:Tagged pos:107 <|@
0 0 v112 Goto B5 type:Tagged pos:107 <|@
end_HIR
begin_LIR
248 label () () () () [hir:v82] <|@
250 gap () () () () [hir:v82] <|@
252 stack-check = [stack:3] [id=87|deopt_id=8|parameters=1|arguments_stack_height=0|[edx|R];[stack:3];[constant:4]] {[stack:4];[edx|R];[stack:3];[eax|R]} [hir:v84] <|@
254 gap () ([eax|R];) () () [hir:v84] <|@
256 tagged-to-i [eax|R]= [eax|R] [id=87|deopt_id=12|parameters=1|arguments_stack_height=0|[edx|R];[stack:3];[constant:4]] [hir:i483] <|@
258 gap ((0) = [eax|R];) ([ecx|R] = [eax|R];) () () [hir:i483] <|@
260 mod-by-power-of-2-i [ecx|R]= [ecx|R] [hir:i91] <|@
262 gap ((0) = [ecx|R];) () () () [hir:i91] <|@
264 bounds-check = [eax|R] [ebx|R] [id=87|deopt_id=9|parameters=1|arguments_stack_height=0|[edx|R];[stack:3];[constant:4]] [hir:i101] <|@
266 gap () ([eax|R] = [ecx|R]; [ecx|R] = [eax|R];) () () [hir:i101] <|@
268 store-keyed [esi|R][[ecx|R]] <- [eax|R] [hir:v102] <|@
270 gap () () () () [hir:v102] <|@
272 add-i [eax|R]= [edi|R] [constant:106] [hir:s107] <|@
274 gap ((0) = [eax|R];) ([ecx|R] = [eax|R];) () () [hir:s107] <|@
276 dummy-use [ecx|R]= [ecx|R] [hir:t487] <|@
278 gap ((0) = [ecx|R];) () () () [hir:t487] <|@
280 constant-t [eax|R]= [hir:t72] <|@
282 gap ((0) = [eax|R];) () () () [hir:t72] <|@
284 store-named-field [eax|R].[in-object]@4 <- [ecx|R] [hir:v109] <|@
286 gap () () () () [hir:v109] <|@
288 gap () () () () [hir:v112] <|@
290 goto B5 [hir:v112] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B5"
successors "B9"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 292
last_lir_id 298
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v79 BlockEntry type:Tagged pos:125 <|@
0 0 v80 Simulate id=84 type:Tagged pos:125 <|@
0 0 v81 Goto B9 type:Tagged pos:125 <|@
end_HIR
begin_LIR
292 label () () () () Dead block replaced with B9 [hir:v79] <|@
294 gap () () () () [hir:v79] <|@
296 gap () () () () [hir:v81] <|@
298 goto B9 [hir:v81] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors "B10"
xhandlers
flags
dominator "B8"
loop_depth 0
first_lir_id 300
last_lir_id 362
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v113 BlockEntry type:Tagged pos:184 <|@
0 1 t114 Constant 0x2688be59 <String[3]: key> [map 0x30208131] pos:184 <|@
0 2 i489 Constant 16 type:Smi pos:186 <|@
0 11 t117 Allocate i489 (N) changes[NewSpacePromotion] [noOSE] pos:186 <|@
0 5 t118 Constant 0x26808099 <FixedArray[0]> [map 0x30208105] [noOSE] pos:186 <|@
0 0 v119 StoreNamedField t117.%elements@8 = t118 changes[ElementsPointer] type:Tagged [noOSE] pos:186 <|@
0 2 t120 Constant 0x3020c8dd <Map(elements=0)> [map 0x302080ad] [noOSE] pos:186 <|@
0 0 v121 StoreNamedField t117.%map@0 = t120 changes[Maps] type:Tagged [noOSE] pos:186 <|@
0 0 v123 StoreNamedField t117.[in-object]@4 = t118 changes[InobjectFields] type:Tagged [noOSE] pos:186 <|@
0 1 s124 Constant 1 type:Smi [noOSE] pos:186 <|@
0 0 v125 StoreNamedField t117.%length@12 = s124 changes[ArrayLengths] type:Tagged [noOSE] pos:186 <|@
0 1 t126 Constant 0x2c0139e5 <FixedArray[1]> [map 0x302083f1] [new space] [noOSE] pos:186 <|@
0 0 v127 StoreNamedField t117.%elements@8 = t126 changes[ElementsPointer] type:Tagged [noOSE] pos:186 <|@
0 9 t488 Constant 0 pos:184 <|@
0 0 t129 PushArguments t114 t488 t117 type:Tagged pos:184 <|@
0 0 t130 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:184 <|@
0 0 v131 Simulate id=143 type:Tagged pos:184 <|@
0 1 s132 Constant 1 type:Smi pos:203 <|@
0 2 t490 Constant 1 pos:201 <|@
0 0 v134 StoreNamedField t72.[in-object]@4 = t490 changes[GlobalVars] type:Tagged pos:201 <|@
0 0 v135 Simulate id=166 push s132 type:Tagged pos:201 <|@
0 0 v139 Simulate id=159 pop 1 type:Tagged pos:194 <|@
0 0 v140 Goto B10 type:Tagged pos:194 <|@
end_HIR
begin_LIR
300 label () () () () [hir:v113] <|@
302 gap () () () () [hir:v113] <|@
304 allocate [ecx|R]= [stack:3] [constant:489] {[stack:4];[edx|R];[stack:3];[ecx|R]} [hir:t117] <|@
306 gap ((0) = [ecx|R];) () () () [hir:t117] <|@
308 store-named-field [ecx|R].%elements@8 <- [constant:118] [hir:v119] <|@
310 gap () () () () [hir:v119] <|@
312 store-named-field [ecx|R].%map@0 <- [constant:120] [hir:v121] <|@
314 gap () () () () [hir:v121] <|@
316 store-named-field [ecx|R].[in-object]@4 <- [constant:118] [hir:v123] <|@
318 gap () () () () [hir:v123] <|@
320 store-named-field [ecx|R].%length@12 <- [constant:124] [hir:v125] <|@
322 gap () () () () [hir:v125] <|@
324 constant-t [eax|R]= [hir:t126] <|@
326 gap ((0) = [eax|R];) () () () [hir:t126] <|@
328 store-named-field [ecx|R].%elements@8 <- [eax|R] [hir:v127] <|@
330 gap () () () () [hir:v127] <|@
332 push-argument = [constant:114] [hir:t129] <|@
334 gap () () () () [hir:t129] <|@
336 push-argument = [constant:488] [hir:t129] <|@
338 gap () () () () [hir:t129] <|@
340 push-argument = [ecx|R] [hir:t129] <|@
342 gap () ([esi|R] = [stack:3];) () () [hir:t129] <|@
344 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:4];[stack:3]} [hir:t130] <|@
346 gap ((0) = [eax|R];) () () () [hir:t130] <|@
348 lazy-bailout = [id=143|deopt_id=10|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v131] <|@
350 gap () () () () [hir:v131] <|@
352 constant-t [eax|R]= [hir:t72] <|@
354 gap ((0) = [eax|R];) () () () [hir:t72] <|@
356 store-named-field [eax|R].[in-object]@4 <- [constant:490] [hir:v134] <|@
358 gap () () () () [hir:v134] <|@
360 gap () () () () [hir:v140] <|@
362 goto B10 [hir:v140] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9" "B14"
successors "B11"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 364
last_lir_id 378
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v141 BlockEntry type:Tagged pos:206 <|@
0 1 t143 LoadNamedField t72.[in-object]@4 type:Tagged pos:206 <|@
0 0 v145 Deoptimize goto (B11) type:Tagged pos:208 <|@
end_HIR
begin_LIR
364 label () () () () [hir:v141] <|@
366 gap () () () () [hir:v141] <|@
368 constant-t [eax|R]= [hir:t72] <|@
370 gap ((0) = [eax|R];) () () () [hir:t72] <|@
372 load-named-field [eax|R]= [eax|R] [hir:t143] <|@
374 gap ((0) = [eax|R];) () () () [hir:t143] <|@
376 gap () () () () [hir:v145] <|@
378 deoptimize = [id=159|deopt_id=11|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v145] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12" "B15"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B10"
loop_depth 1
first_lir_id 380
last_lir_id 398
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v146 BlockEntry type:Tagged pos:208 <|@
0 1 t491 Constant 32 pos:208 <|@
0 2 t147 CompareGeneric LT t143 t491 changes[*] pos:208 <|@
0 0 v148 Simulate id=173 push t147 type:Tagged pos:208 <|@
0 0 v149 Branch t147 goto (B12, B15) (None) type:Tagged pos:208 <|@
end_HIR
begin_LIR
380 label () () () () [hir:v146] <|@
382 gap () () () () [hir:v146] <|@
384 dummy-use = [eax|R] [hir:t147] <|@
386 gap () () () () [hir:t147] <|@
388 dummy-use = [constant:491] [hir:t147] <|@
390 gap () () () () [hir:t147] <|@
392 dummy-use [eax|R]= [stack:3] [hir:t147] <|@
394 gap ((0) = [eax|R];) () () () [hir:t147] <|@
396 gap () () () () [hir:v149] <|@
398 branch B12 | B15 on [eax|R] [hir:v149] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B11"
loop_depth 1
first_lir_id 400
last_lir_id 406
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v150 BlockEntry type:Tagged pos:208 <|@
0 0 v151 Simulate id=163 pop 1 type:Tagged pos:208 <|@
0 0 v152 Goto B13 type:Tagged pos:208 <|@
end_HIR
begin_LIR
400 label () () () () Dead block replaced with B13 [hir:v150] <|@
402 gap () () () () [hir:v150] <|@
404 gap () () () () [hir:v152] <|@
406 goto B13 [hir:v152] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12"
successors "B14"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B12"
loop_depth 1
first_lir_id 408
last_lir_id 434
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v156 BlockEntry type:Tagged pos:194 <|@
0 0 v157 Simulate id=163 type:Tagged pos:194 <|@
0 0 v158 StackCheck t63 changes[NewSpacePromotion] type:Tagged pos:194 <|@
0 2 t159 Constant 0x2688c3dd PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:219 <|@
0 1 t160 LoadNamedField t159.[in-object]@4 type:Tagged pos:219 <|@
0 1 t162 LoadNamedField t72.[in-object]@4 type:Tagged pos:223 <|@
0 0 v164 Deoptimize goto (B14) type:Tagged pos:226 <|@
end_HIR
begin_LIR
408 label () () () () [hir:v156] <|@
410 gap () () () () [hir:v156] <|@
412 dummy-use [eax|R]= [stack:3] [hir:v158] <|@
414 gap ((0) = [eax|R];) () () () [hir:v158] <|@
416 dummy-use = [constant:159] [hir:t160] <|@
418 gap () () () () [hir:t160] <|@
420 dummy-use [eax|R]= [constant:159] [hir:t160] <|@
422 gap ((0) = [eax|R];) () () () [hir:t160] <|@
424 dummy-use = [constant:72] [hir:t162] <|@
426 gap () () () () [hir:t162] <|@
428 dummy-use [ecx|R]= [constant:72] [hir:t162] <|@
430 gap ((0) = [ecx|R];) () () () [hir:t162] <|@
432 gap () () () () [hir:v164] <|@
434 deoptimize = [id=163|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v164] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B10"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B13"
loop_depth 1
first_lir_id 436
last_lir_id 498
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v165 BlockEntry type:Tagged pos:226 <|@
0 1 t492 Constant 7 pos:226 <|@
0 0 v166 StoreKeyedGeneric t160[t162] = t492 changes[*] type:Tagged pos:226 <|@
0 0 v167 Simulate id=189 type:Tagged pos:226 <|@
0 1 t169 LoadNamedField t72.[in-object]@4 type:Tagged pos:214 <|@
0 1 s493 Change t169 t to s allow-undefined-as-nan type:TaggedNumber pos:215 <|@
0 2 s170 Add s493 s106 ! type:TaggedNumber pos:215 <|@
0 1 t494 Change s170 s to t pos:215 <|@
0 0 v172 StoreNamedField t72.[in-object]@4 = t494 changes[GlobalVars] type:Tagged pos:215 <|@
0 0 v173 Simulate id=183 push s170 type:Tagged pos:215 <|@
0 0 v174 Simulate id=159 pop 1 type:Tagged pos:194 <|@
0 0 v175 Goto B10 type:Tagged pos:194 <|@
end_HIR
begin_LIR
436 label () () () () [hir:v165] <|@
438 gap () () () () [hir:v165] <|@
440 dummy-use = [ecx|R] [hir:v166] <|@
442 gap () () () () [hir:v166] <|@
444 dummy-use = [constant:492] [hir:v166] <|@
446 gap () () () () [hir:v166] <|@
448 dummy-use = [stack:3] [hir:v166] <|@
450 gap () () () () [hir:v166] <|@
452 dummy-use [ecx|R]= [eax|R] [hir:v166] <|@
454 gap ((0) = [ecx|R];) () () () [hir:v166] <|@
456 dummy-use = [constant:72] [hir:t169] <|@
458 gap () () () () [hir:t169] <|@
460 dummy-use [eax|R]= [constant:72] [hir:t169] <|@
462 gap ((0) = [eax|R];) () () () [hir:t169] <|@
464 dummy-use [ecx|R]= [eax|R] [hir:s493] <|@
466 gap ((0) = [ecx|R];) () () () [hir:s493] <|@
468 dummy-use = [ecx|R] [hir:s170] <|@
470 gap () () () () [hir:s170] <|@
472 dummy-use = [constant:106] [hir:s170] <|@
474 gap () () () () [hir:s170] <|@
476 dummy-use [eax|R]= [stack:3] [hir:s170] <|@
478 gap ((0) = [eax|R];) () () () [hir:s170] <|@
480 dummy-use [ecx|R]= [eax|R] [hir:t494] <|@
482 gap ((0) = [ecx|R];) () () () [hir:t494] <|@
484 dummy-use = [ecx|R] [hir:v172] <|@
486 gap () () () () [hir:v172] <|@
488 dummy-use = [constant:72] [hir:v172] <|@
490 gap () () () () [hir:v172] <|@
492 dummy-use [eax|R]= [constant:72] [hir:v172] <|@
494 gap ((0) = [eax|R];) () () () [hir:v172] <|@
496 gap () () () () [hir:v175] <|@
498 goto B10 [hir:v175] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B11"
successors "B16"
xhandlers
flags "dead"
dominator "B11"
loop_depth 0
first_lir_id 500
last_lir_id 506
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v153 BlockEntry type:Tagged pos:208 <|@
0 0 v154 Simulate id=160 pop 1 type:Tagged pos:208 <|@
0 0 v155 Goto B16 type:Tagged pos:208 <|@
end_HIR
begin_LIR
500 label () () () () Dead block replaced with B16 [hir:v153] <|@
502 gap () () () () [hir:v153] <|@
504 gap () () () () [hir:v155] <|@
506 goto B16 [hir:v155] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B15"
successors "B17"
xhandlers
flags "dead"
dominator "B15"
loop_depth 0
first_lir_id 508
last_lir_id 610
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v176 BlockEntry type:Tagged pos:244 <|@
0 1 t177 Constant 0x2688be69 <String[5]: nonce> [map 0x30208131] pos:244 <|@
0 11 t180 Allocate i489 (N) changes[NewSpacePromotion] [noOSE] pos:246 <|@
0 0 v182 StoreNamedField t180.%elements@8 = t118 changes[ElementsPointer] type:Tagged [noOSE] pos:246 <|@
0 0 v184 StoreNamedField t180.%map@0 = t120 changes[Maps] type:Tagged [noOSE] pos:246 <|@
0 0 v186 StoreNamedField t180.[in-object]@4 = t118 changes[InobjectFields] type:Tagged [noOSE] pos:246 <|@
0 1 s187 Constant 0 type:Smi [noOSE] pos:246 <|@
0 0 v188 StoreNamedField t180.%length@12 = s187 changes[ArrayLengths] type:Tagged [noOSE] pos:246 <|@
0 0 v190 StoreNamedField t180.%elements@8 = t118 changes[ElementsPointer] type:Tagged [noOSE] pos:246 <|@
0 0 t192 PushArguments t177 t488 t180 type:Tagged pos:244 <|@
0 0 t193 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:244 <|@
0 0 v194 Simulate id=207 type:Tagged pos:244 <|@
0 8 s195 Constant 0 type:Smi pos:261 <|@
0 0 v197 StoreNamedField t72.[in-object]@4 = t488 changes[GlobalVars] type:Tagged pos:259 <|@
0 0 v198 Simulate id=226 push s195 type:Tagged pos:259 <|@
0 0 v202 Simulate id=219 pop 1 type:Tagged pos:252 <|@
0 0 v203 Goto B17 type:Tagged pos:252 <|@
end_HIR
begin_LIR
508 label () () () () [hir:v176] <|@
510 gap () () () () [hir:v176] <|@
512 dummy-use = [constant:489] [hir:t180] <|@
514 gap () () () () [hir:t180] <|@
516 dummy-use [eax|R]= [stack:3] [hir:t180] <|@
518 gap ((0) = [eax|R];) () () () [hir:t180] <|@
520 dummy-use = [constant:118] [hir:v182] <|@
522 gap () () () () [hir:v182] <|@
524 dummy-use = [eax|R] [hir:v182] <|@
526 gap () () () () [hir:v182] <|@
528 dummy-use [ecx|R]= [eax|R] [hir:v182] <|@
530 gap ((0) = [ecx|R];) () () () [hir:v182] <|@
532 dummy-use = [constant:120] [hir:v184] <|@
534 gap () () () () [hir:v184] <|@
536 dummy-use = [eax|R] [hir:v184] <|@
538 gap () () () () [hir:v184] <|@
540 dummy-use [ecx|R]= [eax|R] [hir:v184] <|@
542 gap ((0) = [ecx|R];) () () () [hir:v184] <|@
544 dummy-use = [constant:118] [hir:v186] <|@
546 gap () () () () [hir:v186] <|@
548 dummy-use = [eax|R] [hir:v186] <|@
550 gap () () () () [hir:v186] <|@
552 dummy-use [ecx|R]= [eax|R] [hir:v186] <|@
554 gap ((0) = [ecx|R];) () () () [hir:v186] <|@
556 dummy-use = [constant:187] [hir:v188] <|@
558 gap () () () () [hir:v188] <|@
560 dummy-use = [eax|R] [hir:v188] <|@
562 gap () () () () [hir:v188] <|@
564 dummy-use [ecx|R]= [eax|R] [hir:v188] <|@
566 gap ((0) = [ecx|R];) () () () [hir:v188] <|@
568 dummy-use = [constant:118] [hir:v190] <|@
570 gap () () () () [hir:v190] <|@
572 dummy-use = [eax|R] [hir:v190] <|@
574 gap () () () () [hir:v190] <|@
576 dummy-use [ecx|R]= [eax|R] [hir:v190] <|@
578 gap ((0) = [ecx|R];) () () () [hir:v190] <|@
580 dummy-use = [constant:488] [hir:t192] <|@
582 gap () () () () [hir:t192] <|@
584 dummy-use = [eax|R] [hir:t192] <|@
586 gap () () () () [hir:t192] <|@
588 dummy-use [eax|R]= [constant:177] [hir:t192] <|@
590 gap ((0) = [eax|R];) () () () [hir:t192] <|@
592 dummy-use [eax|R]= [stack:3] [hir:t193] <|@
594 gap ((0) = [eax|R];) () () () [hir:t193] <|@
596 dummy-use = [constant:488] [hir:v197] <|@
598 gap () () () () [hir:v197] <|@
600 dummy-use = [constant:72] [hir:v197] <|@
602 gap () () () () [hir:v197] <|@
604 dummy-use [eax|R]= [constant:72] [hir:v197] <|@
606 gap ((0) = [eax|R];) () () () [hir:v197] <|@
608 gap () () () () [hir:v203] <|@
610 goto B17 [hir:v203] <|@
end_LIR
end_block
begin_block
name "B17"
from_bci -1
to_bci -1
predecessors "B16" "B21"
successors "B18"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B16"
loop_depth 1
first_lir_id 612
last_lir_id 626
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v204 BlockEntry type:Tagged pos:264 <|@
0 1 t206 LoadNamedField t72.[in-object]@4 type:Tagged pos:264 <|@
0 0 v208 Deoptimize goto (B18) type:Tagged pos:266 <|@
end_HIR
begin_LIR
612 label () () () () [hir:v204] <|@
614 gap () () () () [hir:v204] <|@
616 dummy-use = [constant:72] [hir:t206] <|@
618 gap () () () () [hir:t206] <|@
620 dummy-use [eax|R]= [constant:72] [hir:t206] <|@
622 gap ((0) = [eax|R];) () () () [hir:t206] <|@
624 gap () () () () [hir:v208] <|@
626 deoptimize = [id=219|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v208] <|@
end_LIR
end_block
begin_block
name "B18"
from_bci -1
to_bci -1
predecessors "B17"
successors "B19" "B22"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B17"
loop_depth 1
first_lir_id 628
last_lir_id 646
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v209 BlockEntry type:Tagged pos:266 <|@
0 1 t498 Constant 8 pos:266 <|@
0 2 t210 CompareGeneric LT t206 t498 changes[*] pos:266 <|@
0 0 v211 Simulate id=233 push t210 type:Tagged pos:266 <|@
0 0 v212 Branch t210 goto (B19, B22) (None) type:Tagged pos:266 <|@
end_HIR
begin_LIR
628 label () () () () [hir:v209] <|@
630 gap () () () () [hir:v209] <|@
632 dummy-use = [eax|R] [hir:t210] <|@
634 gap () () () () [hir:t210] <|@
636 dummy-use = [constant:498] [hir:t210] <|@
638 gap () () () () [hir:t210] <|@
640 dummy-use [eax|R]= [stack:3] [hir:t210] <|@
642 gap ((0) = [eax|R];) () () () [hir:t210] <|@
644 gap () () () () [hir:v212] <|@
646 branch B19 | B22 on [eax|R] [hir:v212] <|@
end_LIR
end_block
begin_block
name "B19"
from_bci -1
to_bci -1
predecessors "B18"
successors "B20"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B18"
loop_depth 1
first_lir_id 648
last_lir_id 654
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v213 BlockEntry type:Tagged pos:266 <|@
0 0 v214 Simulate id=223 pop 1 type:Tagged pos:266 <|@
0 0 v215 Goto B20 type:Tagged pos:266 <|@
end_HIR
begin_LIR
648 label () () () () Dead block replaced with B20 [hir:v213] <|@
650 gap () () () () [hir:v213] <|@
652 gap () () () () [hir:v215] <|@
654 goto B20 [hir:v215] <|@
end_LIR
end_block
begin_block
name "B20"
from_bci -1
to_bci -1
predecessors "B19"
successors "B21"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B19"
loop_depth 1
first_lir_id 656
last_lir_id 682
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v219 BlockEntry type:Tagged pos:252 <|@
0 0 v220 Simulate id=223 type:Tagged pos:252 <|@
0 0 v221 StackCheck t63 changes[NewSpacePromotion] type:Tagged pos:252 <|@
0 2 t222 Constant 0x2688c3f5 PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:276 <|@
0 1 t223 LoadNamedField t222.[in-object]@4 type:Tagged pos:276 <|@
0 1 t225 LoadNamedField t72.[in-object]@4 type:Tagged pos:282 <|@
0 0 v227 Deoptimize goto (B21) type:Tagged pos:285 <|@
end_HIR
begin_LIR
656 label () () () () [hir:v219] <|@
658 gap () () () () [hir:v219] <|@
660 dummy-use [eax|R]= [stack:3] [hir:v221] <|@
662 gap ((0) = [eax|R];) () () () [hir:v221] <|@
664 dummy-use = [constant:222] [hir:t223] <|@
666 gap () () () () [hir:t223] <|@
668 dummy-use [eax|R]= [constant:222] [hir:t223] <|@
670 gap ((0) = [eax|R];) () () () [hir:t223] <|@
672 dummy-use = [constant:72] [hir:t225] <|@
674 gap () () () () [hir:t225] <|@
676 dummy-use [ecx|R]= [constant:72] [hir:t225] <|@
678 gap ((0) = [ecx|R];) () () () [hir:t225] <|@
680 gap () () () () [hir:v227] <|@
682 deoptimize = [id=223|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v227] <|@
end_LIR
end_block
begin_block
name "B21"
from_bci -1
to_bci -1
predecessors "B20"
successors "B17"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B20"
loop_depth 1
first_lir_id 684
last_lir_id 746
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v228 BlockEntry type:Tagged pos:285 <|@
0 0 v229 StoreKeyedGeneric t223[t225] = t490 changes[*] type:Tagged pos:285 <|@
0 0 v230 Simulate id=249 type:Tagged pos:285 <|@
0 1 t232 LoadNamedField t72.[in-object]@4 type:Tagged pos:271 <|@
0 1 s500 Change t232 t to s allow-undefined-as-nan type:TaggedNumber pos:272 <|@
0 2 s233 Add s500 s106 ! type:TaggedNumber pos:272 <|@
0 1 t501 Change s233 s to t pos:272 <|@
0 0 v235 StoreNamedField t72.[in-object]@4 = t501 changes[GlobalVars] type:Tagged pos:272 <|@
0 0 v236 Simulate id=243 push s233 type:Tagged pos:272 <|@
0 0 v237 Simulate id=219 pop 1 type:Tagged pos:252 <|@
0 0 v238 Goto B17 type:Tagged pos:252 <|@
end_HIR
begin_LIR
684 label () () () () [hir:v228] <|@
686 gap () () () () [hir:v228] <|@
688 dummy-use = [ecx|R] [hir:v229] <|@
690 gap () () () () [hir:v229] <|@
692 dummy-use = [constant:490] [hir:v229] <|@
694 gap () () () () [hir:v229] <|@
696 dummy-use = [stack:3] [hir:v229] <|@
698 gap () () () () [hir:v229] <|@
700 dummy-use [ecx|R]= [eax|R] [hir:v229] <|@
702 gap ((0) = [ecx|R];) () () () [hir:v229] <|@
704 dummy-use = [constant:72] [hir:t232] <|@
706 gap () () () () [hir:t232] <|@
708 dummy-use [eax|R]= [constant:72] [hir:t232] <|@
710 gap ((0) = [eax|R];) () () () [hir:t232] <|@
712 dummy-use [ecx|R]= [eax|R] [hir:s500] <|@
714 gap ((0) = [ecx|R];) () () () [hir:s500] <|@
716 dummy-use = [ecx|R] [hir:s233] <|@
718 gap () () () () [hir:s233] <|@
720 dummy-use = [constant:106] [hir:s233] <|@
722 gap () () () () [hir:s233] <|@
724 dummy-use [eax|R]= [stack:3] [hir:s233] <|@
726 gap ((0) = [eax|R];) () () () [hir:s233] <|@
728 dummy-use [ecx|R]= [eax|R] [hir:t501] <|@
730 gap ((0) = [ecx|R];) () () () [hir:t501] <|@
732 dummy-use = [ecx|R] [hir:v235] <|@
734 gap () () () () [hir:v235] <|@
736 dummy-use = [constant:72] [hir:v235] <|@
738 gap () () () () [hir:v235] <|@
740 dummy-use [eax|R]= [constant:72] [hir:v235] <|@
742 gap ((0) = [eax|R];) () () () [hir:v235] <|@
744 gap () () () () [hir:v238] <|@
746 goto B17 [hir:v238] <|@
end_LIR
end_block
begin_block
name "B22"
from_bci -1
to_bci -1
predecessors "B18"
successors "B23"
xhandlers
flags "dead"
dominator "B18"
loop_depth 0
first_lir_id 748
last_lir_id 754
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v216 BlockEntry type:Tagged pos:266 <|@
0 0 v217 Simulate id=220 pop 1 type:Tagged pos:266 <|@
0 0 v218 Goto B23 type:Tagged pos:266 <|@
end_HIR
begin_LIR
748 label () () () () Dead block replaced with B23 [hir:v216] <|@
750 gap () () () () [hir:v216] <|@
752 gap () () () () [hir:v218] <|@
754 goto B23 [hir:v218] <|@
end_LIR
end_block
begin_block
name "B23"
from_bci -1
to_bci -1
predecessors "B22"
successors "B24"
xhandlers
flags "dead"
dominator "B22"
loop_depth 0
first_lir_id 756
last_lir_id 762
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v239 BlockEntry type:Tagged pos:297 <|@
0 0 v242 Deoptimize goto (B24) type:Tagged pos:308 <|@
end_HIR
begin_LIR
756 label () () () () [hir:v239] <|@
758 gap () () () () [hir:v239] <|@
760 gap () () () () [hir:v242] <|@
762 deoptimize = [id=220|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v242] <|@
end_LIR
end_block
begin_block
name "B24"
from_bci -1
to_bci -1
predecessors "B23"
successors "B27" "B25"
xhandlers
flags "dead"
dominator "B23"
loop_depth 0
first_lir_id 764
last_lir_id 782
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v243 BlockEntry type:Tagged pos:308 <|@
0 2 t502 Constant 2 pos:308 <|@
0 1 t503 Constant 100 pos:308 <|@
0 2 t244 CompareGeneric LT t502 t503 changes[*] pos:308 <|@
0 0 v245 Simulate id=267 push t244 type:Tagged pos:308 <|@
0 0 v246 Branch t244 goto (B27, B25) (None) type:Tagged pos:308 <|@
end_HIR
begin_LIR
764 label () () () () [hir:v243] <|@
766 gap () () () () [hir:v243] <|@
768 dummy-use = [constant:502] [hir:t244] <|@
770 gap () () () () [hir:t244] <|@
772 dummy-use = [constant:503] [hir:t244] <|@
774 gap () () () () [hir:t244] <|@
776 dummy-use [eax|R]= [stack:3] [hir:t244] <|@
778 gap ((0) = [eax|R];) () () () [hir:t244] <|@
780 gap () () () () [hir:v246] <|@
782 branch B27 | B25 on [eax|R] [hir:v246] <|@
end_LIR
end_block
begin_block
name "B25"
from_bci -1
to_bci -1
predecessors "B24"
successors "B26"
xhandlers
flags "dead"
dominator "B24"
loop_depth 0
first_lir_id 784
last_lir_id 790
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v250 BlockEntry type:Tagged pos:308 <|@
0 0 v251 Simulate id=266 pop 1 type:Tagged pos:308 <|@
0 0 v252 Goto B26 type:Tagged pos:308 <|@
end_HIR
begin_LIR
784 label () () () () Dead block replaced with B26 [hir:v250] <|@
786 gap () () () () [hir:v250] <|@
788 gap () () () () [hir:v252] <|@
790 goto B26 [hir:v252] <|@
end_LIR
end_block
begin_block
name "B26"
from_bci -1
to_bci -1
predecessors "B25"
successors "B29"
xhandlers
flags "dead"
dominator "B25"
loop_depth 0
first_lir_id 792
last_lir_id 798
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v268 BlockEntry type:Tagged pos:293 <|@
0 0 v269 Simulate id=264 type:Tagged pos:293 <|@
0 0 v270 Goto B29 type:Tagged pos:293 <|@
end_HIR
begin_LIR
792 label () () () () Dead block replaced with B29 [hir:v268] <|@
794 gap () () () () [hir:v268] <|@
796 gap () () () () [hir:v270] <|@
798 goto B29 [hir:v270] <|@
end_LIR
end_block
begin_block
name "B27"
from_bci -1
to_bci -1
predecessors "B24"
successors "B28"
xhandlers
flags "dead"
dominator "B24"
loop_depth 0
first_lir_id 800
last_lir_id 806
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v247 BlockEntry type:Tagged pos:308 <|@
0 0 v248 Simulate id=265 pop 1 type:Tagged pos:308 <|@
0 0 v249 Goto B28 type:Tagged pos:308 <|@
end_HIR
begin_LIR
800 label () () () () Dead block replaced with B28 [hir:v247] <|@
802 gap () () () () [hir:v247] <|@
804 gap () () () () [hir:v249] <|@
806 goto B28 [hir:v249] <|@
end_LIR
end_block
begin_block
name "B28"
from_bci -1
to_bci -1
predecessors "B27"
successors "B29"
xhandlers
flags "dead"
dominator "B27"
loop_depth 0
first_lir_id 808
last_lir_id 858
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v253 BlockEntry type:Tagged pos:321 <|@
0 1 t254 Constant 0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)> pos:321 <|@
0 1 t255 Constant 0x2688be7d <String[10]: Working...> [map 0x30208131] pos:327 <|@
0 4 t257 Constant 0x2c00d149 <JS Global Object> [map 0x3020f4b1] [new space] pos:321 <|@
0 0 t258 CheckMaps t257 [0x3020f4b1](stability-check) pos:321 <|@
0 0 t259 PushArguments t257 t255 type:Tagged pos:321 <|@
0 1 t260 Constant 0x268080b1 <undefined> [map 0x302081e1] pos:321 <|@
0 1 x261 Constant 0x804e790 type:Any pos:321 <|@
0 1 t263 Constant 0x45834101 <Code: STUB> [map 0x30208399] pos:321 <|@
0 0 t264 CallWithDescriptor t263 t63 t254 t260 t257 x261 #2 changes[*] type:Tagged pos:321 <|@
0 0 v265 Simulate id=278 type:Tagged pos:321 <|@
0 0 v266 Simulate id=264 type:Tagged pos:293 <|@
0 0 v267 Goto B29 type:Tagged pos:293 <|@
end_HIR
begin_LIR
808 label () () () () [hir:v253] <|@
810 gap () () () () [hir:v253] <|@
812 dummy-use = [constant:257] [hir:t258] <|@
814 gap () () () () [hir:t258] <|@
816 dummy-use [eax|R]= [constant:257] [hir:t258] <|@
818 gap ((0) = [eax|R];) () () () [hir:t258] <|@
820 dummy-use = [constant:255] [hir:t259] <|@
822 gap () () () () [hir:t259] <|@
824 dummy-use [eax|R]= [constant:257] [hir:t259] <|@
826 gap ((0) = [eax|R];) () () () [hir:t259] <|@
828 dummy [eax|R]= [hir:x261] <|@
830 gap ((0) = [eax|R];) () () () [hir:x261] <|@
832 dummy-use = [stack:3] [hir:t264] <|@
834 gap () () () () [hir:t264] <|@
836 dummy-use = [constant:254] [hir:t264] <|@
838 gap () () () () [hir:t264] <|@
840 dummy-use = [constant:260] [hir:t264] <|@
842 gap () () () () [hir:t264] <|@
844 dummy-use = [constant:257] [hir:t264] <|@
846 gap () () () () [hir:t264] <|@
848 dummy-use = [constant:261] [hir:t264] <|@
850 gap () () () () [hir:t264] <|@
852 dummy-use [eax|R]= [constant:263] [hir:t264] <|@
854 gap ((0) = [eax|R];) () () () [hir:t264] <|@
856 gap () () () () [hir:v267] <|@
858 goto B29 [hir:v267] <|@
end_LIR
end_block
begin_block
name "B29"
from_bci -1
to_bci -1
predecessors "B28" "B26"
successors "B30"
xhandlers
flags "dead"
dominator "B24"
loop_depth 0
first_lir_id 860
last_lir_id 866
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v271 BlockEntry type:Tagged pos:354 <|@
0 2 t272 Constant 0x2688be95 <String[5]: taemb> [map 0x30208131] pos:354 <|@
0 3 t274 Constant 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)> [map 0x3020cd29] pos:360 <|@
0 0 v276 Deoptimize goto (B30) type:Tagged pos:379 <|@
end_HIR
begin_LIR
860 label () () () () [hir:v271] <|@
862 gap () () () () [hir:v271] <|@
864 gap () () () () [hir:v276] <|@
866 deoptimize = [id=264|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v276] <|@
end_LIR
end_block
begin_block
name "B30"
from_bci -1
to_bci -1
predecessors "B29"
successors "B31"
xhandlers
flags "dead"
dominator "B29"
loop_depth 0
first_lir_id 868
last_lir_id 1014
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v277 BlockEntry type:Tagged pos:379 <|@
0 2 t278 LoadNamedGeneric t85.length changes[*] type:Tagged pos:379 <|@
0 0 v279 Simulate id=304 push t272, push s195, push t274, push t278 type:Tagged pos:379 <|@
0 0 t280 PushArguments t274 t278 type:Tagged pos:356 <|@
0 2 t281 CallNew t63 t274 #2 changes[*] type:Tagged pos:356 <|@
0 0 v282 Simulate id=299 pop 2 / push t281 type:Tagged pos:356 <|@
0 0 t283 PushArguments t272 t488 t281 type:Tagged pos:354 <|@
0 0 t284 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:354 <|@
0 0 v285 Simulate id=290 pop 3 type:Tagged pos:354 <|@
0 2 t286 Constant 0x2684a679 <String[5]: start> [map 0x30208131] pos:399 <|@
0 6 t288 Constant 0x26880235 <JS Function Date (SharedFunctionInfo 0x2683d3e5)> [map 0x3020d48d] pos:401 <|@
0 2 t289 LoadNamedGeneric t288.now changes[*] type:Tagged pos:406 <|@
0 0 v290 Simulate id=331 push t286, push s195, push t288, push t289 type:Tagged pos:406 <|@
0 0 t291 PushArguments t288 type:Tagged pos:406 <|@
0 2 t292 CallFunction t63 t289 changes[*] type:Tagged pos:406 <|@
0 0 v293 Simulate id=325 pop 2 / push t292 type:Tagged pos:406 <|@
0 0 t294 PushArguments t286 t488 t292 type:Tagged pos:399 <|@
0 0 t295 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:399 <|@
0 0 v296 Simulate id=316 pop 3 type:Tagged pos:399 <|@
0 2 t297 Constant 0x2688bea9 <String[8]: chacha20> [map 0x30208131] pos:426 <|@
0 2 t299 Constant 0x2c012719 <JS Function ChaCha20 (SharedFunctionInfo 0x2688bc55)> [map 0x3020df61] [new space] pos:432 <|@
0 2 t300 Constant 0x2688c3dd PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:441 <|@
0 1 t301 LoadNamedField t300.[in-object]@4 type:Tagged pos:441 <|@
0 2 t302 Constant 0x2688c3f5 PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:446 <|@
0 1 t303 LoadNamedField t302.[in-object]@4 type:Tagged pos:446 <|@
0 0 t304 PushArguments t299 t301 t303 type:Tagged pos:428 <|@
0 2 t305 CallNew t63 t299 #3 changes[*] type:Tagged pos:428 <|@
0 0 v306 Simulate id=350 push t297, push s195, push t305 type:Tagged pos:428 <|@
0 0 t307 PushArguments t297 t488 t305 type:Tagged pos:426 <|@
0 0 t308 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:426 <|@
0 0 v309 Simulate id=341 pop 3 type:Tagged pos:426 <|@
0 0 v312 StoreNamedField t72.[in-object]@4 = t488 changes[GlobalVars] type:Tagged pos:465 <|@
0 0 v313 Simulate id=369 push s195 type:Tagged pos:465 <|@
0 0 v317 Simulate id=359 pop 1 type:Tagged pos:454 <|@
0 0 v318 Goto B31 type:Tagged pos:454 <|@
end_HIR
begin_LIR
868 label () () () () [hir:v277] <|@
870 gap () () () () [hir:v277] <|@
872 dummy-use = [constant:85] [hir:t278] <|@
874 gap () () () () [hir:t278] <|@
876 dummy-use [eax|R]= [stack:3] [hir:t278] <|@
878 gap ((0) = [eax|R];) () () () [hir:t278] <|@
880 dummy-use = [eax|R] [hir:t280] <|@
882 gap () () () () [hir:t280] <|@
884 dummy-use [eax|R]= [constant:274] [hir:t280] <|@
886 gap ((0) = [eax|R];) () () () [hir:t280] <|@
888 dummy-use = [constant:274] [hir:t281] <|@
890 gap () () () () [hir:t281] <|@
892 dummy-use [eax|R]= [stack:3] [hir:t281] <|@
894 gap ((0) = [eax|R];) () () () [hir:t281] <|@
896 dummy-use = [constant:488] [hir:t283] <|@
898 gap () () () () [hir:t283] <|@
900 dummy-use = [eax|R] [hir:t283] <|@
902 gap () () () () [hir:t283] <|@
904 dummy-use [eax|R]= [constant:272] [hir:t283] <|@
906 gap ((0) = [eax|R];) () () () [hir:t283] <|@
908 dummy-use [eax|R]= [stack:3] [hir:t284] <|@
910 gap ((0) = [eax|R];) () () () [hir:t284] <|@
912 dummy-use = [constant:288] [hir:t289] <|@
914 gap () () () () [hir:t289] <|@
916 dummy-use [eax|R]= [stack:3] [hir:t289] <|@
918 gap ((0) = [eax|R];) () () () [hir:t289] <|@
920 dummy-use [ecx|R]= [constant:288] [hir:t291] <|@
922 gap ((0) = [ecx|R];) () () () [hir:t291] <|@
924 dummy-use = [eax|R] [hir:t292] <|@
926 gap () () () () [hir:t292] <|@
928 dummy-use [eax|R]= [stack:3] [hir:t292] <|@
930 gap ((0) = [eax|R];) () () () [hir:t292] <|@
932 dummy-use = [constant:488] [hir:t294] <|@
934 gap () () () () [hir:t294] <|@
936 dummy-use = [eax|R] [hir:t294] <|@
938 gap () () () () [hir:t294] <|@
940 dummy-use [eax|R]= [constant:286] [hir:t294] <|@
942 gap ((0) = [eax|R];) () () () [hir:t294] <|@
944 dummy-use [eax|R]= [stack:3] [hir:t295] <|@
946 gap ((0) = [eax|R];) () () () [hir:t295] <|@
948 dummy-use = [constant:300] [hir:t301] <|@
950 gap () () () () [hir:t301] <|@
952 dummy-use [eax|R]= [constant:300] [hir:t301] <|@
954 gap ((0) = [eax|R];) () () () [hir:t301] <|@
956 dummy-use = [constant:302] [hir:t303] <|@
958 gap () () () () [hir:t303] <|@
960 dummy-use [ecx|R]= [constant:302] [hir:t303] <|@
962 gap ((0) = [ecx|R];) () () () [hir:t303] <|@
964 dummy-use = [eax|R] [hir:t304] <|@
966 gap () () () () [hir:t304] <|@
968 dummy-use = [ecx|R] [hir:t304] <|@
970 gap () () () () [hir:t304] <|@
972 dummy-use [eax|R]= [constant:299] [hir:t304] <|@
974 gap ((0) = [eax|R];) () () () [hir:t304] <|@
976 dummy-use = [constant:299] [hir:t305] <|@
978 gap () () () () [hir:t305] <|@
980 dummy-use [eax|R]= [stack:3] [hir:t305] <|@
982 gap ((0) = [eax|R];) () () () [hir:t305] <|@
984 dummy-use = [constant:488] [hir:t307] <|@
986 gap () () () () [hir:t307] <|@
988 dummy-use = [eax|R] [hir:t307] <|@
990 gap () () () () [hir:t307] <|@
992 dummy-use [eax|R]= [constant:297] [hir:t307] <|@
994 gap ((0) = [eax|R];) () () () [hir:t307] <|@
996 dummy-use [eax|R]= [stack:3] [hir:t308] <|@
998 gap ((0) = [eax|R];) () () () [hir:t308] <|@
1000 dummy-use = [constant:488] [hir:v312] <|@
1002 gap () () () () [hir:v312] <|@
1004 dummy-use = [constant:72] [hir:v312] <|@
1006 gap () () () () [hir:v312] <|@
1008 dummy-use [eax|R]= [constant:72] [hir:v312] <|@
1010 gap ((0) = [eax|R];) () () () [hir:v312] <|@
1012 gap () () () () [hir:v318] <|@
1014 goto B31 [hir:v318] <|@
end_LIR
end_block
begin_block
name "B31"
from_bci -1
to_bci -1
predecessors "B30" "B37"
successors "B32"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B30"
loop_depth 1
first_lir_id 1016
last_lir_id 1030
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v319 BlockEntry type:Tagged pos:470 <|@
0 1 t321 LoadNamedField t72.[in-object]@4 type:Tagged pos:470 <|@
0 0 v323 Deoptimize goto (B32) type:Tagged pos:472 <|@
end_HIR
begin_LIR
1016 label () () () () [hir:v319] <|@
1018 gap () () () () [hir:v319] <|@
1020 dummy-use = [constant:72] [hir:t321] <|@
1022 gap () () () () [hir:t321] <|@
1024 dummy-use [eax|R]= [constant:72] [hir:t321] <|@
1026 gap ((0) = [eax|R];) () () () [hir:t321] <|@
1028 gap () () () () [hir:v323] <|@
1030 deoptimize = [id=359|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v323] <|@
end_LIR
end_block
begin_block
name "B32"
from_bci -1
to_bci -1
predecessors "B31"
successors "B33" "B38"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B31"
loop_depth 1
first_lir_id 1032
last_lir_id 1050
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v324 BlockEntry type:Tagged pos:472 <|@
0 2 t325 CompareGeneric LT t321 t502 changes[*] pos:472 <|@
0 0 v326 Simulate id=376 push t325 type:Tagged pos:472 <|@
0 0 v327 Branch t325 goto (B33, B38) (None) type:Tagged pos:472 <|@
end_HIR
begin_LIR
1032 label () () () () [hir:v324] <|@
1034 gap () () () () [hir:v324] <|@
1036 dummy-use = [eax|R] [hir:t325] <|@
1038 gap () () () () [hir:t325] <|@
1040 dummy-use = [constant:502] [hir:t325] <|@
1042 gap () () () () [hir:t325] <|@
1044 dummy-use [eax|R]= [stack:3] [hir:t325] <|@
1046 gap ((0) = [eax|R];) () () () [hir:t325] <|@
1048 gap () () () () [hir:v327] <|@
1050 branch B33 | B38 on [eax|R] [hir:v327] <|@
end_LIR
end_block
begin_block
name "B33"
from_bci -1
to_bci -1
predecessors "B32"
successors "B34"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B32"
loop_depth 1
first_lir_id 1052
last_lir_id 1058
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v328 BlockEntry type:Tagged pos:472 <|@
0 0 v329 Simulate id=363 pop 1 type:Tagged pos:472 <|@
0 0 v330 Goto B34 type:Tagged pos:472 <|@
end_HIR
begin_LIR
1052 label () () () () Dead block replaced with B34 [hir:v328] <|@
1054 gap () () () () [hir:v328] <|@
1056 gap () () () () [hir:v330] <|@
1058 goto B34 [hir:v330] <|@
end_LIR
end_block
begin_block
name "B34"
from_bci -1
to_bci -1
predecessors "B33"
successors "B35"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B33"
loop_depth 1
first_lir_id 1060
last_lir_id 1078
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v334 BlockEntry type:Tagged pos:454 <|@
0 0 v335 Simulate id=363 type:Tagged pos:454 <|@
0 0 v336 StackCheck t63 changes[NewSpacePromotion] type:Tagged pos:454 <|@
0 2 t337 Constant 0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)> pos:562 <|@
0 1 t339 LoadNamedField t72.[in-object]@4 type:Tagged pos:568 <|@
0 1 t340 Constant 0x268487fd <String[1]: /> [map 0x30208131] pos:572 <|@
0 0 v341 Deoptimize goto (B35) type:Tagged pos:570 <|@
end_HIR
begin_LIR
1060 label () () () () [hir:v334] <|@
1062 gap () () () () [hir:v334] <|@
1064 dummy-use [eax|R]= [stack:3] [hir:v336] <|@
1066 gap ((0) = [eax|R];) () () () [hir:v336] <|@
1068 dummy-use = [constant:72] [hir:t339] <|@
1070 gap () () () () [hir:t339] <|@
1072 dummy-use [eax|R]= [constant:72] [hir:t339] <|@
1074 gap ((0) = [eax|R];) () () () [hir:t339] <|@
1076 gap () () () () [hir:v341] <|@
1078 deoptimize = [id=363|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v341] <|@
end_LIR
end_block
begin_block
name "B35"
from_bci -1
to_bci -1
predecessors "B34"
successors "B36"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B34"
loop_depth 1
first_lir_id 1080
last_lir_id 1126
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v342 BlockEntry type:Tagged pos:570 <|@
0 2 t343 LoadNamedField t63.[in-object]@20 type:Tagged pos:570 <|@
0 2 t344 LoadNamedField t343.[in-object]@12 type:Tagged pos:570 <|@
0 1 t345 LoadNamedField t344.[in-object]@132 type:Tagged pos:570 <|@
0 0 t346 PushArguments t339 t340 type:Tagged pos:570 <|@
0 2 t347 InvokeFunction t63 t345 #2 changes[*] type:Tagged pos:570 <|@
0 0 v348 Simulate id=404 push t337, push t4, push t347 type:Tagged pos:570 <|@
0 1 s349 Constant 2 type:Smi pos:578 <|@
0 0 v350 Deoptimize goto (B36) type:Tagged pos:576 <|@
end_HIR
begin_LIR
1080 label () () () () [hir:v342] <|@
1082 gap () () () () [hir:v342] <|@
1084 dummy-use = [stack:3] [hir:t343] <|@
1086 gap () () () () [hir:t343] <|@
1088 dummy-use [ecx|R]= [stack:3] [hir:t343] <|@
1090 gap ((0) = [ecx|R];) () () () [hir:t343] <|@
1092 dummy-use = [ecx|R] [hir:t344] <|@
1094 gap () () () () [hir:t344] <|@
1096 dummy-use [edx|R]= [ecx|R] [hir:t344] <|@
1098 gap ((0) = [edx|R];) () () () [hir:t344] <|@
1100 dummy-use = [edx|R] [hir:t345] <|@
1102 gap () () () () [hir:t345] <|@
1104 dummy-use [ecx|R]= [edx|R] [hir:t345] <|@
1106 gap ((0) = [ecx|R];) () () () [hir:t345] <|@
1108 dummy-use = [constant:340] [hir:t346] <|@
1110 gap () () () () [hir:t346] <|@
1112 dummy-use [edx|R]= [eax|R] [hir:t346] <|@
1114 gap ((0) = [edx|R];) () () () [hir:t346] <|@
1116 dummy-use = [ecx|R] [hir:t347] <|@
1118 gap () () () () [hir:t347] <|@
1120 dummy-use [eax|R]= [stack:3] [hir:t347] <|@
1122 gap ((0) = [eax|R];) () () () [hir:t347] <|@
1124 gap () () () () [hir:v350] <|@
1126 deoptimize = [id=404|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:337];[constant:4];[eax|R]] [hir:v350] <|@
end_LIR
end_block
begin_block
name "B36"
from_bci -1
to_bci -1
predecessors "B35"
successors "B37"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B35"
loop_depth 1
first_lir_id 1128
last_lir_id 1134
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v351 BlockEntry type:Tagged pos:576 <|@
0 0 v352 Deoptimize goto (B37) type:Tagged pos:576 <|@
end_HIR
begin_LIR
1128 label () () () () [hir:v351] <|@
1130 gap () () () () [hir:v351] <|@
1132 gap () () () () [hir:v352] <|@
1134 deoptimize = [id=404|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:337];[constant:4];[eax|R]] [hir:v352] <|@
end_LIR
end_block
begin_block
name "B37"
from_bci -1
to_bci -1
predecessors "B36"
successors "B31"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B36"
loop_depth 1
first_lir_id 1136
last_lir_id 1290
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v353 BlockEntry type:Tagged pos:576 <|@
0 1 s509 Change t347 t to s allow-undefined-as-nan type:TaggedNumber pos:570 <|@
0 2 s354 Add s509 s349 ! type:TaggedNumber pos:576 <|@
0 0 v355 Simulate id=400 pop 1 / push s354 type:Tagged pos:576 <|@
0 4 t357 Constant 0x2c00d149 <JS Global Object> [map 0x3020f4b1] [new space] pos:562 <|@
0 0 t358 CheckMaps t357 [0x3020f4b1](stability-check) pos:562 <|@
0 1 t510 Change s354 s to t pos:562 <|@
0 0 t359 PushArguments t357 t510 type:Tagged pos:562 <|@
0 1 t360 Constant 0x268080b1 <undefined> [map 0x302081e1] pos:562 <|@
0 1 x361 Constant 0x804e790 type:Any pos:562 <|@
0 1 t363 Constant 0x45834101 <Code: STUB> [map 0x30208399] pos:562 <|@
0 0 t364 CallWithDescriptor t363 t63 t337 t360 t357 x361 #2 changes[*] type:Tagged pos:562 <|@
0 0 v365 Simulate id=394 pop 3 type:Tagged pos:562 <|@
0 2 t366 Constant 0x2688c43d PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:603 <|@
0 3 t367 LoadNamedField t366.[in-object]@4 type:Tagged pos:603 <|@
0 2 t368 LoadNamedGeneric t367.encryptToBuffer changes[*] type:Tagged pos:612 <|@
0 0 v369 Simulate id=421 push t367, push t368 type:Tagged pos:612 <|@
0 2 t371 Constant 0x2688c40d PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:638 <|@
0 1 t372 LoadNamedField t371.[in-object]@4 type:Tagged pos:638 <|@
0 0 t373 PushArguments t367 t85 t372 type:Tagged pos:612 <|@
0 0 t374 CallFunction t63 t368 changes[*] type:Tagged pos:612 <|@
0 0 v375 Simulate id=415 pop 2 type:Tagged pos:612 <|@
0 1 t377 LoadNamedField t72.[in-object]@4 type:Tagged pos:486 <|@
0 1 s511 Change t377 t to s allow-undefined-as-nan type:TaggedNumber pos:487 <|@
0 2 s378 Add s511 s106 ! type:TaggedNumber pos:487 <|@
0 1 t512 Change s378 s to t pos:487 <|@
0 0 v380 StoreNamedField t72.[in-object]@4 = t512 changes[GlobalVars] type:Tagged pos:487 <|@
0 0 v381 Simulate id=385 push s378 type:Tagged pos:487 <|@
0 0 v382 Simulate id=359 pop 1 type:Tagged pos:454 <|@
0 0 v383 Goto B31 type:Tagged pos:454 <|@
end_HIR
begin_LIR
1136 label () () () () [hir:v353] <|@
1138 gap () () () () [hir:v353] <|@
1140 dummy-use [ecx|R]= [eax|R] [hir:s509] <|@
1142 gap ((0) = [ecx|R];) () () () [hir:s509] <|@
1144 dummy-use = [ecx|R] [hir:s354] <|@
1146 gap () () () () [hir:s354] <|@
1148 dummy-use = [constant:349] [hir:s354] <|@
1150 gap () () () () [hir:s354] <|@
1152 dummy-use [eax|R]= [stack:3] [hir:s354] <|@
1154 gap ((0) = [eax|R];) () () () [hir:s354] <|@
1156 dummy-use = [constant:357] [hir:t358] <|@
1158 gap () () () () [hir:t358] <|@
1160 dummy-use [ecx|R]= [constant:357] [hir:t358] <|@
1162 gap ((0) = [ecx|R];) () () () [hir:t358] <|@
1164 dummy-use [ecx|R]= [eax|R] [hir:t510] <|@
1166 gap ((0) = [ecx|R];) () () () [hir:t510] <|@
1168 dummy-use = [ecx|R] [hir:t359] <|@
1170 gap () () () () [hir:t359] <|@
1172 dummy-use [eax|R]= [constant:357] [hir:t359] <|@
1174 gap ((0) = [eax|R];) () () () [hir:t359] <|@
1176 dummy [eax|R]= [hir:x361] <|@
1178 gap ((0) = [eax|R];) () () () [hir:x361] <|@
1180 dummy-use = [stack:3] [hir:t364] <|@
1182 gap () () () () [hir:t364] <|@
1184 dummy-use = [constant:337] [hir:t364] <|@
1186 gap () () () () [hir:t364] <|@
1188 dummy-use = [constant:360] [hir:t364] <|@
1190 gap () () () () [hir:t364] <|@
1192 dummy-use = [constant:357] [hir:t364] <|@
1194 gap () () () () [hir:t364] <|@
1196 dummy-use = [constant:361] [hir:t364] <|@
1198 gap () () () () [hir:t364] <|@
1200 dummy-use [eax|R]= [constant:363] [hir:t364] <|@
1202 gap ((0) = [eax|R];) () () () [hir:t364] <|@
1204 dummy-use = [constant:366] [hir:t367] <|@
1206 gap () () () () [hir:t367] <|@
1208 dummy-use [eax|R]= [constant:366] [hir:t367] <|@
1210 gap ((0) = [eax|R];) () () () [hir:t367] <|@
1212 dummy-use = [eax|R] [hir:t368] <|@
1214 gap () () () () [hir:t368] <|@
1216 dummy-use [ecx|R]= [stack:3] [hir:t368] <|@
1218 gap ((0) = [ecx|R];) () () () [hir:t368] <|@
1220 dummy-use = [constant:371] [hir:t372] <|@
1222 gap () () () () [hir:t372] <|@
1224 dummy-use [edx|R]= [constant:371] [hir:t372] <|@
1226 gap ((0) = [edx|R];) () () () [hir:t372] <|@
1228 dummy-use = [constant:85] [hir:t373] <|@
1230 gap () () () () [hir:t373] <|@
1232 dummy-use = [edx|R] [hir:t373] <|@
1234 gap () () () () [hir:t373] <|@
1236 dummy-use [edx|R]= [eax|R] [hir:t373] <|@
1238 gap ((0) = [edx|R];) () () () [hir:t373] <|@
1240 dummy-use = [ecx|R] [hir:t374] <|@
1242 gap () () () () [hir:t374] <|@
1244 dummy-use [eax|R]= [stack:3] [hir:t374] <|@
1246 gap ((0) = [eax|R];) () () () [hir:t374] <|@
1248 dummy-use = [constant:72] [hir:t377] <|@
1250 gap () () () () [hir:t377] <|@
1252 dummy-use [eax|R]= [constant:72] [hir:t377] <|@
1254 gap ((0) = [eax|R];) () () () [hir:t377] <|@
1256 dummy-use [ecx|R]= [eax|R] [hir:s511] <|@
1258 gap ((0) = [ecx|R];) () () () [hir:s511] <|@
1260 dummy-use = [ecx|R] [hir:s378] <|@
1262 gap () () () () [hir:s378] <|@
1264 dummy-use = [constant:106] [hir:s378] <|@
1266 gap () () () () [hir:s378] <|@
1268 dummy-use [eax|R]= [stack:3] [hir:s378] <|@
1270 gap ((0) = [eax|R];) () () () [hir:s378] <|@
1272 dummy-use [ecx|R]= [eax|R] [hir:t512] <|@
1274 gap ((0) = [ecx|R];) () () () [hir:t512] <|@
1276 dummy-use = [ecx|R] [hir:v380] <|@
1278 gap () () () () [hir:v380] <|@
1280 dummy-use = [constant:72] [hir:v380] <|@
1282 gap () () () () [hir:v380] <|@
1284 dummy-use [eax|R]= [constant:72] [hir:v380] <|@
1286 gap ((0) = [eax|R];) () () () [hir:v380] <|@
1288 gap () () () () [hir:v383] <|@
1290 goto B31 [hir:v383] <|@
end_LIR
end_block
begin_block
name "B38"
from_bci -1
to_bci -1
predecessors "B32"
successors "B39"
xhandlers
flags "dead"
dominator "B32"
loop_depth 0
first_lir_id 1292
last_lir_id 1298
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v331 BlockEntry type:Tagged pos:472 <|@
0 0 v332 Simulate id=360 pop 1 type:Tagged pos:472 <|@
0 0 v333 Goto B39 type:Tagged pos:472 <|@
end_HIR
begin_LIR
1292 label () () () () Dead block replaced with B39 [hir:v331] <|@
1294 gap () () () () [hir:v331] <|@
1296 gap () () () () [hir:v333] <|@
1298 goto B39 [hir:v333] <|@
end_LIR
end_block
begin_block
name "B39"
from_bci -1
to_bci -1
predecessors "B38"
successors "B40"
xhandlers
flags "dead"
dominator "B38"
loop_depth 0
first_lir_id 1300
last_lir_id 1334
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v384 BlockEntry type:Tagged pos:655 <|@
0 2 t385 Constant 0x2688bed9 <String[2]: dT> [map 0x30208131] pos:655 <|@
0 2 t388 LoadNamedGeneric t288.now changes[*] type:Tagged pos:662 <|@
0 0 v389 Simulate id=454 push t385, push s195, push t288, push t388 type:Tagged pos:662 <|@
0 0 t390 PushArguments t288 type:Tagged pos:662 <|@
0 2 t391 CallFunction t63 t388 changes[*] type:Tagged pos:662 <|@
0 0 v392 Simulate id=448 pop 2 / push t391 type:Tagged pos:662 <|@
0 2 t393 Constant 0x2688c425 PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:670 <|@
0 1 t394 LoadNamedField t393.[in-object]@4 type:Tagged pos:670 <|@
0 0 v395 Deoptimize goto (B40) type:Tagged pos:668 <|@
end_HIR
begin_LIR
1300 label () () () () [hir:v384] <|@
1302 gap () () () () [hir:v384] <|@
1304 dummy-use = [constant:288] [hir:t388] <|@
1306 gap () () () () [hir:t388] <|@
1308 dummy-use [eax|R]= [stack:3] [hir:t388] <|@
1310 gap ((0) = [eax|R];) () () () [hir:t388] <|@
1312 dummy-use [ecx|R]= [constant:288] [hir:t390] <|@
1314 gap ((0) = [ecx|R];) () () () [hir:t390] <|@
1316 dummy-use = [eax|R] [hir:t391] <|@
1318 gap () () () () [hir:t391] <|@
1320 dummy-use [eax|R]= [stack:3] [hir:t391] <|@
1322 gap ((0) = [eax|R];) () () () [hir:t391] <|@
1324 dummy-use = [constant:393] [hir:t394] <|@
1326 gap () () () () [hir:t394] <|@
1328 dummy-use [ecx|R]= [constant:393] [hir:t394] <|@
1330 gap ((0) = [ecx|R];) () () () [hir:t394] <|@
1332 gap () () () () [hir:v395] <|@
1334 deoptimize = [id=448|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:385];[constant:195];[eax|R]] [hir:v395] <|@
end_LIR
end_block
begin_block
name "B40"
from_bci -1
to_bci -1
predecessors "B39"
successors "B41"
xhandlers
flags "dead"
dominator "B39"
loop_depth 0
first_lir_id 1336
last_lir_id 1342
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v396 BlockEntry type:Tagged pos:668 <|@
0 0 v397 Deoptimize goto (B41) type:Tagged pos:668 <|@
end_HIR
begin_LIR
1336 label () () () () [hir:v396] <|@
1338 gap () () () () [hir:v396] <|@
1340 gap () () () () [hir:v397] <|@
1342 deoptimize = [id=448|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:385];[constant:195];[eax|R]] [hir:v397] <|@
end_LIR
end_block
begin_block
name "B41"
from_bci -1
to_bci -1
predecessors "B40"
successors "B42"
xhandlers
flags "dead"
dominator "B40"
loop_depth 0
first_lir_id 1344
last_lir_id 1398
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v398 BlockEntry type:Tagged pos:668 <|@
0 1 s514 Change t391 t to s -0? allow-undefined-as-nan type:TaggedNumber pos:662 <|@
0 1 s515 Change t394 t to s allow-undefined-as-nan type:TaggedNumber pos:670 <|@
0 2 s399 Sub s514 s515 ! type:TaggedNumber pos:668 <|@
0 0 v400 Simulate id=444 pop 1 / push s399 type:Tagged pos:668 <|@
0 1 t516 Change s399 s to t pos:655 <|@
0 0 t401 PushArguments t385 t488 t516 type:Tagged pos:655 <|@
0 0 t402 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:655 <|@
0 0 v403 Simulate id=435 pop 3 type:Tagged pos:655 <|@
0 2 t404 Constant 0x2688bee9 <String[3]: msg> [map 0x30208131] pos:685 <|@
0 2 t406 Constant 0x2688bef9 <String[7]: Speed: > [map 0x30208131] pos:687 <|@
0 1 s407 Constant 2 type:Smi pos:700 <|@
0 2 t408 Constant 0x2688c455 PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:714 <|@
0 1 t409 LoadNamedField t408.[in-object]@4 type:Tagged pos:714 <|@
0 0 v411 Deoptimize goto (B42) type:Tagged pos:717 <|@
end_HIR
begin_LIR
1344 label () () () () [hir:v398] <|@
1346 gap () () () () [hir:v398] <|@
1348 dummy-use [edx|R]= [eax|R] [hir:s514] <|@
1350 gap ((0) = [edx|R];) () () () [hir:s514] <|@
1352 dummy-use [eax|R]= [ecx|R] [hir:s515] <|@
1354 gap ((0) = [eax|R];) () () () [hir:s515] <|@
1356 dummy-use = [edx|R] [hir:s399] <|@
1358 gap () () () () [hir:s399] <|@
1360 dummy-use = [eax|R] [hir:s399] <|@
1362 gap () () () () [hir:s399] <|@
1364 dummy-use [eax|R]= [stack:3] [hir:s399] <|@
1366 gap ((0) = [eax|R];) () () () [hir:s399] <|@
1368 dummy-use [ecx|R]= [eax|R] [hir:t516] <|@
1370 gap ((0) = [ecx|R];) () () () [hir:t516] <|@
1372 dummy-use = [constant:488] [hir:t401] <|@
1374 gap () () () () [hir:t401] <|@
1376 dummy-use = [ecx|R] [hir:t401] <|@
1378 gap () () () () [hir:t401] <|@
1380 dummy-use [eax|R]= [constant:385] [hir:t401] <|@
1382 gap ((0) = [eax|R];) () () () [hir:t401] <|@
1384 dummy-use [eax|R]= [stack:3] [hir:t402] <|@
1386 gap ((0) = [eax|R];) () () () [hir:t402] <|@
1388 dummy-use = [constant:408] [hir:t409] <|@
1390 gap () () () () [hir:t409] <|@
1392 dummy-use [eax|R]= [constant:408] [hir:t409] <|@
1394 gap ((0) = [eax|R];) () () () [hir:t409] <|@
1396 gap () () () () [hir:v411] <|@
1398 deoptimize = [id=435|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4]] [hir:v411] <|@
end_LIR
end_block
begin_block
name "B42"
from_bci -1
to_bci -1
predecessors "B41"
successors "B43"
xhandlers
flags "dead"
dominator "B41"
loop_depth 0
first_lir_id 1400
last_lir_id 1422
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v412 BlockEntry type:Tagged pos:717 <|@
0 1 i519 Change t409 t to i -0? allow-undefined-as-nan type:TaggedNumber pos:714 <|@
0 1 i520 Constant 1000 type:Smi pos:717 <|@
0 2 i413 Div i519 i520 -0? type:TaggedNumber pos:717 <|@
0 0 v414 Simulate id=492 push t404, push s195, push t406, push s407, push i413 type:Tagged pos:717 <|@
0 0 v415 Deoptimize goto (B43) type:Tagged pos:711 <|@
end_HIR
begin_LIR
1400 label () () () () [hir:v412] <|@
1402 gap () () () () [hir:v412] <|@
1404 dummy-use [ecx|R]= [eax|R] [hir:i519] <|@
1406 gap ((0) = [ecx|R];) () () () [hir:i519] <|@
1408 dummy-use = [ecx|R] [hir:i413] <|@
1410 gap () () () () [hir:i413] <|@
1412 dummy-use = [constant:520] [hir:i413] <|@
1414 gap () () () () [hir:i413] <|@
1416 dummy-use [eax|R]= [stack:3] [hir:i413] <|@
1418 gap ((0) = [eax|R];) () () () [hir:i413] <|@
1420 gap () () () () [hir:v415] <|@
1422 deoptimize = [id=492|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:404];[constant:195];[constant:406];[constant:407];[eax|R]] [hir:v415] <|@
end_LIR
end_block
begin_block
name "B43"
from_bci -1
to_bci -1
predecessors "B42"
successors "B46" "B44"
xhandlers
flags "dead"
dominator "B42"
loop_depth 0
first_lir_id 1424
last_lir_id 1486
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v416 BlockEntry type:Tagged pos:711 <|@
0 1 i518 Constant 2 type:Smi pos:711 <|@
0 3 i417 Div i518 i413 type:TaggedNumber pos:711 <|@
0 0 v418 Simulate id=486 pop 2 / push i417 type:Tagged pos:711 <|@
0 6 t419 LoadRoot type:Tagged [noOSE] pos:697 <|@
0 1 s420 LoadNamedField t419.%length@4 type:Smi [noOSE] pos:697 <|@
0 3 i475 Constant 1 type:Smi pos:697 <|@
0 1 i524 Change s420 s to i truncating-int32 allow-undefined-as-nan type:Smi pos:697 <|@
0 1 i421 Sar i524 i475 type:TaggedNumber [noOSE] pos:697 <|@
0 1 i422 Sub i421 i475 type:TaggedNumber [noOSE] pos:697 <|@
0 3 t523 Change i417 i to t changes[NewSpacePromotion] pos:697 <|@
0 0 t423 IsSmiAndBranch t523 goto (B46, B44) type:Tagged pos:697 <|@
end_HIR
begin_LIR
1424 label () () () () [hir:v416] <|@
1426 gap () () () () [hir:v416] <|@
1428 dummy-use = [constant:518] [hir:i417] <|@
1430 gap () () () () [hir:i417] <|@
1432 dummy-use = [eax|R] [hir:i417] <|@
1434 gap () () () () [hir:i417] <|@
1436 dummy-use [eax|R]= [stack:3] [hir:i417] <|@
1438 gap ((0) = [eax|R];) () () () [hir:i417] <|@
1440 dummy [ecx|R]= [hir:t419] <|@
1442 gap ((0) = [ecx|R];) () () () [hir:t419] <|@
1444 dummy-use = [ecx|R] [hir:s420] <|@
1446 gap () () () () [hir:s420] <|@
1448 dummy-use [edx|R]= [ecx|R] [hir:s420] <|@
1450 gap ((0) = [edx|R];) () () () [hir:s420] <|@
1452 dummy-use [ebx|R]= [edx|R] [hir:i524] <|@
1454 gap ((0) = [ebx|R];) () () () [hir:i524] <|@
1456 dummy-use = [ebx|R] [hir:i421] <|@
1458 gap () () () () [hir:i421] <|@
1460 dummy-use = [constant:475] [hir:i421] <|@
1462 gap () () () () [hir:i421] <|@
1464 dummy-use [edx|R]= [stack:3] [hir:i421] <|@
1466 gap ((0) = [edx|R];) () () () [hir:i421] <|@
1468 dummy-use = [edx|R] [hir:i422] <|@
1470 gap () () () () [hir:i422] <|@
1472 dummy-use = [constant:475] [hir:i422] <|@
1474 gap () () () () [hir:i422] <|@
1476 dummy-use [edx|R]= [stack:3] [hir:i422] <|@
1478 gap ((0) = [edx|R];) () () () [hir:i422] <|@
1480 dummy-use [ebx|R]= [eax|R] [hir:t523] <|@
1482 gap ((0) = [ebx|R];) () () () [hir:t523] <|@
1484 gap () () () () [hir:t423] <|@
1486 is-smi-and-branch if is_smi([ebx|R]) then B46 else B44 [hir:t423] <|@
end_LIR
end_block
begin_block
name "B44"
from_bci -1
to_bci -1
predecessors "B43"
successors "B45"
xhandlers
flags "dead"
dominator "B43"
loop_depth 0
first_lir_id 1488
last_lir_id 1494
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v433 BlockEntry type:Tagged pos:697 <|@
0 0 v434 Deoptimize goto (B45) type:Tagged pos:697 <|@
end_HIR
begin_LIR
1488 label () () () () [hir:v433] <|@
1490 gap () () () () [hir:v433] <|@
1492 gap () () () () [hir:v434] <|@
1494 deoptimize = [id=486|parameters=1|arguments_stack_height=0|[stack:4];[stack:3];[constant:4];[constant:404];[constant:195];[constant:406];[eax|R]] [hir:v434] <|@
end_LIR
end_block
begin_block
name "B45"
from_bci -1
to_bci -1
predecessors "B44"
successors "B48"
xhandlers
flags "dead"
dominator "B44"
loop_depth 0
first_lir_id 1496
last_lir_id 1502
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v435 BlockEntry type:Tagged pos:697 <|@
0 0 v436 Goto B48 type:Tagged pos:697 <|@
end_HIR
begin_LIR
1496 label () () () () Dead block replaced with B48 [hir:v435] <|@
1498 gap () () () () [hir:v435] <|@
1500 gap () () () () [hir:v436] <|@
1502 goto B48 [hir:v436] <|@
end_LIR
end_block
begin_block
name "B46"
from_bci -1
to_bci -1
predecessors "B43"
successors "B49" "B47"
xhandlers
flags "dead"
dominator "B43"
loop_depth 0
first_lir_id 1504
last_lir_id 1546
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v424 BlockEntry type:Tagged pos:697 <|@
0 1 i425 Bitwise BIT_AND i417 i422 type:TaggedNumber [noOSE] pos:697 <|@
0 2 i426 Shl i425 i475 type:TaggedNumber [noOSE] pos:697 <|@
0 1 t427 LoadKeyed t419[i426] type:Tagged [noOSE] pos:697 <|@
0 0 v428 CompareObjectEqAndBranch t523 t427 goto (B49, B47) type:Tagged pos:697 <|@
end_HIR
begin_LIR
1504 label () () () () [hir:v424] <|@
1506 gap () () () () [hir:v424] <|@
1508 dummy-use = [eax|R] [hir:i425] <|@
1510 gap () () () () [hir:i425] <|@
1512 dummy-use = [edx|R] [hir:i425] <|@
1514 gap () () () () [hir:i425] <|@
1516 dummy-use [eax|R]= [stack:3] [hir:i425] <|@
1518 gap ((0) = [eax|R];) () () () [hir:i425] <|@
1520 dummy-use = [eax|R] [hir:i426] <|@
1522 gap () () () () [hir:i426] <|@
1524 dummy-use = [constant:475] [hir:i426] <|@
1526 gap () () () () [hir:i426] <|@
1528 dummy-use [eax|R]= [stack:3] [hir:i426] <|@
1530 gap ((0) = [eax|R];) () () () [hir:i426] <|@
1532 dummy-use = [eax|R] [hir:t427] <|@
1534 gap () () () () [hir:t427] <|@
1536 dummy-use = [ecx|R] [hir:t427] <|@
1538 gap () () () () [hir:t427] <|@
1540 dummy-use [edx|R]= [ecx|R] [hir:t427] <|@
1542 gap ((0) = [edx|R];) () () () [hir:t427] <|@
1544 gap () () () () [hir:v428] <|@
1546 cmp-object-eq-and-branch = [ebx|R] [edx|R] [hir:v428] <|@
end_LIR
end_block
begin_block
name "B47"
from_bci -1
to_bci -1
predecessors "B46"
successors "B48"
xhandlers
flags "dead"
dominator "B46"
loop_depth 0
first_lir_id 1548
last_lir_id 1554
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v431 BlockEntry type:Tagged pos:697 <|@
0 0 v432 Goto B48 type:Tagged pos:697 <|@
end_HIR
begin_LIR
1548 label () () () () Dead block replaced with B48 [hir:v431] <|@
1550 gap () () () () [hir:v431] <|@
1552 gap () () () () [hir:v432] <|@
1554 goto B48 [hir:v432] <|@
end_LIR
end_block
begin_block
name "B48"
from_bci -1
to_bci -1
predecessors "B47" "B45"
successors "B51"
xhandlers
flags "dead"
dominator "B43"
loop_depth 0
first_lir_id 1556
last_lir_id 1570
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v440 BlockEntry type:Tagged pos:697 <|@
0 0 t441 PushArguments t523 type:Tagged [noOSE] pos:697 <|@
0 1 t442 CallRuntime #1 changes[*] type:Tagged [noOSE] pos:697 <|@
0 0 v443 Goto B51 type:Tagged pos:697 <|@
end_HIR
begin_LIR
1556 label () () () () [hir:v440] <|@
1558 gap () () () () [hir:v440] <|@
1560 dummy-use [eax|R]= [ebx|R] [hir:t441] <|@
1562 gap ((0) = [eax|R];) () () () [hir:t441] <|@
1564 dummy-use [eax|R]= [stack:3] [hir:t442] <|@
1566 gap ((0) = [eax|R];) () () () [hir:t442] <|@
1568 gap () ([eax|R];) () () [hir:v443] <|@
1570 goto B51 [hir:v443] <|@
end_LIR
end_block
begin_block
name "B49"
from_bci -1
to_bci -1
predecessors "B46"
successors "B50"
xhandlers
flags "dead"
dominator "B46"
loop_depth 0
first_lir_id 1572
last_lir_id 1578
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v429 BlockEntry type:Tagged pos:697 <|@
0 0 v430 Goto B50 type:Tagged pos:697 <|@
end_HIR
begin_LIR
1572 label () () () () Dead block replaced with B50 [hir:v429] <|@
1574 gap () () () () [hir:v429] <|@
1576 gap () () () () [hir:v430] <|@
1578 goto B50 [hir:v430] <|@
end_LIR
end_block
begin_block
name "B50"
from_bci -1
to_bci -1
predecessors "B49"
successors "B51"
xhandlers
flags "dead"
dominator "B49"
loop_depth 0
first_lir_id 1580
last_lir_id 1598
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v437 BlockEntry type:Tagged pos:697 <|@
0 1 t439 LoadKeyed t419[i426 + 11] type:Tagged [noOSE] pos:697 <|@
0 0 v444 Goto B51 type:Tagged pos:697 <|@
end_HIR
begin_LIR
1580 label () () () () [hir:v437] <|@
1582 gap () () () () [hir:v437] <|@
1584 dummy-use = [eax|R] [hir:t439] <|@
1586 gap () () () () [hir:t439] <|@
1588 dummy-use = [ecx|R] [hir:t439] <|@
1590 gap () () () () [hir:t439] <|@
1592 dummy-use [eax|R]= [ecx|R] [hir:t439] <|@
1594 gap ((0) = [eax|R];) () () () [hir:t439] <|@
1596 gap () ([eax|R];) () () [hir:v444] <|@
1598 goto B51 [hir:v444] <|@
end_LIR
end_block
begin_block
name "B51"
from_bci -1
to_bci -1
predecessors "B48" "B50"
successors
xhandlers
flags "dead"
dominator "B43"
loop_depth 0
first_lir_id 1600
last_lir_id 1698
begin_states
begin_locals
size 1
method "None"
-1 t445 [ t442 t439 uses:1_0s_0i_0d_0t type:Tagged]
end_locals
end_states
begin_HIR
0 0 v446 BlockEntry type:Tagged pos:697 <|@
0 1 t447 StringAdd t406 t445 (N) changes[NewSpacePromotion] pos:697 <|@
0 1 t448 Constant 0x2688bf0d <String[4]: MB/s> [map 0x30208131] pos:728 <|@
0 1 t449 StringAdd t447 t448 (N) changes[NewSpacePromotion] pos:726 <|@
0 0 t450 PushArguments t404 t488 t449 type:Tagged pos:685 <|@
0 0 t451 CallRuntime initializeVarGlobal #3 changes[*] type:Tagged pos:685 <|@
0 0 v452 Simulate id=466 pop 4 type:Tagged pos:685 <|@
0 1 t453 Constant 0x2688ac99 <JS Function print (SharedFunctionInfo 0x2688ac39)> pos:736 <|@
0 2 t454 Constant 0x2688c46d PropertyCell for 0x268080b1 <undefined> [map 0x302082e9] pos:742 <|@
0 1 t455 LoadNamedField t454.[in-object]@4 type:Tagged pos:742 <|@
0 4 t457 Constant 0x2c00d149 <JS Global Object> [map 0x3020f4b1] [new space] pos:736 <|@
0 0 t458 CheckMaps t457 [0x3020f4b1](stability-check) pos:736 <|@
0 0 t459 PushArguments t457 t455 type:Tagged pos:736 <|@
0 1 t460 Constant 0x268080b1 <undefined> [map 0x302081e1] pos:736 <|@
0 1 x461 Constant 0x804e790 type:Any pos:736 <|@
0 1 t463 Constant 0x45834101 <Code: STUB> [map 0x30208399] pos:736 <|@
0 2 t464 CallWithDescriptor t463 t63 t453 t460 t457 x461 #2 changes[*] type:Tagged pos:736 <|@
0 0 v465 Simulate id=510 push t464 type:Tagged pos:736 <|@
0 0 v470 Return t464 (pop s195 values) type:Tagged pos:748 <|@
end_HIR
begin_LIR
1600 label () ((0) = [eax|R];) () () [hir:v446] <|@
1602 gap () () () () [hir:v446] <|@
1604 dummy-use = [constant:406] [hir:t447] <|@
1606 gap () () () () [hir:t447] <|@
1608 dummy-use = [eax|R] [hir:t447] <|@
1610 gap () () () () [hir:t447] <|@
1612 dummy-use [eax|R]= [stack:3] [hir:t447] <|@
1614 gap ((0) = [eax|R];) () () () [hir:t447] <|@
1616 dummy-use = [eax|R] [hir:t449] <|@
1618 gap () () () () [hir:t449] <|@
1620 dummy-use = [constant:448] [hir:t449] <|@
1622 gap () () () () [hir:t449] <|@
1624 dummy-use [eax|R]= [stack:3] [hir:t449] <|@
1626 gap ((0) = [eax|R];) () () () [hir:t449] <|@
1628 dummy-use = [constant:488] [hir:t450] <|@
1630 gap () () () () [hir:t450] <|@
1632 dummy-use = [eax|R] [hir:t450] <|@
1634 gap () () () () [hir:t450] <|@
1636 dummy-use [eax|R]= [constant:404] [hir:t450] <|@
1638 gap ((0) = [eax|R];) () () () [hir:t450] <|@
1640 dummy-use [eax|R]= [stack:3] [hir:t451] <|@
1642 gap ((0) = [eax|R];) () () () [hir:t451] <|@
1644 dummy-use = [constant:454] [hir:t455] <|@
1646 gap () () () () [hir:t455] <|@
1648 dummy-use [eax|R]= [constant:454] [hir:t455] <|@
1650 gap ((0) = [eax|R];) () () () [hir:t455] <|@
1652 dummy-use = [constant:457] [hir:t458] <|@
1654 gap () () () () [hir:t458] <|@
1656 dummy-use [ecx|R]= [constant:457] [hir:t458] <|@
1658 gap ((0) = [ecx|R];) () () () [hir:t458] <|@
1660 dummy-use = [eax|R] [hir:t459] <|@
1662 gap () () () () [hir:t459] <|@
1664 dummy-use [eax|R]= [constant:457] [hir:t459] <|@
1666 gap ((0) = [eax|R];) () () () [hir:t459] <|@
1668 dummy [eax|R]= [hir:x461] <|@
1670 gap ((0) = [eax|R];) () () () [hir:x461] <|@
1672 dummy-use = [stack:3] [hir:t464] <|@
1674 gap () () () () [hir:t464] <|@
1676 dummy-use = [constant:453] [hir:t464] <|@
1678 gap () () () () [hir:t464] <|@
1680 dummy-use = [constant:460] [hir:t464] <|@
1682 gap () () () () [hir:t464] <|@
1684 dummy-use = [constant:457] [hir:t464] <|@
1686 gap () () () () [hir:t464] <|@
1688 dummy-use = [constant:461] [hir:t464] <|@
1690 gap () () () () [hir:t464] <|@
1692 dummy-use [eax|R]= [constant:463] [hir:t464] <|@
1694 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t464] <|@
1696 return = [eax|R] NULL [constant:195] [hir:v470] <|@
1698 gap () () () () [hir:v470] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "quarterRound"
method "quarterRound:1"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 34
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 t9 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 23 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 23 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 3 t5 Parameter 3 type:Tagged <|@
0 3 t6 Parameter 4 type:Tagged <|@
0 3 t7 Parameter 5 type:Tagged <|@
0 0 t8 ArgumentsObject t2 t3 t4 t5 t6 t7 type:Tagged <|@
0 0 v10 Simulate id=2 var[6] = t1, var[5] = t7, var[4] = t6, var[3] = t5, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v11 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-6]= [hir:t2] <|@
10 gap () ([stack:-6];) () () [hir:t2] <|@
12 parameter [stack:-5]= [hir:t3] <|@
14 gap () ([stack:-5];) () () [hir:t3] <|@
16 parameter [stack:-4]= [hir:t4] <|@
18 gap () ([stack:-4];) () () [hir:t4] <|@
20 parameter [stack:-3]= [hir:t5] <|@
22 gap () ([stack:-3];) () () [hir:t5] <|@
24 parameter [stack:-2]= [hir:t6] <|@
26 gap () ([stack:-2];) () () [hir:t6] <|@
28 parameter [stack:-1]= [hir:t7] <|@
30 gap () ([stack:-1];) () () [hir:t7] <|@
32 gap () () () () [hir:v11] <|@
34 goto B1 [hir:v11] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 36
last_lir_id 338
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v12 BlockEntry type:Tagged <|@
0 0 v13 Simulate id=3 type:Tagged <|@
0 0 v14 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t16 CheckHeapObject t3 pos:31 <|@
0 0 t17 CheckMaps t3 [0x3020dca1] pos:31 <|@
0 26 t18 LoadNamedField t3.%elements@8 type:Tagged pos:31 <|@
0 1 s19 LoadNamedField t18.%length@4 type:Smi pos:31 <|@
0 7 i314 Change t4 t to i type:TaggedNumber pos:31 <|@
0 4 i339 Change s19 s to i type:Smi pos:31 <|@
0 0 i20 BoundsCheck i314 i339 type:Tagged pos:31 <|@
0 1 i21 LoadKeyed t18[i314] t3 check_hole type:Tagged pos:31 <|@
0 7 i322 Change t5 t to i type:TaggedNumber pos:35 <|@
0 0 i26 BoundsCheck i322 i339 type:Tagged pos:35 <|@
0 1 i27 LoadKeyed t18[i322] t3 check_hole type:Tagged pos:35 <|@
0 1 d340 Change i21 i to d allow-undefined-as-nan type:TaggedNumber pos:31 <|@
0 1 d342 Change i27 i to d allow-undefined-as-nan type:TaggedNumber pos:31 <|@
0 1 d28 Add d340 d342 ! type:TaggedNumber pos:31 <|@
0 2 t32 Constant 0x26884b71 <an Object with map 0x3020dccd> [map 0x3020dccd] pos:31 <|@
0 0 t33 CheckMaps t32 [0x3020dccd](stability-check) pos:31 <|@
0 2 t34 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:31 <|@
0 0 t35 CheckMaps t34 [0x3020c465](stability-check) pos:31 <|@
0 1 i343 Change d28 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:31 <|@
0 0 v39 StoreKeyed t18[i314] = i343 changes[TypedArrayElements] type:Tagged pos:31 <|@
0 0 v40 Simulate id=4 type:Tagged pos:31 <|@
0 7 i338 Change t7 t to i type:TaggedNumber pos:50 <|@
0 0 i45 BoundsCheck i338 i339 type:Tagged pos:50 <|@
0 1 i46 LoadKeyed t18[i338] t3 check_hole type:Tagged pos:50 <|@
0 1 i52 LoadKeyed t18[i314] t3 check_hole type:Tagged pos:57 <|@
0 2 i53 Bitwise BIT_XOR i46 i52 type:TaggedNumber pos:54 <|@
0 2 i347 Constant 16 type:Smi pos:62 <|@
0 1 i56 Shl i53 i347 type:TaggedNumber pos:62 <|@
0 1 i73 Shr i53 i347 type:TaggedNumber pos:86 <|@
0 1 i75 Bitwise BIT_OR i56 i73 type:TaggedNumber pos:69 <|@
0 0 v86 StoreKeyed t18[i338] = i75 changes[TypedArrayElements] type:Tagged pos:45 <|@
0 0 v87 Simulate id=44 type:Tagged pos:45 <|@
0 7 i330 Change t6 t to i type:TaggedNumber pos:108 <|@
0 0 i92 BoundsCheck i330 i339 type:Tagged pos:108 <|@
0 1 i93 LoadKeyed t18[i330] t3 check_hole type:Tagged pos:108 <|@
0 1 i99 LoadKeyed t18[i338] t3 check_hole type:Tagged pos:112 <|@
0 1 d353 Change i93 i to d allow-undefined-as-nan type:TaggedNumber pos:108 <|@
0 1 d355 Change i99 i to d allow-undefined-as-nan type:TaggedNumber pos:108 <|@
0 1 d100 Add d353 d355 ! type:TaggedNumber pos:108 <|@
0 1 i356 Change d100 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:108 <|@
0 0 v111 StoreKeyed t18[i330] = i356 changes[TypedArrayElements] type:Tagged pos:108 <|@
0 0 v112 Simulate id=114 type:Tagged pos:108 <|@
0 1 i118 LoadKeyed t18[i322] t3 check_hole type:Tagged pos:127 <|@
0 1 i124 LoadKeyed t18[i330] t3 check_hole type:Tagged pos:134 <|@
0 2 i125 Bitwise BIT_XOR i118 i124 type:TaggedNumber pos:131 <|@
0 1 i360 Constant 12 type:Smi pos:139 <|@
0 1 i128 Shl i125 i360 type:TaggedNumber pos:139 <|@
0 1 i363 Constant 20 type:Smi pos:163 <|@
0 1 i145 Shr i125 i363 type:TaggedNumber pos:163 <|@
0 1 i147 Bitwise BIT_OR i128 i145 type:TaggedNumber pos:146 <|@
0 0 v158 StoreKeyed t18[i322] = i147 changes[TypedArrayElements] type:Tagged pos:122 <|@
0 0 v159 Simulate id=154 type:Tagged pos:122 <|@
0 1 i165 LoadKeyed t18[i314] t3 check_hole type:Tagged pos:185 <|@
0 1 i171 LoadKeyed t18[i322] t3 check_hole type:Tagged pos:189 <|@
0 1 d366 Change i165 i to d allow-undefined-as-nan type:TaggedNumber pos:185 <|@
0 1 d368 Change i171 i to d allow-undefined-as-nan type:TaggedNumber pos:185 <|@
0 1 d172 Add d366 d368 ! type:TaggedNumber pos:185 <|@
0 1 i369 Change d172 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:185 <|@
0 0 v183 StoreKeyed t18[i314] = i369 changes[TypedArrayElements] type:Tagged pos:185 <|@
0 0 v184 Simulate id=224 type:Tagged pos:185 <|@
0 1 i190 LoadKeyed t18[i338] t3 check_hole type:Tagged pos:204 <|@
0 1 i196 LoadKeyed t18[i314] t3 check_hole type:Tagged pos:211 <|@
0 2 i197 Bitwise BIT_XOR i190 i196 type:TaggedNumber pos:208 <|@
0 1 i373 Constant 8 type:Smi pos:216 <|@
0 1 i200 Shl i197 i373 type:TaggedNumber pos:216 <|@
0 1 i376 Constant 24 type:Smi pos:240 <|@
0 1 i217 Shr i197 i376 type:TaggedNumber pos:240 <|@
0 1 i219 Bitwise BIT_OR i200 i217 type:TaggedNumber pos:223 <|@
0 0 v230 StoreKeyed t18[i338] = i219 changes[TypedArrayElements] type:Tagged pos:199 <|@
0 0 v231 Simulate id=264 type:Tagged pos:199 <|@
0 1 i237 LoadKeyed t18[i330] t3 check_hole type:Tagged pos:262 <|@
0 1 i243 LoadKeyed t18[i338] t3 check_hole type:Tagged pos:266 <|@
0 1 d379 Change i237 i to d allow-undefined-as-nan type:TaggedNumber pos:262 <|@
0 1 d381 Change i243 i to d allow-undefined-as-nan type:TaggedNumber pos:262 <|@
0 1 d244 Add d379 d381 ! type:TaggedNumber pos:262 <|@
0 1 i382 Change d244 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:262 <|@
0 0 v255 StoreKeyed t18[i330] = i382 changes[TypedArrayElements] type:Tagged pos:262 <|@
0 0 v256 Simulate id=334 type:Tagged pos:262 <|@
0 1 i262 LoadKeyed t18[i322] t3 check_hole type:Tagged pos:281 <|@
0 1 i268 LoadKeyed t18[i330] t3 check_hole type:Tagged pos:288 <|@
0 2 i269 Bitwise BIT_XOR i262 i268 type:TaggedNumber pos:285 <|@
0 1 i386 Constant 7 type:Smi pos:293 <|@
0 1 i272 Shl i269 i386 type:TaggedNumber pos:293 <|@
0 1 i389 Constant 25 type:Smi pos:317 <|@
0 1 i289 Shr i269 i389 type:TaggedNumber pos:317 <|@
0 1 i291 Bitwise BIT_OR i272 i289 type:TaggedNumber pos:300 <|@
0 0 v302 StoreKeyed t18[i322] = i291 changes[TypedArrayElements] type:Tagged pos:276 <|@
0 0 v303 Simulate id=374 type:Tagged pos:276 <|@
0 1 s304 Constant 5 type:Smi <|@
0 0 v305 Return t9 (pop s304 values) type:Tagged <|@
end_HIR
begin_LIR
36 label () () () () [hir:v12] <|@
38 gap () ([esi|R] = [eax|R];) () () [hir:v12] <|@
40 stack-check = [esi|R] [id=3|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v14] <|@
42 gap () () () () [hir:v14] <|@
44 lazy-bailout = [id=3|deopt_id=0|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v14] <|@
46 gap () () ([eax|R] = [stack:-5];) () [hir:v14] <|@
48 check-non-smi = [eax|R] [id=3|deopt_id=1|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:t16] <|@
50 gap () () () () [hir:t16] <|@
52 check-maps = [eax|R] [id=3|deopt_id=2|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:t17] <|@
54 gap () () () () [hir:t17] <|@
56 load-named-field [ecx|R]= [eax|R] [hir:t18] <|@
58 gap ((0) = [ecx|R];) () () () [hir:t18] <|@
60 load-named-field [edx|R]= [ecx|R] [hir:s19] <|@
62 gap ((0) = [edx|R];) ([ebx|R] = [stack:-4];) () () [hir:s19] <|@
64 tagged-to-i [ebx|R]= [ebx|R] [id=3|deopt_id=7|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i314] <|@
66 gap ((0) = [ebx|R];) ([edx|R];) () () [hir:i314] <|@
68 smi-untag [edx|R]= [edx|R] [hir:i339] <|@
70 gap ((0) = [edx|R];) () () () [hir:i339] <|@
72 bounds-check = [ebx|R] [edx|R] [id=3|deopt_id=3|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i20] <|@
74 gap () () () () [hir:i20] <|@
76 load-keyed [esi|R][ecx|R][[ebx|R]] [hir:i21] <|@
78 gap ((0) = [esi|R];) ([edi|R] = [stack:-3];) () () [hir:i21] <|@
80 tagged-to-i [edi|R]= [edi|R] [id=3|deopt_id=8|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i322] <|@
82 gap ([stack:2] = [edi|R];) () () () [hir:i322] <|@
84 bounds-check = [edi|R] [edx|R] [id=3|deopt_id=4|parameters=6|arguments_stack_height=0|[stack:-6];[eax|R];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i26] <|@
86 gap () () () () [hir:i26] <|@
88 load-keyed [eax|R][ecx|R][[edi|R]] [hir:i27] <|@
90 gap ((0) = [eax|R];) () () () [hir:i27] <|@
92 uint32-to-double [xmm1|R]= [esi|R] [hir:d340] <|@
94 gap ((0) = [xmm1|R];) () () () [hir:d340] <|@
96 uint32-to-double [xmm2|R]= [eax|R] [hir:d342] <|@
98 gap ((0) = [xmm2|R];) () () () [hir:d342] <|@
100 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d28] <|@
102 gap ((0) = [xmm1|R];) () () () [hir:d28] <|@
104 check-maps = NULL [hir:t33] <|@
106 gap () () () () [hir:t33] <|@
108 check-maps = NULL [hir:t35] <|@
110 gap () () () () [hir:t35] <|@
112 double-to-i [eax|R]= [xmm1|R] [hir:i343] <|@
114 gap ((0) = [eax|R];) () () () [hir:i343] <|@
116 store-keyed [ecx|R][[ebx|R]] <- [eax|R] [hir:v39] <|@
118 gap () ([eax|R] = [stack:-1];) () () [hir:v39] <|@
120 tagged-to-i [eax|R]= [eax|R] [id=4|deopt_id=9|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i338] <|@
122 gap ([stack:3] = [eax|R];) () () () [hir:i338] <|@
124 bounds-check = [eax|R] [edx|R] [id=4|deopt_id=5|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i45] <|@
126 gap () () () () [hir:i45] <|@
128 load-keyed [esi|R][ecx|R][[eax|R]] [hir:i46] <|@
130 gap ((0) = [esi|R];) () () () [hir:i46] <|@
132 load-keyed [edi|R][ecx|R][[ebx|R]] [hir:i52] <|@
134 gap ((0) = [edi|R];) ([edi|R];) () () [hir:i52] <|@
136 bit-i [edi|R]= [edi|R] [esi|R] [hir:i53] <|@
138 gap ((0) = [edi|R];) ([esi|R] = [edi|R];) () () [hir:i53] <|@
140 shift-i [esi|R]= [esi|R] [constant:347] [hir:i56] <|@
142 gap ((0) = [esi|R];) ([edi|R];) () () [hir:i56] <|@
144 shift-i [edi|R]= [edi|R] [constant:347] [hir:i73] <|@
146 gap ((0) = [edi|R];) ([edi|R];) () () [hir:i73] <|@
148 bit-i [edi|R]= [edi|R] [esi|R] [hir:i75] <|@
150 gap ((0) = [edi|R];) () () () [hir:i75] <|@
152 store-keyed [ecx|R][[eax|R]] <- [edi|R] [hir:v86] <|@
154 gap () ([esi|R] = [stack:-2];) () () [hir:v86] <|@
156 tagged-to-i [esi|R]= [esi|R] [id=44|deopt_id=10|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i330] <|@
158 gap ((0) = [esi|R];) () () () [hir:i330] <|@
160 bounds-check = [esi|R] [edx|R] [id=44|deopt_id=6|parameters=6|arguments_stack_height=0|[stack:-6];[stack:-5];[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:i92] <|@
162 gap () () () () [hir:i92] <|@
164 load-keyed [edx|R][ecx|R][[esi|R]] [hir:i93] <|@
166 gap ((0) = [edx|R];) () () () [hir:i93] <|@
168 load-keyed [edi|R][ecx|R][[eax|R]] [hir:i99] <|@
170 gap ((0) = [edi|R];) () () () [hir:i99] <|@
172 uint32-to-double [xmm1|R]= [edx|R] [hir:d353] <|@
174 gap ((0) = [xmm1|R];) () () () [hir:d353] <|@
176 uint32-to-double [xmm2|R]= [edi|R] [hir:d355] <|@
178 gap ((0) = [xmm2|R];) () () () [hir:d355] <|@
180 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d100] <|@
182 gap ((0) = [xmm1|R];) () () () [hir:d100] <|@
184 double-to-i [edx|R]= [xmm1|R] [hir:i356] <|@
186 gap ((0) = [edx|R];) () () () [hir:i356] <|@
188 store-keyed [ecx|R][[esi|R]] <- [edx|R] [hir:v111] <|@
190 gap () () ([edx|R] = [stack:2];) () [hir:v111] <|@
192 load-keyed [edi|R][ecx|R][[edx|R]] [hir:i118] <|@
194 gap ((0) = [edi|R];) () () () [hir:i118] <|@
196 load-keyed [eax|R][ecx|R][[esi|R]] [hir:i124] <|@
198 gap ((0) = [eax|R];) ([eax|R];) () () [hir:i124] <|@
200 bit-i [eax|R]= [eax|R] [edi|R] [hir:i125] <|@
202 gap ((0) = [eax|R];) ([edi|R] = [eax|R];) () () [hir:i125] <|@
204 shift-i [edi|R]= [edi|R] [constant:360] [hir:i128] <|@
206 gap ((0) = [edi|R];) ([eax|R];) () () [hir:i128] <|@
208 shift-i [eax|R]= [eax|R] [constant:363] [hir:i145] <|@
210 gap ((0) = [eax|R];) ([eax|R];) () () [hir:i145] <|@
212 bit-i [eax|R]= [eax|R] [edi|R] [hir:i147] <|@
214 gap ((0) = [eax|R];) () () () [hir:i147] <|@
216 store-keyed [ecx|R][[edx|R]] <- [eax|R] [hir:v158] <|@
218 gap () () () () [hir:v158] <|@
220 load-keyed [eax|R][ecx|R][[ebx|R]] [hir:i165] <|@
222 gap ((0) = [eax|R];) () () () [hir:i165] <|@
224 load-keyed [edi|R][ecx|R][[edx|R]] [hir:i171] <|@
226 gap ((0) = [edi|R];) () () () [hir:i171] <|@
228 uint32-to-double [xmm1|R]= [eax|R] [hir:d366] <|@
230 gap ((0) = [xmm1|R];) () () () [hir:d366] <|@
232 uint32-to-double [xmm2|R]= [edi|R] [hir:d368] <|@
234 gap ((0) = [xmm2|R];) () () () [hir:d368] <|@
236 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d172] <|@
238 gap ((0) = [xmm1|R];) () () () [hir:d172] <|@
240 double-to-i [eax|R]= [xmm1|R] [hir:i369] <|@
242 gap ((0) = [eax|R];) () () () [hir:i369] <|@
244 store-keyed [ecx|R][[ebx|R]] <- [eax|R] [hir:v183] <|@
246 gap () () ([eax|R] = [stack:3];) () [hir:v183] <|@
248 load-keyed [edi|R][ecx|R][[eax|R]] [hir:i190] <|@
250 gap ((0) = [edi|R];) () () () [hir:i190] <|@
252 load-keyed [ebx|R][ecx|R][[ebx|R]] [hir:i196] <|@
254 gap ((0) = [ebx|R];) ([ebx|R];) () () [hir:i196] <|@
256 bit-i [ebx|R]= [ebx|R] [edi|R] [hir:i197] <|@
258 gap ((0) = [ebx|R];) ([edi|R] = [ebx|R];) () () [hir:i197] <|@
260 shift-i [edi|R]= [edi|R] [constant:373] [hir:i200] <|@
262 gap ((0) = [edi|R];) ([ebx|R];) () () [hir:i200] <|@
264 shift-i [ebx|R]= [ebx|R] [constant:376] [hir:i217] <|@
266 gap ((0) = [ebx|R];) ([ebx|R];) () () [hir:i217] <|@
268 bit-i [ebx|R]= [ebx|R] [edi|R] [hir:i219] <|@
270 gap ((0) = [ebx|R];) () () () [hir:i219] <|@
272 store-keyed [ecx|R][[eax|R]] <- [ebx|R] [hir:v230] <|@
274 gap () () () () [hir:v230] <|@
276 load-keyed [ebx|R][ecx|R][[esi|R]] [hir:i237] <|@
278 gap ((0) = [ebx|R];) () () () [hir:i237] <|@
280 load-keyed [eax|R][ecx|R][[eax|R]] [hir:i243] <|@
282 gap ((0) = [eax|R];) () () () [hir:i243] <|@
284 uint32-to-double [xmm1|R]= [ebx|R] [hir:d379] <|@
286 gap ((0) = [xmm1|R];) () () () [hir:d379] <|@
288 uint32-to-double [xmm2|R]= [eax|R] [hir:d381] <|@
290 gap ((0) = [xmm2|R];) () () () [hir:d381] <|@
292 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d244] <|@
294 gap ((0) = [xmm1|R];) () () () [hir:d244] <|@
296 double-to-i [eax|R]= [xmm1|R] [hir:i382] <|@
298 gap ((0) = [eax|R];) () () () [hir:i382] <|@
300 store-keyed [ecx|R][[esi|R]] <- [eax|R] [hir:v255] <|@
302 gap () () () () [hir:v255] <|@
304 load-keyed [eax|R][ecx|R][[edx|R]] [hir:i262] <|@
306 gap ((0) = [eax|R];) () () () [hir:i262] <|@
308 load-keyed [ebx|R][ecx|R][[esi|R]] [hir:i268] <|@
310 gap ((0) = [ebx|R];) ([ebx|R];) () () [hir:i268] <|@
312 bit-i [ebx|R]= [ebx|R] [eax|R] [hir:i269] <|@
314 gap ((0) = [ebx|R];) ([eax|R] = [ebx|R];) () () [hir:i269] <|@
316 shift-i [eax|R]= [eax|R] [constant:386] [hir:i272] <|@
318 gap ((0) = [eax|R];) ([ebx|R];) () () [hir:i272] <|@
320 shift-i [ebx|R]= [ebx|R] [constant:389] [hir:i289] <|@
322 gap ((0) = [ebx|R];) ([ebx|R];) () () [hir:i289] <|@
324 bit-i [ebx|R]= [ebx|R] [eax|R] [hir:i291] <|@
326 gap ((0) = [ebx|R];) () () () [hir:i291] <|@
328 store-keyed [ecx|R][[edx|R]] <- [ebx|R] [hir:v302] <|@
330 gap () () () () [hir:v302] <|@
332 constant-t [eax|R]= [hir:t9] <|@
334 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t9] <|@
336 return = [eax|R] NULL [constant:304] [hir:v305] <|@
338 gap () () () () [hir:v305] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "U32TO8_LE"
method "U32TO8_LE:2"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 26
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 t7 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 8 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 7 t3 Parameter 1 type:Tagged <|@
0 4 t4 Parameter 2 type:Tagged <|@
0 3 t5 Parameter 3 type:Tagged <|@
0 0 t6 ArgumentsObject t2 t3 t4 t5 type:Tagged <|@
0 0 v8 Simulate id=2 var[4] = t1, var[3] = t5, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v9 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-4]= [hir:t2] <|@
10 gap () ([stack:-4];) () () [hir:t2] <|@
12 parameter [stack:-3]= [hir:t3] <|@
14 gap () ([stack:-3];) () () [hir:t3] <|@
16 parameter [stack:-2]= [hir:t4] <|@
18 gap () ([stack:-2];) () () [hir:t4] <|@
20 parameter [stack:-1]= [hir:t5] <|@
22 gap () ([stack:-1];) () () [hir:t5] <|@
24 gap () () () () [hir:v9] <|@
26 goto B1 [hir:v9] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 28
last_lir_id 134
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v10 BlockEntry type:Tagged <|@
0 0 v11 Simulate id=3 type:Tagged <|@
0 0 v12 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t14 CheckHeapObject t3 pos:27 <|@
0 0 t15 CheckMaps t3 [0x3020da91] pos:27 <|@
0 2 t16 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:27 <|@
0 0 t17 CheckMaps t16 [0x3020dabd](stability-check) pos:27 <|@
0 2 t18 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:27 <|@
0 0 t19 CheckMaps t18 [0x3020c465](stability-check) pos:27 <|@
0 6 t20 LoadNamedField t3.%elements@8 type:Tagged pos:27 <|@
0 3 s21 LoadNamedField t20.%length@4 type:Smi pos:27 <|@
0 2 i82 Change t4 t to i type:TaggedNumber pos:27 <|@
0 1 i85 Change s21 s to i type:Smi pos:27 <|@
0 0 i22 BoundsCheck i82 i85 type:Tagged pos:27 <|@
0 2 i84 Change t5 t to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:27 <|@
0 0 v23 StoreKeyed t20[i82] = i84 changes[TypedArrayElements] type:Tagged pos:27 <|@
0 0 v24 Simulate id=4 type:Tagged pos:27 <|@
0 3 i86 Constant 8 type:Smi pos:35 <|@
0 3 i26 Shr i84 i86 type:TaggedNumber pos:35 <|@
0 1 s28 Constant 1 type:Smi pos:54 <|@
0 5 s81 Change t4 t to s allow-undefined-as-nan type:TaggedNumber pos:52 <|@
0 1 s29 Add s81 s28 ! type:TaggedNumber pos:53 <|@
0 0 s39 BoundsCheck s29 s21 type:Tagged pos:57 <|@
0 2 s62 Constant 3 type:Smi pos:114 <|@
0 1 s63 Add s81 s62 ! type:TaggedNumber pos:113 <|@
0 0 s56 BoundsCheck s63 s21 type:Tagged pos:87 <|@
0 0 v40 StoreKeyed t20[s81 + 8] = i26 changes[TypedArrayElements] type:Tagged pos:57 <|@
0 0 v41 Simulate id=36 var[3] = i26 type:Tagged pos:57 <|@
0 3 i43 Shr i26 i86 type:TaggedNumber pos:65 <|@
0 0 v57 StoreKeyed t20[s81 + 9] = i43 changes[TypedArrayElements] type:Tagged pos:87 <|@
0 0 v58 Simulate id=75 var[3] = i43 type:Tagged pos:87 <|@
0 2 i60 Shr i43 i86 type:TaggedNumber pos:95 <|@
0 0 v74 StoreKeyed t20[s81 + 10] = i60 changes[TypedArrayElements] type:Tagged pos:117 <|@
0 0 v75 Simulate id=114 var[3] = i60 type:Tagged pos:117 <|@
0 0 v77 Return t7 (pop s62 values) type:Tagged <|@
end_HIR
begin_LIR
28 label () () () () [hir:v10] <|@
30 gap () ([esi|R] = [eax|R];) () () [hir:v10] <|@
32 stack-check = [esi|R] [id=3|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v12] <|@
34 gap () () () () [hir:v12] <|@
36 lazy-bailout = [id=3|deopt_id=0|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v12] <|@
38 gap () () ([ecx|R] = [stack:-3];) () [hir:v12] <|@
40 check-non-smi = [ecx|R] [id=3|deopt_id=1|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:t14] <|@
42 gap () () () () [hir:t14] <|@
44 check-maps = [ecx|R] [id=3|deopt_id=2|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:t15] <|@
46 gap () () () () [hir:t15] <|@
48 check-maps = NULL [hir:t17] <|@
50 gap () () () () [hir:t17] <|@
52 check-maps = NULL [hir:t19] <|@
54 gap () () () () [hir:t19] <|@
56 load-named-field [edx|R]= [ecx|R] [hir:t20] <|@
58 gap ((0) = [edx|R];) () () () [hir:t20] <|@
60 load-named-field [ebx|R]= [edx|R] [hir:s21] <|@
62 gap ((0) = [ebx|R];) ([esi|R] = [stack:-2];) () () [hir:s21] <|@
64 tagged-to-i [esi|R]= [esi|R] [id=3|deopt_id=9|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:i82] <|@
66 gap ((0) = [esi|R];) ([eax|R] = [ebx|R];) () () [hir:i82] <|@
68 smi-untag [eax|R]= [eax|R] [hir:i85] <|@
70 gap ((0) = [eax|R];) () () () [hir:i85] <|@
72 bounds-check = [esi|R] [eax|R] [id=3|deopt_id=3|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:i22] <|@
74 gap () ([edi|R] = [stack:-1];) () () [hir:i22] <|@
76 tagged-to-i [edi|R]= [edi|R] [id=3|deopt_id=10|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:i84] <|@
78 gap ((0) = [edi|R];) ([eax|R] = [edi|R];) () () [hir:i84] <|@
80 store-keyed [edx|R][[esi|R]] <- [eax|R] [hir:v23] <|@
82 gap () ([edi|R];) () () [hir:v23] <|@
84 shift-i [edi|R]= [edi|R] [constant:86] [hir:i26] <|@
86 gap ((0) = [edi|R];) ([esi|R] = [stack:-2];) () () [hir:i26] <|@
88 check-smi [esi|R]= [esi|R] [id=4|deopt_id=4|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:s81] <|@
90 gap ((0) = [esi|R];) ([eax|R] = [esi|R];) () () [hir:s81] <|@
92 add-i [eax|R]= [eax|R] [constant:28] [id=4|deopt_id=5|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:s29] <|@
94 gap ((0) = [eax|R];) () () () [hir:s29] <|@
96 bounds-check = [eax|R] [ebx|R] [id=4|deopt_id=6|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:s39] <|@
98 gap () ([eax|R] = [esi|R];) () () [hir:s39] <|@
100 add-i [eax|R]= [eax|R] [constant:62] [id=4|deopt_id=7|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:s63] <|@
102 gap ((0) = [eax|R];) () () () [hir:s63] <|@
104 bounds-check = [eax|R] [ebx|R] [id=4|deopt_id=8|parameters=4|arguments_stack_height=0|[stack:-4];[ecx|R];[stack:-2];[stack:-1];[stack:1]] [hir:s56] <|@
106 gap () ([ecx|R] = [esi|R]; [eax|R] = [edi|R];) () () [hir:s56] <|@
108 store-keyed [edx|R][[ecx|R] + 8] <-[eax|R] [hir:v40] <|@
110 gap () ([edi|R];) () () [hir:v40] <|@
112 shift-i [edi|R]= [edi|R] [constant:86] [hir:i43] <|@
114 gap ((0) = [edi|R];) ([ecx|R] = [esi|R]; [eax|R] = [edi|R];) () () [hir:i43] <|@
116 store-keyed [edx|R][[ecx|R] + 9] <-[eax|R] [hir:v57] <|@
118 gap () ([edi|R];) () () [hir:v57] <|@
120 shift-i [edi|R]= [edi|R] [constant:86] [hir:i60] <|@
122 gap ((0) = [edi|R];) ([esi|R]; [eax|R] = [edi|R];) () () [hir:i60] <|@
124 store-keyed [edx|R][[esi|R] + 10] <-[eax|R] [hir:v74] <|@
126 gap () () () () [hir:v74] <|@
128 constant-t [eax|R]= [hir:t7] <|@
130 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t7] <|@
132 return = [eax|R] NULL [constant:62] [hir:v77] <|@
134 gap () () () () [hir:v77] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "Uint32ArrayConstructByLength"
method "Uint32ArrayConstructByLength:3"
date 1428664224000
end_compilation
begin_compilation
name "getBlock"
method "getBlock:4"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 3 s30 Constant -1 type:Smi <|@
0 19 t5 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 22 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 4 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[4] = t5, var[3] = t5, var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 98
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 t11 Constant 0x26884b39 <JS Function Uint32Array (SharedFunctionInfo 0x26843555)> [map 0x3020cd29] pos:31 <|@
0 1 t1187 Constant 16 pos:27 <|@
0 0 t13 PushArguments t11 t1187 type:Tagged pos:27 <|@
0 80 t14 CallNew t1 t11 #2 changes[*] type:Tagged pos:27 <|@
0 0 v15 Simulate id=19 push t14 type:Tagged pos:27 <|@
0 6 s17 Constant 16 type:Smi pos:78 <|@
0 0 v24 Simulate id=27 pop 1 / var[4] = s17, var[3] = t14 type:Tagged pos:65 <|@
0 6 t45 LoadContextSlot t1[7] type:Tagged pos:95 <|@
0 0 t47 CheckHeapObject t45 pos:100 <|@
0 0 t48 CheckMaps t45 [0x3020dca1] pos:100 <|@
0 3 t49 LoadNamedField t45.%elements@8 type:Tagged pos:100 <|@
0 1 s50 LoadNamedField t49.%length@4 type:Smi pos:100 <|@
0 0 t53 CheckHeapObject t14 pos:93 <|@
0 0 t54 CheckMaps t14 [0x3020dca1] pos:93 <|@
0 2 t55 Constant 0x26884b71 <an Object with map 0x3020dccd> [map 0x3020dccd] pos:93 <|@
0 0 t56 CheckMaps t55 [0x3020dccd](stability-check) pos:93 <|@
0 2 t57 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:93 <|@
0 0 t58 CheckMaps t57 [0x3020c465](stability-check) pos:93 <|@
0 3 t59 LoadNamedField t14.%elements@8 type:Tagged pos:93 <|@
0 1 s60 LoadNamedField t59.%length@4 type:Smi pos:93 <|@
0 0 v25 Goto B2 type:Tagged pos:65 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([esi|R] = [eax|R];) () () [hir:v8] <|@
24 stack-check = [esi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[constant:5];[constant:5]] {[esi|R];[stack:1]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[constant:5];[constant:5]] [hir:v10] <|@
30 gap () () () () [hir:v10] <|@
32 push-argument = [constant:11] [hir:t13] <|@
34 gap () () () () [hir:t13] <|@
36 push-argument = [constant:1187] [hir:t13] <|@
38 gap () () () () [hir:t13] <|@
40 constant-t [edi|R]= [hir:t11] <|@
42 gap ((0) = [edi|R];) ([esi|R] = [stack:1]; [edi|R];) () () [hir:t11] <|@
44 call-new [eax|R]= [esi|R] [edi|R] #1 / {[esi|R];[edi|R];[stack:1]} [hir:t14] <|@
46 gap ([stack:2] = [eax|R];) ([eax|R];) () () [hir:t14] <|@
48 lazy-bailout = [id=19|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[constant:5];[constant:5];[eax|R]] [hir:v15] <|@
50 gap () () ([ecx|R] = [stack:1];) () [hir:v15] <|@
52 load-context-slot [edx|R][ecx|R][7] [hir:t45] <|@
54 gap ((0) = [edx|R];) () () () [hir:t45] <|@
56 check-non-smi = [edx|R] [id=27|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[eax|R];[constant:17]] [hir:t47] <|@
58 gap () () () () [hir:t47] <|@
60 check-maps = [edx|R] [id=27|deopt_id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[eax|R];[constant:17]] [hir:t48] <|@
62 gap () () () () [hir:t48] <|@
64 load-named-field [edx|R]= [edx|R] [hir:t49] <|@
66 gap ((0) = [edx|R];) () () () [hir:t49] <|@
68 load-named-field [ebx|R]= [edx|R] [hir:s50] <|@
70 gap ((0) = [ebx|R];) () () () [hir:s50] <|@
72 check-non-smi = [eax|R] [id=27|deopt_id=4|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[eax|R];[constant:17]] [hir:t53] <|@
74 gap () () () () [hir:t53] <|@
76 check-maps = [eax|R] [id=27|deopt_id=5|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[eax|R];[constant:17]] [hir:t54] <|@
78 gap () () () () [hir:t54] <|@
80 check-maps = NULL [hir:t56] <|@
82 gap () () () () [hir:t56] <|@
84 check-maps = NULL [hir:t58] <|@
86 gap () () () () [hir:t58] <|@
88 load-named-field [esi|R]= [eax|R] [hir:t59] <|@
90 gap ((0) = [esi|R];) () () () [hir:t59] <|@
92 load-named-field [edi|R]= [esi|R] [hir:s60] <|@
94 gap ((0) = [edi|R];) () () () [hir:s60] <|@
96 gap () ([eax|R] = [constant:17];) () () [hir:v25] <|@
98 goto B2 [hir:v25] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1" "B4"
successors "B3" "B5"
xhandlers
flags "dom-loop-succ"
dominator "B1"
loop_depth 1
first_lir_id 100
last_lir_id 110
begin_states
begin_locals
size 1
method "None"
4 s23 [ s17 s31 uses:2_1s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v26 BlockEntry type:Tagged pos:82 <|@
0 6 s31 Add s23 s30 ! type:TaggedNumber pos:83 <|@
0 0 v33 Branch s23 goto (B3, B5) (Smi) type:Tagged pos:83 <|@
end_HIR
begin_LIR
100 label () ((0) = [eax|R];) () () [hir:v26] <|@
102 gap () ([ecx|R] = [eax|R];) () () [hir:v26] <|@
104 add-i [ecx|R]= [ecx|R] [constant:30] [id=27|deopt_id=6|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[eax|R]] [hir:s31] <|@
106 gap ((0) = [ecx|R];) () () () [hir:s31] <|@
108 gap () () () () [hir:v33] <|@
110 branch B3 | B5 on [eax|R] [hir:v33] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags "dom-loop-succ"
dominator "B2"
loop_depth 1
first_lir_id 112
last_lir_id 118
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v34 BlockEntry type:Tagged pos:83 <|@
0 0 v35 Simulate id=31 var[4] = s31 type:Tagged pos:83 <|@
0 0 v36 Goto B4 type:Tagged pos:83 <|@
end_HIR
begin_LIR
112 label () () () () Dead block replaced with B4 [hir:v34] <|@
114 gap () () () () [hir:v34] <|@
116 gap () () () () [hir:v36] <|@
118 goto B4 [hir:v36] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B2"
xhandlers
flags "dom-loop-succ"
dominator "B3"
loop_depth 1
first_lir_id 120
last_lir_id 146
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v40 BlockEntry type:Tagged pos:65 <|@
0 0 v41 Simulate id=31 type:Tagged pos:65 <|@
0 0 v42 StackCheck t1 changes[NewSpacePromotion] type:Tagged pos:65 <|@
0 0 s51 BoundsCheck s31 s50 type:Tagged pos:100 <|@
0 1 i52 LoadKeyed t49[s31] t45 check_hole type:Tagged pos:100 <|@
0 0 s61 BoundsCheck s31 s60 type:Tagged pos:93 <|@
0 0 v62 StoreKeyed t59[s31] = i52 changes[TypedArrayElements] type:Tagged pos:93 <|@
0 0 v63 Simulate id=52 type:Tagged pos:93 <|@
0 0 v64 Simulate id=27 type:Tagged pos:65 <|@
0 0 v65 Goto B2 type:Tagged pos:65 <|@
end_HIR
begin_LIR
120 label () () () () [hir:v40] <|@
122 gap () () () () [hir:v40] <|@
124 stack-check = [stack:1] [id=31|deopt_id=7|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ecx|R]] {[stack:1];[stack:2];[edx|R];[esi|R]} [hir:v42] <|@
126 gap () () () () [hir:v42] <|@
128 bounds-check = [ecx|R] [ebx|R] [id=31|deopt_id=8|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ecx|R]] [hir:s51] <|@
130 gap () () () () [hir:s51] <|@
132 load-keyed [eax|R][edx|R][[ecx|R]] [id=31|deopt_id=9|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ecx|R]] [hir:i52] <|@
134 gap ((0) = [eax|R];) () () () [hir:i52] <|@
136 bounds-check = [ecx|R] [edi|R] [id=31|deopt_id=10|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ecx|R]] [hir:s61] <|@
138 gap () () () () [hir:s61] <|@
140 store-keyed [esi|R][[ecx|R]] <- [eax|R] [hir:v62] <|@
142 gap () () () () [hir:v62] <|@
144 gap () ([eax|R] = [ecx|R];) () () [hir:v65] <|@
146 goto B2 [hir:v65] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B2"
successors "B6"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 148
last_lir_id 154
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v37 BlockEntry type:Tagged pos:83 <|@
0 0 v38 Simulate id=28 var[4] = t5 type:Tagged pos:83 <|@
0 0 v39 Goto B6 type:Tagged pos:83 <|@
end_HIR
begin_LIR
148 label () () () () Dead block replaced with B6 [hir:v37] <|@
150 gap () () () () [hir:v37] <|@
152 gap () () () () [hir:v39] <|@
154 goto B6 [hir:v39] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 156
last_lir_id 162
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v66 BlockEntry type:Tagged pos:126 <|@
0 2 s67 Constant 20 type:Smi pos:126 <|@
0 0 v74 Simulate id=72 var[4] = s67 type:Tagged pos:113 <|@
0 10 s78 Constant 0 type:Smi pos:134 <|@
0 9 s92 Constant 4 type:Smi pos:178 <|@
0 8 s93 Constant 8 type:Smi pos:181 <|@
0 12 s94 Constant 12 type:Smi pos:183 <|@
0 63 t96 Constant 0x2c01475d <FixedArray[12]> [map 0x302084cd] [new space] pos:1_0 <|@
0 6 i1191 Constant 16 type:Smi pos:1_62 <|@
0 3 i1196 Constant 12 type:Smi pos:1_139 <|@
0 3 i1197 Constant 20 type:Smi pos:1_163 <|@
0 3 i1201 Constant 8 type:Smi pos:1_216 <|@
0 3 i1202 Constant 24 type:Smi pos:1_240 <|@
0 3 i1206 Constant 7 type:Smi pos:1_293 <|@
0 3 i1207 Constant 25 type:Smi pos:1_317 <|@
0 9 s394 Constant 1 type:Smi pos:216 <|@
0 8 s395 Constant 5 type:Smi pos:219 <|@
0 8 s396 Constant 9 type:Smi pos:222 <|@
0 9 s397 Constant 13 type:Smi pos:224 <|@
0 9 s697 Constant 2 type:Smi pos:257 <|@
0 8 s698 Constant 6 type:Smi pos:260 <|@
0 8 s699 Constant 10 type:Smi pos:262 <|@
0 9 s700 Constant 14 type:Smi pos:265 <|@
0 2 t1248 Constant 3 pos:282 <|@
0 2 t1249 Constant 7 pos:282 <|@
0 2 t1250 Constant 11 pos:282 <|@
0 2 t1251 Constant 15 pos:282 <|@
0 5 t1006 Constant 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> [map 0x3020df61] [new space] pos:282 <|@
0 1 t1252 Constant 0 pos:323 <|@
0 1 t1253 Constant 5 pos:323 <|@
0 1 t1254 Constant 10 pos:323 <|@
0 1 t1256 Constant 1 pos:364 <|@
0 1 t1257 Constant 6 pos:364 <|@
0 1 t1259 Constant 12 pos:364 <|@
0 1 t1260 Constant 2 pos:405 <|@
0 1 t1262 Constant 8 pos:405 <|@
0 1 t1263 Constant 13 pos:405 <|@
0 1 t1265 Constant 4 pos:446 <|@
0 1 t1266 Constant 9 pos:446 <|@
0 1 t1267 Constant 14 pos:446 <|@
0 0 v75 Goto B7 type:Tagged pos:113 <|@
end_HIR
begin_LIR
156 label () () () () [hir:v66] <|@
158 gap () () () () [hir:v66] <|@
160 gap () ([eax|R] = [constant:67]; [ecx|R] = [stack:1]; [edx|R] = [stack:2];) () () [hir:v75] <|@
162 goto B7 [hir:v75] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6" "B12"
successors "B8" "B13"
xhandlers
flags "dom-loop-succ"
dominator "B6"
loop_depth 1
first_lir_id 164
last_lir_id 170
begin_states
begin_locals
size 1
method "None"
4 s73 [ s67 s1055 uses:2_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v76 BlockEntry type:Tagged pos:130 <|@
0 0 s79 CompareNumericAndBranch GT s73 s78 goto (B8, B13) type:Tagged pos:132 <|@
end_HIR
begin_LIR
164 label () ([stack:3] = [eax|R];) () () [hir:v76] <|@
166 gap () () () () [hir:v76] <|@
168 gap () () () () [hir:s79] <|@
170 compare-numeric-and-branch if [eax|R] > [constant:78] then B8 else B13 [hir:s79] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B7"
successors "B9"
xhandlers
flags "dom-loop-succ"
dominator "B7"
loop_depth 1
first_lir_id 172
last_lir_id 178
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v80 BlockEntry type:Tagged pos:132 <|@
0 0 v81 Simulate id=76 type:Tagged pos:132 <|@
0 0 v82 Goto B9 type:Tagged pos:132 <|@
end_HIR
begin_LIR
172 label () () () () Dead block replaced with B9 [hir:v80] <|@
174 gap () () () () [hir:v80] <|@
176 gap () () () () [hir:v82] <|@
178 goto B9 [hir:v82] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors "B10"
xhandlers
flags "dom-loop-succ"
dominator "B8"
loop_depth 1
first_lir_id 180
last_lir_id 438
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v86 BlockEntry type:Tagged pos:113 <|@
0 0 v87 Simulate id=76 type:Tagged pos:113 <|@
0 4 t89 LoadContextSlot t1[10] type:Tagged pos:159 <|@
0 0 t95 CheckValue t89 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> type:Tagged pos:159 <|@
0 0 t97 ArgumentsObject t5 t14 s78 s92 s93 s94 type:Tagged pos:1_0 <|@
0 0 v98 Simulate id=-1 push t89, push t5, push t14, push s78, push s92, push s93, push s94 type:Tagged pos:1_0 <|@
0 0 v99 EnterInlined quarterRound type:Tagged pos:1_0 <|@
0 0 t101 CheckMaps t14 [0x3020dca1] pos:1_31 <|@
0 74 t102 LoadNamedField t14.%elements@8 type:Tagged pos:1_31 <|@
0 4 s103 LoadNamedField t102.%length@4 type:Smi pos:1_31 <|@
0 0 s104 BoundsCheck s78 s103 type:Tagged pos:1_31 <|@
0 0 s110 BoundsCheck s94 s103 type:Tagged pos:1_35 <|@
0 1 i105 LoadKeyed t102[s78] t14 check_hole type:Tagged pos:1_31 <|@
0 1 i111 LoadKeyed t102[s92] t14 check_hole type:Tagged pos:1_35 <|@
0 1 d1188 Change i105 i to d allow-undefined-as-nan type:TaggedNumber pos:1_31 <|@
0 1 d1189 Change i111 i to d allow-undefined-as-nan type:TaggedNumber pos:1_31 <|@
0 1 d112 Add d1188 d1189 ! type:TaggedNumber pos:1_31 <|@
0 1 i1190 Change d112 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:1_31 <|@
0 0 v123 StoreKeyed t102[s78] = i1190 changes[TypedArrayElements] type:Tagged pos:1_31 <|@
0 0 v124 Simulate id=4 var[6] = t96 type:Tagged pos:1_31 <|@
0 1 i130 LoadKeyed t102[s94] t14 check_hole type:Tagged pos:1_50 <|@
0 1 i136 LoadKeyed t102[s78] t14 check_hole type:Tagged pos:1_57 <|@
0 2 i137 Bitwise BIT_XOR i130 i136 type:TaggedNumber pos:1_54 <|@
0 1 i140 Shl i137 i1191 type:TaggedNumber pos:1_62 <|@
0 1 i157 Shr i137 i1191 type:TaggedNumber pos:1_86 <|@
0 1 i159 Bitwise BIT_OR i140 i157 type:TaggedNumber pos:1_69 <|@
0 0 v170 StoreKeyed t102[s94] = i159 changes[TypedArrayElements] type:Tagged pos:1_45 <|@
0 0 v171 Simulate id=44 type:Tagged pos:1_45 <|@
0 1 i177 LoadKeyed t102[s93] t14 check_hole type:Tagged pos:1_108 <|@
0 1 i183 LoadKeyed t102[s94] t14 check_hole type:Tagged pos:1_112 <|@
0 1 d1193 Change i177 i to d allow-undefined-as-nan type:TaggedNumber pos:1_108 <|@
0 1 d1194 Change i183 i to d allow-undefined-as-nan type:TaggedNumber pos:1_108 <|@
0 1 d184 Add d1193 d1194 ! type:TaggedNumber pos:1_108 <|@
0 1 i1195 Change d184 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:1_108 <|@
0 0 v195 StoreKeyed t102[s93] = i1195 changes[TypedArrayElements] type:Tagged pos:1_108 <|@
0 0 v196 Simulate id=114 type:Tagged pos:1_108 <|@
0 1 i202 LoadKeyed t102[s92] t14 check_hole type:Tagged pos:1_127 <|@
0 1 i208 LoadKeyed t102[s93] t14 check_hole type:Tagged pos:1_134 <|@
0 2 i209 Bitwise BIT_XOR i202 i208 type:TaggedNumber pos:1_131 <|@
0 1 i212 Shl i209 i1196 type:TaggedNumber pos:1_139 <|@
0 1 i229 Shr i209 i1197 type:TaggedNumber pos:1_163 <|@
0 1 i231 Bitwise BIT_OR i212 i229 type:TaggedNumber pos:1_146 <|@
0 0 v242 StoreKeyed t102[s92] = i231 changes[TypedArrayElements] type:Tagged pos:1_122 <|@
0 0 v243 Simulate id=154 type:Tagged pos:1_122 <|@
0 1 i249 LoadKeyed t102[s78] t14 check_hole type:Tagged pos:1_185 <|@
0 1 i255 LoadKeyed t102[s92] t14 check_hole type:Tagged pos:1_189 <|@
0 1 d1198 Change i249 i to d allow-undefined-as-nan type:TaggedNumber pos:1_185 <|@
0 1 d1199 Change i255 i to d allow-undefined-as-nan type:TaggedNumber pos:1_185 <|@
0 1 d256 Add d1198 d1199 ! type:TaggedNumber pos:1_185 <|@
0 1 i1200 Change d256 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:1_185 <|@
0 0 v267 StoreKeyed t102[s78] = i1200 changes[TypedArrayElements] type:Tagged pos:1_185 <|@
0 0 v268 Simulate id=224 type:Tagged pos:1_185 <|@
0 1 i274 LoadKeyed t102[s94] t14 check_hole type:Tagged pos:1_204 <|@
0 1 i280 LoadKeyed t102[s78] t14 check_hole type:Tagged pos:1_211 <|@
0 2 i281 Bitwise BIT_XOR i274 i280 type:TaggedNumber pos:1_208 <|@
0 1 i284 Shl i281 i1201 type:TaggedNumber pos:1_216 <|@
0 1 i301 Shr i281 i1202 type:TaggedNumber pos:1_240 <|@
0 1 i303 Bitwise BIT_OR i284 i301 type:TaggedNumber pos:1_223 <|@
0 0 v314 StoreKeyed t102[s94] = i303 changes[TypedArrayElements] type:Tagged pos:1_199 <|@
0 0 v315 Simulate id=264 type:Tagged pos:1_199 <|@
0 1 i321 LoadKeyed t102[s93] t14 check_hole type:Tagged pos:1_262 <|@
0 1 i327 LoadKeyed t102[s94] t14 check_hole type:Tagged pos:1_266 <|@
0 1 d1203 Change i321 i to d allow-undefined-as-nan type:TaggedNumber pos:1_262 <|@
0 1 d1204 Change i327 i to d allow-undefined-as-nan type:TaggedNumber pos:1_262 <|@
0 1 d328 Add d1203 d1204 ! type:TaggedNumber pos:1_262 <|@
0 1 i1205 Change d328 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:1_262 <|@
0 0 v339 StoreKeyed t102[s93] = i1205 changes[TypedArrayElements] type:Tagged pos:1_262 <|@
0 0 v340 Simulate id=334 type:Tagged pos:1_262 <|@
0 1 i346 LoadKeyed t102[s92] t14 check_hole type:Tagged pos:1_281 <|@
0 1 i352 LoadKeyed t102[s93] t14 check_hole type:Tagged pos:1_288 <|@
0 2 i353 Bitwise BIT_XOR i346 i352 type:TaggedNumber pos:1_285 <|@
0 1 i356 Shl i353 i1206 type:TaggedNumber pos:1_293 <|@
0 1 i373 Shr i353 i1207 type:TaggedNumber pos:1_317 <|@
0 1 i375 Bitwise BIT_OR i356 i373 type:TaggedNumber pos:1_300 <|@
0 0 v386 StoreKeyed t102[s92] = i375 changes[TypedArrayElements] type:Tagged pos:1_276 <|@
0 0 v387 Simulate id=374 type:Tagged pos:1_276 <|@
0 0 v388 LeaveInlined type:Tagged pos:1_0 <|@
0 0 v389 Simulate id=118 pop 1 type:Tagged pos:1_0 <|@
0 0 v390 Goto B10 type:Tagged pos:1_0 <|@
end_HIR
begin_LIR
180 label () () () () [hir:v86] <|@
182 gap () () () () [hir:v86] <|@
184 load-context-slot [ebx|R][ecx|R][10] [hir:t89] <|@
186 gap ((0) = [ebx|R];) () () () [hir:t89] <|@
188 check-value = [ebx|R] [id=76|deopt_id=11|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[edx|R];[eax|R]] [hir:t95] <|@
190 gap () () () () [hir:t95] <|@
192 check-maps = [edx|R] [id=2|deopt_id=12|parameters=6|arguments_stack_height=0|[constant:5];[edx|R];[constant:78];[constant:92];[constant:93];[constant:94];[constant:96]] [hir:t101] <|@
194 gap () () () () [hir:t101] <|@
196 load-named-field [esi|R]= [edx|R] [hir:t102] <|@
198 gap ((0) = [esi|R];) () () () [hir:t102] <|@
200 load-named-field [edi|R]= [esi|R] [hir:s103] <|@
202 gap ((0) = [edi|R];) () () () [hir:s103] <|@
204 bounds-check = [constant:78] [edi|R] [id=2|deopt_id=13|parameters=6|arguments_stack_height=0|[constant:5];[edx|R];[constant:78];[constant:92];[constant:93];[constant:94];[constant:96]] [hir:s104] <|@
206 gap () () () () [hir:s104] <|@
208 bounds-check = [constant:94] [edi|R] [id=2|deopt_id=14|parameters=6|arguments_stack_height=0|[constant:5];[edx|R];[constant:78];[constant:92];[constant:93];[constant:94];[constant:96]] [hir:s110] <|@
210 gap () () () () [hir:s110] <|@
212 load-keyed [eax|R][esi|R][[constant:78]] [hir:i105] <|@
214 gap ((0) = [eax|R];) () () () [hir:i105] <|@
216 load-keyed [ecx|R][esi|R][[constant:92]] [hir:i111] <|@
218 gap ((0) = [ecx|R];) () () () [hir:i111] <|@
220 uint32-to-double [xmm1|R]= [eax|R] [hir:d1188] <|@
222 gap ((0) = [xmm1|R];) () () () [hir:d1188] <|@
224 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1189] <|@
226 gap ((0) = [xmm2|R];) () () () [hir:d1189] <|@
228 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d112] <|@
230 gap ((0) = [xmm1|R];) () () () [hir:d112] <|@
232 double-to-i [eax|R]= [xmm1|R] [hir:i1190] <|@
234 gap ((0) = [eax|R];) () () () [hir:i1190] <|@
236 store-keyed [esi|R][[constant:78]] <- [eax|R] [hir:v123] <|@
238 gap () () () () [hir:v123] <|@
240 load-keyed [eax|R][esi|R][[constant:94]] [hir:i130] <|@
242 gap ((0) = [eax|R];) () () () [hir:i130] <|@
244 load-keyed [ecx|R][esi|R][[constant:78]] [hir:i136] <|@
246 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i136] <|@
248 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i137] <|@
250 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i137] <|@
252 shift-i [eax|R]= [eax|R] [constant:1191] [hir:i140] <|@
254 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i140] <|@
256 shift-i [ecx|R]= [ecx|R] [constant:1191] [hir:i157] <|@
258 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i157] <|@
260 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i159] <|@
262 gap ((0) = [ecx|R];) () () () [hir:i159] <|@
264 store-keyed [esi|R][[constant:94]] <- [ecx|R] [hir:v170] <|@
266 gap () () () () [hir:v170] <|@
268 load-keyed [eax|R][esi|R][[constant:93]] [hir:i177] <|@
270 gap ((0) = [eax|R];) () () () [hir:i177] <|@
272 load-keyed [ecx|R][esi|R][[constant:94]] [hir:i183] <|@
274 gap ((0) = [ecx|R];) () () () [hir:i183] <|@
276 uint32-to-double [xmm1|R]= [eax|R] [hir:d1193] <|@
278 gap ((0) = [xmm1|R];) () () () [hir:d1193] <|@
280 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1194] <|@
282 gap ((0) = [xmm2|R];) () () () [hir:d1194] <|@
284 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d184] <|@
286 gap ((0) = [xmm1|R];) () () () [hir:d184] <|@
288 double-to-i [eax|R]= [xmm1|R] [hir:i1195] <|@
290 gap ((0) = [eax|R];) () () () [hir:i1195] <|@
292 store-keyed [esi|R][[constant:93]] <- [eax|R] [hir:v195] <|@
294 gap () () () () [hir:v195] <|@
296 load-keyed [eax|R][esi|R][[constant:92]] [hir:i202] <|@
298 gap ((0) = [eax|R];) () () () [hir:i202] <|@
300 load-keyed [ecx|R][esi|R][[constant:93]] [hir:i208] <|@
302 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i208] <|@
304 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i209] <|@
306 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i209] <|@
308 shift-i [eax|R]= [eax|R] [constant:1196] [hir:i212] <|@
310 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i212] <|@
312 shift-i [ecx|R]= [ecx|R] [constant:1197] [hir:i229] <|@
314 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i229] <|@
316 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i231] <|@
318 gap ((0) = [ecx|R];) () () () [hir:i231] <|@
320 store-keyed [esi|R][[constant:92]] <- [ecx|R] [hir:v242] <|@
322 gap () () () () [hir:v242] <|@
324 load-keyed [eax|R][esi|R][[constant:78]] [hir:i249] <|@
326 gap ((0) = [eax|R];) () () () [hir:i249] <|@
328 load-keyed [ecx|R][esi|R][[constant:92]] [hir:i255] <|@
330 gap ((0) = [ecx|R];) () () () [hir:i255] <|@
332 uint32-to-double [xmm1|R]= [eax|R] [hir:d1198] <|@
334 gap ((0) = [xmm1|R];) () () () [hir:d1198] <|@
336 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1199] <|@
338 gap ((0) = [xmm2|R];) () () () [hir:d1199] <|@
340 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d256] <|@
342 gap ((0) = [xmm1|R];) () () () [hir:d256] <|@
344 double-to-i [eax|R]= [xmm1|R] [hir:i1200] <|@
346 gap ((0) = [eax|R];) () () () [hir:i1200] <|@
348 store-keyed [esi|R][[constant:78]] <- [eax|R] [hir:v267] <|@
350 gap () () () () [hir:v267] <|@
352 load-keyed [eax|R][esi|R][[constant:94]] [hir:i274] <|@
354 gap ((0) = [eax|R];) () () () [hir:i274] <|@
356 load-keyed [ecx|R][esi|R][[constant:78]] [hir:i280] <|@
358 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i280] <|@
360 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i281] <|@
362 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i281] <|@
364 shift-i [eax|R]= [eax|R] [constant:1201] [hir:i284] <|@
366 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i284] <|@
368 shift-i [ecx|R]= [ecx|R] [constant:1202] [hir:i301] <|@
370 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i301] <|@
372 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i303] <|@
374 gap ((0) = [ecx|R];) () () () [hir:i303] <|@
376 store-keyed [esi|R][[constant:94]] <- [ecx|R] [hir:v314] <|@
378 gap () () () () [hir:v314] <|@
380 load-keyed [eax|R][esi|R][[constant:93]] [hir:i321] <|@
382 gap ((0) = [eax|R];) () () () [hir:i321] <|@
384 load-keyed [ecx|R][esi|R][[constant:94]] [hir:i327] <|@
386 gap ((0) = [ecx|R];) () () () [hir:i327] <|@
388 uint32-to-double [xmm1|R]= [eax|R] [hir:d1203] <|@
390 gap ((0) = [xmm1|R];) () () () [hir:d1203] <|@
392 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1204] <|@
394 gap ((0) = [xmm2|R];) () () () [hir:d1204] <|@
396 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d328] <|@
398 gap ((0) = [xmm1|R];) () () () [hir:d328] <|@
400 double-to-i [eax|R]= [xmm1|R] [hir:i1205] <|@
402 gap ((0) = [eax|R];) () () () [hir:i1205] <|@
404 store-keyed [esi|R][[constant:93]] <- [eax|R] [hir:v339] <|@
406 gap () () () () [hir:v339] <|@
408 load-keyed [eax|R][esi|R][[constant:92]] [hir:i346] <|@
410 gap ((0) = [eax|R];) () () () [hir:i346] <|@
412 load-keyed [ecx|R][esi|R][[constant:93]] [hir:i352] <|@
414 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i352] <|@
416 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i353] <|@
418 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i353] <|@
420 shift-i [eax|R]= [eax|R] [constant:1206] [hir:i356] <|@
422 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i356] <|@
424 shift-i [ecx|R]= [ecx|R] [constant:1207] [hir:i373] <|@
426 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i373] <|@
428 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i375] <|@
430 gap ((0) = [ecx|R];) () () () [hir:i375] <|@
432 store-keyed [esi|R][[constant:92]] <- [ecx|R] [hir:v386] <|@
434 gap () () () () [hir:v386] <|@
436 gap () () () () [hir:v390] <|@
438 goto B10 [hir:v390] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9"
successors "B11"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 440
last_lir_id 674
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v391 BlockEntry type:Tagged pos:200 <|@
0 0 t400 ArgumentsObject t5 t14 s394 s395 s396 s397 type:Tagged pos:2_0 <|@
0 0 v401 Simulate id=-1 push t89, push t5, push t14, push s394, push s395, push s396, push s397 type:Tagged pos:2_0 <|@
0 0 v402 EnterInlined quarterRound type:Tagged pos:2_0 <|@
0 1 i408 LoadKeyed t102[s394] t14 check_hole type:Tagged pos:2_31 <|@
0 1 i414 LoadKeyed t102[s395] t14 check_hole type:Tagged pos:2_35 <|@
0 1 d1208 Change i408 i to d allow-undefined-as-nan type:TaggedNumber pos:2_31 <|@
0 1 d1209 Change i414 i to d allow-undefined-as-nan type:TaggedNumber pos:2_31 <|@
0 1 d415 Add d1208 d1209 ! type:TaggedNumber pos:2_31 <|@
0 1 i1210 Change d415 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:2_31 <|@
0 0 v426 StoreKeyed t102[s394] = i1210 changes[TypedArrayElements] type:Tagged pos:2_31 <|@
0 0 v427 Simulate id=4 var[6] = t96 type:Tagged pos:2_31 <|@
0 0 s432 BoundsCheck s397 s103 type:Tagged pos:2_50 <|@
0 1 i433 LoadKeyed t102[s397] t14 check_hole type:Tagged pos:2_50 <|@
0 1 i439 LoadKeyed t102[s394] t14 check_hole type:Tagged pos:2_57 <|@
0 2 i440 Bitwise BIT_XOR i433 i439 type:TaggedNumber pos:2_54 <|@
0 1 i443 Shl i440 i1191 type:TaggedNumber pos:2_62 <|@
0 1 i460 Shr i440 i1191 type:TaggedNumber pos:2_86 <|@
0 1 i462 Bitwise BIT_OR i443 i460 type:TaggedNumber pos:2_69 <|@
0 0 v473 StoreKeyed t102[s397] = i462 changes[TypedArrayElements] type:Tagged pos:2_45 <|@
0 0 v474 Simulate id=44 type:Tagged pos:2_45 <|@
0 1 i480 LoadKeyed t102[s396] t14 check_hole type:Tagged pos:2_108 <|@
0 1 i486 LoadKeyed t102[s397] t14 check_hole type:Tagged pos:2_112 <|@
0 1 d1213 Change i480 i to d allow-undefined-as-nan type:TaggedNumber pos:2_108 <|@
0 1 d1214 Change i486 i to d allow-undefined-as-nan type:TaggedNumber pos:2_108 <|@
0 1 d487 Add d1213 d1214 ! type:TaggedNumber pos:2_108 <|@
0 1 i1215 Change d487 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:2_108 <|@
0 0 v498 StoreKeyed t102[s396] = i1215 changes[TypedArrayElements] type:Tagged pos:2_108 <|@
0 0 v499 Simulate id=114 type:Tagged pos:2_108 <|@
0 1 i505 LoadKeyed t102[s395] t14 check_hole type:Tagged pos:2_127 <|@
0 1 i511 LoadKeyed t102[s396] t14 check_hole type:Tagged pos:2_134 <|@
0 2 i512 Bitwise BIT_XOR i505 i511 type:TaggedNumber pos:2_131 <|@
0 1 i515 Shl i512 i1196 type:TaggedNumber pos:2_139 <|@
0 1 i532 Shr i512 i1197 type:TaggedNumber pos:2_163 <|@
0 1 i534 Bitwise BIT_OR i515 i532 type:TaggedNumber pos:2_146 <|@
0 0 v545 StoreKeyed t102[s395] = i534 changes[TypedArrayElements] type:Tagged pos:2_122 <|@
0 0 v546 Simulate id=154 type:Tagged pos:2_122 <|@
0 1 i552 LoadKeyed t102[s394] t14 check_hole type:Tagged pos:2_185 <|@
0 1 i558 LoadKeyed t102[s395] t14 check_hole type:Tagged pos:2_189 <|@
0 1 d1218 Change i552 i to d allow-undefined-as-nan type:TaggedNumber pos:2_185 <|@
0 1 d1219 Change i558 i to d allow-undefined-as-nan type:TaggedNumber pos:2_185 <|@
0 1 d559 Add d1218 d1219 ! type:TaggedNumber pos:2_185 <|@
0 1 i1220 Change d559 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:2_185 <|@
0 0 v570 StoreKeyed t102[s394] = i1220 changes[TypedArrayElements] type:Tagged pos:2_185 <|@
0 0 v571 Simulate id=224 type:Tagged pos:2_185 <|@
0 1 i577 LoadKeyed t102[s397] t14 check_hole type:Tagged pos:2_204 <|@
0 1 i583 LoadKeyed t102[s394] t14 check_hole type:Tagged pos:2_211 <|@
0 2 i584 Bitwise BIT_XOR i577 i583 type:TaggedNumber pos:2_208 <|@
0 1 i587 Shl i584 i1201 type:TaggedNumber pos:2_216 <|@
0 1 i604 Shr i584 i1202 type:TaggedNumber pos:2_240 <|@
0 1 i606 Bitwise BIT_OR i587 i604 type:TaggedNumber pos:2_223 <|@
0 0 v617 StoreKeyed t102[s397] = i606 changes[TypedArrayElements] type:Tagged pos:2_199 <|@
0 0 v618 Simulate id=264 type:Tagged pos:2_199 <|@
0 1 i624 LoadKeyed t102[s396] t14 check_hole type:Tagged pos:2_262 <|@
0 1 i630 LoadKeyed t102[s397] t14 check_hole type:Tagged pos:2_266 <|@
0 1 d1223 Change i624 i to d allow-undefined-as-nan type:TaggedNumber pos:2_262 <|@
0 1 d1224 Change i630 i to d allow-undefined-as-nan type:TaggedNumber pos:2_262 <|@
0 1 d631 Add d1223 d1224 ! type:TaggedNumber pos:2_262 <|@
0 1 i1225 Change d631 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:2_262 <|@
0 0 v642 StoreKeyed t102[s396] = i1225 changes[TypedArrayElements] type:Tagged pos:2_262 <|@
0 0 v643 Simulate id=334 type:Tagged pos:2_262 <|@
0 1 i649 LoadKeyed t102[s395] t14 check_hole type:Tagged pos:2_281 <|@
0 1 i655 LoadKeyed t102[s396] t14 check_hole type:Tagged pos:2_288 <|@
0 2 i656 Bitwise BIT_XOR i649 i655 type:TaggedNumber pos:2_285 <|@
0 1 i659 Shl i656 i1206 type:TaggedNumber pos:2_293 <|@
0 1 i676 Shr i656 i1207 type:TaggedNumber pos:2_317 <|@
0 1 i678 Bitwise BIT_OR i659 i676 type:TaggedNumber pos:2_300 <|@
0 0 v689 StoreKeyed t102[s395] = i678 changes[TypedArrayElements] type:Tagged pos:2_276 <|@
0 0 v690 Simulate id=374 type:Tagged pos:2_276 <|@
0 0 v691 LeaveInlined type:Tagged pos:2_0 <|@
0 0 v692 Simulate id=138 pop 1 type:Tagged pos:2_0 <|@
0 0 v693 Goto B11 type:Tagged pos:2_0 <|@
end_HIR
begin_LIR
440 label () () () () [hir:v391] <|@
442 gap () () () () [hir:v391] <|@
444 load-keyed [eax|R][esi|R][[constant:394]] [hir:i408] <|@
446 gap ((0) = [eax|R];) () () () [hir:i408] <|@
448 load-keyed [ecx|R][esi|R][[constant:395]] [hir:i414] <|@
450 gap ((0) = [ecx|R];) () () () [hir:i414] <|@
452 uint32-to-double [xmm1|R]= [eax|R] [hir:d1208] <|@
454 gap ((0) = [xmm1|R];) () () () [hir:d1208] <|@
456 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1209] <|@
458 gap ((0) = [xmm2|R];) () () () [hir:d1209] <|@
460 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d415] <|@
462 gap ((0) = [xmm1|R];) () () () [hir:d415] <|@
464 double-to-i [eax|R]= [xmm1|R] [hir:i1210] <|@
466 gap ((0) = [eax|R];) () () () [hir:i1210] <|@
468 store-keyed [esi|R][[constant:394]] <- [eax|R] [hir:v426] <|@
470 gap () () () () [hir:v426] <|@
472 bounds-check = [constant:397] [edi|R] [id=4|deopt_id=15|parameters=6|arguments_stack_height=0|[constant:5];[edx|R];[constant:394];[constant:395];[constant:396];[constant:397];[constant:96]] [hir:s432] <|@
474 gap () () () () [hir:s432] <|@
476 load-keyed [eax|R][esi|R][[constant:397]] [hir:i433] <|@
478 gap ((0) = [eax|R];) () () () [hir:i433] <|@
480 load-keyed [ecx|R][esi|R][[constant:394]] [hir:i439] <|@
482 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i439] <|@
484 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i440] <|@
486 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i440] <|@
488 shift-i [eax|R]= [eax|R] [constant:1191] [hir:i443] <|@
490 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i443] <|@
492 shift-i [ecx|R]= [ecx|R] [constant:1191] [hir:i460] <|@
494 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i460] <|@
496 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i462] <|@
498 gap ((0) = [ecx|R];) () () () [hir:i462] <|@
500 store-keyed [esi|R][[constant:397]] <- [ecx|R] [hir:v473] <|@
502 gap () () () () [hir:v473] <|@
504 load-keyed [eax|R][esi|R][[constant:396]] [hir:i480] <|@
506 gap ((0) = [eax|R];) () () () [hir:i480] <|@
508 load-keyed [ecx|R][esi|R][[constant:397]] [hir:i486] <|@
510 gap ((0) = [ecx|R];) () () () [hir:i486] <|@
512 uint32-to-double [xmm1|R]= [eax|R] [hir:d1213] <|@
514 gap ((0) = [xmm1|R];) () () () [hir:d1213] <|@
516 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1214] <|@
518 gap ((0) = [xmm2|R];) () () () [hir:d1214] <|@
520 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d487] <|@
522 gap ((0) = [xmm1|R];) () () () [hir:d487] <|@
524 double-to-i [eax|R]= [xmm1|R] [hir:i1215] <|@
526 gap ((0) = [eax|R];) () () () [hir:i1215] <|@
528 store-keyed [esi|R][[constant:396]] <- [eax|R] [hir:v498] <|@
530 gap () () () () [hir:v498] <|@
532 load-keyed [eax|R][esi|R][[constant:395]] [hir:i505] <|@
534 gap ((0) = [eax|R];) () () () [hir:i505] <|@
536 load-keyed [ecx|R][esi|R][[constant:396]] [hir:i511] <|@
538 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i511] <|@
540 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i512] <|@
542 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i512] <|@
544 shift-i [eax|R]= [eax|R] [constant:1196] [hir:i515] <|@
546 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i515] <|@
548 shift-i [ecx|R]= [ecx|R] [constant:1197] [hir:i532] <|@
550 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i532] <|@
552 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i534] <|@
554 gap ((0) = [ecx|R];) () () () [hir:i534] <|@
556 store-keyed [esi|R][[constant:395]] <- [ecx|R] [hir:v545] <|@
558 gap () () () () [hir:v545] <|@
560 load-keyed [eax|R][esi|R][[constant:394]] [hir:i552] <|@
562 gap ((0) = [eax|R];) () () () [hir:i552] <|@
564 load-keyed [ecx|R][esi|R][[constant:395]] [hir:i558] <|@
566 gap ((0) = [ecx|R];) () () () [hir:i558] <|@
568 uint32-to-double [xmm1|R]= [eax|R] [hir:d1218] <|@
570 gap ((0) = [xmm1|R];) () () () [hir:d1218] <|@
572 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1219] <|@
574 gap ((0) = [xmm2|R];) () () () [hir:d1219] <|@
576 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d559] <|@
578 gap ((0) = [xmm1|R];) () () () [hir:d559] <|@
580 double-to-i [eax|R]= [xmm1|R] [hir:i1220] <|@
582 gap ((0) = [eax|R];) () () () [hir:i1220] <|@
584 store-keyed [esi|R][[constant:394]] <- [eax|R] [hir:v570] <|@
586 gap () () () () [hir:v570] <|@
588 load-keyed [eax|R][esi|R][[constant:397]] [hir:i577] <|@
590 gap ((0) = [eax|R];) () () () [hir:i577] <|@
592 load-keyed [ecx|R][esi|R][[constant:394]] [hir:i583] <|@
594 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i583] <|@
596 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i584] <|@
598 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i584] <|@
600 shift-i [eax|R]= [eax|R] [constant:1201] [hir:i587] <|@
602 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i587] <|@
604 shift-i [ecx|R]= [ecx|R] [constant:1202] [hir:i604] <|@
606 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i604] <|@
608 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i606] <|@
610 gap ((0) = [ecx|R];) () () () [hir:i606] <|@
612 store-keyed [esi|R][[constant:397]] <- [ecx|R] [hir:v617] <|@
614 gap () () () () [hir:v617] <|@
616 load-keyed [eax|R][esi|R][[constant:396]] [hir:i624] <|@
618 gap ((0) = [eax|R];) () () () [hir:i624] <|@
620 load-keyed [ecx|R][esi|R][[constant:397]] [hir:i630] <|@
622 gap ((0) = [ecx|R];) () () () [hir:i630] <|@
624 uint32-to-double [xmm1|R]= [eax|R] [hir:d1223] <|@
626 gap ((0) = [xmm1|R];) () () () [hir:d1223] <|@
628 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1224] <|@
630 gap ((0) = [xmm2|R];) () () () [hir:d1224] <|@
632 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d631] <|@
634 gap ((0) = [xmm1|R];) () () () [hir:d631] <|@
636 double-to-i [eax|R]= [xmm1|R] [hir:i1225] <|@
638 gap ((0) = [eax|R];) () () () [hir:i1225] <|@
640 store-keyed [esi|R][[constant:396]] <- [eax|R] [hir:v642] <|@
642 gap () () () () [hir:v642] <|@
644 load-keyed [eax|R][esi|R][[constant:395]] [hir:i649] <|@
646 gap ((0) = [eax|R];) () () () [hir:i649] <|@
648 load-keyed [ecx|R][esi|R][[constant:396]] [hir:i655] <|@
650 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i655] <|@
652 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i656] <|@
654 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i656] <|@
656 shift-i [eax|R]= [eax|R] [constant:1206] [hir:i659] <|@
658 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i659] <|@
660 shift-i [ecx|R]= [ecx|R] [constant:1207] [hir:i676] <|@
662 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i676] <|@
664 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i678] <|@
666 gap ((0) = [ecx|R];) () () () [hir:i678] <|@
668 store-keyed [esi|R][[constant:395]] <- [ecx|R] [hir:v689] <|@
670 gap () () () () [hir:v689] <|@
672 gap () () () () [hir:v693] <|@
674 goto B11 [hir:v693] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12"
xhandlers
flags "dom-loop-succ"
dominator "B10"
loop_depth 1
first_lir_id 676
last_lir_id 910
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v694 BlockEntry type:Tagged pos:241 <|@
0 0 t703 ArgumentsObject t5 t14 s697 s698 s699 s700 type:Tagged pos:3_0 <|@
0 0 v704 Simulate id=-1 push t89, push t5, push t14, push s697, push s698, push s699, push s700 type:Tagged pos:3_0 <|@
0 0 v705 EnterInlined quarterRound type:Tagged pos:3_0 <|@
0 1 i711 LoadKeyed t102[s697] t14 check_hole type:Tagged pos:3_31 <|@
0 1 i717 LoadKeyed t102[s698] t14 check_hole type:Tagged pos:3_35 <|@
0 1 d1228 Change i711 i to d allow-undefined-as-nan type:TaggedNumber pos:3_31 <|@
0 1 d1229 Change i717 i to d allow-undefined-as-nan type:TaggedNumber pos:3_31 <|@
0 1 d718 Add d1228 d1229 ! type:TaggedNumber pos:3_31 <|@
0 1 i1230 Change d718 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:3_31 <|@
0 0 v729 StoreKeyed t102[s697] = i1230 changes[TypedArrayElements] type:Tagged pos:3_31 <|@
0 0 v730 Simulate id=4 var[6] = t96 type:Tagged pos:3_31 <|@
0 0 s735 BoundsCheck s700 s103 type:Tagged pos:3_50 <|@
0 1 i736 LoadKeyed t102[s700] t14 check_hole type:Tagged pos:3_50 <|@
0 1 i742 LoadKeyed t102[s697] t14 check_hole type:Tagged pos:3_57 <|@
0 2 i743 Bitwise BIT_XOR i736 i742 type:TaggedNumber pos:3_54 <|@
0 1 i746 Shl i743 i1191 type:TaggedNumber pos:3_62 <|@
0 1 i763 Shr i743 i1191 type:TaggedNumber pos:3_86 <|@
0 1 i765 Bitwise BIT_OR i746 i763 type:TaggedNumber pos:3_69 <|@
0 0 v776 StoreKeyed t102[s700] = i765 changes[TypedArrayElements] type:Tagged pos:3_45 <|@
0 0 v777 Simulate id=44 type:Tagged pos:3_45 <|@
0 1 i783 LoadKeyed t102[s699] t14 check_hole type:Tagged pos:3_108 <|@
0 1 i789 LoadKeyed t102[s700] t14 check_hole type:Tagged pos:3_112 <|@
0 1 d1233 Change i783 i to d allow-undefined-as-nan type:TaggedNumber pos:3_108 <|@
0 1 d1234 Change i789 i to d allow-undefined-as-nan type:TaggedNumber pos:3_108 <|@
0 1 d790 Add d1233 d1234 ! type:TaggedNumber pos:3_108 <|@
0 1 i1235 Change d790 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:3_108 <|@
0 0 v801 StoreKeyed t102[s699] = i1235 changes[TypedArrayElements] type:Tagged pos:3_108 <|@
0 0 v802 Simulate id=114 type:Tagged pos:3_108 <|@
0 1 i808 LoadKeyed t102[s698] t14 check_hole type:Tagged pos:3_127 <|@
0 1 i814 LoadKeyed t102[s699] t14 check_hole type:Tagged pos:3_134 <|@
0 2 i815 Bitwise BIT_XOR i808 i814 type:TaggedNumber pos:3_131 <|@
0 1 i818 Shl i815 i1196 type:TaggedNumber pos:3_139 <|@
0 1 i835 Shr i815 i1197 type:TaggedNumber pos:3_163 <|@
0 1 i837 Bitwise BIT_OR i818 i835 type:TaggedNumber pos:3_146 <|@
0 0 v848 StoreKeyed t102[s698] = i837 changes[TypedArrayElements] type:Tagged pos:3_122 <|@
0 0 v849 Simulate id=154 type:Tagged pos:3_122 <|@
0 1 i855 LoadKeyed t102[s697] t14 check_hole type:Tagged pos:3_185 <|@
0 1 i861 LoadKeyed t102[s698] t14 check_hole type:Tagged pos:3_189 <|@
0 1 d1238 Change i855 i to d allow-undefined-as-nan type:TaggedNumber pos:3_185 <|@
0 1 d1239 Change i861 i to d allow-undefined-as-nan type:TaggedNumber pos:3_185 <|@
0 1 d862 Add d1238 d1239 ! type:TaggedNumber pos:3_185 <|@
0 1 i1240 Change d862 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:3_185 <|@
0 0 v873 StoreKeyed t102[s697] = i1240 changes[TypedArrayElements] type:Tagged pos:3_185 <|@
0 0 v874 Simulate id=224 type:Tagged pos:3_185 <|@
0 1 i880 LoadKeyed t102[s700] t14 check_hole type:Tagged pos:3_204 <|@
0 1 i886 LoadKeyed t102[s697] t14 check_hole type:Tagged pos:3_211 <|@
0 2 i887 Bitwise BIT_XOR i880 i886 type:TaggedNumber pos:3_208 <|@
0 1 i890 Shl i887 i1201 type:TaggedNumber pos:3_216 <|@
0 1 i907 Shr i887 i1202 type:TaggedNumber pos:3_240 <|@
0 1 i909 Bitwise BIT_OR i890 i907 type:TaggedNumber pos:3_223 <|@
0 0 v920 StoreKeyed t102[s700] = i909 changes[TypedArrayElements] type:Tagged pos:3_199 <|@
0 0 v921 Simulate id=264 type:Tagged pos:3_199 <|@
0 1 i927 LoadKeyed t102[s699] t14 check_hole type:Tagged pos:3_262 <|@
0 1 i933 LoadKeyed t102[s700] t14 check_hole type:Tagged pos:3_266 <|@
0 1 d1243 Change i927 i to d allow-undefined-as-nan type:TaggedNumber pos:3_262 <|@
0 1 d1244 Change i933 i to d allow-undefined-as-nan type:TaggedNumber pos:3_262 <|@
0 1 d934 Add d1243 d1244 ! type:TaggedNumber pos:3_262 <|@
0 1 i1245 Change d934 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:3_262 <|@
0 0 v945 StoreKeyed t102[s699] = i1245 changes[TypedArrayElements] type:Tagged pos:3_262 <|@
0 0 v946 Simulate id=334 type:Tagged pos:3_262 <|@
0 1 i952 LoadKeyed t102[s698] t14 check_hole type:Tagged pos:3_281 <|@
0 1 i958 LoadKeyed t102[s699] t14 check_hole type:Tagged pos:3_288 <|@
0 2 i959 Bitwise BIT_XOR i952 i958 type:TaggedNumber pos:3_285 <|@
0 1 i962 Shl i959 i1206 type:TaggedNumber pos:3_293 <|@
0 1 i979 Shr i959 i1207 type:TaggedNumber pos:3_317 <|@
0 1 i981 Bitwise BIT_OR i962 i979 type:TaggedNumber pos:3_300 <|@
0 0 v992 StoreKeyed t102[s698] = i981 changes[TypedArrayElements] type:Tagged pos:3_276 <|@
0 0 v993 Simulate id=374 type:Tagged pos:3_276 <|@
0 0 v994 LeaveInlined type:Tagged pos:3_0 <|@
0 0 v995 Simulate id=158 pop 1 type:Tagged pos:3_0 <|@
0 0 v996 Goto B12 type:Tagged pos:3_0 <|@
end_HIR
begin_LIR
676 label () () () () [hir:v694] <|@
678 gap () () () () [hir:v694] <|@
680 load-keyed [eax|R][esi|R][[constant:697]] [hir:i711] <|@
682 gap ((0) = [eax|R];) () () () [hir:i711] <|@
684 load-keyed [ecx|R][esi|R][[constant:698]] [hir:i717] <|@
686 gap ((0) = [ecx|R];) () () () [hir:i717] <|@
688 uint32-to-double [xmm1|R]= [eax|R] [hir:d1228] <|@
690 gap ((0) = [xmm1|R];) () () () [hir:d1228] <|@
692 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1229] <|@
694 gap ((0) = [xmm2|R];) () () () [hir:d1229] <|@
696 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d718] <|@
698 gap ((0) = [xmm1|R];) () () () [hir:d718] <|@
700 double-to-i [eax|R]= [xmm1|R] [hir:i1230] <|@
702 gap ((0) = [eax|R];) () () () [hir:i1230] <|@
704 store-keyed [esi|R][[constant:697]] <- [eax|R] [hir:v729] <|@
706 gap () () () () [hir:v729] <|@
708 bounds-check = [constant:700] [edi|R] [id=4|deopt_id=16|parameters=6|arguments_stack_height=0|[constant:5];[edx|R];[constant:697];[constant:698];[constant:699];[constant:700];[constant:96]] [hir:s735] <|@
710 gap () () () () [hir:s735] <|@
712 load-keyed [eax|R][esi|R][[constant:700]] [hir:i736] <|@
714 gap ((0) = [eax|R];) () () () [hir:i736] <|@
716 load-keyed [ecx|R][esi|R][[constant:697]] [hir:i742] <|@
718 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i742] <|@
720 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i743] <|@
722 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i743] <|@
724 shift-i [eax|R]= [eax|R] [constant:1191] [hir:i746] <|@
726 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i746] <|@
728 shift-i [ecx|R]= [ecx|R] [constant:1191] [hir:i763] <|@
730 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i763] <|@
732 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i765] <|@
734 gap ((0) = [ecx|R];) () () () [hir:i765] <|@
736 store-keyed [esi|R][[constant:700]] <- [ecx|R] [hir:v776] <|@
738 gap () () () () [hir:v776] <|@
740 load-keyed [eax|R][esi|R][[constant:699]] [hir:i783] <|@
742 gap ((0) = [eax|R];) () () () [hir:i783] <|@
744 load-keyed [ecx|R][esi|R][[constant:700]] [hir:i789] <|@
746 gap ((0) = [ecx|R];) () () () [hir:i789] <|@
748 uint32-to-double [xmm1|R]= [eax|R] [hir:d1233] <|@
750 gap ((0) = [xmm1|R];) () () () [hir:d1233] <|@
752 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1234] <|@
754 gap ((0) = [xmm2|R];) () () () [hir:d1234] <|@
756 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d790] <|@
758 gap ((0) = [xmm1|R];) () () () [hir:d790] <|@
760 double-to-i [eax|R]= [xmm1|R] [hir:i1235] <|@
762 gap ((0) = [eax|R];) () () () [hir:i1235] <|@
764 store-keyed [esi|R][[constant:699]] <- [eax|R] [hir:v801] <|@
766 gap () () () () [hir:v801] <|@
768 load-keyed [eax|R][esi|R][[constant:698]] [hir:i808] <|@
770 gap ((0) = [eax|R];) () () () [hir:i808] <|@
772 load-keyed [ecx|R][esi|R][[constant:699]] [hir:i814] <|@
774 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i814] <|@
776 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i815] <|@
778 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i815] <|@
780 shift-i [eax|R]= [eax|R] [constant:1196] [hir:i818] <|@
782 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i818] <|@
784 shift-i [ecx|R]= [ecx|R] [constant:1197] [hir:i835] <|@
786 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i835] <|@
788 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i837] <|@
790 gap ((0) = [ecx|R];) () () () [hir:i837] <|@
792 store-keyed [esi|R][[constant:698]] <- [ecx|R] [hir:v848] <|@
794 gap () () () () [hir:v848] <|@
796 load-keyed [eax|R][esi|R][[constant:697]] [hir:i855] <|@
798 gap ((0) = [eax|R];) () () () [hir:i855] <|@
800 load-keyed [ecx|R][esi|R][[constant:698]] [hir:i861] <|@
802 gap ((0) = [ecx|R];) () () () [hir:i861] <|@
804 uint32-to-double [xmm1|R]= [eax|R] [hir:d1238] <|@
806 gap ((0) = [xmm1|R];) () () () [hir:d1238] <|@
808 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1239] <|@
810 gap ((0) = [xmm2|R];) () () () [hir:d1239] <|@
812 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d862] <|@
814 gap ((0) = [xmm1|R];) () () () [hir:d862] <|@
816 double-to-i [eax|R]= [xmm1|R] [hir:i1240] <|@
818 gap ((0) = [eax|R];) () () () [hir:i1240] <|@
820 store-keyed [esi|R][[constant:697]] <- [eax|R] [hir:v873] <|@
822 gap () () () () [hir:v873] <|@
824 load-keyed [eax|R][esi|R][[constant:700]] [hir:i880] <|@
826 gap ((0) = [eax|R];) () () () [hir:i880] <|@
828 load-keyed [ecx|R][esi|R][[constant:697]] [hir:i886] <|@
830 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i886] <|@
832 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i887] <|@
834 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i887] <|@
836 shift-i [eax|R]= [eax|R] [constant:1201] [hir:i890] <|@
838 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i890] <|@
840 shift-i [ecx|R]= [ecx|R] [constant:1202] [hir:i907] <|@
842 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i907] <|@
844 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i909] <|@
846 gap ((0) = [ecx|R];) () () () [hir:i909] <|@
848 store-keyed [esi|R][[constant:700]] <- [ecx|R] [hir:v920] <|@
850 gap () () () () [hir:v920] <|@
852 load-keyed [eax|R][esi|R][[constant:699]] [hir:i927] <|@
854 gap ((0) = [eax|R];) () () () [hir:i927] <|@
856 load-keyed [ecx|R][esi|R][[constant:700]] [hir:i933] <|@
858 gap ((0) = [ecx|R];) () () () [hir:i933] <|@
860 uint32-to-double [xmm1|R]= [eax|R] [hir:d1243] <|@
862 gap ((0) = [xmm1|R];) () () () [hir:d1243] <|@
864 uint32-to-double [xmm2|R]= [ecx|R] [hir:d1244] <|@
866 gap ((0) = [xmm2|R];) () () () [hir:d1244] <|@
868 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d934] <|@
870 gap ((0) = [xmm1|R];) () () () [hir:d934] <|@
872 double-to-i [eax|R]= [xmm1|R] [hir:i1245] <|@
874 gap ((0) = [eax|R];) () () () [hir:i1245] <|@
876 store-keyed [esi|R][[constant:699]] <- [eax|R] [hir:v945] <|@
878 gap () () () () [hir:v945] <|@
880 load-keyed [eax|R][esi|R][[constant:698]] [hir:i952] <|@
882 gap ((0) = [eax|R];) () () () [hir:i952] <|@
884 load-keyed [ecx|R][esi|R][[constant:699]] [hir:i958] <|@
886 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i958] <|@
888 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i959] <|@
890 gap ((0) = [ecx|R];) ([eax|R] = [ecx|R];) () () [hir:i959] <|@
892 shift-i [eax|R]= [eax|R] [constant:1206] [hir:i962] <|@
894 gap ((0) = [eax|R];) ([ecx|R];) () () [hir:i962] <|@
896 shift-i [ecx|R]= [ecx|R] [constant:1207] [hir:i979] <|@
898 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i979] <|@
900 bit-i [ecx|R]= [ecx|R] [eax|R] [hir:i981] <|@
902 gap ((0) = [ecx|R];) () () () [hir:i981] <|@
904 store-keyed [esi|R][[constant:698]] <- [ecx|R] [hir:v992] <|@
906 gap () () () () [hir:v992] <|@
908 gap () () () () [hir:v996] <|@
910 goto B12 [hir:v996] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B7"
xhandlers
flags "dom-loop-succ"
dominator "B11"
loop_depth 1
first_lir_id 912
last_lir_id 1134
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v997 BlockEntry type:Tagged pos:282 <|@
0 0 t1005 PushArguments t5 t14 t1248 t1249 t1250 t1251 type:Tagged pos:282 <|@
0 0 t1007 CallJSFunction t1006 #6 changes[*] type:Tagged pos:282 <|@
0 0 v1008 Simulate id=178 type:Tagged pos:282 <|@
0 1 t1009 LoadContextSlot t1[10] type:Tagged pos:323 <|@
0 0 t1015 CheckValue t1009 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> type:Tagged pos:323 <|@
0 0 t1016 PushArguments t5 t14 t1252 t1253 t1254 t1251 type:Tagged pos:323 <|@
0 0 t1018 CallJSFunction t1006 #6 changes[*] type:Tagged pos:323 <|@
0 0 v1019 Simulate id=198 type:Tagged pos:323 <|@
0 1 t1020 LoadContextSlot t1[10] type:Tagged pos:364 <|@
0 0 t1026 CheckValue t1020 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> type:Tagged pos:364 <|@
0 0 t1027 PushArguments t5 t14 t1256 t1257 t1250 t1259 type:Tagged pos:364 <|@
0 0 t1029 CallJSFunction t1006 #6 changes[*] type:Tagged pos:364 <|@
0 0 v1030 Simulate id=218 type:Tagged pos:364 <|@
0 1 t1031 LoadContextSlot t1[10] type:Tagged pos:405 <|@
0 0 t1037 CheckValue t1031 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> type:Tagged pos:405 <|@
0 0 t1038 PushArguments t5 t14 t1260 t1249 t1262 t1263 type:Tagged pos:405 <|@
0 0 t1040 CallJSFunction t1006 #6 changes[*] type:Tagged pos:405 <|@
0 0 v1041 Simulate id=238 type:Tagged pos:405 <|@
0 1 t1042 LoadContextSlot t1[10] type:Tagged pos:446 <|@
0 0 t1048 CheckValue t1042 0x2c014801 <JS Function quarterRound (SharedFunctionInfo 0x2688ed3d)> type:Tagged pos:446 <|@
0 0 t1049 PushArguments t5 t14 t1248 t1265 t1266 t1267 type:Tagged pos:446 <|@
0 0 t1051 CallJSFunction t1006 #6 changes[*] type:Tagged pos:446 <|@
0 0 v1052 Simulate id=258 type:Tagged pos:446 <|@
0 2 s1055 Sub s73 s697 type:TaggedNumber pos:140 <|@
0 0 v1058 Simulate id=72 var[4] = s1055 type:Tagged pos:113 <|@
0 0 v1059 Goto B7 type:Tagged pos:113 <|@
end_HIR
begin_LIR
912 label () () () () [hir:v997] <|@
914 gap () () () () [hir:v997] <|@
916 push-argument = [constant:5] [hir:t1005] <|@
918 gap () () () () [hir:t1005] <|@
920 push-argument = [edx|R] [hir:t1005] <|@
922 gap () () () () [hir:t1005] <|@
924 push-argument = [constant:1248] [hir:t1005] <|@
926 gap () () () () [hir:t1005] <|@
928 push-argument = [constant:1249] [hir:t1005] <|@
930 gap () () () () [hir:t1005] <|@
932 push-argument = [constant:1250] [hir:t1005] <|@
934 gap () () () () [hir:t1005] <|@
936 push-argument = [constant:1251] [hir:t1005] <|@
938 gap () () () () [hir:t1005] <|@
940 constant-t [edi|R]= [hir:t1006] <|@
942 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1006] <|@
944 call-js-function [eax|R]= [edi|R]#5 / {[edi|R];[stack:1];[stack:2]} [hir:t1007] <|@
946 gap ((0) = [eax|R];) () () () [hir:t1007] <|@
948 lazy-bailout = [id=178|deopt_id=17|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:3]] [hir:v1008] <|@
950 gap () () ([eax|R] = [stack:1];) () [hir:v1008] <|@
952 load-context-slot [ecx|R][eax|R][10] [hir:t1009] <|@
954 gap ((0) = [ecx|R];) () () () [hir:t1009] <|@
956 check-value = [ecx|R] [id=178|deopt_id=18|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[stack:2];[stack:3]] [hir:t1015] <|@
958 gap () () () () [hir:t1015] <|@
960 push-argument = [constant:5] [hir:t1016] <|@
962 gap () () () () [hir:t1016] <|@
964 push-argument = [stack:2] [hir:t1016] <|@
966 gap () () () () [hir:t1016] <|@
968 push-argument = [constant:1252] [hir:t1016] <|@
970 gap () () () () [hir:t1016] <|@
972 push-argument = [constant:1253] [hir:t1016] <|@
974 gap () () () () [hir:t1016] <|@
976 push-argument = [constant:1254] [hir:t1016] <|@
978 gap () () () () [hir:t1016] <|@
980 push-argument = [constant:1251] [hir:t1016] <|@
982 gap () () () () [hir:t1016] <|@
984 constant-t [edi|R]= [hir:t1006] <|@
986 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1006] <|@
988 call-js-function [eax|R]= [edi|R]#5 / {[edi|R];[stack:1];[stack:2]} [hir:t1018] <|@
990 gap ((0) = [eax|R];) () () () [hir:t1018] <|@
992 lazy-bailout = [id=198|deopt_id=19|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:3]] [hir:v1019] <|@
994 gap () () ([eax|R] = [stack:1];) () [hir:v1019] <|@
996 load-context-slot [ecx|R][eax|R][10] [hir:t1020] <|@
998 gap ((0) = [ecx|R];) () () () [hir:t1020] <|@
1000 check-value = [ecx|R] [id=198|deopt_id=20|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[stack:2];[stack:3]] [hir:t1026] <|@
1002 gap () () () () [hir:t1026] <|@
1004 push-argument = [constant:5] [hir:t1027] <|@
1006 gap () () () () [hir:t1027] <|@
1008 push-argument = [stack:2] [hir:t1027] <|@
1010 gap () () () () [hir:t1027] <|@
1012 push-argument = [constant:1256] [hir:t1027] <|@
1014 gap () () () () [hir:t1027] <|@
1016 push-argument = [constant:1257] [hir:t1027] <|@
1018 gap () () () () [hir:t1027] <|@
1020 push-argument = [constant:1250] [hir:t1027] <|@
1022 gap () () () () [hir:t1027] <|@
1024 push-argument = [constant:1259] [hir:t1027] <|@
1026 gap () () () () [hir:t1027] <|@
1028 constant-t [edi|R]= [hir:t1006] <|@
1030 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1006] <|@
1032 call-js-function [eax|R]= [edi|R]#5 / {[edi|R];[stack:1];[stack:2]} [hir:t1029] <|@
1034 gap ((0) = [eax|R];) () () () [hir:t1029] <|@
1036 lazy-bailout = [id=218|deopt_id=21|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:3]] [hir:v1030] <|@
1038 gap () () ([eax|R] = [stack:1];) () [hir:v1030] <|@
1040 load-context-slot [ecx|R][eax|R][10] [hir:t1031] <|@
1042 gap ((0) = [ecx|R];) () () () [hir:t1031] <|@
1044 check-value = [ecx|R] [id=218|deopt_id=22|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[stack:2];[stack:3]] [hir:t1037] <|@
1046 gap () () () () [hir:t1037] <|@
1048 push-argument = [constant:5] [hir:t1038] <|@
1050 gap () () () () [hir:t1038] <|@
1052 push-argument = [stack:2] [hir:t1038] <|@
1054 gap () () () () [hir:t1038] <|@
1056 push-argument = [constant:1260] [hir:t1038] <|@
1058 gap () () () () [hir:t1038] <|@
1060 push-argument = [constant:1249] [hir:t1038] <|@
1062 gap () () () () [hir:t1038] <|@
1064 push-argument = [constant:1262] [hir:t1038] <|@
1066 gap () () () () [hir:t1038] <|@
1068 push-argument = [constant:1263] [hir:t1038] <|@
1070 gap () () () () [hir:t1038] <|@
1072 constant-t [edi|R]= [hir:t1006] <|@
1074 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1006] <|@
1076 call-js-function [eax|R]= [edi|R]#5 / {[edi|R];[stack:1];[stack:2]} [hir:t1040] <|@
1078 gap ((0) = [eax|R];) () () () [hir:t1040] <|@
1080 lazy-bailout = [id=238|deopt_id=23|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:3]] [hir:v1041] <|@
1082 gap () () ([eax|R] = [stack:1];) () [hir:v1041] <|@
1084 load-context-slot [ecx|R][eax|R][10] [hir:t1042] <|@
1086 gap ((0) = [ecx|R];) () () () [hir:t1042] <|@
1088 check-value = [ecx|R] [id=238|deopt_id=24|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[stack:2];[stack:3]] [hir:t1048] <|@
1090 gap () () () () [hir:t1048] <|@
1092 push-argument = [constant:5] [hir:t1049] <|@
1094 gap () () () () [hir:t1049] <|@
1096 push-argument = [stack:2] [hir:t1049] <|@
1098 gap () () () () [hir:t1049] <|@
1100 push-argument = [constant:1248] [hir:t1049] <|@
1102 gap () () () () [hir:t1049] <|@
1104 push-argument = [constant:1265] [hir:t1049] <|@
1106 gap () () () () [hir:t1049] <|@
1108 push-argument = [constant:1266] [hir:t1049] <|@
1110 gap () () () () [hir:t1049] <|@
1112 push-argument = [constant:1267] [hir:t1049] <|@
1114 gap () () () () [hir:t1049] <|@
1116 constant-t [edi|R]= [hir:t1006] <|@
1118 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1006] <|@
1120 call-js-function [eax|R]= [edi|R]#5 / {[edi|R];[stack:1];[stack:2]} [hir:t1051] <|@
1122 gap ((0) = [eax|R];) () () () [hir:t1051] <|@
1124 lazy-bailout = [id=258|deopt_id=25|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:3]] [hir:v1052] <|@
1126 gap () ([eax|R] = [stack:3];) () () [hir:v1052] <|@
1128 sub-i [eax|R]= [eax|R] [constant:697] [hir:s1055] <|@
1130 gap ((0) = [eax|R];) () () () [hir:s1055] <|@
1132 gap () ([eax|R]; [ecx|R] = [stack:1]; [edx|R] = [stack:2];) () () [hir:v1059] <|@
1134 goto B7 [hir:v1059] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B7"
successors "B14"
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 1136
last_lir_id 1142
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v83 BlockEntry type:Tagged pos:132 <|@
0 0 v84 Simulate id=73 var[4] = t5 type:Tagged pos:132 <|@
0 0 v85 Goto B14 type:Tagged pos:132 <|@
end_HIR
begin_LIR
1136 label () () () () Dead block replaced with B14 [hir:v83] <|@
1138 gap () () () () [hir:v83] <|@
1140 gap () () () () [hir:v85] <|@
1142 goto B14 [hir:v85] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B15"
xhandlers
flags
dominator "B13"
loop_depth 0
first_lir_id 1144
last_lir_id 1182
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1060 BlockEntry type:Tagged pos:502 <|@
0 0 v1068 Simulate id=278 var[4] = s17 type:Tagged pos:493 <|@
0 0 t1088 CheckMaps t14 [0x3020dca1] pos:517 <|@
0 4 t1089 LoadNamedField t14.%elements@8 type:Tagged pos:517 <|@
0 1 s1090 LoadNamedField t1089.%length@4 type:Smi pos:517 <|@
0 6 t1093 LoadContextSlot t1[7] type:Tagged pos:520 <|@
0 0 t1095 CheckHeapObject t1093 pos:525 <|@
0 0 t1096 CheckMaps t1093 [0x3020dca1] pos:525 <|@
0 3 t1097 LoadNamedField t1093.%elements@8 type:Tagged pos:525 <|@
0 1 s1098 LoadNamedField t1097.%length@4 type:Smi pos:525 <|@
0 0 v1069 Goto B15 type:Tagged pos:493 <|@
end_HIR
begin_LIR
1144 label () () () () [hir:v1060] <|@
1146 gap () () ([eax|R] = [stack:2];) () [hir:v1060] <|@
1148 check-maps = [eax|R] [id=278|deopt_id=26|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[eax|R];[constant:17]] [hir:t1088] <|@
1150 gap () () () () [hir:t1088] <|@
1152 load-named-field [ecx|R]= [eax|R] [hir:t1089] <|@
1154 gap ((0) = [ecx|R];) () () () [hir:t1089] <|@
1156 load-named-field [edx|R]= [ecx|R] [hir:s1090] <|@
1158 gap ([stack:4] = [edx|R];) () ([ebx|R] = [stack:1];) () [hir:s1090] <|@
1160 load-context-slot [esi|R][ebx|R][7] [hir:t1093] <|@
1162 gap ((0) = [esi|R];) () () () [hir:t1093] <|@
1164 check-non-smi = [esi|R] [id=278|deopt_id=27|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ebx|R];[eax|R];[constant:17]] [hir:t1095] <|@
1166 gap () () () () [hir:t1095] <|@
1168 check-maps = [esi|R] [id=278|deopt_id=28|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ebx|R];[eax|R];[constant:17]] [hir:t1096] <|@
1170 gap () () () () [hir:t1096] <|@
1172 load-named-field [esi|R]= [esi|R] [hir:t1097] <|@
1174 gap ((0) = [esi|R];) () () () [hir:t1097] <|@
1176 load-named-field [edi|R]= [esi|R] [hir:s1098] <|@
1178 gap ((0) = [edi|R];) () () () [hir:s1098] <|@
1180 gap () ([eax|R] = [constant:17];) () () [hir:v1069] <|@
1182 goto B15 [hir:v1069] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B14" "B17"
successors "B16" "B18"
xhandlers
flags "dom-loop-succ"
dominator "B14"
loop_depth 1
first_lir_id 1184
last_lir_id 1194
begin_states
begin_locals
size 1
method "None"
4 s1067 [ s17 s1073 uses:2_1s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v1070 BlockEntry type:Tagged pos:506 <|@
0 7 s1073 Add s1067 s30 ! type:TaggedNumber pos:507 <|@
0 0 v1075 Branch s1067 goto (B16, B18) (Smi) type:Tagged pos:507 <|@
end_HIR
begin_LIR
1184 label () ((0) = [eax|R];) () () [hir:v1070] <|@
1186 gap () ([ebx|R] = [eax|R];) () () [hir:v1070] <|@
1188 add-i [ebx|R]= [ebx|R] [constant:30] [id=278|deopt_id=29|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[eax|R]] [hir:s1073] <|@
1190 gap ((0) = [ebx|R];) () () () [hir:s1073] <|@
1192 gap () () () () [hir:v1075] <|@
1194 branch B16 | B18 on [eax|R] [hir:v1075] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B15"
successors "B17"
xhandlers
flags "dom-loop-succ"
dominator "B15"
loop_depth 1
first_lir_id 1196
last_lir_id 1202
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1076 BlockEntry type:Tagged pos:507 <|@
0 0 v1077 Simulate id=282 var[4] = s1073 type:Tagged pos:507 <|@
0 0 v1078 Goto B17 type:Tagged pos:507 <|@
end_HIR
begin_LIR
1196 label () () () () Dead block replaced with B17 [hir:v1076] <|@
1198 gap () () () () [hir:v1076] <|@
1200 gap () () () () [hir:v1078] <|@
1202 goto B17 [hir:v1078] <|@
end_LIR
end_block
begin_block
name "B17"
from_bci -1
to_bci -1
predecessors "B16"
successors "B15"
xhandlers
flags "dom-loop-succ"
dominator "B16"
loop_depth 1
first_lir_id 1204
last_lir_id 1250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1082 BlockEntry type:Tagged pos:493 <|@
0 0 v1083 Simulate id=282 type:Tagged pos:493 <|@
0 0 v1084 StackCheck t1 changes[NewSpacePromotion] type:Tagged pos:493 <|@
0 0 s1091 BoundsCheck s1073 s1090 type:Tagged pos:517 <|@
0 1 i1092 LoadKeyed t1089[s1073] t14 check_hole type:Tagged pos:517 <|@
0 0 s1099 BoundsCheck s1073 s1098 type:Tagged pos:525 <|@
0 1 i1100 LoadKeyed t1097[s1073] t1093 check_hole type:Tagged pos:525 <|@
0 1 d1268 Change i1092 i to d allow-undefined-as-nan type:TaggedNumber pos:517 <|@
0 1 d1269 Change i1100 i to d allow-undefined-as-nan type:TaggedNumber pos:517 <|@
0 1 d1101 Add d1268 d1269 ! type:TaggedNumber pos:517 <|@
0 1 i1270 Change d1101 d to i truncating-int32 allow-undefined-as-nan type:TaggedNumber pos:517 <|@
0 0 v1112 StoreKeyed t1089[s1073] = i1270 changes[TypedArrayElements] type:Tagged pos:517 <|@
0 0 v1113 Simulate id=300 type:Tagged pos:517 <|@
0 0 v1114 Simulate id=278 type:Tagged pos:493 <|@
0 0 v1115 Goto B15 type:Tagged pos:493 <|@
end_HIR
begin_LIR
1204 label () () () () [hir:v1082] <|@
1206 gap () () () () [hir:v1082] <|@
1208 stack-check = [stack:1] [id=282|deopt_id=30|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ebx|R]] {[stack:1];[stack:2];[ecx|R];[esi|R]} [hir:v1084] <|@
1210 gap () () () () [hir:v1084] <|@
1212 bounds-check = [ebx|R] [edx|R] [id=282|deopt_id=31|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ebx|R]] [hir:s1091] <|@
1214 gap () () () () [hir:s1091] <|@
1216 load-keyed [eax|R][ecx|R][[ebx|R]] [hir:i1092] <|@
1218 gap ((0) = [eax|R];) () () () [hir:i1092] <|@
1220 bounds-check = [ebx|R] [edi|R] [id=282|deopt_id=32|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[ebx|R]] [hir:s1099] <|@
1222 gap () () () () [hir:s1099] <|@
1224 load-keyed [edx|R][esi|R][[ebx|R]] [hir:i1100] <|@
1226 gap ((0) = [edx|R];) () () () [hir:i1100] <|@
1228 uint32-to-double [xmm1|R]= [eax|R] [hir:d1268] <|@
1230 gap ((0) = [xmm1|R];) () () () [hir:d1268] <|@
1232 uint32-to-double [xmm2|R]= [edx|R] [hir:d1269] <|@
1234 gap ((0) = [xmm2|R];) () () () [hir:d1269] <|@
1236 add-d [xmm1|R]= [xmm2|R] [xmm1|R] [hir:d1101] <|@
1238 gap ((0) = [xmm1|R];) () () () [hir:d1101] <|@
1240 double-to-i [eax|R]= [xmm1|R] [hir:i1270] <|@
1242 gap ((0) = [eax|R];) () () () [hir:i1270] <|@
1244 store-keyed [ecx|R][[ebx|R]] <- [eax|R] [hir:v1112] <|@
1246 gap () () () () [hir:v1112] <|@
1248 gap () ([eax|R] = [ebx|R]; [edx|R] = [stack:4];) () () [hir:v1115] <|@
1250 goto B15 [hir:v1115] <|@
end_LIR
end_block
begin_block
name "B18"
from_bci -1
to_bci -1
predecessors "B15"
successors "B19"
xhandlers
flags
dominator "B15"
loop_depth 0
first_lir_id 1252
last_lir_id 1258
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1079 BlockEntry type:Tagged pos:507 <|@
0 0 v1080 Simulate id=279 var[4] = t5 type:Tagged pos:507 <|@
0 0 v1081 Goto B19 type:Tagged pos:507 <|@
end_HIR
begin_LIR
1252 label () () () () Dead block replaced with B19 [hir:v1079] <|@
1254 gap () () () () [hir:v1079] <|@
1256 gap () () () () [hir:v1081] <|@
1258 goto B19 [hir:v1081] <|@
end_LIR
end_block
begin_block
name "B19"
from_bci -1
to_bci -1
predecessors "B18"
successors "B20"
xhandlers
flags
dominator "B18"
loop_depth 0
first_lir_id 1260
last_lir_id 1266
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1116 BlockEntry type:Tagged pos:547 <|@
0 0 v1124 Simulate id=340 var[4] = s17 type:Tagged pos:538 <|@
0 1 t1156 Constant 0x2c0147dd <JS Function U32TO8_LE (SharedFunctionInfo 0x2688ecdd)> [map 0x3020df61] [new space] pos:557 <|@
0 0 v1125 Goto B20 type:Tagged pos:538 <|@
end_HIR
begin_LIR
1260 label () () () () [hir:v1116] <|@
1262 gap () () () () [hir:v1116] <|@
1264 gap () ([eax|R] = [constant:17]; [edx|R] = [stack:1]; [ecx|R] = [stack:2];) () () [hir:v1125] <|@
1266 goto B20 [hir:v1125] <|@
end_LIR
end_block
begin_block
name "B20"
from_bci -1
to_bci -1
predecessors "B19" "B22"
successors "B21" "B23"
xhandlers
flags "dom-loop-succ"
dominator "B19"
loop_depth 1
first_lir_id 1268
last_lir_id 1278
begin_states
begin_locals
size 1
method "None"
4 s1123 [ s17 s1129 uses:2_1s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v1126 BlockEntry type:Tagged pos:551 <|@
0 5 s1129 Add s1123 s30 ! type:TaggedNumber pos:552 <|@
0 0 v1131 Branch s1123 goto (B21, B23) (Smi) type:Tagged pos:552 <|@
end_HIR
begin_LIR
1268 label () ((0) = [eax|R];) () () [hir:v1126] <|@
1270 gap () ([ebx|R] = [eax|R];) () () [hir:v1126] <|@
1272 add-i [ebx|R]= [ebx|R] [constant:30] [id=340|deopt_id=33|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[edx|R];[ecx|R];[eax|R]] [hir:s1129] <|@
1274 gap ([stack:5] = [ebx|R];) () () () [hir:s1129] <|@
1276 gap () () () () [hir:v1131] <|@
1278 branch B21 | B23 on [eax|R] [hir:v1131] <|@
end_LIR
end_block
begin_block
name "B21"
from_bci -1
to_bci -1
predecessors "B20"
successors "B22"
xhandlers
flags "dom-loop-succ"
dominator "B20"
loop_depth 1
first_lir_id 1280
last_lir_id 1286
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1132 BlockEntry type:Tagged pos:552 <|@
0 0 v1133 Simulate id=344 var[4] = s1129 type:Tagged pos:552 <|@
0 0 v1134 Goto B22 type:Tagged pos:552 <|@
end_HIR
begin_LIR
1280 label () () () () Dead block replaced with B22 [hir:v1132] <|@
1282 gap () () () () [hir:v1132] <|@
1284 gap () () () () [hir:v1134] <|@
1286 goto B22 [hir:v1134] <|@
end_LIR
end_block
begin_block
name "B22"
from_bci -1
to_bci -1
predecessors "B21"
successors "B20"
xhandlers
flags "dom-loop-succ"
dominator "B21"
loop_depth 1
first_lir_id 1288
last_lir_id 1362
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1138 BlockEntry type:Tagged pos:538 <|@
0 0 v1139 Simulate id=344 type:Tagged pos:538 <|@
0 1 t1141 LoadContextSlot t1[9] type:Tagged pos:557 <|@
0 1 s1144 Mul s92 s1129 ! type:TaggedNumber pos:577 <|@
0 0 t1149 CheckMaps t14 [0x3020dca1] pos:583 <|@
0 3 t1150 LoadNamedField t14.%elements@8 type:Tagged pos:583 <|@
0 1 s1151 LoadNamedField t1150.%length@4 type:Smi pos:583 <|@
0 0 s1152 BoundsCheck s1129 s1151 type:Tagged pos:583 <|@
0 1 i1153 LoadKeyed t1150[s1129] t14 check_hole type:Tagged pos:583 <|@
0 0 t1154 CheckValue t1141 0x2c0147dd <JS Function U32TO8_LE (SharedFunctionInfo 0x2688ecdd)> type:Tagged pos:557 <|@
0 1 t1271 Change s1144 s to t pos:557 <|@
0 1 t1272 Change i1153 i to t changes[NewSpacePromotion] pos:557 <|@
0 0 t1155 PushArguments t5 t3 t1271 t1272 type:Tagged pos:557 <|@
0 0 t1157 CallJSFunction t1156 #4 changes[*] type:Tagged pos:557 <|@
0 0 v1158 Simulate id=362 type:Tagged pos:557 <|@
0 0 v1159 Simulate id=340 type:Tagged pos:538 <|@
0 0 v1160 Goto B20 type:Tagged pos:538 <|@
end_HIR
begin_LIR
1288 label () () () () [hir:v1138] <|@
1290 gap () () () () [hir:v1138] <|@
1292 load-context-slot [eax|R][edx|R][9] [hir:t1141] <|@
1294 gap ((0) = [eax|R];) ([esi|R] = [ebx|R];) () () [hir:t1141] <|@
1296 mul-i [esi|R]= [esi|R] [constant:92] [id=344|deopt_id=34|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[edx|R];[ecx|R];[ebx|R]] [hir:s1144] <|@
1298 gap ((0) = [esi|R];) () () () [hir:s1144] <|@
1300 check-maps = [ecx|R] [id=344|deopt_id=35|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[edx|R];[ecx|R];[ebx|R]] [hir:t1149] <|@
1302 gap () () () () [hir:t1149] <|@
1304 load-named-field [edi|R]= [ecx|R] [hir:t1150] <|@
1306 gap ((0) = [edi|R];) () () () [hir:t1150] <|@
1308 load-named-field [ecx|R]= [edi|R] [hir:s1151] <|@
1310 gap ((0) = [ecx|R];) () () () [hir:s1151] <|@
1312 bounds-check = [ebx|R] [ecx|R] [id=344|deopt_id=36|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[edx|R];[stack:2];[ebx|R]] [hir:s1152] <|@
1314 gap () () () () [hir:s1152] <|@
1316 load-keyed [ecx|R][edi|R][[ebx|R]] [hir:i1153] <|@
1318 gap ((0) = [ecx|R];) () () () [hir:i1153] <|@
1320 check-value = [eax|R] [id=344|deopt_id=37|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[edx|R];[stack:2];[ebx|R]] [hir:t1154] <|@
1322 gap () ([esi|R];) () () [hir:t1154] <|@
1324 dummy-use [esi|R]= [esi|R] [hir:t1271] <|@
1326 gap ((0) = [esi|R];) ([ecx|R];) () () [hir:t1271] <|@
1328 number-tag-u [ecx|R]= [ecx|R] {[stack:1];[edx|R];[stack:2];[ecx|R]} [hir:t1272] <|@
1330 gap ((0) = [ecx|R];) () () () [hir:t1272] <|@
1332 push-argument = [constant:5] [hir:t1155] <|@
1334 gap () () () () [hir:t1155] <|@
1336 push-argument = [stack:-1] [hir:t1155] <|@
1338 gap () () () () [hir:t1155] <|@
1340 push-argument = [esi|R] [hir:t1155] <|@
1342 gap () () () () [hir:t1155] <|@
1344 push-argument = [ecx|R] [hir:t1155] <|@
1346 gap () () () () [hir:t1155] <|@
1348 constant-t [edi|R]= [hir:t1156] <|@
1350 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t1156] <|@
1352 call-js-function [eax|R]= [edi|R]#3 / {[edi|R];[stack:1];[stack:2]} [hir:t1157] <|@
1354 gap ((0) = [eax|R];) () () () [hir:t1157] <|@
1356 lazy-bailout = [id=362|deopt_id=38|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:1];[stack:2];[stack:5]] [hir:v1158] <|@
1358 gap () () () () [hir:v1158] <|@
1360 gap () ([eax|R] = [stack:5]; [edx|R] = [stack:1]; [ecx|R] = [stack:2];) () () [hir:v1160] <|@
1362 goto B20 [hir:v1160] <|@
end_LIR
end_block
begin_block
name "B23"
from_bci -1
to_bci -1
predecessors "B20"
successors "B24"
xhandlers
flags
dominator "B20"
loop_depth 0
first_lir_id 1364
last_lir_id 1370
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1135 BlockEntry type:Tagged pos:552 <|@
0 0 v1136 Simulate id=341 var[3] = t5, var[4] = t5 type:Tagged pos:552 <|@
0 0 v1137 Goto B24 type:Tagged pos:552 <|@
end_HIR
begin_LIR
1364 label () () () () Dead block replaced with B24 [hir:v1135] <|@
1366 gap () () () () [hir:v1135] <|@
1368 gap () () () () [hir:v1137] <|@
1370 goto B24 [hir:v1137] <|@
end_LIR
end_block
begin_block
name "B24"
from_bci -1
to_bci -1
predecessors "B23"
successors
xhandlers
flags
dominator "B23"
loop_depth 0
first_lir_id 1372
last_lir_id 1414
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v1161 BlockEntry type:Tagged pos:597 <|@
0 6 t1162 LoadContextSlot t1[7] type:Tagged pos:597 <|@
0 0 t1164 CheckHeapObject t1162 pos:606 <|@
0 0 t1165 CheckMaps t1162 [0x3020dca1] pos:606 <|@
0 4 t1166 LoadNamedField t1162.%elements@8 type:Tagged pos:606 <|@
0 1 s1167 LoadNamedField t1166.%length@4 type:Smi pos:606 <|@
0 0 s1168 BoundsCheck s94 s1167 type:Tagged pos:606 <|@
0 1 i1169 LoadKeyed t1166[s94] t1162 check_hole type:Tagged pos:606 <|@
0 1 i1186 Constant 1 type:Smi pos:606 <|@
0 1 i1171 Add i1169 i1186 type:TaggedNumber pos:606 <|@
0 0 v1181 StoreKeyed t1166[s94] = i1171 changes[TypedArrayElements] type:Tagged pos:606 <|@
0 0 v1182 Simulate id=387 type:Tagged pos:606 <|@
0 0 v1184 Return t3 (pop s394 values) type:Tagged pos:618 <|@
end_HIR
begin_LIR
1372 label () () () () [hir:v1161] <|@
1374 gap () () ([eax|R] = [stack:1];) () [hir:v1161] <|@
1376 load-context-slot [ecx|R][eax|R][7] [hir:t1162] <|@
1378 gap ((0) = [ecx|R];) () () () [hir:t1162] <|@
1380 check-non-smi = [ecx|R] [id=341|deopt_id=39|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5]] [hir:t1164] <|@
1382 gap () () () () [hir:t1164] <|@
1384 check-maps = [ecx|R] [id=341|deopt_id=40|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5]] [hir:t1165] <|@
1386 gap () () () () [hir:t1165] <|@
1388 load-named-field [ecx|R]= [ecx|R] [hir:t1166] <|@
1390 gap ((0) = [ecx|R];) () () () [hir:t1166] <|@
1392 load-named-field [edx|R]= [ecx|R] [hir:s1167] <|@
1394 gap ((0) = [edx|R];) () () () [hir:s1167] <|@
1396 bounds-check = [constant:94] [edx|R] [id=341|deopt_id=41|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5]] [hir:s1168] <|@
1398 gap () () () () [hir:s1168] <|@
1400 load-keyed [edx|R][ecx|R][[constant:94]] [id=341|deopt_id=42|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5]] [hir:i1169] <|@
1402 gap ((0) = [edx|R];) ([edx|R];) () () [hir:i1169] <|@
1404 add-i [edx|R]= [edx|R] [constant:1186] [hir:i1171] <|@
1406 gap ((0) = [edx|R];) () () () [hir:i1171] <|@
1408 store-keyed [ecx|R][[constant:94]] <- [edx|R] [hir:v1181] <|@
1410 gap () ([eax|R] = [stack:-1];) () () [hir:v1181] <|@
1412 return = [eax|R] NULL [constant:394] [hir:v1184] <|@
1414 gap () () () () [hir:v1184] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "keystreamToBuffer"
method "keystreamToBuffer:5"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 t106 Constant 0x26808105 <true> [map 0x30208265] <|@
0 5 s78 Constant 1 type:Smi <|@
0 21 t5 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 14 t1 Context type:Tagged <|@
0 3 t2 Parameter 0 type:Tagged <|@
0 9 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[8] = t5, var[7] = t5, var[6] = t5, var[5] = t5, var[4] = t5, var[3] = t5, var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:7] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 6 t11 LoadContextSlot t1[7] type:Tagged pos:36 <|@
0 2 s12 Constant 12 type:Smi pos:42 <|@
0 0 t13 CheckHeapObject t11 pos:41 <|@
0 0 t14 CheckMaps t11 [0x3020dca1] pos:41 <|@
0 3 t15 LoadNamedField t11.%elements@8 type:Tagged pos:41 <|@
0 1 s16 LoadNamedField t15.%length@4 type:Smi pos:41 <|@
0 0 s17 BoundsCheck s12 s16 type:Tagged pos:41 <|@
0 0 i18 LoadKeyed t15[s12] t11 check_hole type:Tagged pos:41 <|@
0 2 t20 LoadContextSlot t1[6] type:Tagged pos:80 <|@
0 2 i336 Change t20 t to i -0? allow-undefined-as-nan type:TaggedNumber pos:80 <|@
0 3 i337 Constant 64 type:Smi pos:91 <|@
0 3 i22 Mod i336 i337 type:TaggedNumber pos:91 <|@
0 2 t27 LoadNamedGeneric t3.length changes[*] type:Tagged pos:141 <|@
0 0 v28 Simulate id=75 var[3] = t5, var[4] = i22, push t20, push t27 type:Tagged pos:141 <|@
0 1 i339 Change t27 t to i allow-undefined-as-nan type:TaggedNumber pos:141 <|@
0 1 i29 Add i336 i339 ! type:TaggedNumber pos:133 <|@
0 2 i32 Mod i29 i337 -0? type:TaggedNumber pos:150 <|@
0 2 t35 Constant 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)> [map 0x3020cd29] pos:187 <|@
0 1 t342 Constant 64 pos:183 <|@
0 0 t37 PushArguments t35 t342 type:Tagged pos:183 <|@
0 10 t38 CallNew t1 t35 #2 changes[*] type:Tagged pos:183 <|@
0 0 v39 Simulate id=96 pop 2 / var[5] = i32, push t38 type:Tagged pos:183 <|@
0 2 s41 Constant 0 type:Smi pos:236 <|@
0 1 t43 LoadContextSlot t1[11] type:Tagged pos:278 <|@
0 0 t45 CheckValue t43 0x2c014825 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> type:Tagged pos:278 <|@
0 0 t46 PushArguments t5 t38 type:Tagged pos:278 <|@
0 1 t47 Constant 0x2c014825 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> [map 0x3020df61] [new space] pos:278 <|@
0 0 t48 CallJSFunction t47 #2 changes[*] type:Tagged pos:278 <|@
0 0 v49 Simulate id=116 pop 1 / var[7] = s41, var[6] = t38 type:Tagged pos:278 <|@
0 0 v61 Simulate id=124 var[4] = t5, var[8] = i22 type:Tagged pos:301 <|@
0 0 t83 CheckHeapObject t38 pos:363 <|@
0 0 t84 CheckMaps t38 [0x3020da91] pos:363 <|@
0 3 t85 LoadNamedField t38.%elements@8 type:Tagged pos:363 <|@
0 1 s86 LoadNamedField t85.%length@4 type:Smi pos:363 <|@
0 1 i344 Change s86 s to i type:Smi pos:363 <|@
0 0 t89 CheckHeapObject t3 pos:358 <|@
0 0 t90 CheckMaps t3 [0x3020f509] pos:358 <|@
0 2 t91 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:358 <|@
0 0 t92 CheckMaps t91 [0x3020dabd](stability-check) pos:358 <|@
0 2 t93 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:358 <|@
0 0 t94 CheckMaps t93 [0x3020c465](stability-check) pos:358 <|@
0 4 t95 LoadNamedField t3.%elements@8 type:Tagged pos:358 <|@
0 1 s96 LoadNamedField t95.%length@4 type:Smi pos:358 <|@
0 1 x97 LoadNamedField t95.%elements@8 type:Tagged pos:358 <|@
0 1 i335 Constant 1 type:Smi pos:334 <|@
0 0 v62 Goto B2 type:Tagged pos:301 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([esi|R] = [eax|R];) () () [hir:v8] <|@
24 stack-check = [esi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] {[esi|R];[stack:7]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:v10] <|@
30 gap () () ([eax|R] = [stack:7];) () [hir:v10] <|@
32 load-context-slot [ecx|R][eax|R][7] [hir:t11] <|@
34 gap ((0) = [ecx|R];) () () () [hir:t11] <|@
36 check-non-smi = [ecx|R] [id=3|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t13] <|@
38 gap () () () () [hir:t13] <|@
40 check-maps = [ecx|R] [id=3|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t14] <|@
42 gap () () () () [hir:t14] <|@
44 load-named-field [ecx|R]= [ecx|R] [hir:t15] <|@
46 gap ((0) = [ecx|R];) () () () [hir:t15] <|@
48 load-named-field [edx|R]= [ecx|R] [hir:s16] <|@
50 gap ((0) = [edx|R];) () () () [hir:s16] <|@
52 bounds-check = [constant:12] [edx|R] [id=3|deopt_id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:s17] <|@
54 gap () () () () [hir:s17] <|@
56 load-keyed [edx|R][ecx|R][[constant:12]] [hir:i18] <|@
58 gap ((0) = [edx|R];) () () () [hir:i18] <|@
60 load-context-slot [ecx|R][eax|R][6] [hir:t20] <|@
62 gap ([stack:8] = [ecx|R];) ([ebx|R] = [ecx|R];) () () [hir:t20] <|@
64 tagged-to-i [ebx|R]= [ebx|R] [id=3|deopt_id=33|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:i336] <|@
66 gap ([stack:10] = [ebx|R];) ([edi|R] = [ebx|R];) () () [hir:i336] <|@
68 mod-by-power-of-2-i [edi|R]= [edi|R] [hir:i22] <|@
70 gap ([stack:9] = [edi|R];) ([esi|R] = [eax|R]; [edx|R] = [stack:-1];) () () [hir:i22] <|@
72 load-named-generic [eax|R]= [esi|R] [edx|R] {[esi|R];[edx|R];[stack:7];[stack:8]} [hir:t27] <|@
74 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t27] <|@
76 lazy-bailout = [id=75|deopt_id=4|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[constant:5];[constant:5];[constant:5];[constant:5];[stack:8];[eax|R]] [hir:v28] <|@
78 gap () ([ecx|R] = [eax|R];) () () [hir:v28] <|@
80 tagged-to-i [ecx|R]= [ecx|R] [id=75|deopt_id=34|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[constant:5];[constant:5];[constant:5];[constant:5];[stack:8];[eax|R]] [hir:i339] <|@
82 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i339] <|@
84 add-i [ecx|R]= [ecx|R] [stack:10] [id=75|deopt_id=5|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[constant:5];[constant:5];[constant:5];[constant:5];[stack:8];[eax|R]] [hir:i29] <|@
86 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:i29] <|@
88 mod-by-power-of-2-i [ecx|R]= [ecx|R] [id=75|deopt_id=6|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[constant:5];[constant:5];[constant:5];[constant:5];[stack:8];[eax|R]] [hir:i32] <|@
90 gap ([stack:11] = [ecx|R];) () () () [hir:i32] <|@
92 push-argument = [constant:35] [hir:t37] <|@
94 gap () () () () [hir:t37] <|@
96 push-argument = [constant:342] [hir:t37] <|@
98 gap () () () () [hir:t37] <|@
100 constant-t [edi|R]= [hir:t35] <|@
102 gap ((0) = [edi|R];) ([esi|R] = [stack:7]; [edi|R];) () () [hir:t35] <|@
104 call-new [eax|R]= [esi|R] [edi|R] #1 / {[esi|R];[edi|R];[stack:7]} [hir:t38] <|@
106 gap ([stack:12] = [eax|R];) ([eax|R];) () () [hir:t38] <|@
108 lazy-bailout = [id=96|deopt_id=7|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[stack:11];[constant:5];[constant:5];[constant:5];[eax|R]] [hir:v39] <|@
110 gap () () ([ecx|R] = [stack:7];) () [hir:v39] <|@
112 load-context-slot [edx|R][ecx|R][11] [hir:t43] <|@
114 gap ((0) = [edx|R];) () () () [hir:t43] <|@
116 check-value = [edx|R] [id=96|deopt_id=8|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[constant:5];[stack:9];[stack:11];[constant:5];[constant:5];[constant:5];[eax|R]] [hir:t45] <|@
118 gap () () () () [hir:t45] <|@
120 push-argument = [constant:5] [hir:t46] <|@
122 gap () () () () [hir:t46] <|@
124 push-argument = [eax|R] [hir:t46] <|@
126 gap () () () () [hir:t46] <|@
128 constant-t [edi|R]= [hir:t47] <|@
130 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t47] <|@
132 call-js-function [eax|R]= [edi|R]#1 / {[edi|R];[stack:7];[stack:12]} [hir:t48] <|@
134 gap ((0) = [eax|R];) () () () [hir:t48] <|@
136 lazy-bailout = [id=116|deopt_id=9|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:9];[stack:11];[stack:12];[constant:41];[constant:5]] [hir:v49] <|@
138 gap () () () () [hir:v49] <|@
140 check-non-smi = [stack:12] [id=124|deopt_id=10|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[stack:12];[constant:41];[stack:9]] [hir:t83] <|@
142 gap () () ([ecx|R] = [stack:12];) () [hir:t83] <|@
144 check-maps = [ecx|R] [id=124|deopt_id=11|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[ecx|R];[constant:41];[stack:9]] [hir:t84] <|@
146 gap () () () () [hir:t84] <|@
148 load-named-field [edx|R]= [ecx|R] [hir:t85] <|@
150 gap ((0) = [edx|R];) () () () [hir:t85] <|@
152 load-named-field [eax|R]= [edx|R] [hir:s86] <|@
154 gap ((0) = [eax|R];) ([ebx|R] = [eax|R];) () () [hir:s86] <|@
156 smi-untag [ebx|R]= [ebx|R] [hir:i344] <|@
158 gap ([stack:14] = [ebx|R];) () ([esi|R] = [stack:-1];) () [hir:i344] <|@
160 check-non-smi = [esi|R] [id=124|deopt_id=12|parameters=2|arguments_stack_height=0|[stack:-2];[esi|R];[stack:7];[constant:5];[constant:5];[stack:11];[ecx|R];[constant:41];[stack:9]] [hir:t89] <|@
162 gap () () () () [hir:t89] <|@
164 check-maps = [esi|R] [id=124|deopt_id=13|parameters=2|arguments_stack_height=0|[stack:-2];[esi|R];[stack:7];[constant:5];[constant:5];[stack:11];[ecx|R];[constant:41];[stack:9]] [hir:t90] <|@
166 gap () () () () [hir:t90] <|@
168 check-maps = NULL [hir:t92] <|@
170 gap () () () () [hir:t92] <|@
172 check-maps = NULL [hir:t94] <|@
174 gap () () () () [hir:t94] <|@
176 load-named-field [eax|R]= [esi|R] [hir:t95] <|@
178 gap ((0) = [eax|R];) () () () [hir:t95] <|@
180 load-named-field [edi|R]= [eax|R] [hir:s96] <|@
182 gap ((0) = [edi|R];) () () () [hir:s96] <|@
184 load-named-field [eax|R]= [eax|R] [hir:x97] <|@
186 gap ([stack:13] = [eax|R];) () () () [hir:x97] <|@
188 gap () ([esi|R] = [constant:41]; [ecx|R] = [stack:9];) () () [hir:v62] <|@
190 goto B2 [hir:v62] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1" "B4"
successors "B3" "B5"
xhandlers
flags "dom-loop-succ"
dominator "B1"
loop_depth 1
first_lir_id 192
last_lir_id 198
begin_states
begin_locals
size 2
method "None"
7 s59 [ s41 s79 uses:4_4s_0i_0d_0t type:TaggedNumber]
8 i60 [ i22 i102 uses:4_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v63 BlockEntry type:Tagged pos:325 <|@
0 0 i66 CompareNumericAndBranch LT i60 i337 goto (B3, B5) type:Tagged pos:327 <|@
end_HIR
begin_LIR
192 label () ((0) = [esi|R]; (0) = [ecx|R];) () () [hir:v63] <|@
194 gap () () () () [hir:v63] <|@
196 gap () () () () [hir:i66] <|@
198 compare-numeric-and-branch if [ecx|R] < [constant:337] then B3 else B5 [hir:i66] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags "dom-loop-succ"
dominator "B2"
loop_depth 1
first_lir_id 200
last_lir_id 206
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v67 BlockEntry type:Tagged pos:327 <|@
0 0 v68 Simulate id=128 type:Tagged pos:327 <|@
0 0 v69 Goto B4 type:Tagged pos:327 <|@
end_HIR
begin_LIR
200 label () () () () Dead block replaced with B4 [hir:v67] <|@
202 gap () () () () [hir:v67] <|@
204 gap () () () () [hir:v69] <|@
206 goto B4 [hir:v69] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B2"
xhandlers
flags "dom-loop-succ"
dominator "B3"
loop_depth 1
first_lir_id 208
last_lir_id 242
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v73 BlockEntry type:Tagged pos:301 <|@
0 0 v74 Simulate id=128 type:Tagged pos:301 <|@
0 0 v75 StackCheck t1 changes[NewSpacePromotion] type:Tagged pos:301 <|@
0 2 s79 Add s59 s78 ! type:TaggedNumber pos:354 <|@
0 0 i87 BoundsCheck i60 i344 type:Tagged pos:363 <|@
0 1 i88 LoadKeyed t85[i60] t38 check_hole type:Tagged pos:363 <|@
0 0 s98 BoundsCheck s59 s96 type:Tagged pos:358 <|@
0 0 v99 StoreKeyed x97.EXTERNAL_UINT8_ELEMENTS[s59] = i88 changes[ExternalMemory] type:Tagged pos:358 <|@
0 0 v100 Simulate id=156 var[7] = s79 type:Tagged pos:358 <|@
0 2 i102 Add i60 i335 type:TaggedNumber pos:334 <|@
0 0 v104 Simulate id=124 var[8] = i102 type:Tagged pos:301 <|@
0 0 v105 Goto B2 type:Tagged pos:301 <|@
end_HIR
begin_LIR
208 label () () () () [hir:v73] <|@
210 gap () () () () [hir:v73] <|@
212 stack-check = [stack:7] [id=128|deopt_id=14|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[stack:12];[esi|R];[ecx|R]] {[stack:7];[stack:12];[edx|R]} [hir:v75] <|@
214 gap () ([eax|R] = [esi|R];) () () [hir:v75] <|@
216 add-i [eax|R]= [eax|R] [constant:78] [id=128|deopt_id=15|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[stack:12];[esi|R];[ecx|R]] [hir:s79] <|@
218 gap ([stack:15] = [eax|R];) () () () [hir:s79] <|@
220 bounds-check = [ecx|R] [ebx|R] [id=128|deopt_id=16|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[stack:12];[esi|R];[ecx|R]] [hir:i87] <|@
222 gap () () () () [hir:i87] <|@
224 load-keyed [ebx|R][edx|R][[ecx|R]] [hir:i88] <|@
226 gap ((0) = [ebx|R];) () () () [hir:i88] <|@
228 bounds-check = [esi|R] [edi|R] [id=128|deopt_id=17|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:11];[stack:12];[esi|R];[ecx|R]] [hir:s98] <|@
230 gap () ([esi|R]; [eax|R] = [ebx|R]; [ebx|R] = [stack:13];) () () [hir:s98] <|@
232 store-keyed [ebx|R][[esi|R]] <- [eax|R] [hir:v99] <|@
234 gap () () () () [hir:v99] <|@
236 add-i [ecx|R]= [ecx|R] [constant:335] [hir:i102] <|@
238 gap ((0) = [ecx|R];) () () () [hir:i102] <|@
240 gap () ([esi|R] = [stack:15]; [ecx|R]; [ebx|R] = [stack:14];) () () [hir:v105] <|@
242 goto B2 [hir:v105] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B2"
successors "B6"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 244
last_lir_id 250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v70 BlockEntry type:Tagged pos:327 <|@
0 0 v71 Simulate id=125 var[8] = t5 type:Tagged pos:327 <|@
0 0 v72 Goto B6 type:Tagged pos:327 <|@
end_HIR
begin_LIR
244 label () () () () Dead block replaced with B6 [hir:v70] <|@
246 gap () () () () [hir:v70] <|@
248 gap () () () () [hir:v72] <|@
250 goto B6 [hir:v72] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B8" "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 252
last_lir_id 258
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v107 BlockEntry type:Tagged pos:411 <|@
0 0 v108 Branch t106 goto (B8, B7) (None) type:Tagged pos:411 <|@
end_HIR
begin_LIR
252 label () () () () Dead block replaced with B8 [hir:v107] <|@
254 gap () () () () [hir:v107] <|@
256 gap () () () () [hir:v108] <|@
258 goto B8 [hir:v108] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B9"
xhandlers
flags "osr"
dominator "B6"
loop_depth 0
first_lir_id 260
last_lir_id 314
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v112 BlockEntry type:Tagged pos:411 <|@
0 2 t113 UnknownOSRValue parameter @ 0 type:Tagged pos:411 <|@
0 2 t114 UnknownOSRValue parameter @ 1 type:Tagged pos:411 <|@
0 1 t115 UnknownOSRValue special @ 2 type:Tagged pos:411 <|@
0 1 t116 UnknownOSRValue local @ 3 type:Tagged pos:411 <|@
0 1 t117 UnknownOSRValue local @ 4 type:Tagged pos:411 <|@
0 2 t118 UnknownOSRValue local @ 5 type:Tagged pos:411 <|@
0 2 t119 UnknownOSRValue local @ 6 type:Tagged pos:411 <|@
0 2 t120 UnknownOSRValue local @ 7 type:Tagged pos:411 <|@
0 1 t121 UnknownOSRValue local @ 8 type:Tagged pos:411 <|@
0 0 v122 Simulate id=184 var[8] = t121, var[7] = t120, var[6] = t119, var[5] = t118, var[4] = t117, var[3] = t116, var[2] = t115, var[1] = t114, var[0] = t113 type:Tagged pos:411 <|@
0 0 v123 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:411 <|@
0 2 t124 Context type:Tagged pos:411 <|@
0 0 v125 Simulate id=182 var[2] = t124 type:Tagged pos:411 <|@
0 1 s345 Change t120 t to s -0? type:TaggedNumber pos:411 <|@
0 0 v126 Goto B9 type:Tagged pos:411 <|@
end_HIR
begin_LIR
260 label () () () () [hir:v112] <|@
262 gap () () () () [hir:v112] <|@
264 unknown-osr-value [stack:-2]= [hir:t113] <|@
266 gap () ([stack:-2];) () () [hir:t113] <|@
268 unknown-osr-value [stack:-1]= [hir:t114] <|@
270 gap () ([stack:-1];) () () [hir:t114] <|@
272 unknown-osr-value [stack:-1]= [hir:t115] <|@
274 gap () ([stack:-1];) () () [hir:t115] <|@
276 unknown-osr-value [stack:6]= [hir:t116] <|@
278 gap () ([stack:6];) () () [hir:t116] <|@
280 unknown-osr-value [stack:1]= [hir:t117] <|@
282 gap () ([stack:1];) () () [hir:t117] <|@
284 unknown-osr-value [stack:2]= [hir:t118] <|@
286 gap () ([stack:2];) () () [hir:t118] <|@
288 unknown-osr-value [stack:3]= [hir:t119] <|@
290 gap () ([stack:3];) () () [hir:t119] <|@
292 unknown-osr-value [stack:4]= [hir:t120] <|@
294 gap () ([stack:4];) () () [hir:t120] <|@
296 unknown-osr-value [stack:5]= [hir:t121] <|@
298 gap () ([stack:5];) () () [hir:t121] <|@
300 osr-entry = [id=184|deopt_id=18|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:-1];[stack:6];[stack:1];[stack:2];[stack:3];[stack:4];[stack:5]] [hir:v123] <|@
302 gap () () () () [hir:v123] <|@
304 context [eax|R]= [hir:t124] <|@
306 gap ((0) = [eax|R];) ([ecx|R] = [stack:4];) () () [hir:t124] <|@
308 check-smi [ecx|R]= [ecx|R] [id=182|deopt_id=19|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[stack:6];[stack:1];[stack:2];[stack:3];[stack:4];[stack:5]] [hir:s345] <|@
310 gap ((0) = [ecx|R];) () () () [hir:s345] <|@
312 gap () ([edi|R] = [stack:-2]; [ebx|R] = [stack:-1]; [edx|R] = [eax|R]; [ecx|R] = [stack:2]; [eax|R] = [stack:3]; [esi|R] = [ecx|R];) () () [hir:v126] <|@
314 goto B9 [hir:v126] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B6"
successors "B9"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 316
last_lir_id 326
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v109 BlockEntry type:Tagged pos:411 <|@
0 0 v110 Simulate id=182 type:Tagged pos:411 <|@
0 1 t341 Change i32 i to t pos:411 <|@
0 0 v111 Goto B9 type:Tagged pos:411 <|@
end_HIR
begin_LIR
316 label () () () () [hir:v109] <|@
318 gap () ([eax|R] = [stack:11];) () () [hir:v109] <|@
320 smi-tag [eax|R]= [eax|R] [hir:t341] <|@
322 gap ((0) = [eax|R];) () () () [hir:t341] <|@
324 gap () ([edi|R] = [stack:-2]; [ebx|R] = [stack:-1]; [edx|R] = [stack:7]; [ecx|R] = [eax|R]; [eax|R] = [stack:12]; [esi|R];) () () [hir:v111] <|@
326 goto B9 [hir:v111] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8" "B7"
successors "B10"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 328
last_lir_id 350
begin_states
begin_locals
size 6
method "None"
0 t127 [ t2 t113 uses:4_0s_0i_0d_0t type:Tagged]
1 t128 [ t3 t114 uses:12_0s_0i_0d_0t type:Tagged]
2 t129 [ t1 t124 uses:20_0s_0i_0d_8t type:Tagged]
5 t132 [ t341 t118 uses:2_0s_0i_0d_2t type:Tagged]
6 t133 [ t38 t119 uses:9_0s_0i_0d_0t type:Tagged]
7 s134 [ s59 s345 uses:1_3s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v145 BlockEntry type:Tagged pos:411 <|@
0 0 v146 Simulate id=182 type:Tagged pos:411 <|@
0 2 s150 Constant 64 type:Smi pos:430 <|@
0 0 t153 CheckHeapObject t128 pos:442 <|@
0 1 t170 Constant 0x2c014825 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> [map 0x3020df61] [new space] pos:465 <|@
0 3 s173 Constant 0 type:Smi pos:505 <|@
0 0 t205 CheckHeapObject t133 pos:546 <|@
0 2 t213 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:541 <|@
0 0 t214 CheckMaps t213 [0x3020dabd](stability-check) pos:541 <|@
0 2 t215 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:541 <|@
0 0 t216 CheckMaps t215 [0x3020c465](stability-check) pos:541 <|@
0 0 v147 Goto B10 type:Tagged pos:411 <|@
end_HIR
begin_LIR
328 label () ([stack:20] = [edi|R]; [stack:18] = [ebx|R]; [stack:17] = [edx|R]; [stack:16] = [ecx|R]; [stack:13] = [eax|R]; (0) = [esi|R];) () () [hir:v145] <|@
330 gap () () () () [hir:v145] <|@
332 check-non-smi = [ebx|R] [id=182|deopt_id=20|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[ecx|R];[eax|R];[esi|R];[constant:5]] [hir:t153] <|@
334 gap () () () () [hir:t153] <|@
336 check-non-smi = [eax|R] [id=182|deopt_id=21|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[ecx|R];[eax|R];[esi|R];[constant:5]] [hir:t205] <|@
338 gap () () () () [hir:t205] <|@
340 check-maps = NULL [hir:t214] <|@
342 gap () () () () [hir:t214] <|@
344 check-maps = NULL [hir:t216] <|@
346 gap () () () () [hir:t216] <|@
348 gap () ([esi|R];) () () [hir:v147] <|@
350 goto B10 [hir:v147] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9" "B17"
successors "B11" "B18"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 352
last_lir_id 374
begin_states
begin_locals
size 1
method "None"
7 s143 [ s134 s182 uses:3_3s_0i_0d_0t type:Tagged]
end_locals
end_states
begin_HIR
0 0 v148 BlockEntry type:Tagged pos:418 <|@
0 2 s151 Add s143 s150 ! type:TaggedNumber pos:428 <|@
0 0 v152 Simulate id=189 push s151 type:Tagged pos:428 <|@
0 0 t154 CheckMaps t128 [0x3020f509] pos:442 <|@
0 1 t155 LoadNamedField t128.[in-object]@32 type:Tagged pos:442 <|@
0 1 s346 Change t155 t to s type:TaggedNumber pos:442 <|@
0 0 s156 CompareNumericAndBranch LTE s151 s346 goto (B11, B18) type:Tagged pos:433 <|@
end_HIR
begin_LIR
352 label () ([stack:19] = [esi|R];) () () [hir:v148] <|@
354 gap () ([eax|R] = [esi|R];) () () [hir:v148] <|@
356 add-i [eax|R]= [eax|R] [constant:150] [id=182|deopt_id=22|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:16];[stack:13];[esi|R];[constant:5]] [hir:s151] <|@
358 gap ((0) = [eax|R];) () () () [hir:s151] <|@
360 check-maps = [ebx|R] [id=189|deopt_id=23|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:16];[stack:13];[esi|R];[constant:5];[eax|R]] [hir:t154] <|@
362 gap () () () () [hir:t154] <|@
364 load-named-field [ecx|R]= [ebx|R] [hir:t155] <|@
366 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:t155] <|@
368 check-smi [ecx|R]= [ecx|R] [id=189|deopt_id=24|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:16];[stack:13];[esi|R];[constant:5];[eax|R]] [hir:s346] <|@
370 gap ((0) = [ecx|R];) () () () [hir:s346] <|@
372 gap () () () () [hir:s156] <|@
374 compare-numeric-and-branch if [eax|R] <= [ecx|R] then B11 else B18 [hir:s156] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12"
xhandlers
flags "dom-loop-succ"
dominator "B10"
loop_depth 1
first_lir_id 376
last_lir_id 382
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v157 BlockEntry type:Tagged pos:433 <|@
0 0 v158 Simulate id=185 pop 1 type:Tagged pos:433 <|@
0 0 v159 Goto B12 type:Tagged pos:433 <|@
end_HIR
begin_LIR
376 label () () () () Dead block replaced with B12 [hir:v157] <|@
378 gap () () () () [hir:v157] <|@
380 gap () () () () [hir:v159] <|@
382 goto B12 [hir:v159] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B11"
loop_depth 1
first_lir_id 384
last_lir_id 446
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v163 BlockEntry type:Tagged pos:411 <|@
0 0 v164 Simulate id=185 type:Tagged pos:411 <|@
0 1 t166 LoadContextSlot t129[11] type:Tagged pos:465 <|@
0 0 t168 CheckValue t166 0x2c014825 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> type:Tagged pos:465 <|@
0 0 t169 PushArguments t5 t133 type:Tagged pos:465 <|@
0 0 t171 CallJSFunction t170 #2 changes[*] type:Tagged pos:465 <|@
0 0 v172 Simulate id=210 type:Tagged pos:465 <|@
0 0 v184 Simulate id=218 var[8] = s173 type:Tagged pos:492 <|@
0 0 t206 CheckMaps t133 [0x3020da91] pos:546 <|@
0 3 t207 LoadNamedField t133.%elements@8 type:Tagged pos:546 <|@
0 1 s208 LoadNamedField t207.%length@4 type:Smi pos:546 <|@
0 0 t212 CheckMaps t128 [0x3020f509](stability-check) pos:541 <|@
0 4 t217 LoadNamedField t128.%elements@8 type:Tagged pos:541 <|@
0 1 s218 LoadNamedField t217.%length@4 type:Smi pos:541 <|@
0 1 x219 LoadNamedField t217.%elements@8 type:Tagged pos:541 <|@
0 0 v185 Goto B13 type:Tagged pos:492 <|@
end_HIR
begin_LIR
384 label () () () () [hir:v163] <|@
386 gap () () () () [hir:v163] <|@
388 load-context-slot [eax|R][edx|R][11] [hir:t166] <|@
390 gap ((0) = [eax|R];) () () () [hir:t166] <|@
392 check-value = [eax|R] [id=185|deopt_id=25|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:16];[stack:13];[esi|R];[constant:5]] [hir:t168] <|@
394 gap () () () () [hir:t168] <|@
396 push-argument = [constant:5] [hir:t169] <|@
398 gap () () () () [hir:t169] <|@
400 push-argument = [stack:13] [hir:t169] <|@
402 gap () () () () [hir:t169] <|@
404 constant-t [eax|R]= [hir:t170] <|@
406 gap ((0) = [eax|R];) ([edi|R] = [eax|R]; [eax|R] = [edi|R];) () () [hir:t170] <|@
408 call-js-function [eax|R]= [edi|R]#1 / {[edi|R];[stack:20];[stack:18];[stack:17];[stack:16];[stack:13]} [hir:t171] <|@
410 gap ((0) = [eax|R];) () () () [hir:t171] <|@
412 lazy-bailout = [id=210|deopt_id=26|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[stack:19];[constant:5]] [hir:v172] <|@
414 gap () () ([ecx|R] = [stack:13];) () [hir:v172] <|@
416 check-maps = [ecx|R] [id=218|deopt_id=27|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[ecx|R];[stack:19];[constant:173]] [hir:t206] <|@
418 gap () () () () [hir:t206] <|@
420 load-named-field [edx|R]= [ecx|R] [hir:t207] <|@
422 gap ((0) = [edx|R];) () () () [hir:t207] <|@
424 load-named-field [ebx|R]= [edx|R] [hir:s208] <|@
426 gap ([stack:22] = [ebx|R];) () () () [hir:s208] <|@
428 check-maps = NULL [hir:t212] <|@
430 gap () () ([esi|R] = [stack:18];) () [hir:t212] <|@
432 load-named-field [eax|R]= [esi|R] [hir:t217] <|@
434 gap ((0) = [eax|R];) () () () [hir:t217] <|@
436 load-named-field [edi|R]= [eax|R] [hir:s218] <|@
438 gap ((0) = [edi|R];) () () () [hir:s218] <|@
440 load-named-field [eax|R]= [eax|R] [hir:x219] <|@
442 gap ([stack:21] = [eax|R];) () () () [hir:x219] <|@
444 gap () ([ecx|R] = [stack:19]; [esi|R] = [constant:173];) () () [hir:v185] <|@
446 goto B13 [hir:v185] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12" "B15"
successors "B14" "B16"
xhandlers
flags "dom-loop-succ"
dominator "B12"
loop_depth 2
first_lir_id 448
last_lir_id 454
begin_states
begin_locals
size 2
method "None"
7 s182 [ s143 s201 uses:4_3s_0i_0d_0t type:Tagged]
8 s183 [ s173 s224 uses:4_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v186 BlockEntry type:Tagged pos:508 <|@
0 0 s189 CompareNumericAndBranch LT s183 s150 goto (B14, B16) type:Tagged pos:510 <|@
end_HIR
begin_LIR
448 label () ((0) = [ecx|R]; [stack:23] = [esi|R];) () () [hir:v186] <|@
450 gap () () () () [hir:v186] <|@
452 gap () () () () [hir:s189] <|@
454 compare-numeric-and-branch if [esi|R] < [constant:150] then B14 else B16 [hir:s189] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B15"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 2
first_lir_id 456
last_lir_id 462
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v190 BlockEntry type:Tagged pos:510 <|@
0 0 v191 Simulate id=222 type:Tagged pos:510 <|@
0 0 v192 Goto B15 type:Tagged pos:510 <|@
end_HIR
begin_LIR
456 label () () () () Dead block replaced with B15 [hir:v190] <|@
458 gap () () () () [hir:v190] <|@
460 gap () () () () [hir:v192] <|@
462 goto B15 [hir:v192] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B14"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B14"
loop_depth 2
first_lir_id 464
last_lir_id 498
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v196 BlockEntry type:Tagged pos:492 <|@
0 0 v197 Simulate id=222 type:Tagged pos:492 <|@
0 0 v198 StackCheck t129 changes[NewSpacePromotion] type:Tagged pos:492 <|@
0 2 s201 Add s182 s78 ! type:TaggedNumber pos:537 <|@
0 0 s209 BoundsCheck s183 s208 type:Tagged pos:546 <|@
0 1 i210 LoadKeyed t207[s183] t133 check_hole type:Tagged pos:546 <|@
0 0 s220 BoundsCheck s182 s218 type:Tagged pos:541 <|@
0 0 v221 StoreKeyed x219.EXTERNAL_UINT8_ELEMENTS[s182] = i210 changes[ExternalMemory] type:Tagged pos:541 <|@
0 0 v222 Simulate id=251 var[7] = s201 type:Tagged pos:541 <|@
0 2 s224 Add s183 s78 type:TaggedNumber pos:517 <|@
0 0 v226 Simulate id=218 var[8] = s224 type:Tagged pos:492 <|@
0 0 v227 Goto B13 type:Tagged pos:492 <|@
end_HIR
begin_LIR
464 label () () () () [hir:v196] <|@
466 gap () () () () [hir:v196] <|@
468 stack-check = [stack:17] [id=222|deopt_id=28|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[esi|R]] {[stack:20];[stack:18];[stack:17];[stack:16];[stack:13];[edx|R]} [hir:v198] <|@
470 gap () ([eax|R] = [ecx|R];) () () [hir:v198] <|@
472 add-i [eax|R]= [eax|R] [constant:78] [id=222|deopt_id=29|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[esi|R]] [hir:s201] <|@
474 gap ((0) = [eax|R];) () () () [hir:s201] <|@
476 bounds-check = [esi|R] [ebx|R] [id=222|deopt_id=30|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[esi|R]] [hir:s209] <|@
478 gap () ([ebx|R] = [esi|R];) () () [hir:s209] <|@
480 load-keyed [esi|R][edx|R][[ebx|R]] [hir:i210] <|@
482 gap ((0) = [esi|R];) () () () [hir:i210] <|@
484 bounds-check = [ecx|R] [edi|R] [id=222|deopt_id=31|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[stack:23]] [hir:s220] <|@
486 gap () ([ecx|R]; [eax|R] = [esi|R]; [esi|R] = [eax|R]; [ebx|R] = [stack:21];) () () [hir:s220] <|@
488 store-keyed [ebx|R][[ecx|R]] <- [eax|R] [hir:v221] <|@
490 gap () () ([eax|R] = [stack:23];) () [hir:v221] <|@
492 add-i [eax|R]= [eax|R] [constant:78] [hir:s224] <|@
494 gap ((0) = [eax|R];) () () () [hir:s224] <|@
496 gap () ([ecx|R] = [esi|R]; [esi|R] = [eax|R]; [ebx|R] = [stack:22];) () () [hir:v227] <|@
498 goto B13 [hir:v227] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B13"
successors "B17"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 1
first_lir_id 500
last_lir_id 506
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v193 BlockEntry type:Tagged pos:510 <|@
0 0 v194 Simulate id=219 var[8] = t5 type:Tagged pos:510 <|@
0 0 v195 Goto B17 type:Tagged pos:510 <|@
end_HIR
begin_LIR
500 label () () () () Dead block replaced with B17 [hir:v193] <|@
502 gap () () () () [hir:v193] <|@
504 gap () () () () [hir:v195] <|@
506 goto B17 [hir:v195] <|@
end_LIR
end_block
begin_block
name "B17"
from_bci -1
to_bci -1
predecessors "B16"
successors "B10"
xhandlers
flags "dom-loop-succ"
dominator "B16"
loop_depth 1
first_lir_id 508
last_lir_id 514
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v228 BlockEntry type:Tagged pos:411 <|@
0 0 v229 Simulate id=182 type:Tagged pos:411 <|@
0 0 v230 Goto B10 type:Tagged pos:411 <|@
end_HIR
begin_LIR
508 label () () () () [hir:v228] <|@
510 gap () () () () [hir:v228] <|@
512 gap () ([esi|R] = [ecx|R]; [edi|R] = [stack:20]; [ebx|R] = [stack:18]; [edx|R] = [stack:17];) () () [hir:v230] <|@
514 goto B10 [hir:v230] <|@
end_LIR
end_block
begin_block
name "B18"
from_bci -1
to_bci -1
predecessors "B10"
successors "B19"
xhandlers
flags
dominator "B10"
loop_depth 0
first_lir_id 516
last_lir_id 522
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v160 BlockEntry type:Tagged pos:433 <|@
0 0 v161 Simulate id=183 pop 1 type:Tagged pos:433 <|@
0 0 v162 Goto B19 type:Tagged pos:433 <|@
end_HIR
begin_LIR
516 label () () () () Dead block replaced with B19 [hir:v160] <|@
518 gap () () () () [hir:v160] <|@
520 gap () () () () [hir:v162] <|@
522 goto B19 [hir:v162] <|@
end_LIR
end_block
begin_block
name "B19"
from_bci -1
to_bci -1
predecessors "B18"
successors "B20"
xhandlers
flags
dominator "B18"
loop_depth 0
first_lir_id 524
last_lir_id 530
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v231 BlockEntry type:Tagged pos:611 <|@
0 0 v234 Deoptimize goto (B20) type:Tagged pos:621 <|@
end_HIR
begin_LIR
524 label () () () () [hir:v231] <|@
526 gap () () () () [hir:v231] <|@
528 gap () () () () [hir:v234] <|@
530 deoptimize = [id=183|deopt_id=32|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[stack:19];[constant:5]] [hir:v234] <|@
end_LIR
end_block
begin_block
name "B20"
from_bci -1
to_bci -1
predecessors "B19"
successors "B23" "B21"
xhandlers
flags "dead"
dominator "B19"
loop_depth 0
first_lir_id 532
last_lir_id 550
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v235 BlockEntry type:Tagged pos:621 <|@
0 2 t347 Constant 0 pos:621 <|@
0 2 t236 CompareGeneric GT t132 t347 changes[*] pos:621 <|@
0 0 v237 Simulate id=280 push t236 type:Tagged pos:621 <|@
0 0 v238 Branch t236 goto (B23, B21) (None) type:Tagged pos:621 <|@
end_HIR
begin_LIR
532 label () () () () [hir:v235] <|@
534 gap () () () () [hir:v235] <|@
536 dummy-use = [stack:16] [hir:t236] <|@
538 gap () () () () [hir:t236] <|@
540 dummy-use = [constant:347] [hir:t236] <|@
542 gap () () () () [hir:t236] <|@
544 dummy-use [eax|R]= [stack:17] [hir:t236] <|@
546 gap ((0) = [eax|R];) () () () [hir:t236] <|@
548 gap () () () () [hir:v238] <|@
550 branch B23 | B21 on [eax|R] [hir:v238] <|@
end_LIR
end_block
begin_block
name "B21"
from_bci -1
to_bci -1
predecessors "B20"
successors "B22"
xhandlers
flags "dead"
dominator "B20"
loop_depth 0
first_lir_id 552
last_lir_id 558
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v242 BlockEntry type:Tagged pos:621 <|@
0 0 v243 Simulate id=279 pop 1 / var[7] = t5, var[6] = t5, var[5] = t5 type:Tagged pos:621 <|@
0 0 v244 Goto B22 type:Tagged pos:621 <|@
end_HIR
begin_LIR
552 label () () () () Dead block replaced with B22 [hir:v242] <|@
554 gap () () () () [hir:v242] <|@
556 gap () () () () [hir:v244] <|@
558 goto B22 [hir:v244] <|@
end_LIR
end_block
begin_block
name "B22"
from_bci -1
to_bci -1
predecessors "B21"
successors "B33"
xhandlers
flags "dead"
dominator "B21"
loop_depth 0
first_lir_id 560
last_lir_id 566
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v303 BlockEntry type:Tagged pos:607 <|@
0 0 v304 Simulate id=277 type:Tagged pos:607 <|@
0 0 v305 Goto B33 type:Tagged pos:607 <|@
end_HIR
begin_LIR
560 label () () () () Dead block replaced with B33 [hir:v303] <|@
562 gap () () () () [hir:v303] <|@
564 gap () () () () [hir:v305] <|@
566 goto B33 [hir:v305] <|@
end_LIR
end_block
begin_block
name "B23"
from_bci -1
to_bci -1
predecessors "B20"
successors "B24"
xhandlers
flags "dead"
dominator "B20"
loop_depth 0
first_lir_id 568
last_lir_id 574
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v239 BlockEntry type:Tagged pos:621 <|@
0 0 v240 Simulate id=278 pop 1 type:Tagged pos:621 <|@
0 0 v241 Goto B24 type:Tagged pos:621 <|@
end_HIR
begin_LIR
568 label () () () () Dead block replaced with B24 [hir:v239] <|@
570 gap () () () () [hir:v239] <|@
572 gap () () () () [hir:v241] <|@
574 goto B24 [hir:v241] <|@
end_LIR
end_block
begin_block
name "B24"
from_bci -1
to_bci -1
predecessors "B23"
successors "B25"
xhandlers
flags "dead"
dominator "B23"
loop_depth 0
first_lir_id 576
last_lir_id 602
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v245 BlockEntry type:Tagged pos:640 <|@
0 1 t246 LoadContextSlot t129[11] type:Tagged pos:640 <|@
0 0 t248 PushArguments t5 t133 type:Tagged pos:640 <|@
0 0 t249 CallFunction t129 t246 (type-feedback-vector icslot 2) changes[*] type:Tagged pos:640 <|@
0 0 v250 Simulate id=291 type:Tagged pos:640 <|@
0 0 v262 Simulate id=299 var[8] = s173 type:Tagged pos:667 <|@
0 0 v263 Goto B25 type:Tagged pos:667 <|@
end_HIR
begin_LIR
576 label () () () () [hir:v245] <|@
578 gap () () () () [hir:v245] <|@
580 dummy-use [eax|R]= [stack:17] [hir:t246] <|@
582 gap ((0) = [eax|R];) () () () [hir:t246] <|@
584 dummy-use = [stack:13] [hir:t248] <|@
586 gap () () () () [hir:t248] <|@
588 dummy-use [ecx|R]= [constant:5] [hir:t248] <|@
590 gap ((0) = [ecx|R];) () () () [hir:t248] <|@
592 dummy-use = [eax|R] [hir:t249] <|@
594 gap () () () () [hir:t249] <|@
596 dummy-use [eax|R]= [stack:17] [hir:t249] <|@
598 gap ((0) = [eax|R];) () () () [hir:t249] <|@
600 gap () ([ecx|R] = [stack:19]; [eax|R] = [constant:347];) () () [hir:v263] <|@
602 goto B25 [hir:v263] <|@
end_LIR
end_block
begin_block
name "B25"
from_bci -1
to_bci -1
predecessors "B24" "B30"
successors "B26"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B24"
loop_depth 1
first_lir_id 604
last_lir_id 610
begin_states
begin_locals
size 2
method "None"
7 s260 [ s143 s283 uses:3_1s_0i_0d_0t type:Tagged]
8 t261 [ t347 t351 uses:3_1s_0i_0d_1t]
end_locals
end_states
begin_HIR
0 0 v264 BlockEntry type:Tagged pos:683 <|@
0 0 v267 Deoptimize goto (B26) type:Tagged pos:685 <|@
end_HIR
begin_LIR
604 label () ((0) = [ecx|R]; (0) = [eax|R];) () () [hir:v264] <|@
606 gap () () () () [hir:v264] <|@
608 gap () () () () [hir:v267] <|@
610 deoptimize = [id=299|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[eax|R]] [hir:v267] <|@
end_LIR
end_block
begin_block
name "B26"
from_bci -1
to_bci -1
predecessors "B25"
successors "B27" "B31"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B25"
loop_depth 1
first_lir_id 612
last_lir_id 630
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v268 BlockEntry type:Tagged pos:685 <|@
0 2 t269 CompareGeneric LT t261 t132 changes[*] pos:685 <|@
0 0 v270 Simulate id=316 push t269 type:Tagged pos:685 <|@
0 0 v271 Branch t269 goto (B27, B31) (None) type:Tagged pos:685 <|@
end_HIR
begin_LIR
612 label () () () () [hir:v268] <|@
614 gap () () () () [hir:v268] <|@
616 dummy-use = [eax|R] [hir:t269] <|@
618 gap () () () () [hir:t269] <|@
620 dummy-use = [stack:16] [hir:t269] <|@
622 gap () () () () [hir:t269] <|@
624 dummy-use [edx|R]= [stack:17] [hir:t269] <|@
626 gap ((0) = [edx|R];) () () () [hir:t269] <|@
628 gap () () () () [hir:v271] <|@
630 branch B27 | B31 on [edx|R] [hir:v271] <|@
end_LIR
end_block
begin_block
name "B27"
from_bci -1
to_bci -1
predecessors "B26"
successors "B28"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B26"
loop_depth 1
first_lir_id 632
last_lir_id 638
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v272 BlockEntry type:Tagged pos:685 <|@
0 0 v273 Simulate id=303 pop 1 type:Tagged pos:685 <|@
0 0 v274 Goto B28 type:Tagged pos:685 <|@
end_HIR
begin_LIR
632 label () () () () Dead block replaced with B28 [hir:v272] <|@
634 gap () () () () [hir:v272] <|@
636 gap () () () () [hir:v274] <|@
638 goto B28 [hir:v274] <|@
end_LIR
end_block
begin_block
name "B28"
from_bci -1
to_bci -1
predecessors "B27"
successors "B29"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B27"
loop_depth 1
first_lir_id 640
last_lir_id 662
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v278 BlockEntry type:Tagged pos:667 <|@
0 0 v279 Simulate id=303 type:Tagged pos:667 <|@
0 0 v280 StackCheck t129 changes[NewSpacePromotion] type:Tagged pos:667 <|@
0 2 s283 Add s260 s78 ! type:TaggedNumber pos:719 <|@
0 0 v287 Deoptimize goto (B29) type:Tagged pos:728 <|@
end_HIR
begin_LIR
640 label () () () () [hir:v278] <|@
642 gap () () () () [hir:v278] <|@
644 dummy-use [edx|R]= [stack:17] [hir:v280] <|@
646 gap ((0) = [edx|R];) () () () [hir:v280] <|@
648 dummy-use = [ecx|R] [hir:s283] <|@
650 gap () () () () [hir:s283] <|@
652 dummy-use = [constant:78] [hir:s283] <|@
654 gap () () () () [hir:s283] <|@
656 dummy-use [edx|R]= [stack:17] [hir:s283] <|@
658 gap ((0) = [edx|R];) () () () [hir:s283] <|@
660 gap () () () () [hir:v287] <|@
662 deoptimize = [id=303|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[ecx|R];[eax|R]] [hir:v287] <|@
end_LIR
end_block
begin_block
name "B29"
from_bci -1
to_bci -1
predecessors "B28"
successors "B30"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B28"
loop_depth 1
first_lir_id 664
last_lir_id 682
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v288 BlockEntry type:Tagged pos:728 <|@
0 2 t289 LoadKeyedGeneric t133[t261] changes[*] type:Tagged pos:728 <|@
0 0 v290 Simulate id=349 var[7] = s283, push t128, push s260, push t289 type:Tagged pos:728 <|@
0 0 v291 Deoptimize goto (B30) type:Tagged pos:723 <|@
end_HIR
begin_LIR
664 label () () () () [hir:v288] <|@
666 gap () () () () [hir:v288] <|@
668 dummy-use = [eax|R] [hir:t289] <|@
670 gap () () () () [hir:t289] <|@
672 dummy-use = [stack:17] [hir:t289] <|@
674 gap () () () () [hir:t289] <|@
676 dummy-use [ebx|R]= [stack:13] [hir:t289] <|@
678 gap ((0) = [ebx|R];) () () () [hir:t289] <|@
680 gap () () () () [hir:v291] <|@
682 deoptimize = [id=349|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[stack:16];[stack:13];[edx|R];[eax|R];[stack:18];[ecx|R];[ebx|R]] [hir:v291] <|@
end_LIR
end_block
begin_block
name "B30"
from_bci -1
to_bci -1
predecessors "B29"
successors "B25"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B29"
loop_depth 1
first_lir_id 684
last_lir_id 730
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v292 BlockEntry type:Tagged pos:723 <|@
0 1 t350 Change s260 s to t pos:723 <|@
0 0 v293 StoreKeyedGeneric t128[t350] = t289 changes[*] type:Tagged pos:723 <|@
0 0 v294 Simulate id=331 pop 3 type:Tagged pos:723 <|@
0 1 s349 Change t261 t to s allow-undefined-as-nan type:TaggedNumber pos:699 <|@
0 2 s296 Add s349 s78 ! type:TaggedNumber pos:699 <|@
0 0 v298 Simulate id=299 var[8] = s296 type:Tagged pos:667 <|@
0 1 t351 Change s296 s to t pos:683 <|@
0 0 v299 Goto B25 type:Tagged pos:667 <|@
end_HIR
begin_LIR
684 label () () () () [hir:v292] <|@
686 gap () () () () [hir:v292] <|@
688 dummy-use [esi|R]= [ecx|R] [hir:t350] <|@
690 gap ((0) = [esi|R];) () () () [hir:t350] <|@
692 dummy-use = [esi|R] [hir:v293] <|@
694 gap () () () () [hir:v293] <|@
696 dummy-use = [ebx|R] [hir:v293] <|@
698 gap () () () () [hir:v293] <|@
700 dummy-use = [stack:17] [hir:v293] <|@
702 gap () () () () [hir:v293] <|@
704 dummy-use [ecx|R]= [stack:18] [hir:v293] <|@
706 gap ((0) = [ecx|R];) () () () [hir:v293] <|@
708 dummy-use [ecx|R]= [eax|R] [hir:s349] <|@
710 gap ((0) = [ecx|R];) () () () [hir:s349] <|@
712 dummy-use = [ecx|R] [hir:s296] <|@
714 gap () () () () [hir:s296] <|@
716 dummy-use = [constant:78] [hir:s296] <|@
718 gap () () () () [hir:s296] <|@
720 dummy-use [eax|R]= [stack:17] [hir:s296] <|@
722 gap ((0) = [eax|R];) () () () [hir:s296] <|@
724 dummy-use [ecx|R]= [eax|R] [hir:t351] <|@
726 gap ((0) = [ecx|R];) () () () [hir:t351] <|@
728 gap () ([ecx|R] = [edx|R]; [eax|R] = [ecx|R];) () () [hir:v299] <|@
730 goto B25 [hir:v299] <|@
end_LIR
end_block
begin_block
name "B31"
from_bci -1
to_bci -1
predecessors "B26"
successors "B32"
xhandlers
flags "dead"
dominator "B26"
loop_depth 0
first_lir_id 732
last_lir_id 738
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v275 BlockEntry type:Tagged pos:685 <|@
0 0 v276 Simulate id=300 pop 1 / var[8] = t5, var[7] = t5, var[6] = t5, var[5] = t5 type:Tagged pos:685 <|@
0 0 v277 Goto B32 type:Tagged pos:685 <|@
end_HIR
begin_LIR
732 label () () () () Dead block replaced with B32 [hir:v275] <|@
734 gap () () () () [hir:v275] <|@
736 gap () () () () [hir:v277] <|@
738 goto B32 [hir:v277] <|@
end_LIR
end_block
begin_block
name "B32"
from_bci -1
to_bci -1
predecessors "B31"
successors "B33"
xhandlers
flags "dead"
dominator "B31"
loop_depth 0
first_lir_id 740
last_lir_id 746
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v300 BlockEntry type:Tagged pos:607 <|@
0 0 v301 Simulate id=277 type:Tagged pos:607 <|@
0 0 v302 Goto B33 type:Tagged pos:607 <|@
end_HIR
begin_LIR
740 label () () () () Dead block replaced with B33 [hir:v300] <|@
742 gap () () () () [hir:v300] <|@
744 gap () () () () [hir:v302] <|@
746 goto B33 [hir:v302] <|@
end_LIR
end_block
begin_block
name "B33"
from_bci -1
to_bci -1
predecessors "B32" "B22"
successors "B34"
xhandlers
flags "dead"
dominator "B20"
loop_depth 0
first_lir_id 748
last_lir_id 766
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v315 BlockEntry type:Tagged pos:756 <|@
0 3 t316 LoadNamedGeneric t127.setPosition changes[*] type:Tagged pos:756 <|@
0 0 v317 Simulate id=363 push t127, push t316 type:Tagged pos:756 <|@
0 2 t318 LoadContextSlot t129[6] type:Tagged pos:768 <|@
0 0 v319 Deoptimize goto (B34) type:Tagged pos:787 <|@
end_HIR
begin_LIR
748 label () () () () [hir:v315] <|@
750 gap () () () () [hir:v315] <|@
752 dummy-use = [stack:20] [hir:t316] <|@
754 gap () () () () [hir:t316] <|@
756 dummy-use [eax|R]= [stack:17] [hir:t316] <|@
758 gap ((0) = [eax|R];) () () () [hir:t316] <|@
760 dummy-use [ecx|R]= [stack:17] [hir:t318] <|@
762 gap ((0) = [ecx|R];) () () () [hir:t318] <|@
764 gap () () () () [hir:v319] <|@
766 deoptimize = [id=363|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:20];[eax|R]] [hir:v319] <|@
end_LIR
end_block
begin_block
name "B34"
from_bci -1
to_bci -1
predecessors "B33"
successors "B35"
xhandlers
flags "dead"
dominator "B33"
loop_depth 0
first_lir_id 768
last_lir_id 782
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v320 BlockEntry type:Tagged pos:787 <|@
0 2 t321 LoadNamedGeneric t128.length changes[*] type:Tagged pos:787 <|@
0 0 v322 Simulate id=376 pop 2 / push t316, push t127, push t318, push t321 type:Tagged pos:787 <|@
0 0 v323 Deoptimize goto (B35) type:Tagged pos:779 <|@
end_HIR
begin_LIR
768 label () () () () [hir:v320] <|@
770 gap () () () () [hir:v320] <|@
772 dummy-use = [stack:18] [hir:t321] <|@
774 gap () () () () [hir:t321] <|@
776 dummy-use [edx|R]= [stack:17] [hir:t321] <|@
778 gap ((0) = [edx|R];) () () () [hir:t321] <|@
780 gap () () () () [hir:v323] <|@
782 deoptimize = [id=376|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[eax|R];[stack:20];[ecx|R];[edx|R]] [hir:v323] <|@
end_LIR
end_block
begin_block
name "B35"
from_bci -1
to_bci -1
predecessors "B34"
successors "B36"
xhandlers
flags "dead"
dominator "B34"
loop_depth 0
first_lir_id 784
last_lir_id 790
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v324 BlockEntry type:Tagged pos:779 <|@
0 0 v325 Deoptimize goto (B36) type:Tagged pos:779 <|@
end_HIR
begin_LIR
784 label () () () () [hir:v324] <|@
786 gap () () () () [hir:v324] <|@
788 gap () () () () [hir:v325] <|@
790 deoptimize = [id=376|parameters=2|arguments_stack_height=0|[stack:20];[stack:18];[stack:17];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[eax|R];[stack:20];[ecx|R];[edx|R]] [hir:v325] <|@
end_LIR
end_block
begin_block
name "B36"
from_bci -1
to_bci -1
predecessors "B35"
successors
xhandlers
flags "dead"
dominator "B35"
loop_depth 0
first_lir_id 792
last_lir_id 830
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v326 BlockEntry type:Tagged pos:779 <|@
0 2 t327 Add t318 t321 ! changes[*] pos:779 <|@
0 0 v328 Simulate id=370 pop 2 / push t327 type:Tagged pos:779 <|@
0 0 t329 PushArguments t127 t327 type:Tagged pos:756 <|@
0 0 t330 CallFunction t129 t316 changes[*] type:Tagged pos:756 <|@
0 0 v331 Simulate id=357 pop 3 type:Tagged pos:756 <|@
0 1 s332 Constant 1 type:Smi <|@
0 0 v333 Return t5 (pop s332 values) type:Tagged <|@
end_HIR
begin_LIR
792 label () () () () [hir:v326] <|@
794 gap () () () () [hir:v326] <|@
796 dummy-use = [ecx|R] [hir:t327] <|@
798 gap () () () () [hir:t327] <|@
800 dummy-use = [edx|R] [hir:t327] <|@
802 gap () () () () [hir:t327] <|@
804 dummy-use [ecx|R]= [stack:17] [hir:t327] <|@
806 gap ((0) = [ecx|R];) () () () [hir:t327] <|@
808 dummy-use = [ecx|R] [hir:t329] <|@
810 gap () () () () [hir:t329] <|@
812 dummy-use [ecx|R]= [stack:20] [hir:t329] <|@
814 gap ((0) = [ecx|R];) () () () [hir:t329] <|@
816 dummy-use = [eax|R] [hir:t330] <|@
818 gap () () () () [hir:t330] <|@
820 dummy-use [eax|R]= [stack:17] [hir:t330] <|@
822 gap ((0) = [eax|R];) () () () [hir:t330] <|@
824 constant-t [eax|R]= [hir:t5] <|@
826 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t5] <|@
828 return = [eax|R] NULL [constant:332] [hir:v333] <|@
830 gap () () () () [hir:v333] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "ToPositiveInteger"
method "ToPositiveInteger:6"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 22
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 2 t6 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 5 t1 Context type:Tagged <|@
0 2 t2 Parameter 0 type:Tagged <|@
0 6 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[4] = t6, var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B4" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 24
last_lir_id 38
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 t13 IsSmiAndBranch t3 goto (B4, B2) type:Tagged pos:14 <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6]] {[esi|R];[stack:1]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|deopt_id=0|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6]] [hir:v11] <|@
34 gap () () () () [hir:v11] <|@
36 gap () () ([eax|R] = [stack:-2];) () [hir:t13] <|@
38 is-smi-and-branch if is_smi([eax|R]) then B4 else B2 [hir:t13] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 40
last_lir_id 46
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v17 BlockEntry type:Tagged pos:14 <|@
0 0 v18 Simulate id=18 type:Tagged pos:14 <|@
0 0 v19 Goto B3 type:Tagged pos:14 <|@
end_HIR
begin_LIR
40 label () () () () Dead block replaced with B3 [hir:v17] <|@
42 gap () () () () [hir:v17] <|@
44 gap () () () () [hir:v19] <|@
46 goto B3 [hir:v19] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B6"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 48
last_lir_id 90
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v20 BlockEntry type:Tagged pos:65 <|@
0 1 t21 Constant 0x26882ad5 <JS Function ToNumber (SharedFunctionInfo 0x26840995)> pos:65 <|@
0 1 t23 Constant 0x28d0eba9 <JS Global Object> [map 0x3020f4b1] pos:65 <|@
0 0 t24 PushArguments t23 t3 type:Tagged pos:65 <|@
0 2 t26 CallJSFunction t21 #2 changes[*] type:Tagged pos:65 <|@
0 0 v27 Simulate id=29 push t26 type:Tagged pos:65 <|@
0 0 t28 PushArguments t26 type:Tagged pos:36 <|@
0 2 t29 CallRuntime NumberToIntegerMapMinusZero #1 changes[*] type:Tagged pos:36 <|@
0 0 v30 Simulate id=26 pop 1 / push t29 type:Tagged pos:36 <|@
0 0 v34 Simulate id=15 type:Tagged pos:14 <|@
0 1 s70 Change t29 t to s -0? type:TaggedNumber pos:12 <|@
0 0 v35 Goto B6 type:Tagged pos:14 <|@
end_HIR
begin_LIR
48 label () () () () [hir:v20] <|@
50 gap () () () () [hir:v20] <|@
52 push-argument = [constant:23] [hir:t24] <|@
54 gap () () () () [hir:t24] <|@
56 push-argument = [eax|R] [hir:t24] <|@
58 gap () () () () [hir:t24] <|@
60 constant-t [edi|R]= [hir:t21] <|@
62 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t21] <|@
64 call-js-function [eax|R]= [edi|R]#1 / {[edi|R];[stack:1]} [hir:t26] <|@
66 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t26] <|@
68 lazy-bailout = [id=29|deopt_id=1|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6];[eax|R]] [hir:v27] <|@
70 gap () () () () [hir:v27] <|@
72 push-argument = [eax|R] [hir:t28] <|@
74 gap () ([esi|R] = [stack:1];) () () [hir:t28] <|@
76 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:1]} [hir:t29] <|@
78 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t29] <|@
80 lazy-bailout = [id=26|deopt_id=2|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6];[eax|R]] [hir:v30] <|@
82 gap () ([ecx|R] = [eax|R];) () () [hir:v30] <|@
84 check-smi [ecx|R]= [ecx|R] [id=15|deopt_id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6];[eax|R]] [hir:s70] <|@
86 gap ((0) = [ecx|R];) () () () [hir:s70] <|@
88 gap () ([eax|R] = [ecx|R];) () () [hir:v35] <|@
90 goto B6 [hir:v35] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B1"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 92
last_lir_id 98
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v14 BlockEntry type:Tagged pos:14 <|@
0 0 v15 Simulate id=17 type:Tagged pos:14 <|@
0 0 v16 Goto B5 type:Tagged pos:14 <|@
end_HIR
begin_LIR
92 label () () () () Dead block replaced with B5 [hir:v14] <|@
94 gap () () () () [hir:v14] <|@
96 gap () () () () [hir:v16] <|@
98 goto B5 [hir:v16] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors "B6"
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 100
last_lir_id 110
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v31 BlockEntry type:Tagged pos:14 <|@
0 0 v32 Simulate id=15 push t3 type:Tagged pos:14 <|@
0 1 s69 Change t3 t to s -0? type:TaggedNumber pos:12 <|@
0 0 v33 Goto B6 type:Tagged pos:14 <|@
end_HIR
begin_LIR
100 label () () () () [hir:v31] <|@
102 gap () ([eax|R] = [stack:-2];) () () [hir:v31] <|@
104 check-smi [eax|R]= [eax|R] [id=15|deopt_id=4|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6];[stack:-2]] [hir:s69] <|@
106 gap ((0) = [eax|R];) () () () [hir:s69] <|@
108 gap () ([eax|R];) () () [hir:v33] <|@
110 goto B6 [hir:v33] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5" "B3"
successors "B9" "B7"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 112
last_lir_id 118
begin_states
begin_locals
size 1
method "None"
5 s36 [ s69 s70 uses:3_1s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v37 BlockEntry type:Tagged pos:12 <|@
0 1 s40 Constant 0 type:Smi pos:85 <|@
0 0 s41 CompareNumericAndBranch LT s36 s40 goto (B9, B7) type:Tagged pos:84 <|@
end_HIR
begin_LIR
112 label () ((0) = [eax|R];) () () [hir:v37] <|@
114 gap () () () () [hir:v37] <|@
116 gap () () () () [hir:s41] <|@
118 compare-numeric-and-branch if [eax|R] < [constant:40] then B9 else B7 [hir:s41] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B8"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 120
last_lir_id 126
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v45 BlockEntry type:Tagged pos:84 <|@
0 0 v46 Simulate id=39 pop 1 / var[4] = s36 type:Tagged pos:84 <|@
0 0 v47 Goto B8 type:Tagged pos:84 <|@
end_HIR
begin_LIR
120 label () () () () Dead block replaced with B8 [hir:v45] <|@
122 gap () () () () [hir:v45] <|@
124 gap () () () () [hir:v47] <|@
126 goto B8 [hir:v47] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B7"
successors
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 128
last_lir_id 138
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v64 BlockEntry type:Tagged pos:119 <|@
0 1 s66 Constant 2 type:Smi pos:112 <|@
0 1 t71 Change s36 s to t pos:112 <|@
0 0 v67 Return t71 (pop s66 values) type:Tagged pos:112 <|@
end_HIR
begin_LIR
128 label () () () () [hir:v64] <|@
130 gap () ([eax|R];) () () [hir:v64] <|@
132 dummy-use [eax|R]= [eax|R] [hir:t71] <|@
134 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t71] <|@
136 return = [eax|R] NULL [constant:66] [hir:v67] <|@
138 gap () () () () [hir:v67] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B6"
successors "B10"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 140
last_lir_id 146
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v42 BlockEntry type:Tagged pos:84 <|@
0 0 v43 Simulate id=38 pop 1 / var[4] = t6 type:Tagged pos:84 <|@
0 0 v44 Goto B10 type:Tagged pos:84 <|@
end_HIR
begin_LIR
140 label () () () () Dead block replaced with B10 [hir:v42] <|@
142 gap () () () () [hir:v42] <|@
144 gap () () () () [hir:v44] <|@
146 goto B10 [hir:v44] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9"
successors
xhandlers
flags
dominator "B9"
loop_depth 0
first_lir_id 148
last_lir_id 198
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v48 BlockEntry type:Tagged pos:93 <|@
0 3 t49 Constant 0x2688784d <JS Function MakeRangeError (SharedFunctionInfo 0x2684a919)> pos:93 <|@
0 1 t51 Constant 0x28d0eba9 <JS Global Object> [map 0x3020f4b1] pos:93 <|@
0 0 t52 PushArguments t51 t4 type:Tagged pos:93 <|@
0 1 t55 LoadNamedField t49.[in-object]@24 type:Tagged pos:93 <|@
0 1 t57 Constant 0x4580ab41 <Code: BUILTIN> [map 0x30208399] pos:93 <|@
0 1 i72 Constant 2 type:Smi pos:93 <|@
0 1 i73 Constant 1 type:Smi pos:93 <|@
0 2 t58 CallWithDescriptor t57 t55 t49 i73 i72 #2 changes[*] type:Tagged pos:93 <|@
0 0 v59 Simulate id=50 push t58 type:Tagged pos:93 <|@
0 0 t60 PushArguments t58 type:Tagged pos:87 <|@
0 0 t61 CallRuntime #1 changes[*] type:Tagged pos:87 <|@
0 0 v62 Simulate id=48 pop 1 type:Tagged pos:87 <|@
0 0 v63 AbnormalExit goto () type:Tagged pos:87 <|@
end_HIR
begin_LIR
148 label () () () () [hir:v48] <|@
150 gap () () () () [hir:v48] <|@
152 push-argument = [constant:51] [hir:t52] <|@
154 gap () () () () [hir:t52] <|@
156 push-argument = [stack:-1] [hir:t52] <|@
158 gap () () () () [hir:t52] <|@
160 constant-t [edi|R]= [hir:t49] <|@
162 gap ((0) = [edi|R];) () () () [hir:t49] <|@
164 load-named-field [esi|R]= [edi|R] [hir:t55] <|@
166 gap ((0) = [esi|R];) () () () [hir:t55] <|@
168 constant-t [edi|R]= [hir:t49] <|@
170 gap ((0) = [edi|R];) () () () [hir:t49] <|@
172 constant-i [eax|R]= [hir:i73] <|@
174 gap ((0) = [eax|R];) () () () [hir:i73] <|@
176 constant-i [ebx|R]= [hir:i72] <|@
178 gap ((0) = [ebx|R];) ([esi|R]; [edi|R]; [eax|R]; [ebx|R];) () () [hir:i72] <|@
180 call-with-descriptor [eax|R][constant:57] [esi|R] [edi|R] [eax|R] [ebx|R] #1 / {[esi|R];[edi|R];[stack:1]} [hir:t58] <|@
182 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t58] <|@
184 lazy-bailout = [id=50|deopt_id=5|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6];[eax|R]] [hir:v59] <|@
186 gap () () () () [hir:v59] <|@
188 push-argument = [eax|R] [hir:t60] <|@
190 gap () ([esi|R] = [stack:1];) () () [hir:t60] <|@
192 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:1]} [hir:t61] <|@
194 gap ((0) = [eax|R];) () () () [hir:t61] <|@
196 lazy-bailout = [id=48|deopt_id=6|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:1];[constant:6]] [hir:v62] <|@
198 gap () () () () [hir:v62] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "Uint32Array"
method "Uint32Array:7"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 26
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 5 t7 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 5 t1 Context type:Tagged <|@
0 5 t2 Parameter 0 type:Tagged <|@
0 10 t3 Parameter 1 type:Tagged <|@
0 3 t4 Parameter 2 type:Tagged <|@
0 3 t5 Parameter 3 type:Tagged <|@
0 0 t6 ArgumentsObject t2 t3 t4 t5 type:Tagged <|@
0 0 v8 Simulate id=2 var[4] = t1, var[3] = t5, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v9 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:1] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-4]= [hir:t2] <|@
10 gap () ([stack:-4];) () () [hir:t2] <|@
12 parameter [stack:-3]= [hir:t3] <|@
14 gap () ([stack:-3];) () () [hir:t3] <|@
16 parameter [stack:-2]= [hir:t4] <|@
18 gap () ([stack:-2];) () () [hir:t4] <|@
20 parameter [stack:-1]= [hir:t5] <|@
22 gap () ([stack:-1];) () () [hir:t5] <|@
24 gap () () () () [hir:v9] <|@
26 goto B1 [hir:v9] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B4" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 28
last_lir_id 42
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v10 BlockEntry type:Tagged <|@
0 0 v11 Simulate id=3 type:Tagged <|@
0 0 v12 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 0 v13 IsConstructCallAndBranch goto (B4, B2) type:Tagged pos:12 <|@
end_HIR
begin_LIR
28 label () () () () [hir:v10] <|@
30 gap () ([esi|R] = [eax|R];) () () [hir:v10] <|@
32 stack-check = [esi|R] [id=3|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] {[esi|R];[stack:1]} [hir:v12] <|@
34 gap () () () () [hir:v12] <|@
36 lazy-bailout = [id=3|deopt_id=0|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v12] <|@
38 gap () () () () [hir:v12] <|@
40 gap () () () () [hir:v13] <|@
42 is-construct-call-and-branch = [hir:v13] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B3"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 44
last_lir_id 50
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v17 BlockEntry type:Tagged pos:12 <|@
0 0 v18 Simulate id=6 type:Tagged pos:12 <|@
0 0 v19 Goto B3 type:Tagged pos:12 <|@
end_HIR
begin_LIR
44 label () () () () Dead block replaced with B3 [hir:v17] <|@
46 gap () () () () [hir:v17] <|@
48 gap () () () () [hir:v19] <|@
50 goto B3 [hir:v19] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 52
last_lir_id 118
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v91 BlockEntry type:Tagged pos:318 <|@
0 1 t92 Constant 0x268855d1 <JS Function MakeTypeError (SharedFunctionInfo 0x26844a81)> pos:318 <|@
0 1 t93 Constant 0x26845c2d <String[24]: constructor_not_function> [map 0x30208131] pos:332 <|@
0 1 i121 Constant 16 type:Smi pos:359 <|@
0 11 t95 Allocate i121 (N) changes[NewSpacePromotion] [noOSE] pos:359 <|@
0 2 t96 Constant 0x26808099 <FixedArray[0]> [map 0x30208105] [noOSE] pos:359 <|@
0 0 v97 StoreNamedField t95.%elements@8 = t96 changes[ElementsPointer] type:Tagged [noOSE] pos:359 <|@
0 1 t98 Constant 0x3020c801 <Map(elements=2)> [map 0x302080ad] [noOSE] pos:359 <|@
0 0 v99 StoreNamedField t95.%map@0 = t98 changes[Maps] type:Tagged [noOSE] pos:359 <|@
0 0 v101 StoreNamedField t95.[in-object]@4 = t96 changes[InobjectFields] type:Tagged [noOSE] pos:359 <|@
0 1 s102 Constant 1 type:Smi [noOSE] pos:359 <|@
0 0 v103 StoreNamedField t95.%length@12 = s102 changes[ArrayLengths] type:Tagged [noOSE] pos:359 <|@
0 1 t104 Constant 0x2c8b4ac9 <FixedArray[1]> [map 0x302083f1] [new space] [noOSE] pos:359 <|@
0 0 v105 StoreNamedField t95.%elements@8 = t104 changes[ElementsPointer] type:Tagged [noOSE] pos:359 <|@
0 1 t108 Constant 0x28d0eba9 <JS Global Object> [map 0x3020f4b1] pos:318 <|@
0 0 t109 PushArguments t108 t93 t95 type:Tagged pos:318 <|@
0 2 t111 CallJSFunction t92 #3 changes[*] type:Tagged pos:318 <|@
0 0 v112 Simulate id=138 push t111 type:Tagged pos:318 <|@
0 0 t113 PushArguments t111 type:Tagged pos:312 <|@
0 0 t114 CallRuntime #1 changes[*] type:Tagged pos:312 <|@
0 0 v115 Simulate id=136 pop 1 type:Tagged pos:312 <|@
0 0 v116 AbnormalExit goto () type:Tagged pos:312 <|@
end_HIR
begin_LIR
52 label () () () () [hir:v91] <|@
54 gap () () () () [hir:v91] <|@
56 allocate [ecx|R]= [stack:1] [constant:121] {[stack:1];[ecx|R]} [hir:t95] <|@
58 gap ((0) = [ecx|R];) () () () [hir:t95] <|@
60 store-named-field [ecx|R].%elements@8 <- [constant:96] [hir:v97] <|@
62 gap () () () () [hir:v97] <|@
64 store-named-field [ecx|R].%map@0 <- [constant:98] [hir:v99] <|@
66 gap () () () () [hir:v99] <|@
68 store-named-field [ecx|R].[in-object]@4 <- [constant:96] [hir:v101] <|@
70 gap () () () () [hir:v101] <|@
72 store-named-field [ecx|R].%length@12 <- [constant:102] [hir:v103] <|@
74 gap () () () () [hir:v103] <|@
76 constant-t [eax|R]= [hir:t104] <|@
78 gap ((0) = [eax|R];) () () () [hir:t104] <|@
80 store-named-field [ecx|R].%elements@8 <- [eax|R] [hir:v105] <|@
82 gap () () () () [hir:v105] <|@
84 push-argument = [constant:108] [hir:t109] <|@
86 gap () () () () [hir:t109] <|@
88 push-argument = [constant:93] [hir:t109] <|@
90 gap () () () () [hir:t109] <|@
92 push-argument = [ecx|R] [hir:t109] <|@
94 gap () () () () [hir:t109] <|@
96 constant-t [edi|R]= [hir:t92] <|@
98 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t92] <|@
100 call-js-function [eax|R]= [edi|R]#2 / {[edi|R];[stack:1]} [hir:t111] <|@
102 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t111] <|@
104 lazy-bailout = [id=138|deopt_id=1|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1];[eax|R]] [hir:v112] <|@
106 gap () () () () [hir:v112] <|@
108 push-argument = [eax|R] [hir:t113] <|@
110 gap () ([esi|R] = [stack:1];) () () [hir:t113] <|@
112 call-runtime [eax|R]= [esi|R] {[esi|R];[stack:1]} [hir:t114] <|@
114 gap ((0) = [eax|R];) () () () [hir:t114] <|@
116 lazy-bailout = [id=136|deopt_id=2|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v115] <|@
118 gap () () () () [hir:v115] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B1"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 120
last_lir_id 126
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v14 BlockEntry type:Tagged pos:12 <|@
0 0 v15 Simulate id=5 type:Tagged pos:12 <|@
0 0 v16 Goto B5 type:Tagged pos:12 <|@
end_HIR
begin_LIR
120 label () () () () Dead block replaced with B5 [hir:v14] <|@
122 gap () () () () [hir:v14] <|@
124 gap () () () () [hir:v16] <|@
126 goto B5 [hir:v16] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4"
successors "B22" "B6"
xhandlers
flags
dominator "B4"
loop_depth 0
first_lir_id 128
last_lir_id 134
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v21 BlockEntry type:Tagged pos:50 <|@
0 0 v22 ClassOfTestAndBranch class_of_test(t3, "ArrayBuffer") type:Tagged pos:50 <|@
end_HIR
begin_LIR
128 label () () () () [hir:v21] <|@
130 gap () () () () [hir:v21] <|@
132 gap () () ([eax|R] = [stack:-3];) () [hir:v22] <|@
134 class-of-test-and-branch if class_of_test([eax|R], "0x26838b45 <String[11]: ArrayBuffer>") then B22 else B6 [hir:v22] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 136
last_lir_id 142
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v26 BlockEntry type:Tagged pos:50 <|@
0 0 v27 Simulate id=15 type:Tagged pos:50 <|@
0 0 v28 Goto B7 type:Tagged pos:50 <|@
end_HIR
begin_LIR
136 label () () () () Dead block replaced with B7 [hir:v26] <|@
138 gap () () () () [hir:v26] <|@
140 gap () () () () [hir:v28] <|@
142 goto B7 [hir:v28] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B19" "B8"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 144
last_lir_id 150
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v36 BlockEntry type:Tagged pos:136 <|@
0 0 v37 TypeofIsAndBranch t3 == number goto (B19, B8) type:Tagged pos:136 <|@
end_HIR
begin_LIR
144 label () () () () [hir:v36] <|@
146 gap () () () () [hir:v36] <|@
148 gap () ([ecx|R] = [eax|R];) () () [hir:v37] <|@
150 typeof-is-and-branch if typeof [ecx|R] == "number" then B19 else B8 [hir:v37] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B7"
successors "B9"
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 152
last_lir_id 158
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v41 BlockEntry type:Tagged pos:136 <|@
0 0 v42 Simulate id=57 type:Tagged pos:136 <|@
0 0 v43 Goto B9 type:Tagged pos:136 <|@
end_HIR
begin_LIR
152 label () () () () Dead block replaced with B9 [hir:v41] <|@
154 gap () () () () [hir:v41] <|@
156 gap () () () () [hir:v43] <|@
158 goto B9 [hir:v43] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors "B18" "B10"
xhandlers
flags
dominator "B8"
loop_depth 0
first_lir_id 160
last_lir_id 166
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v44 BlockEntry type:Tagged pos:160 <|@
0 0 v45 TypeofIsAndBranch t3 == string goto (B18, B10) type:Tagged pos:160 <|@
end_HIR
begin_LIR
160 label () () () () [hir:v44] <|@
162 gap () () () () [hir:v44] <|@
164 gap () ([ecx|R] = [eax|R];) () () [hir:v45] <|@
166 typeof-is-and-branch if typeof [ecx|R] == "string" then B18 else B10 [hir:v45] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9"
successors "B11"
xhandlers
flags
dominator "B9"
loop_depth 0
first_lir_id 168
last_lir_id 174
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v49 BlockEntry type:Tagged pos:160 <|@
0 0 v50 Simulate id=53 type:Tagged pos:160 <|@
0 0 v51 Goto B11 type:Tagged pos:160 <|@
end_HIR
begin_LIR
168 label () () () () Dead block replaced with B11 [hir:v49] <|@
170 gap () () () () [hir:v49] <|@
172 gap () () () () [hir:v51] <|@
174 goto B11 [hir:v51] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B17" "B12"
xhandlers
flags
dominator "B10"
loop_depth 0
first_lir_id 176
last_lir_id 182
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v52 BlockEntry type:Tagged pos:185 <|@
0 0 v53 TypeofIsAndBranch t3 == boolean goto (B17, B12) type:Tagged pos:185 <|@
end_HIR
begin_LIR
176 label () () () () [hir:v52] <|@
178 gap () () () () [hir:v52] <|@
180 gap () ([ecx|R] = [eax|R];) () () [hir:v53] <|@
182 typeof-is-and-branch if typeof [ecx|R] == "boolean" then B17 else B12 [hir:v53] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags
dominator "B11"
loop_depth 0
first_lir_id 184
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v57 BlockEntry type:Tagged pos:185 <|@
0 0 v58 Simulate id=49 type:Tagged pos:185 <|@
0 0 v59 Goto B13 type:Tagged pos:185 <|@
end_HIR
begin_LIR
184 label () () () () Dead block replaced with B13 [hir:v57] <|@
186 gap () () () () [hir:v57] <|@
188 gap () () () () [hir:v59] <|@
190 goto B13 [hir:v59] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12"
successors "B16" "B14"
xhandlers
flags
dominator "B12"
loop_depth 0
first_lir_id 192
last_lir_id 198
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v60 BlockEntry type:Tagged pos:202 <|@
0 0 v61 CompareObjectEqAndBranch t3 t7 goto (B16, B14) type:Tagged pos:202 <|@
end_HIR
begin_LIR
192 label () () () () [hir:v60] <|@
194 gap () () () () [hir:v60] <|@
196 gap () () () () [hir:v61] <|@
198 cmp-object-eq-and-branch = [eax|R] [constant:7] [hir:v61] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B15"
xhandlers
flags
dominator "B13"
loop_depth 0
first_lir_id 200
last_lir_id 206
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v65 BlockEntry type:Tagged pos:202 <|@
0 0 v66 Simulate id=46 type:Tagged pos:202 <|@
0 0 v67 Goto B15 type:Tagged pos:202 <|@
end_HIR
begin_LIR
200 label () () () () Dead block replaced with B15 [hir:v65] <|@
202 gap () () () () [hir:v65] <|@
204 gap () () () () [hir:v67] <|@
206 goto B15 [hir:v67] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B14"
successors "B21"
xhandlers
flags
dominator "B14"
loop_depth 0
first_lir_id 208
last_lir_id 238
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v75 BlockEntry type:Tagged pos:262 <|@
0 1 t76 Constant 0x2687b059 <JS Function Uint32ArrayConstructByArrayLike (SharedFunctionInfo 0x2682f621)> pos:262 <|@
0 0 t78 PushArguments t7 t2 t3 type:Tagged pos:262 <|@
0 0 t80 CallJSFunction t76 #3 changes[*] type:Tagged pos:262 <|@
0 0 v81 Simulate id=123 type:Tagged pos:262 <|@
0 0 v84 Simulate id=44 type:Tagged pos:123 <|@
0 0 v85 Goto B21 type:Tagged pos:123 <|@
end_HIR
begin_LIR
208 label () () () () [hir:v75] <|@
210 gap () () () () [hir:v75] <|@
212 push-argument = [constant:7] [hir:t78] <|@
214 gap () () () () [hir:t78] <|@
216 push-argument = [stack:-4] [hir:t78] <|@
218 gap () () () () [hir:t78] <|@
220 push-argument = [eax|R] [hir:t78] <|@
222 gap () () () () [hir:t78] <|@
224 constant-t [edi|R]= [hir:t76] <|@
226 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t76] <|@
228 call-js-function [eax|R]= [edi|R]#2 / {[edi|R];[stack:1]} [hir:t80] <|@
230 gap ((0) = [eax|R];) () () () [hir:t80] <|@
232 lazy-bailout = [id=123|deopt_id=3|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v81] <|@
234 gap () () () () [hir:v81] <|@
236 gap () () () () [hir:v85] <|@
238 goto B21 [hir:v85] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B13"
successors "B20"
xhandlers
flags
dominator "B13"
loop_depth 0
first_lir_id 240
last_lir_id 246
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v62 BlockEntry type:Tagged pos:202 <|@
0 0 v63 Simulate id=45 type:Tagged pos:202 <|@
0 0 v64 Goto B20 type:Tagged pos:202 <|@
end_HIR
begin_LIR
240 label () () () () Dead block replaced with B20 [hir:v62] <|@
242 gap () () () () [hir:v62] <|@
244 gap () () () () [hir:v64] <|@
246 goto B20 [hir:v64] <|@
end_LIR
end_block
begin_block
name "B17"
from_bci -1
to_bci -1
predecessors "B11"
successors "B20"
xhandlers
flags
dominator "B11"
loop_depth 0
first_lir_id 248
last_lir_id 254
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v54 BlockEntry type:Tagged pos:185 <|@
0 0 v55 Simulate id=45 type:Tagged pos:185 <|@
0 0 v56 Goto B20 type:Tagged pos:185 <|@
end_HIR
begin_LIR
248 label () () () () Dead block replaced with B20 [hir:v54] <|@
250 gap () () () () [hir:v54] <|@
252 gap () () () () [hir:v56] <|@
254 goto B20 [hir:v56] <|@
end_LIR
end_block
begin_block
name "B18"
from_bci -1
to_bci -1
predecessors "B9"
successors "B20"
xhandlers
flags
dominator "B9"
loop_depth 0
first_lir_id 256
last_lir_id 262
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v46 BlockEntry type:Tagged pos:160 <|@
0 0 v47 Simulate id=45 type:Tagged pos:160 <|@
0 0 v48 Goto B20 type:Tagged pos:160 <|@
end_HIR
begin_LIR
256 label () () () () Dead block replaced with B20 [hir:v46] <|@
258 gap () () () () [hir:v46] <|@
260 gap () () () () [hir:v48] <|@
262 goto B20 [hir:v48] <|@
end_LIR
end_block
begin_block
name "B19"
from_bci -1
to_bci -1
predecessors "B7"
successors "B20"
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 264
last_lir_id 270
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v38 BlockEntry type:Tagged pos:136 <|@
0 0 v39 Simulate id=45 type:Tagged pos:136 <|@
0 0 v40 Goto B20 type:Tagged pos:136 <|@
end_HIR
begin_LIR
264 label () () () () Dead block replaced with B20 [hir:v38] <|@
266 gap () () () () [hir:v38] <|@
268 gap () () () () [hir:v40] <|@
270 goto B20 [hir:v40] <|@
end_LIR
end_block
begin_block
name "B20"
from_bci -1
to_bci -1
predecessors "B19" "B18" "B17" "B16"
successors "B21"
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 272
last_lir_id 302
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v68 BlockEntry type:Tagged pos:217 <|@
0 1 t69 Constant 0x26888251 <JS Function Uint32ArrayConstructByLength (SharedFunctionInfo 0x2684c4f5)> pos:217 <|@
0 0 t71 PushArguments t7 t2 t3 type:Tagged pos:217 <|@
0 0 t73 CallJSFunction t69 #3 changes[*] type:Tagged pos:217 <|@
0 0 v74 Simulate id=110 type:Tagged pos:217 <|@
0 0 v82 Simulate id=44 type:Tagged pos:123 <|@
0 0 v83 Goto B21 type:Tagged pos:123 <|@
end_HIR
begin_LIR
272 label () () () () [hir:v68] <|@
274 gap () () () () [hir:v68] <|@
276 push-argument = [constant:7] [hir:t71] <|@
278 gap () () () () [hir:t71] <|@
280 push-argument = [stack:-4] [hir:t71] <|@
282 gap () () () () [hir:t71] <|@
284 push-argument = [stack:-3] [hir:t71] <|@
286 gap () () () () [hir:t71] <|@
288 constant-t [edi|R]= [hir:t69] <|@
290 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t69] <|@
292 call-js-function [eax|R]= [edi|R]#2 / {[edi|R];[stack:1]} [hir:t73] <|@
294 gap ((0) = [eax|R];) () () () [hir:t73] <|@
296 lazy-bailout = [id=110|deopt_id=4|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v74] <|@
298 gap () () () () [hir:v74] <|@
300 gap () () () () [hir:v83] <|@
302 goto B21 [hir:v83] <|@
end_LIR
end_block
begin_block
name "B21"
from_bci -1
to_bci -1
predecessors "B20" "B15"
successors "B24"
xhandlers
flags
dominator "B7"
loop_depth 0
first_lir_id 304
last_lir_id 310
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v88 BlockEntry type:Tagged pos:34 <|@
0 0 v89 Simulate id=13 type:Tagged pos:34 <|@
0 0 v90 Goto B24 type:Tagged pos:34 <|@
end_HIR
begin_LIR
304 label () () () () Dead block replaced with B24 [hir:v88] <|@
306 gap () () () () [hir:v88] <|@
308 gap () () () () [hir:v90] <|@
310 goto B24 [hir:v90] <|@
end_LIR
end_block
begin_block
name "B22"
from_bci -1
to_bci -1
predecessors "B5"
successors "B23"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 312
last_lir_id 318
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v23 BlockEntry type:Tagged pos:50 <|@
0 0 v24 Simulate id=14 type:Tagged pos:50 <|@
0 0 v25 Goto B23 type:Tagged pos:50 <|@
end_HIR
begin_LIR
312 label () () () () Dead block replaced with B23 [hir:v23] <|@
314 gap () () () () [hir:v23] <|@
316 gap () () () () [hir:v25] <|@
318 goto B23 [hir:v25] <|@
end_LIR
end_block
begin_block
name "B23"
from_bci -1
to_bci -1
predecessors "B22"
successors "B24"
xhandlers
flags
dominator "B22"
loop_depth 0
first_lir_id 320
last_lir_id 358
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v29 BlockEntry type:Tagged pos:70 <|@
0 1 t30 Constant 0x2687b321 <JS Function Uint32ArrayConstructByArrayBuffer (SharedFunctionInfo 0x2682ff2d)> pos:70 <|@
0 0 t32 PushArguments t7 t2 t3 t4 t5 type:Tagged pos:70 <|@
0 0 t34 CallJSFunction t30 #5 changes[*] type:Tagged pos:70 <|@
0 0 v35 Simulate id=30 type:Tagged pos:70 <|@
0 0 v86 Simulate id=13 type:Tagged pos:34 <|@
0 0 v87 Goto B24 type:Tagged pos:34 <|@
end_HIR
begin_LIR
320 label () () () () [hir:v29] <|@
322 gap () () () () [hir:v29] <|@
324 push-argument = [constant:7] [hir:t32] <|@
326 gap () () () () [hir:t32] <|@
328 push-argument = [stack:-4] [hir:t32] <|@
330 gap () () () () [hir:t32] <|@
332 push-argument = [stack:-3] [hir:t32] <|@
334 gap () () () () [hir:t32] <|@
336 push-argument = [stack:-2] [hir:t32] <|@
338 gap () () () () [hir:t32] <|@
340 push-argument = [stack:-1] [hir:t32] <|@
342 gap () () () () [hir:t32] <|@
344 constant-t [edi|R]= [hir:t30] <|@
346 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t30] <|@
348 call-js-function [eax|R]= [edi|R]#4 / {[edi|R];[stack:1]} [hir:t34] <|@
350 gap ((0) = [eax|R];) () () () [hir:t34] <|@
352 lazy-bailout = [id=30|deopt_id=5|parameters=4|arguments_stack_height=0|[stack:-4];[stack:-3];[stack:-2];[stack:-1];[stack:1]] [hir:v35] <|@
354 gap () () () () [hir:v35] <|@
356 gap () () () () [hir:v87] <|@
358 goto B24 [hir:v87] <|@
end_LIR
end_block
begin_block
name "B24"
from_bci -1
to_bci -1
predecessors "B23" "B21"
successors
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 360
last_lir_id 370
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v117 BlockEntry type:Tagged <|@
0 1 s118 Constant 3 type:Smi <|@
0 0 v119 Return t7 (pop s118 values) type:Tagged <|@
end_HIR
begin_LIR
360 label () () () () [hir:v117] <|@
362 gap () () () () [hir:v117] <|@
364 constant-t [eax|R]= [hir:t7] <|@
366 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t7] <|@
368 return = [eax|R] NULL [constant:118] [hir:v119] <|@
370 gap () () () () [hir:v119] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "encryptToBuffer.decryptToBuffer"
method "encryptToBuffer.decryptToBuffer:8"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 22
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 s95 Constant 1 type:Smi <|@
0 1 t20 Constant 0x26808105 <true> [map 0x30208265] <|@
0 3 t6 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 5 t1 Context type:Tagged <|@
0 6 t2 Parameter 0 type:Tagged <|@
0 3 t3 Parameter 1 type:Tagged <|@
0 4 t4 Parameter 2 type:Tagged <|@
0 0 t5 ArgumentsObject t2 t3 t4 type:Tagged <|@
0 0 v7 Simulate id=2 var[4] = t6, var[3] = t1, var[2] = t4, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v8 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:2] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-3]= [hir:t2] <|@
10 gap () ([stack:-3];) () () [hir:t2] <|@
12 parameter [stack:-2]= [hir:t3] <|@
14 gap () ([stack:-2];) () () [hir:t3] <|@
16 parameter [stack:-1]= [hir:t4] <|@
18 gap () ([stack:-1];) () () [hir:t4] <|@
20 gap () () () () [hir:v8] <|@
22 goto B1 [hir:v8] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B3" "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 24
last_lir_id 62
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v9 BlockEntry type:Tagged <|@
0 0 v10 Simulate id=3 type:Tagged <|@
0 0 v11 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 2 t13 LoadNamedGeneric t2.keystreamToBuffer changes[*] type:Tagged pos:35 <|@
0 0 v14 Simulate id=12 push t2, push t13 type:Tagged pos:35 <|@
0 0 t15 PushArguments t2 t4 type:Tagged pos:35 <|@
0 0 t16 CallFunction t1 t13 changes[*] type:Tagged pos:35 <|@
0 0 v17 Simulate id=6 pop 2 type:Tagged pos:35 <|@
0 2 s18 Constant 0 type:Smi pos:83 <|@
0 0 v21 Branch t20 goto (B3, B2) (None) type:Tagged pos:70 <|@
end_HIR
begin_LIR
24 label () () () () [hir:v9] <|@
26 gap () ([esi|R] = [eax|R];) () () [hir:v9] <|@
28 stack-check = [esi|R] [id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:2];[constant:6]] {[esi|R];[stack:2]} [hir:v11] <|@
30 gap () () () () [hir:v11] <|@
32 lazy-bailout = [id=3|deopt_id=0|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:2];[constant:6]] [hir:v11] <|@
34 gap () ([esi|R] = [stack:2]; [edx|R] = [stack:-3];) () () [hir:v11] <|@
36 load-named-generic [eax|R]= [esi|R] [edx|R] {[esi|R];[edx|R];[stack:2]} [hir:t13] <|@
38 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t13] <|@
40 lazy-bailout = [id=12|deopt_id=1|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:2];[constant:6];[stack:-3];[eax|R]] [hir:v14] <|@
42 gap () () () () [hir:v14] <|@
44 push-argument = [stack:-3] [hir:t15] <|@
46 gap () () () () [hir:t15] <|@
48 push-argument = [stack:-1] [hir:t15] <|@
50 gap () ([esi|R] = [stack:2]; [edi|R] = [eax|R];) () () [hir:t15] <|@
52 call-function [eax|R][esi|R] [edi|R] {[esi|R];[edi|R];[stack:2]} [hir:t16] <|@
54 gap ((0) = [eax|R];) () () () [hir:t16] <|@
56 lazy-bailout = [id=6|deopt_id=2|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:2];[constant:6]] [hir:v17] <|@
58 gap () () () () [hir:v17] <|@
60 gap () () () () [hir:v21] <|@
62 goto B3 [hir:v21] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags "osr"
dominator "B1"
loop_depth 0
first_lir_id 64
last_lir_id 102
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v25 BlockEntry type:Tagged pos:70 <|@
0 2 t26 UnknownOSRValue parameter @ 0 type:Tagged pos:70 <|@
0 2 t27 UnknownOSRValue parameter @ 1 type:Tagged pos:70 <|@
0 2 t28 UnknownOSRValue parameter @ 2 type:Tagged pos:70 <|@
0 1 t29 UnknownOSRValue special @ 3 type:Tagged pos:70 <|@
0 2 t30 UnknownOSRValue local @ 4 type:Tagged pos:70 <|@
0 0 v31 Simulate id=23 var[4] = t30, var[3] = t29, var[2] = t28, var[1] = t27, var[0] = t26 type:Tagged pos:70 <|@
0 0 v32 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:70 <|@
0 2 t33 Context type:Tagged pos:70 <|@
0 0 v34 Simulate id=21 var[3] = t33 type:Tagged pos:70 <|@
0 1 s104 Change t30 t to s type:TaggedNumber pos:70 <|@
0 0 v35 Goto B4 type:Tagged pos:70 <|@
end_HIR
begin_LIR
64 label () () () () [hir:v25] <|@
66 gap () () () () [hir:v25] <|@
68 unknown-osr-value [stack:-3]= [hir:t26] <|@
70 gap () ([stack:-3];) () () [hir:t26] <|@
72 unknown-osr-value [stack:-2]= [hir:t27] <|@
74 gap () ([stack:-2];) () () [hir:t27] <|@
76 unknown-osr-value [stack:-1]= [hir:t28] <|@
78 gap () ([stack:-1];) () () [hir:t28] <|@
80 unknown-osr-value [stack:-1]= [hir:t29] <|@
82 gap () ([stack:-1];) () () [hir:t29] <|@
84 unknown-osr-value [stack:1]= [hir:t30] <|@
86 gap () ([stack:1];) () () [hir:t30] <|@
88 osr-entry = [id=23|deopt_id=3|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[stack:-1];[stack:1]] [hir:v32] <|@
90 gap () () () () [hir:v32] <|@
92 context [eax|R]= [hir:t33] <|@
94 gap ((0) = [eax|R];) ([ecx|R] = [stack:1];) () () [hir:t33] <|@
96 check-smi [ecx|R]= [ecx|R] [id=21|deopt_id=4|parameters=3|arguments_stack_height=0|[stack:-3];[stack:-2];[stack:-1];[eax|R];[stack:1]] [hir:s104] <|@
98 gap ((0) = [ecx|R];) () () () [hir:s104] <|@
100 gap () ([esi|R] = [stack:-3]; [ebx|R] = [stack:-2]; [edx|R] = [stack:-1]; [ecx|R] = [eax|R]; [eax|R] = [ecx|R];) () () [hir:v35] <|@
102 goto B4 [hir:v35] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B1"
successors "B4"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 104
last_lir_id 110
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v22 BlockEntry type:Tagged pos:70 <|@
0 0 v23 Simulate id=21 var[4] = s18 type:Tagged pos:70 <|@
0 0 v24 Goto B4 type:Tagged pos:70 <|@
end_HIR
begin_LIR
104 label () () () () [hir:v22] <|@
106 gap () () () () [hir:v22] <|@
108 gap () ([esi|R] = [stack:-3]; [ebx|R] = [stack:-2]; [edx|R] = [stack:-1]; [ecx|R] = [stack:2]; [eax|R] = [constant:18];) () () [hir:v24] <|@
110 goto B4 [hir:v24] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3" "B2"
successors "B5"
xhandlers
flags
dominator "B1"
loop_depth 0
first_lir_id 112
last_lir_id 174
begin_states
begin_locals
size 5
method "None"
0 t36 [ t2 t26 uses:0_0s_0i_0d_0t type:Tagged]
1 t37 [ t3 t27 uses:6_0s_0i_0d_0t type:Tagged]
2 t38 [ t4 t28 uses:8_0s_0i_0d_0t type:Tagged]
3 t39 [ t1 t33 uses:4_0s_0i_0d_2t type:Tagged]
4 s40 [ s18 s104 uses:1_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v46 BlockEntry type:Tagged pos:70 <|@
0 0 v47 Simulate id=21 type:Tagged pos:70 <|@
0 0 t51 CheckHeapObject t38 pos:96 <|@
0 0 t52 CheckMaps t38 [0x3020f509] pos:96 <|@
0 1 t53 LoadNamedField t38.[in-object]@32 type:Tagged pos:96 <|@
0 1 s105 Change t53 t to s type:TaggedNumber pos:96 <|@
0 4 t67 LoadNamedField t38.%elements@8 type:Tagged pos:120 <|@
0 1 s68 LoadNamedField t67.%length@4 type:Smi pos:120 <|@
0 2 x69 LoadNamedField t67.%elements@8 type:Tagged pos:120 <|@
0 0 t73 CheckHeapObject t37 pos:132 <|@
0 0 t74 CheckMaps t37 [0x3020f509] pos:132 <|@
0 4 t75 LoadNamedField t37.%elements@8 type:Tagged pos:132 <|@
0 1 s76 LoadNamedField t75.%length@4 type:Smi pos:132 <|@
0 1 x77 LoadNamedField t75.%elements@8 type:Tagged pos:132 <|@
0 2 t84 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:120 <|@
0 0 t85 CheckMaps t84 [0x3020dabd](stability-check) pos:120 <|@
0 2 t86 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:120 <|@
0 0 t87 CheckMaps t86 [0x3020c465](stability-check) pos:120 <|@
0 0 v48 Goto B5 type:Tagged pos:70 <|@
end_HIR
begin_LIR
112 label () ([stack:5] = [esi|R]; [stack:6] = [ebx|R]; [stack:4] = [edx|R]; [stack:3] = [ecx|R]; (0) = [eax|R];) () () [hir:v46] <|@
114 gap () () () () [hir:v46] <|@
116 check-non-smi = [edx|R] [id=21|deopt_id=5|parameters=3|arguments_stack_height=0|[esi|R];[ebx|R];[edx|R];[ecx|R];[eax|R]] [hir:t51] <|@
118 gap () () () () [hir:t51] <|@
120 check-maps = [edx|R] [id=21|deopt_id=6|parameters=3|arguments_stack_height=0|[esi|R];[ebx|R];[edx|R];[ecx|R];[eax|R]] [hir:t52] <|@
122 gap () () () () [hir:t52] <|@
124 load-named-field [edi|R]= [edx|R] [hir:t53] <|@
126 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t53] <|@
128 check-smi [edi|R]= [edi|R] [id=21|deopt_id=7|parameters=3|arguments_stack_height=0|[esi|R];[ebx|R];[edx|R];[ecx|R];[eax|R]] [hir:s105] <|@
130 gap ([stack:8] = [edi|R];) () () () [hir:s105] <|@
132 load-named-field [ecx|R]= [edx|R] [hir:t67] <|@
134 gap ((0) = [ecx|R];) () () () [hir:t67] <|@
136 load-named-field [edx|R]= [ecx|R] [hir:s68] <|@
138 gap ([stack:7] = [edx|R];) () () () [hir:s68] <|@
140 load-named-field [ecx|R]= [ecx|R] [hir:x69] <|@
142 gap ((0) = [ecx|R];) () () () [hir:x69] <|@
144 check-non-smi = [ebx|R] [id=21|deopt_id=8|parameters=3|arguments_stack_height=0|[esi|R];[ebx|R];[stack:4];[stack:3];[eax|R]] [hir:t73] <|@
146 gap () () () () [hir:t73] <|@
148 check-maps = [ebx|R] [id=21|deopt_id=9|parameters=3|arguments_stack_height=0|[esi|R];[ebx|R];[stack:4];[stack:3];[eax|R]] [hir:t74] <|@
150 gap () () () () [hir:t74] <|@
152 load-named-field [esi|R]= [ebx|R] [hir:t75] <|@
154 gap ((0) = [esi|R];) () () () [hir:t75] <|@
156 load-named-field [ebx|R]= [esi|R] [hir:s76] <|@
158 gap ([stack:9] = [ebx|R];) () () () [hir:s76] <|@
160 load-named-field [esi|R]= [esi|R] [hir:x77] <|@
162 gap ((0) = [esi|R];) () () () [hir:x77] <|@
164 check-maps = NULL [hir:t85] <|@
166 gap () () () () [hir:t85] <|@
168 check-maps = NULL [hir:t87] <|@
170 gap () () () () [hir:t87] <|@
172 gap () ([eax|R];) () () [hir:v48] <|@
174 goto B5 [hir:v48] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B4" "B7"
successors "B6" "B8"
xhandlers
flags "dom-loop-succ"
dominator "B4"
loop_depth 1
first_lir_id 176
last_lir_id 182
begin_states
begin_locals
size 1
method "None"
4 s45 [ s40 s96 uses:7_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v49 BlockEntry type:Tagged pos:86 <|@
0 0 s54 CompareNumericAndBranch LT s45 s105 goto (B6, B8) type:Tagged pos:88 <|@
end_HIR
begin_LIR
176 label () ((0) = [eax|R];) () () [hir:v49] <|@
178 gap () () () () [hir:v49] <|@
180 gap () () () () [hir:s54] <|@
182 compare-numeric-and-branch if [eax|R] < [edi|R] then B6 else B8 [hir:s54] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B7"
xhandlers
flags "dom-loop-succ"
dominator "B5"
loop_depth 1
first_lir_id 184
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v55 BlockEntry type:Tagged pos:88 <|@
0 0 v56 Simulate id=25 type:Tagged pos:88 <|@
0 0 v57 Goto B7 type:Tagged pos:88 <|@
end_HIR
begin_LIR
184 label () () () () Dead block replaced with B7 [hir:v55] <|@
186 gap () () () () [hir:v55] <|@
188 gap () () () () [hir:v57] <|@
190 goto B7 [hir:v57] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B5"
xhandlers
flags "dom-loop-succ"
dominator "B6"
loop_depth 1
first_lir_id 192
last_lir_id 230
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v61 BlockEntry type:Tagged pos:70 <|@
0 0 v62 Simulate id=25 type:Tagged pos:70 <|@
0 0 v63 StackCheck t39 changes[NewSpacePromotion] type:Tagged pos:70 <|@
0 0 s70 BoundsCheck s45 s68 type:Tagged pos:120 <|@
0 1 i71 LoadKeyed x69.EXTERNAL_UINT8_ELEMENTS[s45] t38 type:Tagged pos:120 <|@
0 0 s78 BoundsCheck s45 s76 type:Tagged pos:132 <|@
0 1 i79 LoadKeyed x77.EXTERNAL_UINT8_ELEMENTS[s45] t37 type:Tagged pos:132 <|@
0 1 i80 Bitwise BIT_XOR i71 i79 type:TaggedNumber pos:120 <|@
0 0 v92 StoreKeyed x69.EXTERNAL_UINT8_ELEMENTS[s45] = i80 changes[ExternalMemory] type:Tagged pos:120 <|@
0 0 v93 Simulate id=60 type:Tagged pos:120 <|@
0 2 s96 Add s45 s95 type:TaggedNumber pos:106 <|@
0 0 v98 Simulate id=21 var[4] = s96 type:Tagged pos:70 <|@
0 0 v99 Goto B5 type:Tagged pos:70 <|@
end_HIR
begin_LIR
192 label () () () () [hir:v61] <|@
194 gap () () () () [hir:v61] <|@
196 stack-check = [stack:3] [id=25|deopt_id=10|parameters=3|arguments_stack_height=0|[stack:5];[stack:6];[stack:4];[stack:3];[eax|R]] {[stack:5];[stack:6];[stack:4];[stack:3]} [hir:v63] <|@
198 gap () () () () [hir:v63] <|@
200 bounds-check = [eax|R] [edx|R] [id=25|deopt_id=11|parameters=3|arguments_stack_height=0|[stack:5];[stack:6];[stack:4];[stack:3];[eax|R]] [hir:s70] <|@
202 gap () ([edx|R] = [eax|R];) () () [hir:s70] <|@
204 load-keyed [edi|R][ecx|R][[edx|R]] [hir:i71] <|@
206 gap ((0) = [edi|R];) () () () [hir:i71] <|@
208 bounds-check = [eax|R] [ebx|R] [id=25|deopt_id=12|parameters=3|arguments_stack_height=0|[stack:5];[stack:6];[stack:4];[stack:3];[eax|R]] [hir:s78] <|@
210 gap () ([edx|R] = [eax|R];) () () [hir:s78] <|@
212 load-keyed [ebx|R][esi|R][[edx|R]] [hir:i79] <|@
214 gap ((0) = [ebx|R];) ([ebx|R];) () () [hir:i79] <|@
216 bit-i [ebx|R]= [ebx|R] [edi|R] [hir:i80] <|@
218 gap ((0) = [ebx|R];) ([edx|R] = [eax|R]; [eax|R] = [ebx|R]; [ebx|R] = [eax|R];) () () [hir:i80] <|@
220 store-keyed [ecx|R][[edx|R]] <- [eax|R] [hir:v92] <|@
222 gap () () () () [hir:v92] <|@
224 add-i [eax|R]= [ebx|R] [constant:95] [hir:s96] <|@
226 gap ((0) = [eax|R];) () () () [hir:s96] <|@
228 gap () ([eax|R]; [edx|R] = [stack:7]; [ebx|R] = [stack:9]; [edi|R] = [stack:8];) () () [hir:v99] <|@
230 goto B5 [hir:v99] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B5"
successors "B9"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 232
last_lir_id 238
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v58 BlockEntry type:Tagged pos:88 <|@
0 0 v59 Simulate id=22 var[4] = t6 type:Tagged pos:88 <|@
0 0 v60 Goto B9 type:Tagged pos:88 <|@
end_HIR
begin_LIR
232 label () () () () Dead block replaced with B9 [hir:v58] <|@
234 gap () () () () [hir:v58] <|@
236 gap () () () () [hir:v60] <|@
238 goto B9 [hir:v60] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8"
successors
xhandlers
flags
dominator "B8"
loop_depth 0
first_lir_id 240
last_lir_id 250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v100 BlockEntry type:Tagged <|@
0 1 s101 Constant 2 type:Smi <|@
0 0 v102 Return t6 (pop s101 values) type:Tagged <|@
end_HIR
begin_LIR
240 label () () () () [hir:v100] <|@
242 gap () () () () [hir:v100] <|@
244 constant-t [eax|R]= [hir:t6] <|@
246 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t6] <|@
248 return = [eax|R] NULL [constant:101] [hir:v102] <|@
250 gap () () () () [hir:v102] <|@
end_LIR
end_block
end_cfg
begin_compilation
name "keystreamToBuffer"
method "keystreamToBuffer:9"
date 1428664224000
end_compilation
begin_cfg
name "Z_Code generation"
begin_block
name "B0"
from_bci -1
to_bci -1
predecessors
successors "B1"
xhandlers
flags
loop_depth 0
first_lir_id 0
last_lir_id 18
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v0 BlockEntry type:Tagged <|@
0 1 t107 Constant 0x26808105 <true> [map 0x30208265] <|@
0 5 s79 Constant 1 type:Smi <|@
0 21 t5 Constant 0x268080b1 <undefined> [map 0x302081e1] <|@
0 13 t1 Context type:Tagged <|@
0 3 t2 Parameter 0 type:Tagged <|@
0 12 t3 Parameter 1 type:Tagged <|@
0 0 t4 ArgumentsObject t2 t3 type:Tagged <|@
0 0 v6 Simulate id=2 var[8] = t5, var[7] = t5, var[6] = t5, var[5] = t5, var[4] = t5, var[3] = t5, var[2] = t1, var[1] = t3, var[0] = t2 type:Tagged <|@
0 0 v7 Goto B1 type:Tagged <|@
end_HIR
begin_LIR
0 label () () () () [hir:v0] <|@
2 gap () () () () [hir:v0] <|@
4 context [eax|R]= [hir:t1] <|@
6 gap ([stack:7] = [eax|R];) () () () [hir:t1] <|@
8 parameter [stack:-2]= [hir:t2] <|@
10 gap () ([stack:-2];) () () [hir:t2] <|@
12 parameter [stack:-1]= [hir:t3] <|@
14 gap () ([stack:-1];) () () [hir:t3] <|@
16 gap () () () () [hir:v7] <|@
18 goto B1 [hir:v7] <|@
end_LIR
end_block
begin_block
name "B1"
from_bci -1
to_bci -1
predecessors "B0"
successors "B2"
xhandlers
flags
dominator "B0"
loop_depth 0
first_lir_id 20
last_lir_id 190
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v8 BlockEntry type:Tagged <|@
0 0 v9 Simulate id=3 type:Tagged <|@
0 0 v10 StackCheck t1 changes[NewSpacePromotion] type:Tagged <|@
0 6 t11 LoadContextSlot t1[7] type:Tagged pos:36 <|@
0 2 s12 Constant 12 type:Smi pos:42 <|@
0 0 t13 CheckHeapObject t11 pos:41 <|@
0 0 t14 CheckMaps t11 [0x3020dca1] pos:41 <|@
0 3 t15 LoadNamedField t11.%elements@8 type:Tagged pos:41 <|@
0 1 s16 LoadNamedField t15.%length@4 type:Smi pos:41 <|@
0 0 s17 BoundsCheck s12 s16 type:Tagged pos:41 <|@
0 0 i18 LoadKeyed t15[s12] t11 check_hole type:Tagged pos:41 <|@
0 1 t20 LoadContextSlot t1[6] type:Tagged pos:80 <|@
0 2 i327 Change t20 t to i -0? allow-undefined-as-nan type:TaggedNumber pos:80 <|@
0 3 i328 Constant 64 type:Smi pos:91 <|@
0 3 i22 Mod i327 i328 type:TaggedNumber pos:91 <|@
0 0 t27 CheckHeapObject t3 pos:141 <|@
0 0 t28 CheckMaps t3 [0x3020f509] pos:141 <|@
0 1 t29 LoadNamedField t3.[in-object]@32 type:Tagged pos:141 <|@
0 1 i330 Change t29 t to i allow-undefined-as-nan type:TaggedNumber pos:141 <|@
0 1 i30 Add i327 i330 ! type:TaggedNumber pos:133 <|@
0 2 i33 Mod i30 i328 -0? type:TaggedNumber pos:150 <|@
0 2 t36 Constant 0x26884359 <JS Function Uint8Array (SharedFunctionInfo 0x26842fdd)> [map 0x3020cd29] pos:187 <|@
0 1 t333 Constant 64 pos:183 <|@
0 0 t38 PushArguments t36 t333 type:Tagged pos:183 <|@
0 10 t39 CallNew t1 t36 #2 changes[*] type:Tagged pos:183 <|@
0 0 v40 Simulate id=96 var[3] = t5, var[4] = i22, var[5] = i33, push t39 type:Tagged pos:183 <|@
0 2 s42 Constant 0 type:Smi pos:236 <|@
0 1 t44 LoadContextSlot t1[11] type:Tagged pos:278 <|@
0 0 t46 CheckValue t44 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> type:Tagged pos:278 <|@
0 0 t47 PushArguments t5 t39 type:Tagged pos:278 <|@
0 1 t48 Constant 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> [map 0x3020df61] pos:278 <|@
0 0 t49 CallJSFunction t48 #2 changes[*] type:Tagged pos:278 <|@
0 0 v50 Simulate id=116 pop 1 / var[7] = s42, var[6] = t39 type:Tagged pos:278 <|@
0 0 v62 Simulate id=124 var[4] = t5, var[8] = i22 type:Tagged pos:301 <|@
0 0 t84 CheckHeapObject t39 pos:363 <|@
0 0 t85 CheckMaps t39 [0x3020da91] pos:363 <|@
0 3 t86 LoadNamedField t39.%elements@8 type:Tagged pos:363 <|@
0 1 s87 LoadNamedField t86.%length@4 type:Smi pos:363 <|@
0 1 i335 Change s87 s to i type:Smi pos:363 <|@
0 0 t91 CheckMaps t3 [0x3020f509](stability-check) pos:358 <|@
0 2 t92 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:358 <|@
0 0 t93 CheckMaps t92 [0x3020dabd](stability-check) pos:358 <|@
0 2 t94 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:358 <|@
0 0 t95 CheckMaps t94 [0x3020c465](stability-check) pos:358 <|@
0 4 t96 LoadNamedField t3.%elements@8 type:Tagged pos:358 <|@
0 1 s97 LoadNamedField t96.%length@4 type:Smi pos:358 <|@
0 1 x98 LoadNamedField t96.%elements@8 type:Tagged pos:358 <|@
0 1 i326 Constant 1 type:Smi pos:334 <|@
0 0 v63 Goto B2 type:Tagged pos:301 <|@
end_HIR
begin_LIR
20 label () () () () [hir:v8] <|@
22 gap () ([esi|R] = [eax|R];) () () [hir:v8] <|@
24 stack-check = [esi|R] [id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] {[esi|R];[stack:7]} [hir:v10] <|@
26 gap () () () () [hir:v10] <|@
28 lazy-bailout = [id=3|deopt_id=0|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:v10] <|@
30 gap () () ([eax|R] = [stack:7];) () [hir:v10] <|@
32 load-context-slot [ecx|R][eax|R][7] [hir:t11] <|@
34 gap ((0) = [ecx|R];) () () () [hir:t11] <|@
36 check-non-smi = [ecx|R] [id=3|deopt_id=1|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t13] <|@
38 gap () () () () [hir:t13] <|@
40 check-maps = [ecx|R] [id=3|deopt_id=2|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t14] <|@
42 gap () () () () [hir:t14] <|@
44 load-named-field [ecx|R]= [ecx|R] [hir:t15] <|@
46 gap ((0) = [ecx|R];) () () () [hir:t15] <|@
48 load-named-field [edx|R]= [ecx|R] [hir:s16] <|@
50 gap ((0) = [edx|R];) () () () [hir:s16] <|@
52 bounds-check = [constant:12] [edx|R] [id=3|deopt_id=3|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:s17] <|@
54 gap () () () () [hir:s17] <|@
56 load-keyed [edx|R][ecx|R][[constant:12]] [hir:i18] <|@
58 gap ((0) = [edx|R];) () () () [hir:i18] <|@
60 load-context-slot [ecx|R][eax|R][6] [hir:t20] <|@
62 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:t20] <|@
64 tagged-to-i [ecx|R]= [ecx|R] [id=3|deopt_id=40|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:i327] <|@
66 gap ((0) = [ecx|R];) ([edx|R] = [ecx|R];) () () [hir:i327] <|@
68 mod-by-power-of-2-i [edx|R]= [edx|R] [hir:i22] <|@
70 gap ([stack:8] = [edx|R];) () ([ebx|R] = [stack:-1];) () [hir:i22] <|@
72 check-non-smi = [ebx|R] [id=3|deopt_id=4|parameters=2|arguments_stack_height=0|[stack:-2];[ebx|R];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t27] <|@
74 gap () () () () [hir:t27] <|@
76 check-maps = [ebx|R] [id=3|deopt_id=5|parameters=2|arguments_stack_height=0|[stack:-2];[ebx|R];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:t28] <|@
78 gap () () () () [hir:t28] <|@
80 load-named-field [esi|R]= [ebx|R] [hir:t29] <|@
82 gap ((0) = [esi|R];) ([esi|R];) () () [hir:t29] <|@
84 tagged-to-i [esi|R]= [esi|R] [id=3|deopt_id=41|parameters=2|arguments_stack_height=0|[stack:-2];[ebx|R];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:i330] <|@
86 gap ((0) = [esi|R];) ([esi|R];) () () [hir:i330] <|@
88 add-i [esi|R]= [esi|R] [ecx|R] [id=3|deopt_id=6|parameters=2|arguments_stack_height=0|[stack:-2];[ebx|R];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:i30] <|@
90 gap ((0) = [esi|R];) ([ecx|R] = [esi|R];) () () [hir:i30] <|@
92 mod-by-power-of-2-i [ecx|R]= [ecx|R] [id=3|deopt_id=7|parameters=2|arguments_stack_height=0|[stack:-2];[ebx|R];[eax|R];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:i33] <|@
94 gap ([stack:9] = [ecx|R];) () () () [hir:i33] <|@
96 push-argument = [constant:36] [hir:t38] <|@
98 gap () () () () [hir:t38] <|@
100 push-argument = [constant:333] [hir:t38] <|@
102 gap () () () () [hir:t38] <|@
104 constant-t [edi|R]= [hir:t36] <|@
106 gap ((0) = [edi|R];) ([esi|R] = [eax|R]; [edi|R];) () () [hir:t36] <|@
108 call-new [eax|R]= [esi|R] [edi|R] #1 / {[esi|R];[edi|R];[stack:7]} [hir:t39] <|@
110 gap ([stack:10] = [eax|R];) ([eax|R];) () () [hir:t39] <|@
112 lazy-bailout = [id=96|deopt_id=8|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:8];[stack:9];[constant:5];[constant:5];[constant:5];[eax|R]] [hir:v40] <|@
114 gap () () ([ecx|R] = [stack:7];) () [hir:v40] <|@
116 load-context-slot [edx|R][ecx|R][11] [hir:t44] <|@
118 gap ((0) = [edx|R];) () () () [hir:t44] <|@
120 check-value = [edx|R] [id=96|deopt_id=9|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[ecx|R];[constant:5];[stack:8];[stack:9];[constant:5];[constant:5];[constant:5];[eax|R]] [hir:t46] <|@
122 gap () () () () [hir:t46] <|@
124 push-argument = [constant:5] [hir:t47] <|@
126 gap () () () () [hir:t47] <|@
128 push-argument = [eax|R] [hir:t47] <|@
130 gap () () () () [hir:t47] <|@
132 constant-t [edi|R]= [hir:t48] <|@
134 gap ((0) = [edi|R];) ([edi|R];) () () [hir:t48] <|@
136 call-js-function [eax|R]= [edi|R]#1 / {[edi|R];[stack:7];[stack:10]} [hir:t49] <|@
138 gap ((0) = [eax|R];) () () () [hir:t49] <|@
140 lazy-bailout = [id=116|deopt_id=10|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[stack:8];[stack:9];[stack:10];[constant:42];[constant:5]] [hir:v50] <|@
142 gap () () () () [hir:v50] <|@
144 check-non-smi = [stack:10] [id=124|deopt_id=11|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[stack:10];[constant:42];[stack:8]] [hir:t84] <|@
146 gap () () ([ecx|R] = [stack:10];) () [hir:t84] <|@
148 check-maps = [ecx|R] [id=124|deopt_id=12|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[ecx|R];[constant:42];[stack:8]] [hir:t85] <|@
150 gap () () () () [hir:t85] <|@
152 load-named-field [edx|R]= [ecx|R] [hir:t86] <|@
154 gap ((0) = [edx|R];) () () () [hir:t86] <|@
156 load-named-field [eax|R]= [edx|R] [hir:s87] <|@
158 gap ((0) = [eax|R];) ([ebx|R] = [eax|R];) () () [hir:s87] <|@
160 smi-untag [ebx|R]= [ebx|R] [hir:i335] <|@
162 gap ([stack:12] = [ebx|R];) () () () [hir:i335] <|@
164 check-maps = NULL [hir:t91] <|@
166 gap () () () () [hir:t91] <|@
168 check-maps = NULL [hir:t93] <|@
170 gap () () () () [hir:t93] <|@
172 check-maps = NULL [hir:t95] <|@
174 gap () () ([esi|R] = [stack:-1];) () [hir:t95] <|@
176 load-named-field [eax|R]= [esi|R] [hir:t96] <|@
178 gap ((0) = [eax|R];) () () () [hir:t96] <|@
180 load-named-field [edi|R]= [eax|R] [hir:s97] <|@
182 gap ((0) = [edi|R];) () () () [hir:s97] <|@
184 load-named-field [eax|R]= [eax|R] [hir:x98] <|@
186 gap ([stack:11] = [eax|R];) () () () [hir:x98] <|@
188 gap () ([esi|R] = [constant:42]; [ecx|R] = [stack:8];) () () [hir:v63] <|@
190 goto B2 [hir:v63] <|@
end_LIR
end_block
begin_block
name "B2"
from_bci -1
to_bci -1
predecessors "B1" "B4"
successors "B3" "B5"
xhandlers
flags "dom-loop-succ"
dominator "B1"
loop_depth 1
first_lir_id 192
last_lir_id 198
begin_states
begin_locals
size 2
method "None"
7 s60 [ s42 s80 uses:4_4s_0i_0d_0t type:TaggedNumber]
8 i61 [ i22 i103 uses:4_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v64 BlockEntry type:Tagged pos:325 <|@
0 0 i67 CompareNumericAndBranch LT i61 i328 goto (B3, B5) type:Tagged pos:327 <|@
end_HIR
begin_LIR
192 label () ((0) = [esi|R]; (0) = [ecx|R];) () () [hir:v64] <|@
194 gap () () () () [hir:v64] <|@
196 gap () () () () [hir:i67] <|@
198 compare-numeric-and-branch if [ecx|R] < [constant:328] then B3 else B5 [hir:i67] <|@
end_LIR
end_block
begin_block
name "B3"
from_bci -1
to_bci -1
predecessors "B2"
successors "B4"
xhandlers
flags "dom-loop-succ"
dominator "B2"
loop_depth 1
first_lir_id 200
last_lir_id 206
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v68 BlockEntry type:Tagged pos:327 <|@
0 0 v69 Simulate id=128 type:Tagged pos:327 <|@
0 0 v70 Goto B4 type:Tagged pos:327 <|@
end_HIR
begin_LIR
200 label () () () () Dead block replaced with B4 [hir:v68] <|@
202 gap () () () () [hir:v68] <|@
204 gap () () () () [hir:v70] <|@
206 goto B4 [hir:v70] <|@
end_LIR
end_block
begin_block
name "B4"
from_bci -1
to_bci -1
predecessors "B3"
successors "B2"
xhandlers
flags "dom-loop-succ"
dominator "B3"
loop_depth 1
first_lir_id 208
last_lir_id 242
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v74 BlockEntry type:Tagged pos:301 <|@
0 0 v75 Simulate id=128 type:Tagged pos:301 <|@
0 0 v76 StackCheck t1 changes[NewSpacePromotion] type:Tagged pos:301 <|@
0 2 s80 Add s60 s79 ! type:TaggedNumber pos:354 <|@
0 0 i88 BoundsCheck i61 i335 type:Tagged pos:363 <|@
0 1 i89 LoadKeyed t86[i61] t39 check_hole type:Tagged pos:363 <|@
0 0 s99 BoundsCheck s60 s97 type:Tagged pos:358 <|@
0 0 v100 StoreKeyed x98.EXTERNAL_UINT8_ELEMENTS[s60] = i89 changes[ExternalMemory] type:Tagged pos:358 <|@
0 0 v101 Simulate id=156 var[7] = s80 type:Tagged pos:358 <|@
0 2 i103 Add i61 i326 type:TaggedNumber pos:334 <|@
0 0 v105 Simulate id=124 var[8] = i103 type:Tagged pos:301 <|@
0 0 v106 Goto B2 type:Tagged pos:301 <|@
end_HIR
begin_LIR
208 label () () () () [hir:v74] <|@
210 gap () () () () [hir:v74] <|@
212 stack-check = [stack:7] [id=128|deopt_id=13|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[stack:10];[esi|R];[ecx|R]] {[stack:7];[stack:10];[edx|R]} [hir:v76] <|@
214 gap () ([eax|R] = [esi|R];) () () [hir:v76] <|@
216 add-i [eax|R]= [eax|R] [constant:79] [id=128|deopt_id=14|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[stack:10];[esi|R];[ecx|R]] [hir:s80] <|@
218 gap ([stack:13] = [eax|R];) () () () [hir:s80] <|@
220 bounds-check = [ecx|R] [ebx|R] [id=128|deopt_id=15|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[stack:10];[esi|R];[ecx|R]] [hir:i88] <|@
222 gap () () () () [hir:i88] <|@
224 load-keyed [ebx|R][edx|R][[ecx|R]] [hir:i89] <|@
226 gap ((0) = [ebx|R];) () () () [hir:i89] <|@
228 bounds-check = [esi|R] [edi|R] [id=128|deopt_id=16|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:7];[constant:5];[constant:5];[stack:9];[stack:10];[esi|R];[ecx|R]] [hir:s99] <|@
230 gap () ([esi|R]; [eax|R] = [ebx|R]; [ebx|R] = [stack:11];) () () [hir:s99] <|@
232 store-keyed [ebx|R][[esi|R]] <- [eax|R] [hir:v100] <|@
234 gap () () () () [hir:v100] <|@
236 add-i [ecx|R]= [ecx|R] [constant:326] [hir:i103] <|@
238 gap ((0) = [ecx|R];) () () () [hir:i103] <|@
240 gap () ([esi|R] = [stack:13]; [ecx|R]; [ebx|R] = [stack:12];) () () [hir:v106] <|@
242 goto B2 [hir:v106] <|@
end_LIR
end_block
begin_block
name "B5"
from_bci -1
to_bci -1
predecessors "B2"
successors "B6"
xhandlers
flags
dominator "B2"
loop_depth 0
first_lir_id 244
last_lir_id 250
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v71 BlockEntry type:Tagged pos:327 <|@
0 0 v72 Simulate id=125 var[8] = t5 type:Tagged pos:327 <|@
0 0 v73 Goto B6 type:Tagged pos:327 <|@
end_HIR
begin_LIR
244 label () () () () Dead block replaced with B6 [hir:v71] <|@
246 gap () () () () [hir:v71] <|@
248 gap () () () () [hir:v73] <|@
250 goto B6 [hir:v73] <|@
end_LIR
end_block
begin_block
name "B6"
from_bci -1
to_bci -1
predecessors "B5"
successors "B8" "B7"
xhandlers
flags
dominator "B5"
loop_depth 0
first_lir_id 252
last_lir_id 258
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v108 BlockEntry type:Tagged pos:411 <|@
0 0 v109 Branch t107 goto (B8, B7) (None) type:Tagged pos:411 <|@
end_HIR
begin_LIR
252 label () () () () Dead block replaced with B8 [hir:v108] <|@
254 gap () () () () [hir:v108] <|@
256 gap () () () () [hir:v109] <|@
258 goto B8 [hir:v109] <|@
end_LIR
end_block
begin_block
name "B7"
from_bci -1
to_bci -1
predecessors "B6"
successors "B9"
xhandlers
flags "osr"
dominator "B6"
loop_depth 0
first_lir_id 260
last_lir_id 314
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v113 BlockEntry type:Tagged pos:411 <|@
0 2 t114 UnknownOSRValue parameter @ 0 type:Tagged pos:411 <|@
0 2 t115 UnknownOSRValue parameter @ 1 type:Tagged pos:411 <|@
0 1 t116 UnknownOSRValue special @ 2 type:Tagged pos:411 <|@
0 1 t117 UnknownOSRValue local @ 3 type:Tagged pos:411 <|@
0 1 t118 UnknownOSRValue local @ 4 type:Tagged pos:411 <|@
0 2 t119 UnknownOSRValue local @ 5 type:Tagged pos:411 <|@
0 2 t120 UnknownOSRValue local @ 6 type:Tagged pos:411 <|@
0 2 t121 UnknownOSRValue local @ 7 type:Tagged pos:411 <|@
0 1 t122 UnknownOSRValue local @ 8 type:Tagged pos:411 <|@
0 0 v123 Simulate id=184 var[8] = t122, var[7] = t121, var[6] = t120, var[5] = t119, var[4] = t118, var[3] = t117, var[2] = t116, var[1] = t115, var[0] = t114 type:Tagged pos:411 <|@
0 0 v124 OsrEntry changes[NewSpacePromotion,OsrEntries] type:Tagged pos:411 <|@
0 2 t125 Context type:Tagged pos:411 <|@
0 0 v126 Simulate id=182 var[2] = t125 type:Tagged pos:411 <|@
0 1 s336 Change t121 t to s -0? type:TaggedNumber pos:411 <|@
0 0 v127 Goto B9 type:Tagged pos:411 <|@
end_HIR
begin_LIR
260 label () () () () [hir:v113] <|@
262 gap () () () () [hir:v113] <|@
264 unknown-osr-value [stack:-2]= [hir:t114] <|@
266 gap () ([stack:-2];) () () [hir:t114] <|@
268 unknown-osr-value [stack:-1]= [hir:t115] <|@
270 gap () ([stack:-1];) () () [hir:t115] <|@
272 unknown-osr-value [stack:-1]= [hir:t116] <|@
274 gap () ([stack:-1];) () () [hir:t116] <|@
276 unknown-osr-value [stack:6]= [hir:t117] <|@
278 gap () ([stack:6];) () () [hir:t117] <|@
280 unknown-osr-value [stack:1]= [hir:t118] <|@
282 gap () ([stack:1];) () () [hir:t118] <|@
284 unknown-osr-value [stack:2]= [hir:t119] <|@
286 gap () ([stack:2];) () () [hir:t119] <|@
288 unknown-osr-value [stack:3]= [hir:t120] <|@
290 gap () ([stack:3];) () () [hir:t120] <|@
292 unknown-osr-value [stack:4]= [hir:t121] <|@
294 gap () ([stack:4];) () () [hir:t121] <|@
296 unknown-osr-value [stack:5]= [hir:t122] <|@
298 gap () ([stack:5];) () () [hir:t122] <|@
300 osr-entry = [id=184|deopt_id=17|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[stack:-1];[stack:6];[stack:1];[stack:2];[stack:3];[stack:4];[stack:5]] [hir:v124] <|@
302 gap () () () () [hir:v124] <|@
304 context [esi|R]= [hir:t125] <|@
306 gap ((0) = [esi|R];) ([eax|R] = [stack:4];) () () [hir:t125] <|@
308 check-smi [eax|R]= [eax|R] [id=182|deopt_id=18|parameters=2|arguments_stack_height=0|[stack:-2];[stack:-1];[esi|R];[stack:6];[stack:1];[stack:2];[stack:3];[stack:4];[stack:5]] [hir:s336] <|@
310 gap ((0) = [eax|R];) () () () [hir:s336] <|@
312 gap () ([edi|R] = [stack:-2]; [ebx|R] = [stack:-1]; [edx|R] = [esi|R]; [ecx|R] = [stack:2]; [eax|R] = [stack:3]; [esi|R] = [eax|R];) () () [hir:v127] <|@
314 goto B9 [hir:v127] <|@
end_LIR
end_block
begin_block
name "B8"
from_bci -1
to_bci -1
predecessors "B6"
successors "B9"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 316
last_lir_id 326
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v110 BlockEntry type:Tagged pos:411 <|@
0 0 v111 Simulate id=182 type:Tagged pos:411 <|@
0 1 t332 Change i33 i to t pos:411 <|@
0 0 v112 Goto B9 type:Tagged pos:411 <|@
end_HIR
begin_LIR
316 label () () () () [hir:v110] <|@
318 gap () ([eax|R] = [stack:9];) () () [hir:v110] <|@
320 smi-tag [eax|R]= [eax|R] [hir:t332] <|@
322 gap ((0) = [eax|R];) () () () [hir:t332] <|@
324 gap () ([edi|R] = [stack:-2]; [ebx|R] = [stack:-1]; [edx|R] = [stack:7]; [ecx|R] = [eax|R]; [eax|R] = [stack:10]; [esi|R];) () () [hir:v112] <|@
326 goto B9 [hir:v112] <|@
end_LIR
end_block
begin_block
name "B9"
from_bci -1
to_bci -1
predecessors "B8" "B7"
successors "B10"
xhandlers
flags
dominator "B6"
loop_depth 0
first_lir_id 328
last_lir_id 350
begin_states
begin_locals
size 6
method "None"
0 t128 [ t2 t114 uses:4_0s_0i_0d_0t type:Tagged]
1 t129 [ t3 t115 uses:12_0s_0i_0d_0t type:Tagged]
2 t130 [ t1 t125 uses:19_0s_0i_0d_7t type:Tagged]
5 t133 [ t332 t119 uses:2_1s_0i_0d_1t type:Tagged]
6 t134 [ t39 t120 uses:9_0s_0i_0d_0t type:Tagged]
7 s135 [ s60 s336 uses:1_3s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v146 BlockEntry type:Tagged pos:411 <|@
0 0 v147 Simulate id=182 type:Tagged pos:411 <|@
0 2 s151 Constant 64 type:Smi pos:430 <|@
0 0 t154 CheckHeapObject t129 pos:442 <|@
0 1 t171 Constant 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> [map 0x3020df61] pos:465 <|@
0 4 s174 Constant 0 type:Smi pos:505 <|@
0 0 t206 CheckHeapObject t134 pos:546 <|@
0 2 t214 Constant 0x26884391 <an Object with map 0x3020dabd> [map 0x3020dabd] pos:541 <|@
0 0 t215 CheckMaps t214 [0x3020dabd](stability-check) pos:541 <|@
0 2 t216 Constant 0x26875461 <an Object with map 0x3020c465> [map 0x3020c465] pos:541 <|@
0 0 t217 CheckMaps t216 [0x3020c465](stability-check) pos:541 <|@
0 0 v148 Goto B10 type:Tagged pos:411 <|@
end_HIR
begin_LIR
328 label () ([stack:18] = [edi|R]; [stack:16] = [ebx|R]; [stack:15] = [edx|R]; [stack:14] = [ecx|R]; [stack:11] = [eax|R]; (0) = [esi|R];) () () [hir:v146] <|@
330 gap () () () () [hir:v146] <|@
332 check-non-smi = [ebx|R] [id=182|deopt_id=19|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[ecx|R];[eax|R];[esi|R];[constant:5]] [hir:t154] <|@
334 gap () () () () [hir:t154] <|@
336 check-non-smi = [eax|R] [id=182|deopt_id=20|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[ecx|R];[eax|R];[esi|R];[constant:5]] [hir:t206] <|@
338 gap () () () () [hir:t206] <|@
340 check-maps = NULL [hir:t215] <|@
342 gap () () () () [hir:t215] <|@
344 check-maps = NULL [hir:t217] <|@
346 gap () () () () [hir:t217] <|@
348 gap () ([esi|R];) () () [hir:v148] <|@
350 goto B10 [hir:v148] <|@
end_LIR
end_block
begin_block
name "B10"
from_bci -1
to_bci -1
predecessors "B9" "B17"
successors "B11" "B18"
xhandlers
flags "dom-loop-succ"
dominator "B9"
loop_depth 1
first_lir_id 352
last_lir_id 374
begin_states
begin_locals
size 1
method "None"
7 s144 [ s135 s183 uses:3_3s_0i_0d_0t type:Tagged]
end_locals
end_states
begin_HIR
0 0 v149 BlockEntry type:Tagged pos:418 <|@
0 2 s152 Add s144 s151 ! type:TaggedNumber pos:428 <|@
0 0 v153 Simulate id=189 push s152 type:Tagged pos:428 <|@
0 0 t155 CheckMaps t129 [0x3020f509] pos:442 <|@
0 1 t156 LoadNamedField t129.[in-object]@32 type:Tagged pos:442 <|@
0 1 s338 Change t156 t to s type:TaggedNumber pos:442 <|@
0 0 s157 CompareNumericAndBranch LTE s152 s338 goto (B11, B18) type:Tagged pos:433 <|@
end_HIR
begin_LIR
352 label () ([stack:17] = [esi|R];) () () [hir:v149] <|@
354 gap () ([eax|R] = [esi|R];) () () [hir:v149] <|@
356 add-i [eax|R]= [eax|R] [constant:151] [id=182|deopt_id=21|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[constant:5]] [hir:s152] <|@
358 gap ((0) = [eax|R];) () () () [hir:s152] <|@
360 check-maps = [ebx|R] [id=189|deopt_id=22|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[constant:5];[eax|R]] [hir:t155] <|@
362 gap () () () () [hir:t155] <|@
364 load-named-field [ecx|R]= [ebx|R] [hir:t156] <|@
366 gap ((0) = [ecx|R];) ([ecx|R];) () () [hir:t156] <|@
368 check-smi [ecx|R]= [ecx|R] [id=189|deopt_id=23|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[constant:5];[eax|R]] [hir:s338] <|@
370 gap ((0) = [ecx|R];) () () () [hir:s338] <|@
372 gap () () () () [hir:s157] <|@
374 compare-numeric-and-branch if [eax|R] <= [ecx|R] then B11 else B18 [hir:s157] <|@
end_LIR
end_block
begin_block
name "B11"
from_bci -1
to_bci -1
predecessors "B10"
successors "B12"
xhandlers
flags "dom-loop-succ"
dominator "B10"
loop_depth 1
first_lir_id 376
last_lir_id 382
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v158 BlockEntry type:Tagged pos:433 <|@
0 0 v159 Simulate id=185 pop 1 type:Tagged pos:433 <|@
0 0 v160 Goto B12 type:Tagged pos:433 <|@
end_HIR
begin_LIR
376 label () () () () Dead block replaced with B12 [hir:v158] <|@
378 gap () () () () [hir:v158] <|@
380 gap () () () () [hir:v160] <|@
382 goto B12 [hir:v160] <|@
end_LIR
end_block
begin_block
name "B12"
from_bci -1
to_bci -1
predecessors "B11"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B11"
loop_depth 1
first_lir_id 384
last_lir_id 446
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v164 BlockEntry type:Tagged pos:411 <|@
0 0 v165 Simulate id=185 type:Tagged pos:411 <|@
0 1 t167 LoadContextSlot t130[11] type:Tagged pos:465 <|@
0 0 t169 CheckValue t167 0x28d0eab9 <JS Function getBlock (SharedFunctionInfo 0x2688ed9d)> type:Tagged pos:465 <|@
0 0 t170 PushArguments t5 t134 type:Tagged pos:465 <|@
0 0 t172 CallJSFunction t171 #2 changes[*] type:Tagged pos:465 <|@
0 0 v173 Simulate id=210 type:Tagged pos:465 <|@
0 0 v185 Simulate id=218 var[8] = s174 type:Tagged pos:492 <|@
0 0 t207 CheckMaps t134 [0x3020da91] pos:546 <|@
0 3 t208 LoadNamedField t134.%elements@8 type:Tagged pos:546 <|@
0 1 s209 LoadNamedField t208.%length@4 type:Smi pos:546 <|@
0 0 t213 CheckMaps t129 [0x3020f509](stability-check) pos:541 <|@
0 4 t218 LoadNamedField t129.%elements@8 type:Tagged pos:541 <|@
0 1 s219 LoadNamedField t218.%length@4 type:Smi pos:541 <|@
0 1 x220 LoadNamedField t218.%elements@8 type:Tagged pos:541 <|@
0 0 v186 Goto B13 type:Tagged pos:492 <|@
end_HIR
begin_LIR
384 label () () () () [hir:v164] <|@
386 gap () () () () [hir:v164] <|@
388 load-context-slot [eax|R][edx|R][11] [hir:t167] <|@
390 gap ((0) = [eax|R];) () () () [hir:t167] <|@
392 check-value = [eax|R] [id=185|deopt_id=24|parameters=2|arguments_stack_height=0|[edi|R];[ebx|R];[edx|R];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[constant:5]] [hir:t169] <|@
394 gap () () () () [hir:t169] <|@
396 push-argument = [constant:5] [hir:t170] <|@
398 gap () () () () [hir:t170] <|@
400 push-argument = [stack:11] [hir:t170] <|@
402 gap () () () () [hir:t170] <|@
404 constant-t [eax|R]= [hir:t171] <|@
406 gap ((0) = [eax|R];) ([edi|R] = [eax|R]; [eax|R] = [edi|R];) () () [hir:t171] <|@
408 call-js-function [eax|R]= [edi|R]#1 / {[edi|R];[stack:18];[stack:16];[stack:15];[stack:14];[stack:11]} [hir:t172] <|@
410 gap ((0) = [eax|R];) () () () [hir:t172] <|@
412 lazy-bailout = [id=210|deopt_id=25|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[stack:17];[constant:5]] [hir:v173] <|@
414 gap () () ([ecx|R] = [stack:11];) () [hir:v173] <|@
416 check-maps = [ecx|R] [id=218|deopt_id=26|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[ecx|R];[stack:17];[constant:174]] [hir:t207] <|@
418 gap () () () () [hir:t207] <|@
420 load-named-field [edx|R]= [ecx|R] [hir:t208] <|@
422 gap ((0) = [edx|R];) () () () [hir:t208] <|@
424 load-named-field [ebx|R]= [edx|R] [hir:s209] <|@
426 gap ([stack:20] = [ebx|R];) () () () [hir:s209] <|@
428 check-maps = NULL [hir:t213] <|@
430 gap () () ([esi|R] = [stack:16];) () [hir:t213] <|@
432 load-named-field [eax|R]= [esi|R] [hir:t218] <|@
434 gap ((0) = [eax|R];) () () () [hir:t218] <|@
436 load-named-field [edi|R]= [eax|R] [hir:s219] <|@
438 gap ((0) = [edi|R];) () () () [hir:s219] <|@
440 load-named-field [eax|R]= [eax|R] [hir:x220] <|@
442 gap ([stack:19] = [eax|R];) () () () [hir:x220] <|@
444 gap () ([esi|R] = [stack:17]; [ecx|R] = [constant:174];) () () [hir:v186] <|@
446 goto B13 [hir:v186] <|@
end_LIR
end_block
begin_block
name "B13"
from_bci -1
to_bci -1
predecessors "B12" "B15"
successors "B14" "B16"
xhandlers
flags "dom-loop-succ"
dominator "B12"
loop_depth 2
first_lir_id 448
last_lir_id 454
begin_states
begin_locals
size 2
method "None"
7 s183 [ s144 s202 uses:4_3s_0i_0d_0t type:Tagged]
8 s184 [ s174 s225 uses:4_2s_0i_0d_0t type:TaggedNumber]
end_locals
end_states
begin_HIR
0 0 v187 BlockEntry type:Tagged pos:508 <|@
0 0 s190 CompareNumericAndBranch LT s184 s151 goto (B14, B16) type:Tagged pos:510 <|@
end_HIR
begin_LIR
448 label () ((0) = [esi|R]; [stack:21] = [ecx|R];) () () [hir:v187] <|@
450 gap () () () () [hir:v187] <|@
452 gap () () () () [hir:s190] <|@
454 compare-numeric-and-branch if [ecx|R] < [constant:151] then B14 else B16 [hir:s190] <|@
end_LIR
end_block
begin_block
name "B14"
from_bci -1
to_bci -1
predecessors "B13"
successors "B15"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 2
first_lir_id 456
last_lir_id 462
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v191 BlockEntry type:Tagged pos:510 <|@
0 0 v192 Simulate id=222 type:Tagged pos:510 <|@
0 0 v193 Goto B15 type:Tagged pos:510 <|@
end_HIR
begin_LIR
456 label () () () () Dead block replaced with B15 [hir:v191] <|@
458 gap () () () () [hir:v191] <|@
460 gap () () () () [hir:v193] <|@
462 goto B15 [hir:v193] <|@
end_LIR
end_block
begin_block
name "B15"
from_bci -1
to_bci -1
predecessors "B14"
successors "B13"
xhandlers
flags "dom-loop-succ"
dominator "B14"
loop_depth 2
first_lir_id 464
last_lir_id 498
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v197 BlockEntry type:Tagged pos:492 <|@
0 0 v198 Simulate id=222 type:Tagged pos:492 <|@
0 0 v199 StackCheck t130 changes[NewSpacePromotion] type:Tagged pos:492 <|@
0 2 s202 Add s183 s79 ! type:TaggedNumber pos:537 <|@
0 0 s210 BoundsCheck s184 s209 type:Tagged pos:546 <|@
0 1 i211 LoadKeyed t208[s184] t134 check_hole type:Tagged pos:546 <|@
0 0 s221 BoundsCheck s183 s219 type:Tagged pos:541 <|@
0 0 v222 StoreKeyed x220.EXTERNAL_UINT8_ELEMENTS[s183] = i211 changes[ExternalMemory] type:Tagged pos:541 <|@
0 0 v223 Simulate id=251 var[7] = s202 type:Tagged pos:541 <|@
0 2 s225 Add s184 s79 type:TaggedNumber pos:517 <|@
0 0 v227 Simulate id=218 var[8] = s225 type:Tagged pos:492 <|@
0 0 v228 Goto B13 type:Tagged pos:492 <|@
end_HIR
begin_LIR
464 label () () () () [hir:v197] <|@
466 gap () () () () [hir:v197] <|@
468 stack-check = [stack:15] [id=222|deopt_id=27|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[ecx|R]] {[stack:18];[stack:16];[stack:15];[stack:14];[stack:11];[edx|R]} [hir:v199] <|@
470 gap () ([eax|R] = [esi|R];) () () [hir:v199] <|@
472 add-i [eax|R]= [eax|R] [constant:79] [id=222|deopt_id=28|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[ecx|R]] [hir:s202] <|@
474 gap ((0) = [eax|R];) () () () [hir:s202] <|@
476 bounds-check = [ecx|R] [ebx|R] [id=222|deopt_id=29|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[ecx|R]] [hir:s210] <|@
478 gap () ([ebx|R] = [ecx|R];) () () [hir:s210] <|@
480 load-keyed [ecx|R][edx|R][[ebx|R]] [hir:i211] <|@
482 gap ((0) = [ecx|R];) () () () [hir:i211] <|@
484 bounds-check = [esi|R] [edi|R] [id=222|deopt_id=30|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[esi|R];[stack:21]] [hir:s221] <|@
486 gap () ([esi|R]; [eax|R] = [ecx|R]; [ebx|R] = [eax|R]; [ecx|R] = [stack:19];) () () [hir:s221] <|@
488 store-keyed [ecx|R][[esi|R]] <- [eax|R] [hir:v222] <|@
490 gap () () ([eax|R] = [stack:21];) () [hir:v222] <|@
492 add-i [eax|R]= [eax|R] [constant:79] [hir:s225] <|@
494 gap ((0) = [eax|R];) () () () [hir:s225] <|@
496 gap () ([esi|R] = [ebx|R]; [ecx|R] = [eax|R]; [ebx|R] = [stack:20];) () () [hir:v228] <|@
498 goto B13 [hir:v228] <|@
end_LIR
end_block
begin_block
name "B16"
from_bci -1
to_bci -1
predecessors "B13"
successors "B17"
xhandlers
flags "dom-loop-succ"
dominator "B13"
loop_depth 1
first_lir_id 500
last_lir_id 506
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v194 BlockEntry type:Tagged pos:510 <|@
0 0 v195 Simulate id=219 var[8] = t5 type:Tagged pos:510 <|@
0 0 v196 Goto B17 type:Tagged pos:510 <|@
end_HIR
begin_LIR
500 label () () () () Dead block replaced with B17 [hir:v194] <|@
502 gap () () () () [hir:v194] <|@
504 gap () () () () [hir:v196] <|@
506 goto B17 [hir:v196] <|@
end_LIR
end_block
begin_block
name "B17"
from_bci -1
to_bci -1
predecessors "B16"
successors "B10"
xhandlers
flags "dom-loop-succ"
dominator "B16"
loop_depth 1
first_lir_id 508
last_lir_id 514
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v229 BlockEntry type:Tagged pos:411 <|@
0 0 v230 Simulate id=182 type:Tagged pos:411 <|@
0 0 v231 Goto B10 type:Tagged pos:411 <|@
end_HIR
begin_LIR
508 label () () () () [hir:v229] <|@
510 gap () () () () [hir:v229] <|@
512 gap () ([esi|R]; [edi|R] = [stack:18]; [ebx|R] = [stack:16]; [edx|R] = [stack:15];) () () [hir:v231] <|@
514 goto B10 [hir:v231] <|@
end_LIR
end_block
begin_block
name "B18"
from_bci -1
to_bci -1
predecessors "B10"
successors "B19"
xhandlers
flags
dominator "B10"
loop_depth 0
first_lir_id 516
last_lir_id 522
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v161 BlockEntry type:Tagged pos:433 <|@
0 0 v162 Simulate id=183 pop 1 type:Tagged pos:433 <|@
0 0 v163 Goto B19 type:Tagged pos:433 <|@
end_HIR
begin_LIR
516 label () () () () Dead block replaced with B19 [hir:v161] <|@
518 gap () () () () [hir:v161] <|@
520 gap () () () () [hir:v163] <|@
522 goto B19 [hir:v163] <|@
end_LIR
end_block
begin_block
name "B19"
from_bci -1
to_bci -1
predecessors "B18"
successors "B22" "B20"
xhandlers
flags
dominator "B18"
loop_depth 0
first_lir_id 524
last_lir_id 534
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v232 BlockEntry type:Tagged pos:611 <|@
0 1 s337 Change t133 t to s type:TaggedNumber pos:611 <|@
0 0 s235 CompareNumericAndBranch GT s337 s174 goto (B22, B20) type:Tagged pos:621 <|@
end_HIR
begin_LIR
524 label () () () () [hir:v232] <|@
526 gap () ([eax|R] = [stack:14];) () () [hir:v232] <|@
528 check-smi [eax|R]= [eax|R] [id=183|deopt_id=31|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[stack:17];[constant:5]] [hir:s337] <|@
530 gap ((0) = [eax|R];) () () () [hir:s337] <|@
532 gap () () () () [hir:s235] <|@
534 compare-numeric-and-branch if [eax|R] > [constant:174] then B22 else B20 [hir:s235] <|@
end_LIR
end_block
begin_block
name "B20"
from_bci -1
to_bci -1
predecessors "B19"
successors "B21"
xhandlers
flags
dominator "B19"
loop_depth 0
first_lir_id 536
last_lir_id 542
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v239 BlockEntry type:Tagged pos:621 <|@
0 0 v240 Simulate id=279 var[7] = t5, var[6] = t5, var[5] = t5 type:Tagged pos:621 <|@
0 0 v241 Goto B21 type:Tagged pos:621 <|@
end_HIR
begin_LIR
536 label () () () () Dead block replaced with B21 [hir:v239] <|@
538 gap () () () () [hir:v239] <|@
540 gap () () () () [hir:v241] <|@
542 goto B21 [hir:v241] <|@
end_LIR
end_block
begin_block
name "B21"
from_bci -1
to_bci -1
predecessors "B20"
successors "B32"
xhandlers
flags
dominator "B20"
loop_depth 0
first_lir_id 544
last_lir_id 550
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v300 BlockEntry type:Tagged pos:607 <|@
0 0 v301 Simulate id=277 type:Tagged pos:607 <|@
0 0 v302 Goto B32 type:Tagged pos:607 <|@
end_HIR
begin_LIR
544 label () () () () Dead block replaced with B32 [hir:v300] <|@
546 gap () () () () [hir:v300] <|@
548 gap () () () () [hir:v302] <|@
550 goto B32 [hir:v302] <|@
end_LIR
end_block
begin_block
name "B22"
from_bci -1
to_bci -1
predecessors "B19"
successors "B23"
xhandlers
flags
dominator "B19"
loop_depth 0
first_lir_id 552
last_lir_id 558
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v236 BlockEntry type:Tagged pos:621 <|@
0 0 v237 Simulate id=278 type:Tagged pos:621 <|@
0 0 v238 Goto B23 type:Tagged pos:621 <|@
end_HIR
begin_LIR
552 label () () () () Dead block replaced with B23 [hir:v236] <|@
554 gap () () () () [hir:v236] <|@
556 gap () () () () [hir:v238] <|@
558 goto B23 [hir:v238] <|@
end_LIR
end_block
begin_block
name "B23"
from_bci -1
to_bci -1
predecessors "B22"
successors "B24"
xhandlers
flags
dominator "B22"
loop_depth 0
first_lir_id 560
last_lir_id 586
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v242 BlockEntry type:Tagged pos:640 <|@
0 1 t243 LoadContextSlot t130[11] type:Tagged pos:640 <|@
0 0 t245 PushArguments t5 t134 type:Tagged pos:640 <|@
0 0 t246 CallFunction t130 t243 (type-feedback-vector icslot 2) changes[*] type:Tagged pos:640 <|@
0 0 v247 Simulate id=291 type:Tagged pos:640 <|@
0 0 v259 Simulate id=299 var[8] = s174 type:Tagged pos:667 <|@
0 1 t339 Constant 0 pos:667 <|@
0 0 v260 Goto B24 type:Tagged pos:667 <|@
end_HIR
begin_LIR
560 label () () () () [hir:v242] <|@
562 gap () () ([eax|R] = [stack:15];) () [hir:v242] <|@
564 load-context-slot [edi|R][eax|R][11] [hir:t243] <|@
566 gap ((0) = [edi|R];) () () () [hir:t243] <|@
568 push-argument = [constant:5] [hir:t245] <|@
570 gap () () () () [hir:t245] <|@
572 push-argument = [stack:11] [hir:t245] <|@
574 gap () ([esi|R] = [eax|R]; [edi|R]; [ecx|R] = [stack:16];) () () [hir:t245] <|@
576 call-function [eax|R][esi|R] [edi|R] (type-feedback-vector [ebx|R] [edx|R]) {[esi|R];[edi|R];[stack:18];[stack:16];[stack:15];[stack:14];[stack:11]} [hir:t246] <|@
578 gap ((0) = [eax|R];) () () () [hir:t246] <|@
580 lazy-bailout = [id=291|deopt_id=32|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[stack:17];[constant:5]] [hir:v247] <|@
582 gap () () () () [hir:v247] <|@
584 gap () ([ecx|R] = [stack:17]; [eax|R] = [constant:339];) () () [hir:v260] <|@
586 goto B24 [hir:v260] <|@
end_LIR
end_block
begin_block
name "B24"
from_bci -1
to_bci -1
predecessors "B23" "B29"
successors "B25"
xhandlers
flags "dom-loop-succ"
dominator "B23"
loop_depth 1
first_lir_id 588
last_lir_id 594
begin_states
begin_locals
size 2
method "None"
7 s257 [ s144 s280 uses:3_1s_0i_0d_0t type:Tagged]
8 t258 [ t339 t342 uses:3_1s_0i_0d_1t]
end_locals
end_states
begin_HIR
0 0 v261 BlockEntry type:Tagged pos:683 <|@
0 0 v264 Deoptimize goto (B25) type:Tagged pos:685 <|@
end_HIR
begin_LIR
588 label () ((0) = [ecx|R]; (0) = [eax|R];) () () [hir:v261] <|@
590 gap () () () () [hir:v261] <|@
592 gap () () () () [hir:v264] <|@
594 deoptimize = [id=299|deopt_id=33|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[ecx|R];[eax|R]] [hir:v264] <|@
end_LIR
end_block
begin_block
name "B25"
from_bci -1
to_bci -1
predecessors "B24"
successors "B26" "B30"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B24"
loop_depth 1
first_lir_id 596
last_lir_id 614
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v265 BlockEntry type:Tagged pos:685 <|@
0 2 t266 CompareGeneric LT t258 t133 changes[*] pos:685 <|@
0 0 v267 Simulate id=316 push t266 type:Tagged pos:685 <|@
0 0 v268 Branch t266 goto (B26, B30) (None) type:Tagged pos:685 <|@
end_HIR
begin_LIR
596 label () () () () [hir:v265] <|@
598 gap () () () () [hir:v265] <|@
600 dummy-use = [eax|R] [hir:t266] <|@
602 gap () () () () [hir:t266] <|@
604 dummy-use = [stack:14] [hir:t266] <|@
606 gap () () () () [hir:t266] <|@
608 dummy-use [edx|R]= [stack:15] [hir:t266] <|@
610 gap ((0) = [edx|R];) () () () [hir:t266] <|@
612 gap () () () () [hir:v268] <|@
614 branch B26 | B30 on [edx|R] [hir:v268] <|@
end_LIR
end_block
begin_block
name "B26"
from_bci -1
to_bci -1
predecessors "B25"
successors "B27"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B25"
loop_depth 1
first_lir_id 616
last_lir_id 622
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v269 BlockEntry type:Tagged pos:685 <|@
0 0 v270 Simulate id=303 pop 1 type:Tagged pos:685 <|@
0 0 v271 Goto B27 type:Tagged pos:685 <|@
end_HIR
begin_LIR
616 label () () () () Dead block replaced with B27 [hir:v269] <|@
618 gap () () () () [hir:v269] <|@
620 gap () () () () [hir:v271] <|@
622 goto B27 [hir:v271] <|@
end_LIR
end_block
begin_block
name "B27"
from_bci -1
to_bci -1
predecessors "B26"
successors "B28"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B26"
loop_depth 1
first_lir_id 624
last_lir_id 646
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v275 BlockEntry type:Tagged pos:667 <|@
0 0 v276 Simulate id=303 type:Tagged pos:667 <|@
0 0 v277 StackCheck t130 changes[NewSpacePromotion] type:Tagged pos:667 <|@
0 2 s280 Add s257 s79 ! type:TaggedNumber pos:719 <|@
0 0 v284 Deoptimize goto (B28) type:Tagged pos:728 <|@
end_HIR
begin_LIR
624 label () () () () [hir:v275] <|@
626 gap () () () () [hir:v275] <|@
628 dummy-use [edx|R]= [stack:15] [hir:v277] <|@
630 gap ((0) = [edx|R];) () () () [hir:v277] <|@
632 dummy-use = [ecx|R] [hir:s280] <|@
634 gap () () () () [hir:s280] <|@
636 dummy-use = [constant:79] [hir:s280] <|@
638 gap () () () () [hir:s280] <|@
640 dummy-use [edx|R]= [stack:15] [hir:s280] <|@
642 gap ((0) = [edx|R];) () () () [hir:s280] <|@
644 gap () () () () [hir:v284] <|@
646 deoptimize = [id=303|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[ecx|R];[eax|R]] [hir:v284] <|@
end_LIR
end_block
begin_block
name "B28"
from_bci -1
to_bci -1
predecessors "B27"
successors "B29"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B27"
loop_depth 1
first_lir_id 648
last_lir_id 666
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v285 BlockEntry type:Tagged pos:728 <|@
0 2 t286 LoadKeyedGeneric t134[t258] changes[*] type:Tagged pos:728 <|@
0 0 v287 Simulate id=349 var[7] = s280, push t129, push s257, push t286 type:Tagged pos:728 <|@
0 0 v288 Deoptimize goto (B29) type:Tagged pos:723 <|@
end_HIR
begin_LIR
648 label () () () () [hir:v285] <|@
650 gap () () () () [hir:v285] <|@
652 dummy-use = [eax|R] [hir:t286] <|@
654 gap () () () () [hir:t286] <|@
656 dummy-use = [stack:15] [hir:t286] <|@
658 gap () () () () [hir:t286] <|@
660 dummy-use [ebx|R]= [stack:11] [hir:t286] <|@
662 gap ((0) = [ebx|R];) () () () [hir:t286] <|@
664 gap () () () () [hir:v288] <|@
666 deoptimize = [id=349|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[stack:14];[stack:11];[edx|R];[eax|R];[stack:16];[ecx|R];[ebx|R]] [hir:v288] <|@
end_LIR
end_block
begin_block
name "B29"
from_bci -1
to_bci -1
predecessors "B28"
successors "B24"
xhandlers
flags "dom-loop-succ" "dead"
dominator "B28"
loop_depth 1
first_lir_id 668
last_lir_id 714
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v289 BlockEntry type:Tagged pos:723 <|@
0 1 t341 Change s257 s to t pos:723 <|@
0 0 v290 StoreKeyedGeneric t129[t341] = t286 changes[*] type:Tagged pos:723 <|@
0 0 v291 Simulate id=331 pop 3 type:Tagged pos:723 <|@
0 1 s340 Change t258 t to s allow-undefined-as-nan type:TaggedNumber pos:699 <|@
0 2 s293 Add s340 s79 ! type:TaggedNumber pos:699 <|@
0 0 v295 Simulate id=299 var[8] = s293 type:Tagged pos:667 <|@
0 1 t342 Change s293 s to t pos:683 <|@
0 0 v296 Goto B24 type:Tagged pos:667 <|@
end_HIR
begin_LIR
668 label () () () () [hir:v289] <|@
670 gap () () () () [hir:v289] <|@
672 dummy-use [esi|R]= [ecx|R] [hir:t341] <|@
674 gap ((0) = [esi|R];) () () () [hir:t341] <|@
676 dummy-use = [esi|R] [hir:v290] <|@
678 gap () () () () [hir:v290] <|@
680 dummy-use = [ebx|R] [hir:v290] <|@
682 gap () () () () [hir:v290] <|@
684 dummy-use = [stack:15] [hir:v290] <|@
686 gap () () () () [hir:v290] <|@
688 dummy-use [ecx|R]= [stack:16] [hir:v290] <|@
690 gap ((0) = [ecx|R];) () () () [hir:v290] <|@
692 dummy-use [ecx|R]= [eax|R] [hir:s340] <|@
694 gap ((0) = [ecx|R];) () () () [hir:s340] <|@
696 dummy-use = [ecx|R] [hir:s293] <|@
698 gap () () () () [hir:s293] <|@
700 dummy-use = [constant:79] [hir:s293] <|@
702 gap () () () () [hir:s293] <|@
704 dummy-use [eax|R]= [stack:15] [hir:s293] <|@
706 gap ((0) = [eax|R];) () () () [hir:s293] <|@
708 dummy-use [ecx|R]= [eax|R] [hir:t342] <|@
710 gap ((0) = [ecx|R];) () () () [hir:t342] <|@
712 gap () ([ecx|R] = [edx|R]; [eax|R] = [ecx|R];) () () [hir:v296] <|@
714 goto B24 [hir:v296] <|@
end_LIR
end_block
begin_block
name "B30"
from_bci -1
to_bci -1
predecessors "B25"
successors "B31"
xhandlers
flags "dead"
dominator "B25"
loop_depth 0
first_lir_id 716
last_lir_id 722
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v272 BlockEntry type:Tagged pos:685 <|@
0 0 v273 Simulate id=300 pop 1 / var[8] = t5, var[7] = t5, var[6] = t5, var[5] = t5 type:Tagged pos:685 <|@
0 0 v274 Goto B31 type:Tagged pos:685 <|@
end_HIR
begin_LIR
716 label () () () () Dead block replaced with B31 [hir:v272] <|@
718 gap () () () () [hir:v272] <|@
720 gap () () () () [hir:v274] <|@
722 goto B31 [hir:v274] <|@
end_LIR
end_block
begin_block
name "B31"
from_bci -1
to_bci -1
predecessors "B30"
successors "B32"
xhandlers
flags "dead"
dominator "B30"
loop_depth 0
first_lir_id 724
last_lir_id 730
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v297 BlockEntry type:Tagged pos:607 <|@
0 0 v298 Simulate id=277 type:Tagged pos:607 <|@
0 0 v299 Goto B32 type:Tagged pos:607 <|@
end_HIR
begin_LIR
724 label () () () () Dead block replaced with B32 [hir:v297] <|@
726 gap () () () () [hir:v297] <|@
728 gap () () () () [hir:v299] <|@
730 goto B32 [hir:v299] <|@
end_LIR
end_block
begin_block
name "B32"
from_bci -1
to_bci -1
predecessors "B31" "B21"
successors
xhandlers
flags
dominator "B19"
loop_depth 0
first_lir_id 732
last_lir_id 794
begin_states
begin_locals
size 0
method "None"
end_locals
end_states
begin_HIR
0 0 v312 BlockEntry type:Tagged pos:756 <|@
0 3 t313 LoadNamedGeneric t128.setPosition changes[*] type:Tagged pos:756 <|@
0 0 v314 Simulate id=363 push t128, push t313 type:Tagged pos:756 <|@
0 2 t315 LoadContextSlot t130[6] type:Tagged pos:768 <|@
0 2 t316 LoadNamedGeneric t129.length changes[*] type:Tagged pos:787 <|@
0 0 v317 Simulate id=376 pop 2 / push t313, push t128, push t315, push t316 type:Tagged pos:787 <|@
0 1 s343 Change t315 t to s -0? allow-undefined-as-nan type:TaggedNumber pos:768 <|@
0 1 s344 Change t316 t to s allow-undefined-as-nan type:TaggedNumber pos:787 <|@
0 1 s318 Add s343 s344 ! type:TaggedNumber pos:779 <|@
0 1 t345 Change s318 s to t pos:756 <|@
0 0 t320 PushArguments t128 t345 type:Tagged pos:756 <|@
0 0 t321 CallFunction t130 t313 changes[*] type:Tagged pos:756 <|@
0 0 v322 Simulate id=357 pop 4 type:Tagged pos:756 <|@
0 1 s323 Constant 1 type:Smi <|@
0 0 v324 Return t5 (pop s323 values) type:Tagged <|@
end_HIR
begin_LIR
732 label () () () () [hir:v312] <|@
734 gap () ([esi|R] = [stack:15]; [edx|R] = [stack:18];) () () [hir:v312] <|@
736 load-named-generic [eax|R]= [esi|R] [edx|R] {[esi|R];[edx|R];[stack:18];[stack:16];[stack:15]} [hir:t313] <|@
738 gap ([stack:21] = [eax|R];) ([eax|R];) () () [hir:t313] <|@
740 lazy-bailout = [id=363|deopt_id=34|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:18];[eax|R]] [hir:v314] <|@
742 gap () () ([ecx|R] = [stack:15];) () [hir:v314] <|@
744 load-context-slot [ebx|R][ecx|R][6] [hir:t315] <|@
746 gap ([stack:19] = [ebx|R];) ([esi|R] = [ecx|R]; [edx|R] = [stack:16];) () () [hir:t315] <|@
748 load-named-generic [eax|R]= [esi|R] [edx|R] {[esi|R];[edx|R];[stack:18];[stack:16];[stack:15];[stack:21];[stack:19]} [hir:t316] <|@
750 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t316] <|@
752 lazy-bailout = [id=376|deopt_id=35|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:21];[stack:18];[stack:19];[eax|R]] [hir:v317] <|@
754 gap () ([ecx|R] = [stack:19];) () () [hir:v317] <|@
756 check-smi [ecx|R]= [ecx|R] [id=376|deopt_id=36|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:21];[stack:18];[stack:19];[eax|R]] [hir:s343] <|@
758 gap ((0) = [ecx|R];) ([edx|R] = [eax|R];) () () [hir:s343] <|@
760 check-smi [edx|R]= [edx|R] [id=376|deopt_id=37|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:21];[stack:18];[stack:19];[eax|R]] [hir:s344] <|@
762 gap ((0) = [edx|R];) ([edx|R];) () () [hir:s344] <|@
764 add-i [edx|R]= [edx|R] [ecx|R] [id=376|deopt_id=38|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[stack:21];[stack:18];[stack:19];[eax|R]] [hir:s318] <|@
766 gap ((0) = [edx|R];) ([edx|R];) () () [hir:s318] <|@
768 dummy-use [edx|R]= [edx|R] [hir:t345] <|@
770 gap ((0) = [edx|R];) () () () [hir:t345] <|@
772 push-argument = [stack:18] [hir:t320] <|@
774 gap () () () () [hir:t320] <|@
776 push-argument = [edx|R] [hir:t320] <|@
778 gap () ([esi|R] = [stack:15]; [edi|R] = [stack:21];) () () [hir:t320] <|@
780 call-function [eax|R][esi|R] [edi|R] {[esi|R];[edi|R];[stack:18];[stack:16];[stack:15]} [hir:t321] <|@
782 gap ((0) = [eax|R];) () () () [hir:t321] <|@
784 lazy-bailout = [id=357|deopt_id=39|parameters=2|arguments_stack_height=0|[stack:18];[stack:16];[stack:15];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5];[constant:5]] [hir:v322] <|@
786 gap () () () () [hir:v322] <|@
788 constant-t [eax|R]= [hir:t5] <|@
790 gap ((0) = [eax|R];) ([eax|R];) () () [hir:t5] <|@
792 return = [eax|R] NULL [constant:323] [hir:v324] <|@
794 gap () () () () [hir:v324] <|@
end_LIR
end_block
end_cfg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment