Skip to content

Instantly share code, notes, and snippets.

@evanlucas
Created September 7, 2015 21:04
Show Gist options
  • Select an option

  • Save evanlucas/4738a8848ffa1e94f358 to your computer and use it in GitHub Desktop.

Select an option

Save evanlucas/4738a8848ffa1e94f358 to your computer and use it in GitHub Desktop.
Runtime_NumberToInteger
node`v8::internal::Runtime_NumberToInteger:
node[0x100551f20] <+0>: pushq %rbp
node[0x100551f21] <+1>: movq %rsp, %rbp
node[0x100551f24] <+4>: pushq %r15
node[0x100551f26] <+6>: pushq %r14
node[0x100551f28] <+8>: pushq %r12
node[0x100551f2a] <+10>: pushq %rbx
node[0x100551f2b] <+11>: movq %rdx, %rbx
node[0x100551f2e] <+14>: movq 0x6b78(%rbx), %r15
node[0x100551f35] <+21>: movq 0x6b80(%rbx), %r14
node[0x100551f3c] <+28>: incl 0x6b88(%rbx)
node[0x100551f42] <+34>: movq (%rsi), %rax
node[0x100551f45] <+37>: movq %rax, %rcx
node[0x100551f48] <+40>: andq $0x1, %rcx
node[0x100551f4c] <+44>: je 0x100551f84 ; <+100> [inlined] v8::internal::SmiTagging<8ul>::SmiToInt(v8::internal::Object const*) at v8.h:7017
node[0x100551f4e] <+46>: movq %rax, %rdx
node[0x100551f51] <+49>: andq $0x3, %rdx
node[0x100551f55] <+53>: cmpq $0x1, %rdx
node[0x100551f59] <+57>: jne 0x100551f77 ; <+87> [inlined] v8::internal::__RT_impl_Runtime_NumberToInteger(v8::internal::Arguments, v8::internal::Isolate*) + 73 at runtime-numbers.cc:252
node[0x100551f5b] <+59>: movq -0x1(%rax), %rdx
node[0x100551f5f] <+63>: movzbl 0xb(%rdx), %edx
node[0x100551f63] <+67>: cmpl $0x84, %edx
node[0x100551f69] <+73>: jne 0x100551f77 ; <+87> [inlined] v8::internal::__RT_impl_Runtime_NumberToInteger(v8::internal::Arguments, v8::internal::Isolate*) + 73 at runtime-numbers.cc:252
node[0x100551f6b] <+75>: testq %rcx, %rcx
node[0x100551f6e] <+78>: je 0x100551f84 ; <+100> [inlined] v8::internal::SmiTagging<8ul>::SmiToInt(v8::internal::Object const*) at v8.h:7017
node[0x100551f70] <+80>: movsd 0x7(%rax), %xmm0
node[0x100551f75] <+85>: jmp 0x100551f8c ; <+108> [inlined] v8::internal::__RT_impl_Runtime_NumberToInteger(v8::internal::Arguments, v8::internal::Isolate*) + 94 at runtime-numbers.cc:252
node[0x100551f77] <+87>: movq %rbx, %rdi
node[0x100551f7a] <+90>: callq 0x100442850 ; v8::internal::Isolate::ThrowIllegalOperation at isolate.cc:1192
node[0x100551f7f] <+95>: movq %rax, %r12
node[0x100551f82] <+98>: jmp 0x100551fe5 ; <+197> [inlined] void std::swap<v8::internal::Object**>(v8::internal::Object**&, v8::internal::Object**&) at handles-inl.h:116
node[0x100551f84] <+100>: shrq $0x20, %rax
node[0x100551f88] <+104>: cvtsi2sdl %eax, %xmm0
node[0x100551f8c] <+108>: xorpd %xmm1, %xmm1
node[0x100551f90] <+112>: ucomisd %xmm0, %xmm0
node[0x100551f94] <+116>: jp 0x100551fd4 ; <+180> [inlined] v8::internal::__RT_impl_Runtime_NumberToInteger(v8::internal::Arguments, v8::internal::Isolate*) + 166 at runtime-numbers.cc:252
node[0x100551f96] <+118>: jp 0x100551fd0 ; <+176> [inlined] v8::internal::DoubleToInteger(double) + 64 at runtime-numbers.cc:257
node[0x100551f98] <+120>: xorpd %xmm1, %xmm1
node[0x100551f9c] <+124>: ucomisd %xmm1, %xmm0
node[0x100551fa0] <+128>: jne 0x100551fa4 ; <+132> [inlined] v8::internal::DoubleToInteger(double) + 20 at runtime-numbers.cc:257
node[0x100551fa2] <+130>: jnp 0x100551fd0 ; <+176> [inlined] v8::internal::DoubleToInteger(double) + 64 at runtime-numbers.cc:257
node[0x100551fa4] <+132>: movsd 0x2851f4(%rip), %xmm1 ; v8::HeapProfiler::kUnknownObjectId + 220
node[0x100551fac] <+140>: andpd %xmm0, %xmm1
node[0x100551fb0] <+144>: ucomisd 0x2851d8(%rip), %xmm1 ; v8::HeapProfiler::kUnknownObjectId + 202
node[0x100551fb8] <+152>: jae 0x100551fd0 ; <+176> [inlined] v8::internal::DoubleToInteger(double) + 64 at runtime-numbers.cc:257
node[0x100551fba] <+154>: xorpd %xmm1, %xmm1
node[0x100551fbe] <+158>: ucomisd %xmm1, %xmm0
node[0x100551fc2] <+162>: jae 0x100551fcb ; <+171> [inlined] v8::internal::DoubleToInteger(double) + 59 at runtime-numbers.cc:257
node[0x100551fc4] <+164>: callq 0x1006fb068 ; symbol stub for: ceil
node[0x100551fc9] <+169>: jmp 0x100551fd0 ; <+176> [inlined] v8::internal::DoubleToInteger(double) + 64 at runtime-numbers.cc:257
node[0x100551fcb] <+171>: callq 0x1006fb116 ; symbol stub for: floor
node[0x100551fd0] <+176>: movapd %xmm0, %xmm1
node[0x100551fd4] <+180>: xorl %esi, %esi
node[0x100551fd6] <+182>: movq %rbx, %rdi
node[0x100551fd9] <+185>: movapd %xmm1, %xmm0
node[0x100551fdd] <+189>: callq 0x1002f9300 ; v8::internal::Factory::NewNumber at factory.cc:1001
node[0x100551fe2] <+194>: movq (%rax), %r12
node[0x100551fe5] <+197>: movq 0x6b78(%rbx), %rsi
node[0x100551fec] <+204>: movq %r15, 0x6b78(%rbx)
node[0x100551ff3] <+211>: decl 0x6b88(%rbx)
node[0x100551ff9] <+217>: cmpq %r14, 0x6b80(%rbx)
node[0x100552000] <+224>: je 0x10055201d ; <+253> [inlined] v8::internal::HandleScope::CloseScope(v8::internal::Isolate*, v8::internal::Object**, v8::internal::Object**) + 56 at handles-inl.h:104
node[0x100552002] <+226>: movq %r14, 0x6b80(%rbx)
node[0x100552009] <+233>: movq %rbx, %rdi
node[0x10055200c] <+236>: callq 0x100318090 ; v8::internal::HandleScope::DeleteExtensions at handles.cc:60
node[0x100552011] <+241>: movq 0x6b78(%rbx), %rdi
node[0x100552018] <+248>: movq %r14, %rsi
node[0x10055201b] <+251>: jmp 0x100552020 ; <+256> [inlined] v8::internal::HandleScope::CloseScope(v8::internal::Isolate*, v8::internal::Object**, v8::internal::Object**) + 59 at handles-inl.h:104
node[0x10055201d] <+253>: movq %r15, %rdi
node[0x100552020] <+256>: callq 0x100318150 ; v8::internal::HandleScope::ZapRange at handles.cc:67
node[0x100552025] <+261>: movq %r12, %rax
node[0x100552028] <+264>: popq %rbx
node[0x100552029] <+265>: popq %r12
node[0x10055202b] <+267>: popq %r14
node[0x10055202d] <+269>: popq %r15
node[0x10055202f] <+271>: popq %rbp
node[0x100552030] <+272>: retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment