profiling.diff

Created Diff never expires
469 removals
408 lines
499 additions
435 lines
--- Raw source ---
( x, y ) {
return x * y;
}


--- Optimized code ---
optimization_id = 4
source_position = 108
kind = TURBOFAN
name = multiply
stack_slots = 6
compiler = turbofan
address = 0x39ee000dadf9

Instructions (size = 328)
0x7f23b4a86f80 0 488d1df9ffffff REX.W leaq rbx,[rip+0xfffffff9]
0x7f23b4a86f87 7 483bd9 REX.W cmpq rbx,rcx
0x7f23b4a86f8a a 740d jz 0x7f23b4a86f99 <+0x19>
0x7f23b4a86f8c c ba86000000 movl rdx,0x86
0x7f23b4a86f91 11 41ff9578530000 call [r13+0x5378]
0x7f23b4a86f98 18 cc int3l
0x7f23b4a86f99 19 8b59f4 movl rbx,[rcx-0xc]
0x7f23b4a86f9c 1c 4903de REX.W addq rbx,r14
0x7f23b4a86f9f 1f f6431a20 testb [rbx+0x1a],0x20
0x7f23b4a86fa3 23 0f85571d06a0 jnz 0x7f2354ae8d00 (CompileLazyDeoptimizedCode) ;; near builtin entry
0x7f23b4a86fa9 29 55 push rbp
0x7f23b4a86faa 2a 4889e5 REX.W movq rbp,rsp
0x7f23b4a86fad 2d 56 push rsi
0x7f23b4a86fae 2e 57 push rdi
0x7f23b4a86faf 2f 50 push rax
0x7f23b4a86fb0 30 4883ec08 REX.W subq rsp,0x8
0x7f23b4a86fb4 34 488975e0 REX.W movq [rbp-0x20],rsi
0x7f23b4a86fb8 38 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f23b4a86fbc 3c 0f867b000000 jna 0x7f23b4a8703d <+0xbd>
0x7f23b4a86fc2 42 488b4d18 REX.W movq rcx,[rbp+0x18]
0x7f23b4a86fc6 46 f6c101 testb rcx,0x1
0x7f23b4a86fc9 49 0f85e4000000 jnz 0x7f23b4a870b3 <+0x133>
0x7f23b4a86fcf 4f 488bf9 REX.W movq rdi,rcx
0x7f23b4a86fd2 52 d1ff sarl rdi, 1
0x7f23b4a86fd4 54 4c8b4520 REX.W movq r8,[rbp+0x20]
0x7f23b4a86fd8 58 41f6c001 testb r8,0x1
0x7f23b4a86fdc 5c 0f85d5000000 jnz 0x7f23b4a870b7 <+0x137>
0x7f23b4a86fe2 62 4d8bc8 REX.W movq r9,r8
0x7f23b4a86fe5 65 41d1f9 sarl r9, 1
0x7f23b4a86fe8 68 448bdf movl r11,rdi
0x7f23b4a86feb 6b 4531e4 xorl r12,r12
0x7f23b4a86fee 6e 450fafd9 imull r11,r9
0x7f23b4a86ff2 72 410f90c4 setol r12l
0x7f23b4a86ff6 76 4585e4 testl r12,r12
0x7f23b4a86ff9 79 0f85bc000000 jnz 0x7f23b4a870bb <+0x13b>
0x7f23b4a86fff 7f 4585db testl r11,r11
0x7f23b4a87002 82 0f850c000000 jnz 0x7f23b4a87014 <+0x94>
0x7f23b4a87008 88 440bcf orl r9,rdi
0x7f23b4a8700b 8b 4585c9 testl r9,r9
0x7f23b4a8700e 8e 0f8cab000000 jl 0x7f23b4a870bf <+0x13f>
0x7f23b4a87014 94 498bcb REX.W movq rcx,r11
0x7f23b4a87017 97 4103cb addl rcx,r11
0x7f23b4a8701a 9a 0f8046000000 jo 0x7f23b4a87066 <+0xe6>
0x7f23b4a87020 a0 488bc1 REX.W movq rax,rcx
0x7f23b4a87023 a3 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f23b4a87027 a7 488be5 REX.W movq rsp,rbp
0x7f23b4a8702a aa 5d pop rbp
0x7f23b4a8702b ab 4883f903 REX.W cmpq rcx,0x3
0x7f23b4a8702f af 7f03 jg 0x7f23b4a87034 <+0xb4>
0x7f23b4a87031 b1 c21800 ret 0x18
0x7f23b4a87034 b4 415a pop r10
0x7f23b4a87036 b6 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f23b4a8703a ba 4152 push r10
0x7f23b4a8703c bc c3 retl
0x7f23b4a8703d bd b930000000 movl rcx,0x30
0x7f23b4a87042 c2 51 push rcx
0x7f23b4a87043 c3 48bbe02a6856237f0000 REX.W movq rbx,0x7f2356682ae0 ;; external reference (Runtime::StackGuardWithGap)
0x7f23b4a8704d cd b801000000 movl rax,0x1
0x7f23b4a87052 d2 48be893c0c00ee390000 REX.W movq rsi,0x39ee000c3c89 ;; object: 0x39ee000c3c89 <NativeContext[285]>
0x7f23b4a8705c dc e89f4e3fa0 call 0x7f2354e7bf00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f23b4a87061 e1 e95cffffff jmp 0x7f23b4a86fc2 <+0x42>
0x7f23b4a87066 e6 c4c1032ac3 vcvtlsi2sd xmm0,xmm15,r11
0x7f23b4a8706b eb 498b4d48 REX.W movq rcx,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f23b4a8706f ef c5fb1145e0 vmovsd [rbp-0x20],xmm0
0x7f23b4a87074 f4 488d790c REX.W leaq rdi,[rcx+0xc]
0x7f23b4a87078 f8 49397d50 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),rdi
0x7f23b4a8707c fc 0f8713000000 ja 0x7f23b4a87095 <+0x115>
0x7f23b4a87082 102 ba0c000000 movl rdx,0xc
0x7f23b4a87087 107 e8f42d06a0 call 0x7f2354ae9e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f23b4a8708c 10c 488d48ff REX.W leaq rcx,[rax-0x1]
0x7f23b4a87090 110 c5fb1045e0 vmovsd xmm0,[rbp-0x20]
0x7f23b4a87095 115 488d790c REX.W leaq rdi,[rcx+0xc]
0x7f23b4a87099 119 49897d48 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),rdi
0x7f23b4a8709d 11d 4883c101 REX.W addq rcx,0x1
0x7f23b4a870a1 121 c741ffb1070000 movl [rcx-0x1],0x7b1
0x7f23b4a870a8 128 c5fb114103 vmovsd [rcx+0x3],xmm0
0x7f23b4a870ad 12d e96effffff jmp 0x7f23b4a87020 <+0xa0>
0x7f23b4a870b2 132 90 nop
0x7f23b4a870b3 133 41ff55d0 call [r13-0x30]
0x7f23b4a870b7 137 41ff55d0 call [r13-0x30]
0x7f23b4a870bb 13b 41ff55d0 call [r13-0x30]
0x7f23b4a870bf 13f 41ff55d0 call [r13-0x30]
0x7f23b4a870c3 143 41ff55d8 call [r13-0x28]
0x7f23b4a870c7 147 90 nop

Inlined functions (count = 0)

Deoptimization Input Data (deopt points = 5)
index bytecode-offset node-id pc
0 2 31 NA
1 2 36 NA
2 2 43 NA
3 2 49 NA
4 -1 23 e1

Safepoints (entries = 2, byte size = 20)
0x7f23b4a87061 e1 slots (sp->fp): 10000000 deopt 4 trampoline: 143
0x7f23b4a8708c 10c slots (sp->fp): 00000000

RelocInfo (size = 11)
0x7f23b4a86fa5 near builtin entry
0x7f23b4a87045 external reference (Runtime::StackGuardWithGap) (0x7f2356682ae0)
0x7f23b4a87054 full embedded object (0x39ee000c3c89 <NativeContext[285]>)
0x7f23b4a8705d near builtin entry
0x7f23b4a87088 near builtin entry

--- End code ---
--- Raw source ---
--- Raw source ---
( n ) {
( n ) {
return n === 1 ? n : n * factorial( --n );
return equal( n, 1 ) ? n : multiply( n, factorial( --n ) );
}
}




--- Optimized code ---
--- Optimized code ---
optimization_id = 1
optimization_id = 3
source_position = 18
source_position = 18
kind = TURBOFAN
kind = TURBOFAN
name = factorial
name = factorial
stack_slots = 10
stack_slots = 10
compiler = turbofan
compiler = turbofan
address = 0x338f000dac11
address = 0x39ee000dafe1


Instructions (size = 564)
Instructions (size = 564)
0x7f72d5c06340 0 488d1df9ffffff REX.W leaq rbx,[rip+0xfffffff9]
0x7f23b4a87100 0 488d1df9ffffff REX.W leaq rbx,[rip+0xfffffff9]
0x7f72d5c06347 7 483bd9 REX.W cmpq rbx,rcx
0x7f23b4a87107 7 483bd9 REX.W cmpq rbx,rcx
0x7f72d5c0634a a 740d jz 0x7f72d5c06359 <+0x19>
0x7f23b4a8710a a 740d jz 0x7f23b4a87119 <+0x19>
0x7f72d5c0634c c ba86000000 movl rdx,0x86
0x7f23b4a8710c c ba86000000 movl rdx,0x86
0x7f72d5c06351 11 41ff9578530000 call [r13+0x5378]
0x7f23b4a87111 11 41ff9578530000 call [r13+0x5378]
0x7f72d5c06358 18 cc int3l
0x7f23b4a87118 18 cc int3l
0x7f72d5c06359 19 8b59f4 movl rbx,[rcx-0xc]
0x7f23b4a87119 19 8b59f4 movl rbx,[rcx-0xc]
0x7f72d5c0635c 1c 4903de REX.W addq rbx,r14
0x7f23b4a8711c 1c 4903de REX.W addq rbx,r14
0x7f72d5c0635f 1f f6431a20 testb [rbx+0x1a],0x20
0x7f23b4a8711f 1f f6431a20 testb [rbx+0x1a],0x20
0x7f72d5c06363 23 0f8597c904a0 jnz 0x7f7275c52d00 (CompileLazyDeoptimizedCode) ;; near builtin entry
0x7f23b4a87123 23 0f85d71b06a0 jnz 0x7f2354ae8d00 (CompileLazyDeoptimizedCode) ;; near builtin entry
0x7f72d5c06369 29 55 push rbp
0x7f23b4a87129 29 55 push rbp
0x7f72d5c0636a 2a 4889e5 REX.W movq rbp,rsp
0x7f23b4a8712a 2a 4889e5 REX.W movq rbp,rsp
0x7f72d5c0636d 2d 56 push rsi
0x7f23b4a8712d 2d 56 push rsi
0x7f72d5c0636e 2e 57 push rdi
0x7f23b4a8712e 2e 57 push rdi
0x7f72d5c0636f 2f 50 push rax
0x7f23b4a8712f 2f 50 push rax
0x7f72d5c06370 30 4883ec28 REX.W subq rsp,0x28
0x7f23b4a87130 30 4883ec28 REX.W subq rsp,0x28
0x7f72d5c06374 34 488975e0 REX.W movq [rbp-0x20],rsi
0x7f23b4a87134 34 488975e0 REX.W movq [rbp-0x20],rsi
0x7f72d5c06378 38 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f23b4a87138 38 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f72d5c0637c 3c 0f86f4000000 jna 0x7f72d5c06476 <+0x136>
0x7f23b4a8713c 3c 0f86f4000000 jna 0x7f23b4a87236 <+0x136>
0x7f72d5c06382 42 488b4518 REX.W movq rax,[rbp+0x18]
0x7f23b4a87142 42 488b4518 REX.W movq rax,[rbp+0x18]
0x7f72d5c06386 46 a801 test al,0x1
0x7f23b4a87146 46 a801 test al,0x1
0x7f72d5c06388 48 0f85c9010000 jnz 0x7f72d5c06557 <+0x217>
0x7f23b4a87148 48 0f85c9010000 jnz 0x7f23b4a87317 <+0x217>
0x7f72d5c0638e 4e 83f802 cmpl rax,0x2
0x7f23b4a8714e 4e 83f802 cmpl rax,0x2
0x7f72d5c06391 51 0f84dd000000 jz 0x7f72d5c06474 <+0x134>
0x7f23b4a87151 51 0f84dd000000 jz 0x7f23b4a87234 <+0x134>
0x7f72d5c06397 57 488bc8 REX.W movq rcx,rax
0x7f23b4a87157 57 488bc8 REX.W movq rcx,rax
0x7f72d5c0639a 5a d1f9 sarl rcx, 1
0x7f23b4a8715a 5a d1f9 sarl rcx, 1
0x7f72d5c0639c 5c 4c8bc1 REX.W movq r8,rcx
0x7f23b4a8715c 5c 4c8bc1 REX.W movq r8,rcx
0x7f72d5c0639f 5f 4183e801 subl r8,0x1
0x7f23b4a8715f 5f 4183e801 subl r8,0x1
0x7f72d5c063a3 63 0f80b2010000 jo 0x7f72d5c0655b <+0x21b>
0x7f23b4a87163 63 0f80b2010000 jo 0x7f23b4a8731b <+0x21b>
0x7f72d5c063a9 69 48bfe9a80d008f330000 REX.W movq rdi,0x338f000da8e9 ;; object: 0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>
0x7f23b4a87169 69 48bfc1a90d00ee390000 REX.W movq rdi,0x39ee000da9c1 ;; object: 0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>
0x7f72d5c063b3 73 8b7713 movl rsi,[rdi+0x13]
0x7f23b4a87173 73 8b7713 movl rsi,[rdi+0x13]
0x7f72d5c063b6 76 4903f6 REX.W addq rsi,r14
0x7f23b4a87176 76 4903f6 REX.W addq rsi,r14
0x7f72d5c063b9 79 48894dd0 REX.W movq [rbp-0x30],rcx
0x7f23b4a87179 79 48894dd0 REX.W movq [rbp-0x30],rcx
0x7f72d5c063bd 7d 4c8945d8 REX.W movq [rbp-0x28],r8
0x7f23b4a8717d 7d 4c8945d8 REX.W movq [rbp-0x28],r8
0x7f72d5c063c1 81 4d8bc8 REX.W movq r9,r8
0x7f23b4a87181 81 4d8bc8 REX.W movq r9,r8
0x7f72d5c063c4 84 4503c8 addl r9,r8
0x7f23b4a87184 84 4503c8 addl r9,r8
0x7f72d5c063c7 87 0f80d2000000 jo 0x7f72d5c0649f <+0x15f>
0x7f23b4a87187 87 0f80d2000000 jo 0x7f23b4a8725f <+0x15f>
0x7f72d5c063cd 8d 4151 push r9
0x7f23b4a8718d 8d 4151 push r9
0x7f72d5c063cf 8f 49b9293c0c008f330000 REX.W movq r9,0x338f000c3c29 ;; object: 0x338f000c3c29 <JSGlobalProxy>
0x7f23b4a8718f 8f 49b9293c0c00ee390000 REX.W movq r9,0x39ee000c3c29 ;; object: 0x39ee000c3c29 <JSGlobalProxy>
0x7f72d5c063d9 99 4151 push r9
0x7f23b4a87199 99 4151 push r9
0x7f72d5c063db 9b 498d5661 REX.W leaq rdx,[r14+0x61]
0x7f23b4a8719b 9b 498d5661 REX.W leaq rdx,[r14+0x61]
0x7f72d5c063df 9f b802000000 movl rax,0x2
0x7f23b4a8719f 9f b802000000 movl rax,0x2
0x7f72d5c063e4 a4 4c8bc8 REX.W movq r9,rax
0x7f23b4a871a4 a4 4c8bc8 REX.W movq r9,rax
0x7f72d5c063e7 a7 3b7713 cmpl rsi,[rdi+0x13]
0x7f23b4a871a7 a7 3b7713 cmpl rsi,[rdi+0x13]
0x7f72d5c063ea aa 740d jz 0x7f72d5c063f9 <+0xb9>
0x7f23b4a871aa aa 740d jz 0x7f23b4a871b9 <+0xb9>
0x7f72d5c063ec ac ba88000000 movl rdx,0x88
0x7f23b4a871ac ac ba88000000 movl rdx,0x88
0x7f72d5c063f1 b1 41ff9578530000 call [r13+0x5378]
0x7f23b4a871b1 b1 41ff9578530000 call [r13+0x5378]
0x7f72d5c063f8 b8 cc int3l
0x7f23b4a871b8 b8 cc int3l
0x7f72d5c063f9 b9 49ba00007f5e727f0000 REX.W movq r10,0x7f725e7f0000 ;; external reference (GetProcessWideCodePointerTable())
0x7f23b4a871b9 b9 49ba0000ff28237f0000 REX.W movq r10,0x7f2328ff0000 ;; external reference (GetProcessWideCodePointerTable())
0x7f72d5c06403 c3 8b4f0b movl rcx,[rdi+0xb]
0x7f23b4a871c3 c3 8b4f0b movl rcx,[rdi+0xb]
0x7f72d5c06406 c6 c1e90c shrl rcx, 12
0x7f23b4a871c6 c6 c1e90c shrl rcx, 12
0x7f72d5c06409 c9 c1e104 shll rcx, 4
0x7f23b4a871c9 c9 c1e104 shll rcx, 4
0x7f72d5c0640c cc 498b0c0a REX.W movq rcx,[r10+rcx*1]
0x7f23b4a871cc cc 498b0c0a REX.W movq rcx,[r10+rcx*1]
0x7f72d5c06410 d0 ffd1 call rcx
0x7f23b4a871d0 d0 ffd1 call rcx
0x7f72d5c06412 d2 a801 test al,0x1
0x7f23b4a871d2 d2 a801 test al,0x1
0x7f72d5c06414 d4 0f8545010000 jnz 0x7f72d5c0655f <+0x21f>
0x7f23b4a871d4 d4 0f8545010000 jnz 0x7f23b4a8731f <+0x21f>
0x7f72d5c0641a da 488bc8 REX.W movq rcx,rax
0x7f23b4a871da da 488bc8 REX.W movq rcx,rax
0x7f72d5c0641d dd d1f9 sarl rcx, 1
0x7f23b4a871dd dd d1f9 sarl rcx, 1
0x7f72d5c0641f df 448b45d0 movl r8,[rbp-0x30]
0x7f23b4a871df df 448b45d0 movl r8,[rbp-0x30]
0x7f72d5c06423 e3 4533c9 xorl r9,r9
0x7f23b4a871e3 e3 4533c9 xorl r9,r9
0x7f72d5c06426 e6 440fafc1 imull r8,rcx
0x7f23b4a871e6 e6 440fafc1 imull r8,rcx
0x7f72d5c0642a ea 410f90c1 setol r9l
0x7f23b4a871ea ea 410f90c1 setol r9l
0x7f72d5c0642e ee 4585c9 testl r9,r9
0x7f23b4a871ee ee 4585c9 testl r9,r9
0x7f72d5c06431 f1 0f852c010000 jnz 0x7f72d5c06563 <+0x223>
0x7f23b4a871f1 f1 0f852c010000 jnz 0x7f23b4a87323 <+0x223>
0x7f72d5c06437 f7 4585c0 testl r8,r8
0x7f23b4a871f7 f7 4585c0 testl r8,r8
0x7f72d5c0643a fa 0f850b000000 jnz 0x7f72d5c0644b <+0x10b>
0x7f23b4a871fa fa 0f850b000000 jnz 0x7f23b4a8720b <+0x10b>
0x7f72d5c06440 100 0b4dd0 orl rcx,[rbp-0x30]
0x7f23b4a87200 100 0b4dd0 orl rcx,[rbp-0x30]
0x7f72d5c06443 103 85c9 testl rcx,rcx
0x7f23b4a87203 103 85c9 testl rcx,rcx
0x7f72d5c06445 105 0f8c1c010000 jl 0x7f72d5c06567 <+0x227>
0x7f23b4a87205 105 0f8c1c010000 jl 0x7f23b4a87327 <+0x227>
0x7f72d5c0644b 10b 498bc8 REX.W movq rcx,r8
0x7f23b4a8720b 10b 498bc8 REX.W movq rcx,r8
0x7f72d5c0644e 10e 4103c8 addl rcx,r8
0x7f23b4a8720e 10e 4103c8 addl rcx,r8
0x7f72d5c06451 111 0f80b3000000 jo 0x7f72d5c0650a <+0x1ca>
0x7f23b4a87211 111 0f80b3000000 jo 0x7f23b4a872ca <+0x1ca>
0x7f72d5c06457 117 488bc1 REX.W movq rax,rcx
0x7f23b4a87217 117 488bc1 REX.W movq rax,rcx
0x7f72d5c0645a 11a 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f23b4a8721a 11a 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f72d5c0645e 11e 488be5 REX.W movq rsp,rbp
0x7f23b4a8721e 11e 488be5 REX.W movq rsp,rbp
0x7f72d5c06461 121 5d pop rbp
0x7f23b4a87221 121 5d pop rbp
0x7f72d5c06462 122 4883f902 REX.W cmpq rcx,0x2
0x7f23b4a87222 122 4883f902 REX.W cmpq rcx,0x2
0x7f72d5c06466 126 7f03 jg 0x7f72d5c0646b <+0x12b>
0x7f23b4a87226 126 7f03 jg 0x7f23b4a8722b <+0x12b>
0x7f72d5c06468 128 c21000 ret 0x10
0x7f23b4a87228 128 c21000 ret 0x10
0x7f72d5c0646b 12b 415a pop r10
0x7f23b4a8722b 12b 415a pop r10
0x7f72d5c0646d 12d 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f23b4a8722d 12d 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f72d5c06471 131 4152 push r10
0x7f23b4a87231 131 4152 push r10
0x7f72d5c06473 133 c3 retl
0x7f23b4a87233 133 c3 retl
0x7f72d5c06474 134 ebe4 jmp 0x7f72d5c0645a <+0x11a>
0x7f23b4a87234 134 ebe4 jmp 0x7f23b4a8721a <+0x11a>
0x7f72d5c06476 136 b920000000 movl rcx,0x20
0x7f23b4a87236 136 b9e0000000 movl rcx,0xe0
0x7f72d5c0647b 13b 51 push rcx
0x7f23b4a8723b 13b 51 push rcx
0x7f72d5c0647c 13c 48bbe0ca7e77727f0000 REX.W movq rbx,0x7f72777ecae0 ;; external reference (Runtime::StackGuardWithGap)
0x7f23b4a8723c 13c 48bbe02a6856237f0000 REX.W movq rbx,0x7f2356682ae0 ;; external reference (Runtime::StackGuardWithGap)
0x7f72d5c06486 146 b801000000 movl rax,0x1
0x7f23b4a87246 146 b801000000 movl rax,0x1
0x7f72d5c0648b 14b 48be893c0c008f330000 REX.W movq rsi,0x338f000c3c89 ;; object: 0x338f000c3c89 <NativeContext[285]>
0x7f23b4a8724b 14b 48be893c0c00ee390000 REX.W movq rsi,0x39ee000c3c89 ;; object: 0x39ee000c3c89 <NativeContext[285]>
0x7f72d5c06495 155 e866fa3da0 call 0x7f7275fe5f00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f23b4a87255 155 e8a64c3fa0 call 0x7f2354e7bf00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f72d5c0649a 15a e9e3feffff jmp 0x7f72d5c06382 <+0x42>
0x7f23b4a8725a 15a e9e3feffff jmp 0x7f23b4a87142 <+0x42>
0x7f72d5c0649f 15f c4c1032ac0 vcvtlsi2sd xmm0,xmm15,r8
0x7f23b4a8725f 15f c4c1032ac0 vcvtlsi2sd xmm0,xmm15,r8
0x7f72d5c064a4 164 4d8b4d48 REX.W movq r9,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f23b4a87264 164 4d8b4d48 REX.W movq r9,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f72d5c064a8 168 488975c8 REX.W movq [rbp-0x38],rsi
0x7f23b4a87268 168 488975c8 REX.W movq [rbp-0x38],rsi
0x7f72d5c064ac 16c c5fb1145c0 vmovsd [rbp-0x40],xmm0
0x7f23b4a8726c 16c c5fb1145c0 vmovsd [rbp-0x40],xmm0
0x7f72d5c064b1 171 4d8d590c REX.W leaq r11,[r9+0xc]
0x7f23b4a87271 171 4d8d590c REX.W leaq r11,[r9+0xc]
0x7f72d5c064b5 175 4d395d50 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),r11
0x7f23b4a87275 175 4d395d50 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),r11
0x7f72d5c064b9 179 0f872c000000 ja 0x7f72d5c064eb <+0x1ab>
0x7f23b4a87279 179 0f872c000000 ja 0x7f23b4a872ab <+0x1ab>
0x7f72d5c064bf 17f ba0c000000 movl rdx,0xc
0x7f23b4a8727f 17f ba0c000000 movl rdx,0xc
0x7f72d5c064c4 184 e8b7d904a0 call 0x7f7275c53e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f23b4a87284 184 e8f72b06a0 call 0x7f2354ae9e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f72d5c064c9 189 4c8d48ff REX.W leaq r9,[rax-0x1]
0x7f23b4a87289 189 4c8d48ff REX.W leaq r9,[rax-0x1]
0x7f72d5c064cd 18d 4c8b45d8 REX.W movq r8,[rbp-0x28]
0x7f23b4a8728d 18d 4c8b45d8 REX.W movq r8,[rbp-0x28]
0x7f72d5c064d1 191 488b4518 REX.W movq rax,[rbp+0x18]
0x7f23b4a87291 191 488b4518 REX.W movq rax,[rbp+0x18]
0x7f72d5c064d5 195 8b4dd0 movl rcx,[rbp-0x30]
0x7f23b4a87295 195 8b4dd0 movl rcx,[rbp-0x30]
0x7f72d5c064d8 198 48bfe9a80d008f330000 REX.W movq rdi,0x338f000da8e9 ;; object: 0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>
0x7f23b4a87298 198 48bfc1a90d00ee390000 REX.W movq rdi,0x39ee000da9c1 ;; object: 0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>
0x7f72d5c064e2 1a2 488b75c8 REX.W movq rsi,[rbp-0x38]
0x7f23b4a872a2 1a2 488b75c8 REX.W movq rsi,[rbp-0x38]
0x7f72d5c064e6 1a6 c5fb1045c0 vmovsd xmm0,[rbp-0x40]
0x7f23b4a872a6 1a6 c5fb1045c0 vmovsd xmm0,[rbp-0x40]
0x7f72d5c064eb 1ab 4d8d590c REX.W leaq r11,[r9+0xc]
0x7f23b4a872ab 1ab 4d8d590c REX.W leaq r11,[r9+0xc]
0x7f72d5c064ef 1af 4d895d48 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),r11
0x7f23b4a872af 1af 4d895d48 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),r11
0x7f72d5c064f3 1b3 4983c101 REX.W addq r9,0x1
0x7f23b4a872b3 1b3 4983c101 REX.W addq r9,0x1
0x7f72d5c064f7 1b7 41c741ffb1070000 movl [r9-0x1],0x7b1
0x7f23b4a872b7 1b7 41c741ffb1070000 movl [r9-0x1],0x7b1
0x7f72d5c064ff 1bf c4c17b114103 vmovsd [r9+0x3],xmm0
0x7f23b4a872bf 1bf c4c17b114103 vmovsd [r9+0x3],xmm0
0x7f72d5c06505 1c5 e9c3feffff jmp 0x7f72d5c063cd <+0x8d>
0x7f23b4a872c5 1c5 e9c3feffff jmp 0x7f23b4a8718d <+0x8d>
0x7f72d5c0650a 1ca c4c1032ac0 vcvtlsi2sd xmm0,xmm15,r8
0x7f23b4a872ca 1ca c4c1032ac0 vcvtlsi2sd xmm0,xmm15,r8
0x7f72d5c0650f 1cf 498b4d48 REX.W movq rcx,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f23b4a872cf 1cf 498b4d48 REX.W movq rcx,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f72d5c06513 1d3 c5fb1145e0 vmovsd [rbp-0x20],xmm0
0x7f23b4a872d3 1d3 c5fb1145e0 vmovsd [rbp-0x20],xmm0
0x7f72d5c06518 1d8 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f23b4a872d8 1d8 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f72d5c0651c 1dc 4d394550 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),r8
0x7f23b4a872dc 1dc 4d394550 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),r8
0x7f72d5c06520 1e0 0f8713000000 ja 0x7f72d5c06539 <+0x1f9>
0x7f23b4a872e0 1e0 0f8713000000 ja 0x7f23b4a872f9 <+0x1f9>
0x7f72d5c06526 1e6 ba0c000000 movl rdx,0xc
0x7f23b4a872e6 1e6 ba0c000000 movl rdx,0xc
0x7f72d5c0652b 1eb e850d904a0 call 0x7f7275c53e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f23b4a872eb 1eb e8902b06a0 call 0x7f2354ae9e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f72d5c06530 1f0 488d48ff REX.W leaq rcx,[rax-0x1]
0x7f23b4a872f0 1f0 488d48ff REX.W leaq rcx,[rax-0x1]
0x7f72d5c06534 1f4 c5fb1045e0 vmovsd xmm0,[rbp-0x20]
0x7f23b4a872f4 1f4 c5fb1045e0 vmovsd xmm0,[rbp-0x20]
0x7f72d5c06539 1f9 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f23b4a872f9 1f9 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f72d5c0653d 1fd 4d894548 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),r8
0x7f23b4a872fd 1fd 4d894548 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),r8
0x7f72d5c06541 201 4883c101 REX.W addq rcx,0x1
0x7f23b4a87301 201 4883c101 REX.W addq rcx,0x1
0x7f72d5c06545 205 c741ffb1070000 movl [rcx-0x1],0x7b1
0x7f23b4a87305 205 c741ffb1070000 movl [rcx-0x1],0x7b1
0x7f72d5c0654c 20c c5fb114103 vmovsd [rcx+0x3],xmm0
0x7f23b4a8730c 20c c5fb114103 vmovsd [rcx+0x3],xmm0
0x7f72d5c06551 211 e901ffffff jmp 0x7f72d5c06457 <+0x117>
0x7f23b4a87311 211 e901ffffff jmp 0x7f23b4a87217 <+0x117>
0x7f72d5c06556 216 90 nop
0x7f23b4a87316 216 90 nop
0x7f72d5c06557 217 41ff55d0 call [r13-0x30]
0x7f23b4a87317 217 41ff55d0 call [r13-0x30]
0x7f72d5c0655b 21b 41ff55d0 call [r13-0x30]
0x7f23b4a8731b 21b 41ff55d0 call [r13-0x30]
0x7f72d5c0655f 21f 41ff55d0 call [r13-0x30]
0x7f23b4a8731f 21f 41ff55d0 call [r13-0x30]
0x7f72d5c06563 223 41ff55d0 call [r13-0x30]
0x7f23b4a87323 223 41ff55d0 call [r13-0x30]
0x7f72d5c06567 227 41ff55d0 call [r13-0x30]
0x7f23b4a87327 227 41ff55d0 call [r13-0x30]
0x7f72d5c0656b 22b 41ff55d8 call [r13-0x28]
0x7f23b4a8732b 22b 41ff55d8 call [r13-0x28]
0x7f72d5c0656f 22f 41ff55d8 call [r13-0x28]
0x7f23b4a8732f 22f 41ff55d8 call [r13-0x28]
0x7f72d5c06573 233 90 nop
0x7f23b4a87333 233 90 nop


Inlined functions (count = 0)
Inlined functions (count = 2)
0x39ee000da8f9 <SharedFunctionInfo equal>
0x39ee000da8b9 <SharedFunctionInfo multiply>


Deoptimization Input Data (deopt points = 7)
Deoptimization Input Data (deopt points = 7)
index bytecode-offset node-id pc
index bytecode-offset node-id pc
0 2 31 NA
0 2 37 NA
1 2 43 NA
1 18 54 NA
2 28 96 NA
2 2 110 NA
3 28 103 NA
3 2 117 NA
4 28 109 NA
4 2 123 NA
5 24 90 d2
5 35 100 d2
6 -1 22 15a
6 -1 22 15a


Safepoints (entries = 4, byte size = 32)
Safepoints (entries = 4, byte size = 32)
0x7f72d5c06412 d2 slots (sp->fp): 00001000 deopt 5 trampoline: 22b
0x7f23b4a871d2 d2 slots (sp->fp): 00001000 deopt 5 trampoline: 22b
0x7f72d5c0649a 15a slots (sp->fp): 00001000 deopt 6 trampoline: 22f
0x7f23b4a8725a 15a slots (sp->fp): 00001000 deopt 6 trampoline: 22f
0x7f72d5c064c9 189 slots (sp->fp): 01001000
0x7f23b4a87289 189 slots (sp->fp): 01001000
0x7f72d5c06530 1f0 slots (sp->fp): 00000000
0x7f23b4a872f0 1f0 slots (sp->fp): 00000000


RelocInfo (size = 22)
RelocInfo (size = 22)
0x7f72d5c06365 near builtin entry
0x7f23b4a87125 near builtin entry
0x7f72d5c063ab full embedded object (0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>)
0x7f23b4a8716b full embedded object (0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>)
0x7f72d5c063d1 full embedded object (0x338f000c3c29 <JSGlobalProxy>)
0x7f23b4a87191 full embedded object (0x39ee000c3c29 <JSGlobalProxy>)
0x7f72d5c063fb external reference (GetProcessWideCodePointerTable()) (0x7f725e7f0000)
0x7f23b4a871bb external reference (GetProcessWideCodePointerTable()) (0x7f2328ff0000)
0x7f72d5c0647e external reference (Runtime::StackGuardWithGap) (0x7f72777ecae0)
0x7f23b4a8723e external reference (Runtime::StackGuardWithGap) (0x7f2356682ae0)
0x7f72d5c0648d full embedded object (0x338f000c3c89 <NativeContext[285]>)
0x7f23b4a8724d full embedded object (0x39ee000c3c89 <NativeContext[285]>)
0x7f72d5c06496 near builtin entry
0x7f23b4a87256 near builtin entry
0x7f72d5c064c5 near builtin entry
0x7f23b4a87285 near builtin entry
0x7f72d5c064da full embedded object (0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>)
0x7f23b4a8729a full embedded object (0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>)
0x7f72d5c0652c near builtin entry
0x7f23b4a872ec near builtin entry


--- End code ---
--- End code ---
--- Raw source ---
--- Raw source ---
function factorial( n ) {
function factorial( n ) {
return n === 1 ? n : n * factorial( --n );
return equal( n, 1 ) ? n : multiply( n, factorial( --n ) );
}

function multiply( x, y ) {
return x * y;
}

function equal( a, b ) {
return a === b;
}
}


var i = 0;
var i = 0;


while ( i++ < 1e7 ) {
while ( i++ < 1e7 ) {
factorial( 10 );
factorial( 10 );
}
}




--- Optimized code ---
--- Optimized code ---
optimization_id = 3
optimization_id = 6
source_position = 0
source_position = 0
kind = TURBOFAN
kind = TURBOFAN
stack_slots = 13
stack_slots = 13
compiler = turbofan
compiler = turbofan
address = 0x338f000dae7d
address = 0x39ee000db2c9


Instructions (size = 780)
Instructions (size = 780)
0x7f72d5c065c0 0 488d1df9ffffff REX.W leaq rbx,[rip+0xfffffff9]
0x7f23b4a87380 0 488d1df9ffffff REX.W leaq rbx,[rip+0xfffffff9]
0x7f72d5c065c7 7 483bd9 REX.W cmpq rbx,rcx
0x7f23b4a87387 7 483bd9 REX.W cmpq rbx,rcx
0x7f72d5c065ca a 740d jz 0x7f72d5c065d9 <+0x19>
0x7f23b4a8738a a 740d jz 0x7f23b4a87399 <+0x19>
0x7f72d5c065cc c ba86000000 movl rdx,0x86
0x7f23b4a8738c c ba86000000 movl rdx,0x86
0x7f72d5c065d1 11 41ff9578530000 call [r13+0x5378]
0x7f23b4a87391 11 41ff9578530000 call [r13+0x5378]
0x7f72d5c065d8 18 cc int3l
0x7f23b4a87398 18 cc int3l
0x7f72d5c065d9 19 8b59f4 movl rbx,[rcx-0xc]
0x7f23b4a87399 19 8b59f4 movl rbx,[rcx-0xc]
0x7f72d5c065dc 1c 4903de REX.W addq rbx,r14
0x7f23b4a8739c 1c 4903de REX.W addq rbx,r14
0x7f72d5c065df 1f f6431a20 testb [rbx+0x1a],0x20
0x7f23b4a8739f 1f f6431a20 testb [rbx+0x1a],0x20
0x7f72d5c065e3 23 0f8517c704a0 jnz 0x7f7275c52d00 (CompileLazyDeoptimizedCode) ;; near builtin entry
0x7f23b4a873a3 23 0f85571906a0 jnz 0x7f2354ae8d00 (CompileLazyDeoptimizedCode) ;; near builtin entry
0x7f72d5c065e9 29 55 push rbp
0x7f23b4a873a9 29 55 push rbp
0x7f72d5c065ea 2a 4889e5 REX.W movq rbp,rsp
0x7f23b4a873aa 2a 4889e5 REX.W movq rbp,rsp
0x7f72d5c065ed 2d 56 push rsi
0x7f23b4a873ad 2d 56 push rsi
0x7f72d5c065ee 2e 57 push rdi
0x7f23b4a873ae 2e 57 push rdi
0x7f72d5c065ef 2f 50 push rax
0x7f23b4a873af 2f 50 push rax
0x7f72d5c065f0 30 ba5a000000 movl rdx,0x5a
0x7f23b4a873b0 30 ba5a000000 movl rdx,0x5a
0x7f72d5c065f5 35 41ff9578530000 call [r13+0x5378]
0x7f23b4a873b5 35 41ff9578530000 call [r13+0x5378]
0x7f72d5c065fc 3c cc int3l
0x7f23b4a873bc 3c cc int3l
0x7f72d5c065fd 3d 4883ec10 REX.W subq rsp,0x10
0x7f23b4a873bd 3d 4883ec10 REX.W subq rsp,0x10
0x7f72d5c06601 41 488975b0 REX.W movq [rbp-0x50],rsi
0x7f23b4a873c1 41 488975b0 REX.W movq [rbp-0x50],rsi
0x7f72d5c06605 45 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f23b4a873c5 45 493b65a0 REX.W cmpq rsp,[r13-0x60] (external value (StackGuard::address_of_jslimit()))
0x7f72d5c06609 49 0f86cb010000 jna 0x7f72d5c067da <+0x21a>
0x7f23b4a873c9 49 0f86cb010000 jna 0x7f23b4a8759a <+0x21a>
0x7f72d5c0660f 4f 48b91da90d008f330000 REX.W movq rcx,0x338f000da91d ;; object: 0x338f000da91d <PropertyCell name=0x338f00002ac9 <String[1]: #i> value=1787>
0x7f23b4a873cf 4f 48b95daa0d00ee390000 REX.W movq rcx,0x39ee000daa5d ;; object: 0x39ee000daa5d <PropertyCell name=0x39ee00002ac9 <String[1]: #i> value=5011>
0x7f72d5c06619 59 448b410b movl r8,[rcx+0xb]
0x7f23b4a873d9 59 448b410b movl r8,[rcx+0xb]
0x7f72d5c0661d 5d 41d1f8 sarl r8, 1
0x7f23b4a873dd 5d 41d1f8 sarl r8, 1
0x7f72d5c06620 60 458d4801 leal r9,[r8+0x1]
0x7f23b4a873e0 60 458d4801 leal r9,[r8+0x1]
0x7f72d5c06624 64 41baffffffff movl r10,0xffffffff
0x7f23b4a873e4 64 41baffffffff movl r10,0xffffffff
0x7f72d5c0662a 6a 4d3bca REX.W cmpq r9,r10
0x7f23b4a873ea 6a 4d3bca REX.W cmpq r9,r10
0x7f72d5c0662d 6d 760d jna 0x7f72d5c0663c <+0x7c>
0x7f23b4a873ed 6d 760d jna 0x7f23b4a873fc <+0x7c>
0x7f72d5c0662f 6f ba02000000 movl rdx,0x2
0x7f23b4a873ef 6f ba02000000 movl rdx,0x2
0x7f72d5c06634 74 41ff9578530000 call [r13+0x5378]
0x7f23b4a873f4 74 41ff9578530000 call [r13+0x5378]
0x7f72d5c0663b 7b cc int3l
0x7f23b4a873fb 7b cc int3l
0x7f72d5c0663c 7c 4d8bd9 REX.W movq r11,r9
0x7f23b4a873fc 7c 4d8bd9 REX.W movq r11,r9
0x7f72d5c0663f 7f 4503d9 addl r11,r9
0x7f23b4a873ff 7f 4503d9 addl r11,r9
0x7f72d5c06642 82 0f8057020000 jo 0x7f72d5c0689f <+0x2df>
0x7f23b4a87402 82 0f8057020000 jo 0x7f23b4a8765f <+0x2df>
0x7f72d5c06648 88 4489590b movl [rcx+0xb],r11
0x7f23b4a87408 88 4489590b movl [rcx+0xb],r11
0x7f72d5c0664c 8c 4181f880969800 cmpl r8,0x989680
0x7f23b4a8740c 8c 4181f880969800 cmpl r8,0x989680
0x7f72d5c06653 93 0f8c1e000000 jl 0x7f72d5c06677 <+0xb7>
0x7f23b4a87413 93 0f8c1e000000 jl 0x7f23b4a87437 <+0xb7>
0x7f72d5c06659 99 488b45c8 REX.W movq rax,[rbp-0x38]
0x7f23b4a87419 99 488b45c8 REX.W movq rax,[rbp-0x38]
0x7f72d5c0665d 9d 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f23b4a8741d 9d 488b4de8 REX.W movq rcx,[rbp-0x18]
0x7f72d5c06661 a1 488be5 REX.W movq rsp,rbp
0x7f23b4a87421 a1 488be5 REX.W movq rsp,rbp
0x7f72d5c06664 a4 5d pop rbp
0x7f23b4a87424 a4 5d pop rbp
0x7f72d5c06665 a5 4883f901 REX.W cmpq rcx,0x1
0x7f23b4a87425 a5 4883f901 REX.W cmpq rcx,0x1
0x7f72d5c06669 a9 7f03 jg 0x7f72d5c0666e <+0xae>
0x7f23b4a87429 a9 7f03 jg 0x7f23b4a8742e <+0xae>
0x7f72d5c0666b ab c20800 ret 0x8
0x7f23b4a8742b ab c20800 ret 0x8
0x7f72d5c0666e ae 415a pop r10
0x7f23b4a8742e ae 415a pop r10
0x7f72d5c06670 b0 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f23b4a87430 b0 488d24cc REX.W leaq rsp,[rsp+rcx*8]
0x7f72d5c06674 b4 4152 push r10
0x7f23b4a87434 b4 4152 push r10
0x7f72d5c06676 b6 c3 retl
0x7f23b4a87436 b6 c3 retl
0x7f72d5c06677 b7 48bfe9a80d008f330000 REX.W movq rdi,0x338f000da8e9 ;; object: 0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>
0x7f23b4a87437 b7 48bfc1a90d00ee390000 REX.W movq rdi,0x39ee000da9c1 ;; object: 0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>
0x7f72d5c06681 c1 8b7713 movl rsi,[rdi+0x13]
0x7f23b4a87441 c1 8b7713 movl rsi,[rdi+0x13]
0x7f72d5c06684 c4 4903f6 REX.W addq rsi,r14
0x7f23b4a87444 c4 4903f6 REX.W addq rsi,r14
0x7f72d5c06687 c7 41b812000000 movl r8,0x12
0x7f23b4a87447 c7 41b812000000 movl r8,0x12
0x7f72d5c0668d cd 4150 push r8
0x7f23b4a8744d cd 4150 push r8
0x7f72d5c0668f cf 49b9293c0c008f330000 REX.W movq r9,0x338f000c3c29 ;; object: 0x338f000c3c29 <JSGlobalProxy>
0x7f23b4a8744f cf 49b9293c0c00ee390000 REX.W movq r9,0x39ee000c3c29 ;; object: 0x39ee000c3c29 <JSGlobalProxy>
0x7f72d5c06699 d9 4151 push r9
0x7f23b4a87459 d9 4151 push r9
0x7f72d5c0669b db 498d5661 REX.W leaq rdx,[r14+0x61]
0x7f23b4a8745b db 498d5661 REX.W leaq rdx,[r14+0x61]
0x7f72d5c0669f df b802000000 movl rax,0x2
0x7f23b4a8745f df b802000000 movl rax,0x2
0x7f72d5c066a4 e4 3b7713 cmpl rsi,[rdi+0x13]
0x7f23b4a87464 e4 3b7713 cmpl rsi,[rdi+0x13]
0x7f72d5c066a7 e7 740d jz 0x7f72d5c066b6 <+0xf6>
0x7f23b4a87467 e7 740d jz 0x7f23b4a87476 <+0xf6>
0x7f72d5c066a9 e9 ba88000000 movl rdx,0x88
0x7f23b4a87469 e9 ba88000000 movl rdx,0x88
0x7f72d5c066ae ee 41ff9578530000 call [r13+0x5378]
0x7f23b4a8746e ee 41ff9578530000 call [r13+0x5378]
0x7f72d5c066b5 f5 cc int3l
0x7f23b4a87475 f5 cc int3l
0x7f72d5c066b6 f6 49ba00007f5e727f0000 REX.W movq r10,0x7f725e7f0000 ;; external reference (GetProcessWideCodePointerTable())
0x7f23b4a87476 f6 49ba0000ff28237f0000 REX.W movq r10,0x7f2328ff0000 ;; external reference (GetProcessWideCodePointerTable())
0x7f72d5c066c0 100 8b4f0b movl rcx,[rdi+0xb]
0x7f23b4a87480 100 8b4f0b movl rcx,[rdi+0xb]
0x7f72d5c066c3 103 c1e90c shrl rcx, 12
0x7f23b4a87483 103 c1e90c shrl rcx, 12
0x7f72d5c066c6 106 c1e104 shll rcx, 4
0x7f23b4a87486 106 c1e104 shll rcx, 4
0x7f72d5c066c9 109 498b0c0a REX.W movq rcx,[r10+rcx*1]
0x7f23b4a87489 109 498b0c0a REX.W movq rcx,[r10+rcx*1]
0x7f72d5c066cd 10d ffd1 call rcx
0x7f23b4a8748d 10d ffd1 call rcx
0x7f72d5c066cf 10f a801 test al,0x1
0x7f23b4a8748f 10f a801 test al,0x1
0x7f72d5c066d1 111 0f85cc010000 jnz 0x7f72d5c068a3 <+0x2e3>
0x7f23b4a87491 111 0f85cc010000 jnz 0x7f23b4a87663 <+0x2e3>
0x7f72d5c066d7 117 488bc8 REX.W movq rcx,rax
0x7f23b4a87497 117 488bc8 REX.W movq rcx,rax
0x7f72d5c066da 11a d1f9 sarl rcx, 1
0x7f23b4a8749a 11a d1f9 sarl rcx, 1
0x7f72d5c066dc 11c 6bc90a imull rcx,rcx,0xa
0x7f23b4a8749c 11c 6bc90a imull rcx,rcx,0xa
0x7f72d5c066df 11f 0f80c2010000 jo 0x7f72d5c068a7 <+0x2e7>
0x7f23b4a8749f 11f 0f80c2010000 jo 0x7f23b4a87667 <+0x2e7>
0x7f72d5c066e5 125 41807db100 cmpb [r13-0x4f] (external value (StackGuard::address_of_interrupt_request(StackGuard::InterruptLevel::kNoH
0x7f23b4a874a5 125 41807db100 cmpb [r13-0x4f] (external value (StackGuard::address_of_interrupt_request(StackGuard::InterruptLevel::kNoH
0x7f72d5c066ea 12a 0f8513010000 jnz 0x7f72d5c06803 <+0x243>
0x7f23b4a874aa 12a 0f8513010000 jnz 0x7f23b4a875c3 <+0x243>
0x7f72d5c066f0 130 660f1f840000000000 nop
0x7f23b4a874b0 130 660f1f840000000000 nop
0x7f72d5c066f9 139 0f1f8000000000 nop
0x7f23b4a874b9 139 0f1f8000000000 nop
0x7f72d5c06700 140 49b81da90d008f330000 REX.W movq r8,0x338f000da91d ;; object: 0x338f000da91d <PropertyCell name=0x338f00002ac9 <String[1]: #i> value=1787>
0x7f23b4a874c0 140 49b85daa0d00ee390000 REX.W movq r8,0x39ee000daa5d ;; object: 0x39ee000daa5d <PropertyCell name=0x39ee00002ac9 <String[1]: #i> value=5011>
0x7f72d5c0670a 14a 458b600b movl r12,[r8+0xb]
0x7f23b4a874ca 14a 458b600b movl r12,[r8+0xb]
0x7f72d5c0670e 14e 41d1fc sarl r12, 1
0x7f23b4a874ce 14e 41d1fc sarl r12, 1
0x7f72d5c06711 151 458d7c2401 leal r15,[r12+0x1]
0x7f23b4a874d1 151 458d7c2401 leal r15,[r12+0x1]
0x7f72d5c06716 156 41baffffffff movl r10,0xffffffff
0x7f23b4a874d6 156 41baffffffff movl r10,0xffffffff
0x7f72d5c0671c 15c 4d3bfa REX.W cmpq r15,r10
0x7f23b4a874dc 15c 4d3bfa REX.W cmpq r15,r10
0x7f72d5c0671f 15f 760d jna 0x7f72d5c0672e <+0x16e>
0x7f23b4a874df 15f 760d jna 0x7f23b4a874ee <+0x16e>
0x7f72d5c06721 161 ba02000000 movl rdx,0x2
0x7f23b4a874e1 161 ba02000000 movl rdx,0x2
0x7f72d5c06726 166 41ff9578530000 call [r13+0x5378]
0x7f23b4a874e6 166 41ff9578530000 call [r13+0x5378]
0x7f72d5c0672d 16d cc int3l
0x7f23b4a874ed 16d cc int3l
0x7f72d5c0672e 16e 498bc7 REX.W movq rax,r15
0x7f23b4a874ee 16e 498bc7 REX.W movq rax,r15
0x7f72d5c06731 171 4103c7 addl rax,r15
0x7f23b4a874f1 171 4103c7 addl rax,r15
0x7f72d5c06734 174 0f8071010000 jo 0x7f72d5c068ab <+0x2eb>
0x7f23b4a874f4 174 0f8071010000 jo 0x7f23b4a8766b <+0x2eb>
0x7f72d5c0673a 17a 4189400b movl [r8+0xb],rax
0x7f23b4a874fa 17a 4189400b movl [r8+0xb],rax
0x7f72d5c0673e 17e 48bfe9a80d008f330000 REX.W movq rdi,0x338f000da8e9 ;; object: 0x338f000da8e9 <JSFunction factorial (sfi = 0x338f000da839)>
0x7f23b4a874fe 17e 48bfc1a90d00ee390000 REX.W movq rdi,0x39ee000da9c1 ;; object: 0x39ee000da9c1 <JSFunction factorial (sfi = 0x39ee000da879)>
0x7f72d5c06748 188 49bb293c0c008f330000 REX.W movq r11,0x338f000c3c29 ;; object: 0x338f000c3c29 <JSGlobalProxy>
0x7f23b4a87508 188 49bb293c0c00ee390000 REX.W movq r11,0x39ee000c3c29 ;; object: 0x39ee00
0x7f72d5c06752 192 41b912000000 movl r9,0x12
0x7f72d5c06758 198 4181fc80969800 cmpl r12,0x989680
0x7f72d5c0675f 19f 0f8d61000000 jge 0x7f72d5c067c6 <+0x206>
0x7f72d5c06765 1a5 8b7713 movl rsi,[rdi+0x13]
0x7f72d5c06768 1a8 4903f6 REX.W addq rsi,r14
0x7f72d5c0676b 1ab 4151 push r9
0x7f72d5c0676d 1ad 4153 push r11
0x7f72d5c0676f 1af b802000000 movl rax,0x2
0x7f72d5c06774 1b4 498d5661 REX.W leaq rdx,[r14+0x61]
0x7f72d5c06778 1b8 3b7713 cmpl rsi,[rdi+0x13]
0x7f72d5c0677b 1bb 740d jz 0x7f72d5c0678a <+0x1ca>
0x7f72d5c0677d 1bd ba88000000 movl rdx,0x88
0x7f72d5c06782 1c2 41ff9578530000 call [r13+0x5378]
0x7f72d5c06789 1c9 cc int3l
0x7f72d5c0678a 1ca 4c8b1527ffffff REX.W movq r10,[rip+0xffffff27]
0x7f72d5c06791 1d1 8b4f0b movl rcx,[rdi+0xb]
0x7f72d5c06794 1d4 c1e90c shrl rcx, 12
0x7f72d5c06797 1d7 c1e104 shll rcx, 4
0x7f72d5c0679a 1da 498b0c0a REX.W movq rcx,[r10+rcx*1]
0x7f72d5c0679e 1de ffd1 call rcx
0x7f72d5c067a0 1e0 a801 test al,0x1
0x7f72d5c067a2 1e2 0f8507010000 jnz 0x7f72d5c068af <+0x2ef>
0x7f72d5c067a8 1e8 488bc8 REX.W movq rcx,rax
0x7f72d5c067ab 1eb d1f9 sarl rcx, 1
0x7f72d5c067ad 1ed 6bc90a imull rcx,rcx,0xa
0x7f72d5c067b0 1f0 0f80fd000000 jo 0x7f72d5c068b3 <+0x2f3>
0x7f72d5c067b6 1f6 41807db100 cmpb [r13-0x4f] (external value (StackGuard::address_of_interrupt_request(StackGuard::InterruptLevel::kNoH
0x7f72d5c067bb 1fb 0f856a000000 jnz 0x7f72d5c0682b <+0x26b>
0x7f72d5c067c1 201 e93affffff jmp 0x7f72d5c06700 <+0x140>
0x7f72d5c067c6 206 4c8bc1 REX.W movq r8,rcx
0x7f72d5c067c9 209 4403c1 addl r8,rcx
0x7f72d5c067cc 20c 0f807e000000 jo 0x7f72d5c06850 <+0x290>
0x7f72d5c067d2 212 498bc0 REX.W movq rax,r8
0x7f72d5c067d5 215 e983feffff jmp 0x7f72d5c0665d <+0x9d>
0x7f72d5c067da 21a b9c0000000 movl rcx,0xc0
0x7f72d5c067df 21f 51 push rcx
0x7f72d5c067e0 220 48bbe0ca7e77727f0000 REX.W movq rbx,0x7f72777ecae0 ;; external reference (Runtime::StackGuardWithGap)
0x7f72d5c067ea 22a b801000000 movl rax,0x1
0x7f72d5c067ef 22f 48be893c0c008f330000 REX.W movq rsi,0x338f000c3c89 ;; object: 0x338f000c3c89 <NativeContext[285]>
0x7f72d5c067f9 239 e802f73da0 call 0x7f7275fe5f00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f72d5c067fe 23e e90cfeffff jmp 0x7f72d5c0660f <+0x4f>
0x7f72d5c06803 243 48bb70c47e77727f0000 REX.W movq rbx,0x7f72777ec470 ;; external reference (Runtime::HandleNoHeapWritesInterrupts)
0x7f72d5c0680d 24d 33c0 xorl rax,rax
0x7f72d5c0680f 24f 48be893c0c008f330000 REX.W movq rsi,0x338f000c3c89 ;; object: 0x338f000c3c89 <NativeContext[285]>
0x7f72d5c06819 259 48894da8 REX.W movq [rbp-0x58],rcx
0x7f72d5c0681d 25d e8def63da0 call 0x7f7275fe5f00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f72d5c06822 262 488b4da8 REX.W movq rcx,[rbp-0x58]
0x7f72d5c06826 266 e9d5feffff jmp 0x7f72d5c06700 <+0x140>
0x7f72d5c0682b 26b 48894da8 REX.W movq [rbp-0x58],rcx
0x7f72d5c0682f 26f 488b1dcfffffff REX.W movq rbx,[rip+0xffffffcf]
0x7f72d5c06836 276 33c0 xorl rax,rax
0x7f72d5c06838 278 48be893c0c008f330000 REX.W movq rsi,0x338f000c3c89 ;; object: 0x338f000c3c89 <NativeContext[285]>
0x7f72d5c06842 282 e8b9f63da0 call 0x7f7275fe5f00 (CEntry_Return1_ArgvOnStack_NoBuiltinExit) ;; near builtin entry
0x7f72d5c06847 287 488b4da8 REX.W movq rcx,[rbp-0x58]
0x7f72d5c0684b 28b e9b0feffff jmp 0x7f72d5c06700 <+0x140>
0x7f72d5c06850 290 c5832ac1 vcvtlsi2sd xmm0,xmm15,rcx
0x7f72d5c06854 294 498b4d48 REX.W movq rcx,[r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress()))
0x7f72d5c06858 298 c5fb1145b0 vmovsd [rbp-0x50],xmm0
0x7f72d5c0685d 29d 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f72d5c06861 2a1 4d394550 REX.W cmpq [r13+0x50] (external value (Heap::NewSpaceAllocationLimitAddress())),r8
0x7f72d5c06865 2a5 0f8713000000 ja 0x7f72d5c0687e <+0x2be>
0x7f72d5c0686b 2ab ba0c000000 movl rdx,0xc
0x7f72d5c06870 2b0 e80bd604a0 call 0x7f7275c53e80 (AllocateInYoungGeneration) ;; near builtin entry
0x7f72d5c06875 2b5 488d48ff REX.W leaq rcx,[rax-0x1]
0x7f72d5c06879 2b9 c5fb1045b0 vmovsd xmm0,[rbp-0x50]
0x7f72d5c0687e 2be 4c8d410c REX.W leaq r8,[rcx+0xc]
0x7f72d5c06882 2c2 4d894548 REX.W movq [r13+0x48] (external value (Heap::NewSpaceAllocationTopAddress())),r8
0x7f72d5c06886 2c6 4883c101 REX.W addq rcx,0x1
0x7f72d5c0688a 2ca c741ffb1070000 movl [rcx-0x1],0x7b1
0x7f72d5c06891 2d1 c5fb114103 vmovsd [rcx+0x3],xmm0
0x7f72d5c06896 2d6 4c8bc1 REX.W movq r8,rcx
0x7f72d5c06899 2d9 e934ffffff jmp 0x7f72d5c067d2 <+0x212>
0x7f72d5c0689e 2de 90 nop
0x7f72d5c0689f 2df 41ff55d0 call [r13-0x30]
0x7f72d5c068a3 2e3 41ff55d0 call [r13-0x30]
0x7f72d5c068a7 2e7 41ff55d0 call [r13-0x30]
0x7f72d5c068ab 2eb 41ff55d0 call [r13-0x30]
0x7f72d5c068af 2ef 41ff55d0 call [r13-0x30]
0x7f72d5c068b3 2f3 41ff55d0 call [r13-0x30]
0x7f72d5c068b7 2f7 41ff55d8 call [r13-0x28]
0x7f72d5c068bb 2fb 41ff55d8 call [r13-0x28]
0x7f72d5c068bf 2ff 41ff55d8 call [r13-0x28]
0x7f72d5c068c3 303 41ff55d8 call [r13-0x28]
0x7f72d5c068c7 307 41ff55d8 call [r13-0x28]
0x7f72d5c068cb 30b 90 nop

Inlined functions (count = 1)
0x338f000da839 <SharedFunctionInfo factorial>

Deoptimization Input Data (deopt points = 11)
index bytecode-offset node-id pc
0 17 38 NA
1 28 76 NA
2 28 83 NA
3 17 108 NA
4 28 128 NA
5 28 135 NA
6 24 70 10f
7 24 122 1e0
8 52 22 23e
9 52 93 262
10 52 145 287

Safepoints (entries = 6, byte size = 44)
0x7f72d5c066cf 10f slots (sp->fp): 01000000 deopt 6 trampoline: 2f7
0x7f72d5c067a0