Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- Raw source ---
- ( nodes ) {
- var sum = 0;
- for (var i = 0; i < nodes.length; i++) {
- sum += nodes[i];
- }
- return sum;
- }
- --- Optimized code ---
- kind = OPTIMIZED_FUNCTION
- name = test2
- stack_slots = 2
- Instructions (size = 430)
- 24133E80 0 55 push ebp
- 24133E81 1 89e5 mov ebp,esp
- 24133E83 3 56 push esi
- 24133E84 4 57 push edi
- 24133E85 5 83ec08 sub esp,0x8
- ;;; Store dynamic frame alignment tag for spilled doubles
- 24133E88 8 c745f400000000 mov [ebp+0xf4],0x0
- ;;; <@0,#0> -------------------- B0 --------------------
- ;;; <@6,#5> context
- 24133E8F 15 8b45fc mov eax,[ebp+0xfc]
- ;;; <@7,#5> gap
- 24133E92 18 8945f0 mov [ebp+0xf0],eax
- ;;; <@10,#8> -------------------- B1 --------------------
- ;;; <@11,#8> gap
- 24133E95 21 89c6 mov esi,eax
- ;;; <@12,#10> stack-check
- 24133E97 23 3b2578386900 cmp esp,[0x693878]
- 24133E9D 29 7305 jnc 36 (24133EA4)
- 24133E9F 31 e81ccdfdff call 24110BC0 ;; code: STUB, StackCheckStub, minor: 0
- ;;; <@13,#10> gap
- 24133EA4 36 8b4508 mov eax,[ebp+0x8]
- ;;; <@14,#25> check-non-smi
- 24133EA7 39 f7c001000000 test eax,0x1
- 24133EAD 45 0f8430010000 jz 355 (24133FE3)
- ;;; <@16,#26> check-maps
- 24133EB3 51 8178ffc9c4a02f cmp [eax+0xff],0x2fa0c4c9 ;; object: 2FA0C4C9 <Map(elements=FAST_ELEMENTS)>
- 24133EBA 58 0f841a000000 jz 90 (24133EDA)
- 24133EC0 64 8178ff41c5a02f cmp [eax+0xff],0x2fa0c541 ;; object: 2FA0C541 <Map(elements=FAST_SMI_ELEMENTS)>
- 24133EC7 71 0f840d000000 jz 90 (24133EDA)
- 24133ECD 77 8178ff91c5a02f cmp [eax+0xff],0x2fa0c591 ;; object: 2FA0C591 <Map(elements=FAST_DOUBLE_ELEMENTS)>
- 24133ED4 84 0f850e010000 jnz 360 (24133FE8)
- ;;; <@18,#27> load-named-field
- 24133EDA 90 8b480b mov ecx,[eax+0xb]
- ;;; <@20,#64> tagged-to-i
- 24133EDD 93 f6c101 test_b cl,0x1
- 24133EE0 96 0f855c000000 jnz 194 (24133F42)
- 24133EE6 102 d1f9 sar ecx,1
- ;;; <@22,#41> check-maps
- 24133EE8 104 8178ff41c5a02f cmp [eax+0xff],0x2fa0c541 ;; object: 2FA0C541 <Map(elements=FAST_SMI_ELEMENTS)>
- 24133EEF 111 0f85f8000000 jnz 365 (24133FED)
- ;;; <@24,#42> load-named-field
- 24133EF5 117 8b5007 mov edx,[eax+0x7]
- ;;; <@26,#43> load-named-field
- 24133EF8 120 8b580b mov ebx,[eax+0xb]
- ;;; <@28,#65> smi-untag
- 24133EFB 123 d1fb sar ebx,1
- ;;; <@30,#21> gap
- 24133EFD 125 33ff xor edi,edi
- 24133EFF 127 33f6 xor esi,esi
- ;;; <@32,#22> -------------------- B2 (loop header) --------------------
- ;;; <@35,#28> cmp-id-and-branch
- 24133F01 129 3bf1 cmp esi,ecx
- 24133F03 131 0f8d29000000 jnl 178 (24133F32)
- ;;; <@40,#35> -------------------- B4 --------------------
- ;;; <@42,#37> stack-check
- 24133F09 137 3b2578386900 cmp esp,[0x693878]
- 24133F0F 143 0f825c000000 jc 241 (24133F71)
- ;;; <@44,#44> bounds-check
- 24133F15 149 3bf3 cmp esi,ebx
- 24133F17 151 0f83d5000000 jnc 370 (24133FF2)
- ;;; <@46,#45> load-keyed
- 24133F1D 157 8b44b207 mov eax,[edx+esi*4+0x7]
- ;;; <@48,#66> smi-untag
- 24133F21 161 d1f8 sar eax,1
- ;;; <@50,#46> add-i
- 24133F23 163 03c7 add eax,edi
- 24133F25 165 0f80cc000000 jo 375 (24133FF7)
- ;;; <@52,#51> add-i
- 24133F2B 171 83c601 add esi,0x1
- ;;; <@54,#54> gap
- 24133F2E 174 89c7 mov edi,eax
- ;;; <@55,#54> goto
- 24133F30 176 ebcf jmp 129 (24133F01)
- ;;; <@60,#55> -------------------- B6 --------------------
- ;;; <@61,#55> gap
- 24133F32 178 89f8 mov eax,edi
- ;;; <@62,#63> number-tag-i
- 24133F34 180 03c0 add eax,eax
- 24133F36 182 0f8048000000 jo 260 (24133F84)
- ;;; <@64,#58> return
- 24133F3C 188 89ec mov esp,ebp
- 24133F3E 190 5d pop ebp
- 24133F3F 191 c20800 ret 0x8
- ;;; <@20,#64> -------------------- Deferred tagged-to-i --------------------
- 24133F42 194 8179ff4981a02f cmp [ecx+0xff],0x2fa08149 ;; object: 2FA08149 <Map(elements=FAST_HOLEY_ELEMENTS)>
- Deferred TaggedToI: not a heap number
- 24133F49 201 0f85ad000000 jnz 380 (24133FFC)
- 24133F4F 207 f20f104103 movsd xmm0,[ecx+0x3]
- 24133F54 212 f20f2cc8 cvttsd2si ecx,xmm0
- 24133F58 216 f20f2ac9 cvtsi2sd xmm1,ecx
- 24133F5C 220 660f2ec1 ucomisd xmm0,xmm1
- Deferred TaggedToI: lost precision
- 24133F60 224 0f8596000000 jnz 380 (24133FFC)
- Deferred TaggedToI: NaN
- 24133F66 230 0f8a90000000 jpe 380 (24133FFC)
- 24133F6C 236 e977ffffff jmp 104 (24133EE8)
- ;;; <@42,#37> -------------------- Deferred stack-check --------------------
- 24133F71 241 60 pushad
- 24133F72 242 8b75fc mov esi,[ebp+0xfc]
- 24133F75 245 33c0 xor eax,eax
- 24133F77 247 bb4069e900 mov ebx,00E96940
- 24133F7C 252 e8bf70ffff call 2412B040 ;; code: STUB, CEntryStub, minor: 1
- 24133F81 257 61 popad
- 24133F82 258 eb91 jmp 149 (24133F15)
- ;;; <@62,#63> -------------------- Deferred number-tag-i --------------------
- 24133F84 260 60 pushad
- 24133F85 261 d1f8 sar eax,1
- 24133F87 263 3500000080 xor eax, 80000000
- 24133F8C 268 f20f2ac0 cvtsi2sd xmm0,eax
- 24133F90 272 8b054c256900 mov eax,[0x69254c]
- 24133F96 278 89c1 mov ecx,eax
- 24133F98 280 83c10c add ecx,0xc
- 24133F9B 283 0f821c000000 jc 317 (24133FBD)
- 24133FA1 289 3b0d50256900 cmp ecx,[0x692550]
- 24133FA7 295 0f8710000000 ja 317 (24133FBD)
- 24133FAD 301 890d4c256900 mov [0x69254c],ecx
- 24133FB3 307 40 inc eax
- 24133FB4 308 c740ff4981a02f mov [eax+0xff],0x2fa08149 ;; object: 2FA08149 <Map(elements=FAST_HOLEY_ELEMENTS)>
- 24133FBB 315 eb17 jmp 340 (24133FD4)
- 24133FBD 317 c744241c00000000 mov [esp+0x1c],0x0
- 24133FC5 325 8b75fc mov esi,[ebp+0xfc]
- 24133FC8 328 33c0 xor eax,eax
- 24133FCA 330 bbe050e900 mov ebx,00E950E0
- 24133FCF 335 e86c70ffff call 2412B040 ;; code: STUB, CEntryStub, minor: 1
- 24133FD4 340 f20f114003 movsd [eax+0x3],xmm0
- 24133FD9 345 8944241c mov [esp+0x1c],eax
- 24133FDD 349 61 popad
- 24133FDE 350 e959ffffff jmp 188 (24133F3C)
- ;;; -------------------- Jump table --------------------
- ;;; jump table entry 0: deoptimization bailout 1.
- 24133FE3 355 e922606de8 jmp 0C80A00A ;; deoptimization bailout 1
- ;;; jump table entry 1: deoptimization bailout 2.
- 24133FE8 360 e927606de8 jmp 0C80A014 ;; deoptimization bailout 2
- ;;; jump table entry 2: deoptimization bailout 3.
- 24133FED 365 e92c606de8 jmp 0C80A01E ;; deoptimization bailout 3
- ;;; jump table entry 3: deoptimization bailout 5.
- 24133FF2 370 e93b606de8 jmp 0C80A032 ;; deoptimization bailout 5
- ;;; jump table entry 4: deoptimization bailout 6.
- 24133FF7 375 e940606de8 jmp 0C80A03C ;; deoptimization bailout 6
- ;;; jump table entry 5: deoptimization bailout 7.
- 24133FFC 380 e945606de8 jmp 0C80A046 ;; deoptimization bailout 7
- 24134001 385 90 nop
- 24134002 386 90 nop
- 24134003 387 90 nop
- 24134004 388 90 nop
- 24134005 389 90 nop
- 24134006 390 66 nop
- 24134007 391 90 nop
- ;;; Safepoint table.
- --- Raw source ---
- ( nodes ) {
- var sum = 0;
- var len = nodes.length;
- for (var i = 0; i < len; i++) {
- sum += nodes[i];
- }
- return sum;
- }
- --- Optimized code ---
- kind = OPTIMIZED_FUNCTION
- name = test1
- stack_slots = 3
- Instructions (size = 438)
- 24134200 0 55 push ebp
- 24134201 1 89e5 mov ebp,esp
- 24134203 3 56 push esi
- 24134204 4 57 push edi
- 24134205 5 83ec0c sub esp,0xc
- ;;; Store dynamic frame alignment tag for spilled doubles
- 24134208 8 c745f400000000 mov [ebp+0xf4],0x0
- ;;; <@0,#0> -------------------- B0 --------------------
- ;;; <@6,#5> context
- 2413420F 15 8b45fc mov eax,[ebp+0xfc]
- ;;; <@7,#5> gap
- 24134212 18 8945f0 mov [ebp+0xf0],eax
- ;;; <@10,#8> -------------------- B1 --------------------
- ;;; <@11,#8> gap
- 24134215 21 89c6 mov esi,eax
- ;;; <@12,#10> stack-check
- 24134217 23 3b2578386900 cmp esp,[0x693878]
- 2413421D 29 7305 jnc 36 (24134224)
- 2413421F 31 e89cc9fdff call 24110BC0 ;; code: STUB, StackCheckStub, minor: 0
- ;;; <@13,#10> gap
- 24134224 36 8b4508 mov eax,[ebp+0x8]
- ;;; <@14,#14> check-non-smi
- 24134227 39 f7c001000000 test eax,0x1
- 2413422D 45 0f843a010000 jz 365 (2413436D)
- ;;; <@16,#15> check-maps
- 24134233 51 8178ffc9c4a02f cmp [eax+0xff],0x2fa0c4c9 ;; object: 2FA0C4C9 <Map(elements=FAST_ELEMENTS)>
- 2413423A 58 0f841a000000 jz 90 (2413425A)
- 24134240 64 8178ff41c5a02f cmp [eax+0xff],0x2fa0c541 ;; object: 2FA0C541 <Map(elements=FAST_SMI_ELEMENTS)>
- 24134247 71 0f840d000000 jz 90 (2413425A)
- 2413424D 77 8178ff91c5a02f cmp [eax+0xff],0x2fa0c591 ;; object: 2FA0C591 <Map(elements=FAST_DOUBLE_ELEMENTS)>
- 24134254 84 0f8518010000 jnz 370 (24134372)
- ;;; <@18,#16> load-named-field
- 2413425A 90 8b480b mov ecx,[eax+0xb]
- ;;; <@19,#16> gap
- 2413425D 93 89ca mov edx,ecx
- ;;; <@20,#65> tagged-to-i
- 2413425F 95 f6c201 test_b dl,0x1
- 24134262 98 0f8564000000 jnz 204 (241342CC)
- 24134268 104 d1fa sar edx,1
- ;;; <@22,#44> check-maps
- 2413426A 106 8178ff41c5a02f cmp [eax+0xff],0x2fa0c541 ;; object: 2FA0C541 <Map(elements=FAST_SMI_ELEMENTS)>
- 24134271 113 0f8500010000 jnz 375 (24134377)
- ;;; <@24,#45> load-named-field
- 24134277 119 8b5807 mov ebx,[eax+0x7]
- ;;; <@26,#46> load-named-field
- 2413427A 122 8b700b mov esi,[eax+0xb]
- ;;; <@28,#68> smi-untag
- 2413427D 125 d1fe sar esi,1
- ;;; <@30,#27> gap
- 2413427F 127 c745ec00000000 mov [ebp+0xec],0x0
- 24134286 134 33ff xor edi,edi
- ;;; <@32,#28> -------------------- B2 (loop header) --------------------
- ;;; <@35,#31> cmp-id-and-branch
- 24134288 136 3bfa cmp edi,edx
- 2413428A 138 0f8d2b000000 jnl 187 (241342BB)
- ;;; <@40,#38> -------------------- B4 --------------------
- ;;; <@42,#40> stack-check
- 24134290 144 3b2578386900 cmp esp,[0x693878]
- 24134296 150 0f825f000000 jc 251 (241342FB)
- ;;; <@44,#47> bounds-check
- 2413429C 156 3bfe cmp edi,esi
- 2413429E 158 0f83d8000000 jnc 380 (2413437C)
- ;;; <@46,#48> load-keyed
- 241342A4 164 8b44bb07 mov eax,[ebx+edi*4+0x7]
- ;;; <@48,#69> smi-untag
- 241342A8 168 d1f8 sar eax,1
- ;;; <@50,#49> add-i
- 241342AA 170 0345ec add eax,[ebp+0xec]
- 241342AD 173 0f80ce000000 jo 385 (24134381)
- ;;; <@52,#54> add-i
- 241342B3 179 83c701 add edi,0x1
- ;;; <@54,#57> gap
- 241342B6 182 8945ec mov [ebp+0xec],eax
- ;;; <@55,#57> goto
- 241342B9 185 ebcd jmp 136 (24134288)
- ;;; <@60,#58> -------------------- B6 --------------------
- ;;; <@61,#58> gap
- 241342BB 187 8b45ec mov eax,[ebp+0xec]
- ;;; <@62,#67> number-tag-i
- 241342BE 190 03c0 add eax,eax
- 241342C0 192 0f8048000000 jo 270 (2413430E)
- ;;; <@64,#61> return
- 241342C6 198 89ec mov esp,ebp
- 241342C8 200 5d pop ebp
- 241342C9 201 c20800 ret 0x8
- ;;; <@20,#65> -------------------- Deferred tagged-to-i --------------------
- 241342CC 204 817aff4981a02f cmp [edx+0xff],0x2fa08149 ;; object: 2FA08149 <Map(elements=FAST_HOLEY_ELEMENTS)>
- Deferred TaggedToI: not a heap number
- 241342D3 211 0f85ad000000 jnz 390 (24134386)
- 241342D9 217 f20f104203 movsd xmm0,[edx+0x3]
- 241342DE 222 f20f2cd0 cvttsd2si edx,xmm0
- 241342E2 226 f20f2aca cvtsi2sd xmm1,edx
- 241342E6 230 660f2ec1 ucomisd xmm0,xmm1
- Deferred TaggedToI: lost precision
- 241342EA 234 0f8596000000 jnz 390 (24134386)
- Deferred TaggedToI: NaN
- 241342F0 240 0f8a90000000 jpe 390 (24134386)
- 241342F6 246 e96fffffff jmp 106 (2413426A)
- ;;; <@42,#40> -------------------- Deferred stack-check --------------------
- 241342FB 251 60 pushad
- 241342FC 252 8b75fc mov esi,[ebp+0xfc]
- 241342FF 255 33c0 xor eax,eax
- 24134301 257 bb4069e900 mov ebx,00E96940
- 24134306 262 e8356dffff call 2412B040 ;; code: STUB, CEntryStub, minor: 1
- 2413430B 267 61 popad
- 2413430C 268 eb8e jmp 156 (2413429C)
- ;;; <@62,#67> -------------------- Deferred number-tag-i --------------------
- 2413430E 270 60 pushad
- 2413430F 271 d1f8 sar eax,1
- 24134311 273 3500000080 xor eax, 80000000
- 24134316 278 f20f2ac0 cvtsi2sd xmm0,eax
- 2413431A 282 8b054c256900 mov eax,[0x69254c]
- 24134320 288 89c1 mov ecx,eax
- 24134322 290 83c10c add ecx,0xc
- 24134325 293 0f821c000000 jc 327 (24134347)
- 2413432B 299 3b0d50256900 cmp ecx,[0x692550]
- 24134331 305 0f8710000000 ja 327 (24134347)
- 24134337 311 890d4c256900 mov [0x69254c],ecx
- 2413433D 317 40 inc eax
- 2413433E 318 c740ff4981a02f mov [eax+0xff],0x2fa08149 ;; object: 2FA08149 <Map(elements=FAST_HOLEY_ELEMENTS)>
- 24134345 325 eb17 jmp 350 (2413435E)
- 24134347 327 c744241c00000000 mov [esp+0x1c],0x0
- 2413434F 335 8b75fc mov esi,[ebp+0xfc]
- 24134352 338 33c0 xor eax,eax
- 24134354 340 bbe050e900 mov ebx,00E950E0
- 24134359 345 e8e26cffff call 2412B040 ;; code: STUB, CEntryStub, minor: 1
- 2413435E 350 f20f114003 movsd [eax+0x3],xmm0
- 24134363 355 8944241c mov [esp+0x1c],eax
- 24134367 359 61 popad
- 24134368 360 e959ffffff jmp 198 (241342C6)
- ;;; -------------------- Jump table --------------------
- ;;; jump table entry 0: deoptimization bailout 1.
- 2413436D 365 e9985c6de8 jmp 0C80A00A ;; deoptimization bailout 1
- ;;; jump table entry 1: deoptimization bailout 2.
- 24134372 370 e99d5c6de8 jmp 0C80A014 ;; deoptimization bailout 2
- ;;; jump table entry 2: deoptimization bailout 3.
- 24134377 375 e9a25c6de8 jmp 0C80A01E ;; deoptimization bailout 3
- ;;; jump table entry 3: deoptimization bailout 5.
- 2413437C 380 e9b15c6de8 jmp 0C80A032 ;; deoptimization bailout 5
- ;;; jump table entry 4: deoptimization bailout 6.
- 24134381 385 e9b65c6de8 jmp 0C80A03C ;; deoptimization bailout 6
- ;;; jump table entry 5: deoptimization bailout 7.
- 24134386 390 e9bb5c6de8 jmp 0C80A046 ;; deoptimization bailout 7
- 2413438B 395 90 nop
- 2413438C 396 90 nop
- 2413438D 397 90 nop
- 2413438E 398 90 nop
- 2413438F 399 90 nop
- ;;; Safepoint table.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement