Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- time_vector():
- push r15
- push r14
- push r13
- push r12
- push rbp
- push rbx
- sub rsp, 8
- call std::chrono::_V2::steady_clock::now()
- mov edi, 80000000
- mov r12, rax
- call operator new(unsigned long)
- mov edx, 80000000
- mov rdi, rax
- xor esi, esi
- mov rbx, rax
- call memset
- mov edi, 80000000
- call operator new(unsigned long)
- mov rdi, rax
- mov edx, 80000000
- xor esi, esi
- mov rbp, rax
- call memset
- mov edi, 80000000
- call operator new(unsigned long)
- mov r14, rbx
- xor esi, esi
- mov rdi, rax
- shr r14, 3
- mov edx, 80000000
- mov r13d, 10000000
- and r14d, 1
- call memset
- sub r13, r14
- lea rsi, [0+r14*8]
- mov rcx, rax
- mov r9, r13
- mov r11, r13
- mov r10d, 50
- lea r8, [rbx+rsi]
- lea rdi, [rbp+0+rsi]
- shr r9
- add rsi, rax
- and r11, -2
- .L5:
- xor edx, edx
- test r14, r14
- je .L2
- movsd xmm0, QWORD PTR [rbx]
- mov edx, 1
- addsd xmm0, QWORD PTR [rbp+0]
- movsd QWORD PTR [rcx], xmm0
- .L2:
- xor eax, eax
- xor r15d, r15d
- .L3:
- add r15, 1
- movupd xmm0, XMMWORD PTR [rdi+rax]
- addpd xmm0, XMMWORD PTR [r8+rax]
- movups XMMWORD PTR [rsi+rax], xmm0
- add rax, 16
- cmp r15, r9
- jb .L3
- cmp r11, r13
- lea rax, [rdx+r11]
- je .L4
- movsd xmm0, QWORD PTR [rbp+0+rax*8]
- addsd xmm0, QWORD PTR [rbx+rax*8]
- movsd QWORD PTR [rcx+rax*8], xmm0
- .L4:
- sub r10, 1
- jne .L5
- mov rdi, rcx
- call operator delete(void*)
- mov rdi, rbp
- call operator delete(void*)
- mov rdi, rbx
- call operator delete(void*)
- call std::chrono::_V2::steady_clock::now()
- add rsp, 8
- sub rax, r12
- pop rbx
- pop rbp
- pop r12
- pop r13
- pop r14
- pop r15
- ret
- mov r12, rax
- .L7:
- mov rdi, rbx
- call operator delete(void*)
- mov rdi, r12
- call _Unwind_Resume
- mov rdi, rbp
- mov r12, rax
- call operator delete(void*)
- jmp .L7
- time_pointer():
- push r15
- push r14
- push r13
- push r12
- mov r13d, 10000000
- push rbp
- push rbx
- sub rsp, 24
- call std::chrono::_V2::steady_clock::now()
- mov edi, 80000000
- mov rbp, rax
- call operator new[](unsigned long)
- mov rbx, rax
- mov edi, 80000000
- mov r14, rbx
- shr r14, 3
- call operator new[](unsigned long)
- and r14d, 1
- mov edi, 80000000
- mov r12, rax
- sub r13, r14
- call operator new[](unsigned long)
- lea rsi, [0+r14*8]
- mov r9, r13
- mov r11, r13
- shr r9
- and r11, -2
- mov r10d, 50
- lea r8, [rbx+rsi]
- lea rdi, [r12+rsi]
- add rsi, rax
- .L22:
- xor ecx, ecx
- test r14, r14
- je .L19
- movsd xmm0, QWORD PTR [rbx]
- mov ecx, 1
- addsd xmm0, QWORD PTR [r12]
- movsd QWORD PTR [rax], xmm0
- .L19:
- xor edx, edx
- xor r15d, r15d
- .L20:
- add r15, 1
- movupd xmm0, XMMWORD PTR [rdi+rdx]
- addpd xmm0, XMMWORD PTR [r8+rdx]
- movups XMMWORD PTR [rsi+rdx], xmm0
- add rdx, 16
- cmp r15, r9
- jb .L20
- cmp r13, r11
- lea rdx, [rcx+r11]
- je .L21
- movsd xmm0, QWORD PTR [rbx+rdx*8]
- addsd xmm0, QWORD PTR [r12+rdx*8]
- movsd QWORD PTR [rax+rdx*8], xmm0
- .L21:
- sub r10, 1
- jne .L22
- mov rdi, rbx
- mov QWORD PTR [rsp+8], rax
- call operator delete[](void*)
- mov rdi, r12
- call operator delete[](void*)
- mov rax, QWORD PTR [rsp+8]
- mov rdi, rax
- call operator delete[](void*)
- call std::chrono::_V2::steady_clock::now()
- add rsp, 24
- sub rax, rbp
- pop rbx
- pop rbp
- pop r12
- pop r13
- pop r14
- pop r15
- ret
- time_unique_ptr():
- push r15
- push r14
- push r13
- push r12
- push rbp
- push rbx
- sub rsp, 8
- call std::chrono::_V2::steady_clock::now()
- mov edi, 80000000
- mov r12, rax
- call operator new[](unsigned long)
- mov edx, 80000000
- mov rdi, rax
- xor esi, esi
- mov rbx, rax
- call memset
- mov edi, 80000000
- call operator new[](unsigned long)
- mov rdi, rax
- mov edx, 80000000
- xor esi, esi
- mov rbp, rax
- call memset
- mov edi, 80000000
- call operator new[](unsigned long)
- mov r14, rbx
- xor esi, esi
- mov rdi, rax
- shr r14, 3
- mov edx, 80000000
- mov r13d, 10000000
- and r14d, 1
- call memset
- sub r13, r14
- lea rsi, [0+r14*8]
- mov rcx, rax
- mov r9, r13
- mov r11, r13
- mov r10d, 50
- lea r8, [rbx+rsi]
- lea rdi, [rbp+0+rsi]
- shr r9
- add rsi, rax
- and r11, -2
- .L32:
- xor edx, edx
- test r14, r14
- je .L29
- movsd xmm0, QWORD PTR [rbx]
- mov edx, 1
- addsd xmm0, QWORD PTR [rbp+0]
- movsd QWORD PTR [rcx], xmm0
- .L29:
- xor eax, eax
- xor r15d, r15d
- .L30:
- add r15, 1
- movupd xmm0, XMMWORD PTR [rdi+rax]
- addpd xmm0, XMMWORD PTR [r8+rax]
- movups XMMWORD PTR [rsi+rax], xmm0
- add rax, 16
- cmp r9, r15
- ja .L30
- cmp r11, r13
- lea rax, [rdx+r11]
- je .L31
- movsd xmm0, QWORD PTR [rbp+0+rax*8]
- addsd xmm0, QWORD PTR [rbx+rax*8]
- movsd QWORD PTR [rcx+rax*8], xmm0
- .L31:
- sub r10, 1
- jne .L32
- mov rdi, rcx
- call operator delete[](void*)
- mov rdi, rbp
- call operator delete[](void*)
- mov rdi, rbx
- call operator delete[](void*)
- call std::chrono::_V2::steady_clock::now()
- add rsp, 8
- sub rax, r12
- pop rbx
- pop rbp
- pop r12
- pop r13
- pop r14
- pop r15
- ret
- mov r12, rax
- .L34:
- mov rdi, rbx
- call operator delete[](void*)
- mov rdi, r12
- call _Unwind_Resume
- mov rdi, rbp
- mov r12, rax
- call operator delete[](void*)
- jmp .L34
- .LC0:
- .string "Vector took "
- .LC1:
- .string "ns"
- .LC2:
- .string "Pointer took "
- .LC3:
- .string "Unique Pointer took "
- main:
- push rbx
- mov edx, 20
- mov esi, OFFSET FLAT:.LC0
- mov edi, OFFSET FLAT:std::cout
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rax, QWORD PTR std::cout[rip]
- mov rax, QWORD PTR [rax-24]
- mov QWORD PTR std::cout[rax+16], 12
- call time_vector()
- mov edi, OFFSET FLAT:std::cout
- mov rsi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<long>(long)
- mov edx, 2
- mov rbx, rax
- mov esi, OFFSET FLAT:.LC1
- mov rdi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rdi, rbx
- call std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
- mov edx, 20
- mov esi, OFFSET FLAT:.LC2
- mov edi, OFFSET FLAT:std::cout
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rax, QWORD PTR std::cout[rip]
- mov rax, QWORD PTR [rax-24]
- mov QWORD PTR std::cout[rax+16], 12
- call time_pointer()
- mov edi, OFFSET FLAT:std::cout
- mov rsi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<long>(long)
- mov edx, 2
- mov rbx, rax
- mov esi, OFFSET FLAT:.LC1
- mov rdi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rdi, rbx
- call std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
- mov edx, 20
- mov esi, OFFSET FLAT:.LC3
- mov edi, OFFSET FLAT:std::cout
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rax, QWORD PTR std::cout[rip]
- mov rax, QWORD PTR [rax-24]
- mov QWORD PTR std::cout[rax+16], 12
- call time_unique_ptr()
- mov edi, OFFSET FLAT:std::cout
- mov rsi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<long>(long)
- mov edx, 2
- mov rbx, rax
- mov esi, OFFSET FLAT:.LC1
- mov rdi, rax
- call std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
- mov rdi, rbx
- call std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)
- xor eax, eax
- pop rbx
- ret
- _GLOBAL__sub_I__Z11time_vectorv:
- sub rsp, 8
- mov edi, OFFSET FLAT:std::__ioinit
- call std::ios_base::Init::Init()
- mov edx, OFFSET FLAT:__dso_handle
- mov esi, OFFSET FLAT:std::__ioinit
- mov edi, OFFSET FLAT:std::ios_base::Init::~Init()
- add rsp, 8
- jmp __cxa_atexit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement