| .file "ctql.cpp"
.intel_syntax noprefix
.section .text$_ZNKSt5ctypeIcE8do_widenEc,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl std::ctype<char>::do_widen(char) const
.def std::ctype<char>::do_widen(char) const; .scl 2; .type 32; .endef
.seh_proc std::ctype<char>::do_widen(char) const
std::ctype<char>::do_widen(char) const:
.LFB1178:
.seh_endprologue
mov eax, edx
ret
.seh_endproc
.text
.align 2
.p2align 4,,15
.def vector_noinline<handwritten()::Row>::vector_noinline(); .scl 3; .type 32; .endef
.seh_proc vector_noinline<handwritten()::Row>::vector_noinline()
vector_noinline<handwritten()::Row>::vector_noinline():
.LFB2001:
.seh_endprologue
mov QWORD PTR [rcx], 0
mov QWORD PTR 8[rcx], 0
mov QWORD PTR 16[rcx], 0
ret
.seh_endproc
.def vector_noinline<handwritten()::Row>::vector_noinline(); .scl 3; .type 32; .endef
.set vector_noinline<handwritten()::Row>::vector_noinline(),vector_noinline<handwritten()::Row>::vector_noinline()
.align 2
.p2align 4,,15
.def vector_noinline<handwritten()::Row>::~vector_noinline(); .scl 3; .type 32; .endef
.seh_proc vector_noinline<handwritten()::Row>::~vector_noinline()
vector_noinline<handwritten()::Row>::~vector_noinline():
.LFB2004:
.seh_endprologue
mov rcx, QWORD PTR [rcx]
test rcx, rcx
je .L3
jmp operator delete(void*)
.L3:
ret
.seh_endproc
.def vector_noinline<handwritten()::Row>::~vector_noinline(); .scl 3; .type 32; .endef
.set vector_noinline<handwritten()::Row>::~vector_noinline(),vector_noinline<handwritten()::Row>::~vector_noinline()
.align 2
.p2align 4,,15
.def vector_noinline<handwritten()::Row>::push_back(handwritten()::Row const&) [clone .constprop.31]; .scl 3; .type 32; .endef
.seh_proc vector_noinline<handwritten()::Row>::push_back(handwritten()::Row const&) [clone .constprop.31]
vector_noinline<handwritten()::Row>::push_back(handwritten()::Row const&) [clone .constprop.31]:
.LFB2600:
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 48
.seh_stackalloc 48
.seh_endprologue
mov r8, QWORD PTR 8[rcx]
cmp r8, QWORD PTR 16[rcx]
mov rbx, rcx
je .L7
test r8, r8
je .L8
mov rax, QWORD PTR [rdx]
mov rdx, QWORD PTR 8[rdx]
mov QWORD PTR [r8], rax
mov QWORD PTR 8[r8], rdx
.L8:
add r8, 16
mov QWORD PTR 8[rbx], r8
.L6:
add rsp, 48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
.p2align 4,,10
.L7:
mov rax, r8
sub rax, QWORD PTR [rcx]
sar rax, 4
test rax, rax
je .L17
lea rcx, [rax+rax]
cmp rax, rcx
jbe .L30
.L18:
mov rbp, -16
.L10:
mov rcx, rbp
mov QWORD PTR 40[rsp], rdx
call operator new(unsigned long)
mov r8, QWORD PTR 8[rbx]
mov rdx, QWORD PTR 40[rsp]
mov rsi, rax
.L16:
mov r12, QWORD PTR [rbx]
mov rdi, rsi
sub r8, r12
mov rax, r8
sar rax, 4
add rdi, r8
je .L12
mov r9, QWORD PTR [rdx]
mov r10, QWORD PTR 8[rdx]
mov QWORD PTR [rdi], r9
mov QWORD PTR 8[rdi], r10
.L12:
test rax, rax
jne .L31
add rdi, 16
test r12, r12
je .L15
.L14:
mov rcx, r12
call operator delete(void*)
.L15:
mov QWORD PTR [rbx], rsi
add rsi, rbp
mov QWORD PTR 8[rbx], rdi
mov QWORD PTR 16[rbx], rsi
jmp .L6
.p2align 4,,10
.L17:
mov ebp, 16
jmp .L10
.p2align 4,,10
.L31:
mov rdx, r12
mov rcx, rsi
add rdi, 16
call memmove
jmp .L14
.L30:
movabs r9, 1152921504606846975
cmp rcx, r9
ja .L18
xor ebp, ebp
xor esi, esi
test rcx, rcx
je .L16
sal rax, 5
mov rbp, rax
jmp .L10
.seh_endproc
.section .rdata,"dr"
.LC0:
.ascii "vector::reserve\0"
.text
.align 2
.p2align 4,,15
.def vector_noinline<handwritten()::Row>::reserve(unsigned long) [clone .constprop.29]; .scl 3; .type 32; .endef
.seh_proc vector_noinline<handwritten()::Row>::reserve(unsigned long) [clone .constprop.29]
vector_noinline<handwritten()::Row>::reserve(unsigned long) [clone .constprop.29]:
.LFB2602:
push r13
.seh_pushreg r13
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
movabs rax, 1152921504606846975
cmp rdx, rax
mov rsi, rcx
ja .L43
mov rbp, QWORD PTR [rcx]
mov rax, QWORD PTR 16[rcx]
sub rax, rbp
sar rax, 4
cmp rdx, rax
ja .L44
add rsp, 40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.p2align 4,,10
.L44:
mov rdi, QWORD PTR 8[rcx]
sub rdi, rbp
test rdx, rdx
je .L39
mov rbx, rdx
sal rbx, 4
mov rcx, rbx
call operator new(unsigned long)
mov r13, QWORD PTR [rsi]
mov r12, rax
.L35:
mov rax, rdi
sar rax, 4
test rax, rax
je .L37
mov r8, rdi
mov rdx, rbp
mov rcx, r12
call memmove
.L37:
test r13, r13
je .L38
mov rcx, r13
call operator delete(void*)
.L38:
lea rdx, [r12+rbx]
add rdi, r12
mov QWORD PTR [rsi], r12
mov QWORD PTR 8[rsi], rdi
mov QWORD PTR 16[rsi], rdx
add rsp, 40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.p2align 4,,10
.L39:
mov r13, rbp
xor ebx, ebx
xor r12d, r12d
jmp .L35
.L43:
lea rcx, .LC0[rip]
call std::__throw_length_error(char const*)
nop
.seh_endproc
.section .rdata,"dr"
.LC1:
.ascii "read_count\0"
.LC2:
.ascii " \0"
.text
.align 2
.p2align 4,,15
.def dummy_db::read_count() const [clone .isra.27]; .scl 3; .type 32; .endef
.seh_proc dummy_db::read_count() const [clone .isra.27]
dummy_db::read_count() const [clone .isra.27]:
.LFB2588:
push rbx
.seh_pushreg rbx
sub rsp, 32
.seh_stackalloc 32
.seh_endprologue
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC1[rip]
mov r8d, 10
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L50
cmp BYTE PTR 56[rbx], 0
je .L47
movsx edx, BYTE PTR 67[rbx]
.L48:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, 5
add rsp, 32
pop rbx
ret
.p2align 4,,10
.L47:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L48
mov rcx, rbx
call rax
movsx edx, al
jmp .L48
.L50:
call std::__throw_bad_cast()
nop
.seh_endproc
.section .rdata,"dr"
.LC3:
.ascii "get<double>\0"
.text
.align 2
.p2align 4,,15
.def double dummy_db::get<double>(unsigned int) const [clone .constprop.35]; .scl 3; .type 32; .endef
.seh_proc double dummy_db::get<double>(unsigned int) const [clone .constprop.35]
double dummy_db::get<double>(unsigned int) const [clone .constprop.35]:
.LFB2596:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
lea rdx, .LC3[rip]
mov r8d, 11
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
xor edx, edx
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, 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 rax, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L58
cmp BYTE PTR 56[rbx], 0
je .L53
movsx edx, BYTE PTR 67[rbx]
.L54:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, DWORD PTR [rsi]
pxor xmm0, xmm0
cvtsi2sdq xmm0, rax
mulsd xmm0, QWORD PTR .LC4[rip]
addsd xmm0, QWORD PTR .LC5[rip]
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L53:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L54
mov rcx, rbx
call rax
movsx edx, al
jmp .L54
.L58:
call std::__throw_bad_cast()
nop
.seh_endproc
.section .rdata,"dr"
.LC6:
.ascii "get<int>\0"
.text
.align 2
.p2align 4,,15
.def int dummy_db::get<int>(unsigned int) const [clone .constprop.37]; .scl 3; .type 32; .endef
.seh_proc int dummy_db::get<int>(unsigned int) const [clone .constprop.37]
int dummy_db::get<int>(unsigned int) const [clone .constprop.37]:
.LFB2594:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
lea rdx, .LC6[rip]
mov r8d, 8
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov edx, 2
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, 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 rax, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L64
cmp BYTE PTR 56[rbx], 0
je .L61
movsx edx, BYTE PTR 67[rbx]
.L62:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, DWORD PTR [rsi]
lea eax, [rax+rax*4]
lea eax, 200[rax+rax]
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L61:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L62
mov rcx, rbx
call rax
movsx edx, al
jmp .L62
.L64:
call std::__throw_bad_cast()
nop
.seh_endproc
.align 2
.p2align 4,,15
.def int dummy_db::get<int>(unsigned int) const [clone .constprop.36]; .scl 3; .type 32; .endef
.seh_proc int dummy_db::get<int>(unsigned int) const [clone .constprop.36]
int dummy_db::get<int>(unsigned int) const [clone .constprop.36]:
.LFB2595:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
lea rdx, .LC6[rip]
mov r8d, 8
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov edx, 1
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, 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 rax, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L70
cmp BYTE PTR 56[rbx], 0
je .L67
movsx edx, BYTE PTR 67[rbx]
.L68:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, DWORD PTR [rsi]
lea eax, [rax+rax*4]
lea eax, 100[rax+rax]
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L67:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L68
mov rcx, rbx
call rax
movsx edx, al
jmp .L68
.L70:
call std::__throw_bad_cast()
nop
.seh_endproc
.section .rdata,"dr"
.LC7:
.ascii "execute\0"
.section .text$_ZN8dummy_db7executeEPKc,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl dummy_db::execute(char const*)
.def dummy_db::execute(char const*); .scl 2; .type 32; .endef
.seh_proc dummy_db::execute(char const*)
dummy_db::execute(char const*):
.LFB1967:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
mov r8d, 7
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov rbx, rdx
lea rdx, .LC7[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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)
test rbx, rbx
je .L78
mov rcx, rbx
call strlen
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, rbx
mov r8, 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 rbx, QWORD PTR .refptr._ZSt4cout[rip]
mov rcx, rbx
.L73:
lea rdx, .LC2[rip]
mov r8d, 1
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 [rbx]
mov rax, QWORD PTR -24[rax]
mov rbx, QWORD PTR 240[rbx+rax]
test rbx, rbx
je .L79
cmp BYTE PTR 56[rbx], 0
je .L75
movsx edx, BYTE PTR 67[rbx]
.L76:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov DWORD PTR [rsi], 0
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L75:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L76
mov rcx, rbx
call rax
movsx edx, al
jmp .L76
.p2align 4,,10
.L78:
mov rbx, QWORD PTR .refptr._ZSt4cout[rip]
mov rax, QWORD PTR [rbx]
mov rcx, rbx
add rcx, QWORD PTR -24[rax]
mov edx, DWORD PTR 32[rcx]
or edx, 1
call std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
jmp .L73
.L79:
call std::__throw_bad_cast()
nop
.seh_endproc
.section .rdata,"dr"
.LC8:
.ascii "move_to_next\0"
.section .text$_ZN8dummy_db12move_to_nextEv,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl dummy_db::move_to_next()
.def dummy_db::move_to_next(); .scl 2; .type 32; .endef
.seh_proc dummy_db::move_to_next()
dummy_db::move_to_next():
.LFB1969:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
lea rdx, .LC8[rip]
mov r8d, 12
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L85
cmp BYTE PTR 56[rbx], 0
je .L82
movsx edx, BYTE PTR 67[rbx]
.L83:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
add DWORD PTR [rsi], 1
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L82:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L83
mov rcx, rbx
call rax
movsx edx, al
jmp .L83
.L85:
call std::__throw_bad_cast()
nop
.seh_endproc
.text
.align 2
.p2align 4,,15
.globl int dummy_db::get<int>(unsigned int) const
.def int dummy_db::get<int>(unsigned int) const; .scl 2; .type 32; .endef
.seh_proc int dummy_db::get<int>(unsigned int) const
int dummy_db::get<int>(unsigned int) const:
.LFB1970:
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 32
.seh_stackalloc 32
.seh_endprologue
mov r8d, 8
mov rdi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov ebx, edx
lea rdx, .LC6[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov edx, ebx
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, 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 rax, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rsi, QWORD PTR 240[rdx+rax]
test rsi, rsi
je .L91
cmp BYTE PTR 56[rsi], 0
je .L88
movsx edx, BYTE PTR 67[rsi]
.L89:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
imul ebx, ebx, 100
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, DWORD PTR [rdi]
lea eax, [rax+rax*4]
lea eax, [rbx+rax*2]
add rsp, 32
pop rbx
pop rsi
pop rdi
ret
.p2align 4,,10
.L88:
mov rcx, rsi
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rsi]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L89
mov rcx, rsi
call rax
movsx edx, al
jmp .L89
.L91:
call std::__throw_bad_cast()
nop
.seh_endproc
.align 2
.p2align 4,,15
.globl double dummy_db::get<double>(unsigned int) const
.def double dummy_db::get<double>(unsigned int) const; .scl 2; .type 32; .endef
.seh_proc double dummy_db::get<double>(unsigned int) const
double dummy_db::get<double>(unsigned int) const:
.LFB1971:
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
mov r8d, 11
mov rsi, rcx
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov ebx, edx
lea rdx, .LC3[rip]
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
lea rdx, .LC2[rip]
mov r8d, 1
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 rcx, QWORD PTR .refptr._ZSt4cout[rip]
mov edx, ebx
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, 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 rax, QWORD PTR .refptr._ZSt4cout[rip]
mov rdx, QWORD PTR [rax]
mov rdx, QWORD PTR -24[rdx]
mov rbx, QWORD PTR 240[rdx+rax]
test rbx, rbx
je .L99
cmp BYTE PTR 56[rbx], 0
je .L94
movsx edx, BYTE PTR 67[rbx]
.L95:
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
mov eax, DWORD PTR [rsi]
pxor xmm0, xmm0
cvtsi2sdq xmm0, rax
mulsd xmm0, QWORD PTR .LC4[rip]
addsd xmm0, QWORD PTR .LC5[rip]
add rsp, 40
pop rbx
pop rsi
ret
.p2align 4,,10
.L94:
mov rcx, rbx
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rbx]
lea rcx, std::ctype<char>::do_widen(char) const[rip]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, rcx
je .L95
mov rcx, rbx
call rax
movsx edx, al
jmp .L95
.L99:
call std::__throw_bad_cast()
nop
.seh_endproc
.section .rdata,"dr"
.align 8
.LC9:
.ascii "select foo.value, foo.id, foo.number from foo where id>42\0"
.text
.p2align 4,,15
.globl handwritten()
.def handwritten(); .scl 2; .type 32; .endef
.seh_proc handwritten()
handwritten():
.LFB1999:
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 64
.seh_stackalloc 64
.seh_endprologue
lea rbx, 32[rsp]
mov rdi, rcx
call vector_noinline<handwritten()::Row>::vector_noinline()
lea rdx, .LC9[rip]
mov rcx, rbx
mov DWORD PTR 32[rsp], 0
.LEHB0:
call dummy_db::execute(char const*)
call dummy_db::read_count() const [clone .isra.27]
mov edx, eax
mov rcx, rdi
mov rbp, rdx
call vector_noinline<handwritten()::Row>::reserve(unsigned long) [clone .constprop.29]
test ebp, ebp
je .L100
lea r12, 48[rsp]
xor esi, esi
.p2align 4,,10
.L103:
mov rcx, rbx
call double dummy_db::get<double>(unsigned int) const [clone .constprop.35]
mov rcx, rbx
movsd QWORD PTR 48[rsp], xmm0
call int dummy_db::get<int>(unsigned int) const [clone .constprop.36]
mov rcx, rbx
mov DWORD PTR 56[rsp], eax
call int dummy_db::get<int>(unsigned int) const [clone .constprop.37]
mov rdx, r12
mov rcx, rdi
mov DWORD PTR 60[rsp], eax
call vector_noinline<handwritten()::Row>::push_back(handwritten()::Row const&) [clone .constprop.31]
mov rcx, rbx
add esi, 1
call dummy_db::move_to_next()
.LEHE0:
cmp ebp, esi
jne .L103
.L100:
mov rax, rdi
add rsp, 64
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
.L106:
mov rbx, rax
mov rcx, rdi
call vector_noinline<handwritten()::Row>::~vector_noinline()
mov rcx, rbx
.LEHB1:
call _Unwind_Resume
nop
.LEHE1:
.def __gxx_personality_seh0; .scl 2; .type 32; .endef
.seh_handler __gxx_personality_seh0, @unwind, @except
.seh_handlerdata
.LLSDA1999:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE1999-.LLSDACSB1999
.LLSDACSB1999:
.uleb128 .LEHB0-.LFB1999
.uleb128 .LEHE0-.LEHB0
.uleb128 .L106-.LFB1999
.uleb128 0
.uleb128 .LEHB1-.LFB1999
.uleb128 .LEHE1-.LEHB1
.uleb128 0
.uleb128 0
.LLSDACSE1999:
.text
.seh_endproc
.section .text$_ZN15vector_noinlineI8make_rowIJ12table_columnI7foo_auxdNS2_12value_column11field_valueEES1_IS2_iNS2_9id_column8field_idEES1_IS2_iNS2_13number_column12field_numberEEEEEC1Ev,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline()
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline(); .scl 2; .type 32; .endef
.seh_proc vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline()
vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline():
.LFB2022:
.seh_endprologue
mov QWORD PTR [rcx], 0
mov QWORD PTR 8[rcx], 0
mov QWORD PTR 16[rcx], 0
ret
.seh_endproc
.weak vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline()
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline(); .scl 2; .type 32; .endef
.set vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline(),vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline()
.section .text$_ZN15vector_noinlineI8make_rowIJ12table_columnI7foo_auxdNS2_12value_column11field_valueEES1_IS2_iNS2_9id_column8field_idEES1_IS2_iNS2_13number_column12field_numberEEEEED1Ev,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline(); .scl 2; .type 32; .endef
.seh_proc vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline():
.LFB2025:
.seh_endprologue
mov rcx, QWORD PTR [rcx]
test rcx, rcx
je .L113
jmp operator delete(void*)
.p2align 4,,10
.L113:
rep ret
.seh_endproc
.weak vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline(); .scl 2; .type 32; .endef
.set vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline(),vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
.section .text$_ZN15vector_noinlineI8make_rowIJ12table_columnI7foo_auxdNS2_12value_column11field_valueEES1_IS2_iNS2_9id_column8field_idEES1_IS2_iNS2_13number_column12field_numberEEEEE7reserveEm,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long)
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long); .scl 2; .type 32; .endef
.seh_proc vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long)
vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long):
.LFB2170:
push r13
.seh_pushreg r13
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
movabs rax, 1152921504606846975
cmp rdx, rax
mov rsi, rcx
ja .L126
mov rbp, QWORD PTR [rcx]
mov rax, QWORD PTR 16[rcx]
sub rax, rbp
sar rax, 4
cmp rdx, rax
ja .L127
add rsp, 40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.p2align 4,,10
.L127:
mov rdi, QWORD PTR 8[rcx]
sub rdi, rbp
test rdx, rdx
je .L122
mov rbx, rdx
sal rbx, 4
mov rcx, rbx
call operator new(unsigned long)
mov r13, QWORD PTR [rsi]
mov r12, rax
.L118:
mov rax, rdi
sar rax, 4
test rax, rax
je .L120
mov r8, rdi
mov rdx, rbp
mov rcx, r12
call memmove
.L120:
test r13, r13
je .L121
mov rcx, r13
call operator delete(void*)
.L121:
lea rdx, [r12+rbx]
add rdi, r12
mov QWORD PTR [rsi], r12
mov QWORD PTR 8[rsi], rdi
mov QWORD PTR 16[rsi], rdx
add rsp, 40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.p2align 4,,10
.L122:
mov r13, rbp
xor ebx, ebx
xor r12d, r12d
jmp .L118
.L126:
lea rcx, .LC0[rip]
call std::__throw_length_error(char const*)
nop
.seh_endproc
.weak vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long)
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long); .scl 2; .type 32; .endef
.set vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long),vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long)
.section .text$_Z5printI15vector_noinlineI8make_rowIJ12table_columnI7foo_auxdNS3_12value_column11field_valueEES2_IS3_iNS3_9id_column8field_idEES2_IS3_iNS3_13number_column12field_numberEEEEEEvOT_,"x"
.linkonce discard
.p2align 4,,15
.globl void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&)
.def void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&); .scl 2; .type 32; .endef
.seh_proc void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&)
void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&):
.LFB2177:
push r13
.seh_pushreg r13
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 56
.seh_stackalloc 56
movaps XMMWORD PTR 32[rsp], xmm6
.seh_savexmm xmm6, 32
.seh_endprologue
lea r13, std::ctype<char>::do_widen(char) const[rip]
mov rbx, QWORD PTR [rcx]
mov rbp, QWORD PTR 8[rcx]
mov r12, QWORD PTR .refptr._ZSt4cout[rip]
cmp rbx, rbp
jne .L136
jmp .L128
.p2align 4,,10
.L139:
movsx edx, BYTE PTR 67[rsi]
.L132:
mov rcx, rdi
add rbx, 16
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
cmp rbp, rbx
je .L128
.L136:
mov edx, DWORD PTR 8[rbx]
mov rcx, r12
mov edi, DWORD PTR 12[rbx]
movsd xmm6, QWORD PTR [rbx]
call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, rax
mov rsi, 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)
movapd xmm1, xmm6
mov rcx, rsi
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)
lea rdx, .LC2[rip]
mov rsi, rax
mov r8d, 1
mov rcx, 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 edx, edi
mov rcx, rsi
call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
mov rdi, rax
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR -24[rax]
mov rsi, QWORD PTR 240[rdi+rax]
test rsi, rsi
je .L138
cmp BYTE PTR 56[rsi], 0
jne .L139
mov rcx, rsi
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rsi]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, r13
je .L132
mov rcx, rsi
call rax
movsx edx, al
jmp .L132
.p2align 4,,10
.L128:
movaps xmm6, XMMWORD PTR 32[rsp]
add rsp, 56
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.L138:
call std::__throw_bad_cast()
nop
.seh_endproc
.weak void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&)
.def void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&); .scl 2; .type 32; .endef
.set void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&),void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&)
.section .text$_ZNSt6vectorI8make_rowIJ12table_columnI7foo_auxdNS2_12value_column11field_valueEES1_IS2_iNS2_9id_column8field_idEES1_IS2_iNS2_13number_column12field_numberEEEESaISC_EE19_M_emplace_back_auxIJRKSC_EEEvDpOT_,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.def void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&); .scl 2; .type 32; .endef
.seh_proc void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&):
.LFB2390:
push r13
.seh_pushreg r13
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
mov r8, QWORD PTR 8[rcx]
mov rbx, rcx
mov r13, rdx
mov rax, r8
sub rax, QWORD PTR [rcx]
sar rax, 4
test rax, rax
je .L148
lea rdx, [rax+rax]
cmp rax, rdx
jbe .L159
.L149:
mov rbp, -16
jmp .L141
.p2align 4,,10
.L148:
mov ebp, 16
.L141:
mov rcx, rbp
call operator new(unsigned long)
mov r8, QWORD PTR 8[rbx]
mov rsi, rax
.L147:
mov r12, QWORD PTR [rbx]
mov rdi, rsi
sub r8, r12
mov rax, r8
sar rax, 4
add rdi, r8
je .L143
mov r9, QWORD PTR 0[r13]
mov r10, QWORD PTR 8[r13]
mov QWORD PTR [rdi], r9
mov QWORD PTR 8[rdi], r10
.L143:
test rax, rax
jne .L160
add rdi, 16
test r12, r12
je .L146
.L145:
mov rcx, r12
call operator delete(void*)
.L146:
mov QWORD PTR [rbx], rsi
add rsi, rbp
mov QWORD PTR 8[rbx], rdi
mov QWORD PTR 16[rbx], rsi
add rsp, 40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
.p2align 4,,10
.L160:
mov rdx, r12
mov rcx, rsi
add rdi, 16
call memmove
jmp .L145
.L159:
movabs rcx, 1152921504606846975
cmp rdx, rcx
ja .L149
xor ebp, ebp
xor esi, esi
test rdx, rdx
je .L147
sal rax, 5
mov rbp, rax
jmp .L141
.seh_endproc
.weak void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.def void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&); .scl 2; .type 32; .endef
.set void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&),void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.section .text$_ZN15vector_noinlineI8make_rowIJ12table_columnI7foo_auxdNS2_12value_column11field_valueEES1_IS2_iNS2_9id_column8field_idEES1_IS2_iNS2_13number_column12field_numberEEEEE9push_backERKSC_,"x"
.linkonce discard
.align 2
.p2align 4,,15
.globl vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&); .scl 2; .type 32; .endef
.seh_proc vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&):
.LFB2172:
.seh_endprologue
mov rax, QWORD PTR 8[rcx]
cmp rax, QWORD PTR 16[rcx]
je .L162
test rax, rax
je .L163
mov r9, QWORD PTR [rdx]
mov r10, QWORD PTR 8[rdx]
mov QWORD PTR [rax], r9
mov QWORD PTR 8[rax], r10
.L163:
add rax, 16
mov QWORD PTR 8[rcx], rax
ret
.p2align 4,,10
.L162:
jmp void std::vector<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >, std::allocator<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >::_M_emplace_back_aux<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&>(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.seh_endproc
.weak vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.def vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&); .scl 2; .type 32; .endef
.set vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&),vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
.section .text$_ZN9projectedI10make_tableIN7foo_aux11name_stringEJNS1_9id_columnENS1_11code_columnENS1_12value_columnENS1_13number_columnEEE6stringIJLc105ELc100ELc62ELc52ELc50EEEJ12table_columnIS1_dNS5_11field_valueEESA_IS1_iNS3_8field_idEESA_IS1_iNS6_12field_numberEEEE9to_vectorEv,"x"
.linkonce discard
.p2align 4,,15
.globl projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector()
.def projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector(); .scl 2; .type 32; .endef
.seh_proc projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector()
projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector():
.LFB2019:
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 64
.seh_stackalloc 64
.seh_endprologue
lea rbx, 32[rsp]
mov rdi, rcx
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::vector_noinline()
lea rdx, string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value[rip]
mov rcx, rbx
mov DWORD PTR 32[rsp], 0
.LEHB2:
call dummy_db::execute(char const*)
call dummy_db::read_count() const [clone .isra.27]
mov edx, eax
mov rcx, rdi
mov rbp, rdx
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::reserve(unsigned long)
test ebp, ebp
je .L169
lea r12, 48[rsp]
xor esi, esi
.p2align 4,,10
.L172:
mov rcx, rbx
call double dummy_db::get<double>(unsigned int) const [clone .constprop.35]
mov rcx, rbx
movsd QWORD PTR 48[rsp], xmm0
call int dummy_db::get<int>(unsigned int) const [clone .constprop.36]
mov rcx, rbx
mov DWORD PTR 56[rsp], eax
call int dummy_db::get<int>(unsigned int) const [clone .constprop.37]
mov rdx, r12
mov rcx, rdi
mov DWORD PTR 60[rsp], eax
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::push_back(make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > const&)
mov rcx, rbx
add esi, 1
call dummy_db::move_to_next()
.LEHE2:
cmp ebp, esi
jne .L172
.L169:
mov rax, rdi
add rsp, 64
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
.L175:
mov rbx, rax
mov rcx, rdi
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
mov rcx, rbx
.LEHB3:
call _Unwind_Resume
nop
.LEHE3:
.seh_handler __gxx_personality_seh0, @unwind, @except
.seh_handlerdata
.LLSDA2019:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE2019-.LLSDACSB2019
.LLSDACSB2019:
.uleb128 .LEHB2-.LFB2019
.uleb128 .LEHE2-.LEHB2
.uleb128 .L175-.LFB2019
.uleb128 0
.uleb128 .LEHB3-.LFB2019
.uleb128 .LEHE3-.LEHB3
.uleb128 0
.uleb128 0
.LLSDACSE2019:
.section .text$_ZN9projectedI10make_tableIN7foo_aux11name_stringEJNS1_9id_columnENS1_11code_columnENS1_12value_columnENS1_13number_columnEEE6stringIJLc105ELc100ELc62ELc52ELc50EEEJ12table_columnIS1_dNS5_11field_valueEESA_IS1_iNS3_8field_idEESA_IS1_iNS6_12field_numberEEEE9to_vectorEv,"x"
.linkonce discard
.seh_endproc
.weak projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector()
.def projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector(); .scl 2; .type 32; .endef
.set projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector(),projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector()
.def __main; .scl 2; .type 32; .endef
.section .text.startup,"x"
.p2align 4,,15
.globl main
.def main; .scl 2; .type 32; .endef
.seh_proc main
main:
.LFB2013:
push r14
.seh_pushreg r14
push r13
.seh_pushreg r13
push r12
.seh_pushreg r12
push rbp
.seh_pushreg rbp
push rdi
.seh_pushreg rdi
push rsi
.seh_pushreg rsi
push rbx
.seh_pushreg rbx
sub rsp, 80
.seh_stackalloc 80
movaps XMMWORD PTR 64[rsp], xmm6
.seh_savexmm xmm6, 64
.seh_endprologue
lea r13, 32[rsp]
call __main
mov rcx, r13
.LEHB4:
call projected<make_table<foo_aux::name_string, foo_aux::id_column, foo_aux::code_column, foo_aux::value_column, foo_aux::number_column>, string<(char)105, (char)100, (char)62, (char)52, (char)50>, table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> >::to_vector()
.LEHE4:
mov rcx, r13
.LEHB5:
call void print<vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > > >(vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >&&)
.LEHE5:
mov rcx, r13
lea r14, std::ctype<char>::do_widen(char) const[rip]
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
.LEHB6:
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 rcx, r13
call handwritten()
.LEHE6:
mov rbx, QWORD PTR 32[rsp]
mov rbp, QWORD PTR 40[rsp]
mov r12, QWORD PTR .refptr._ZSt4cout[rip]
cmp rbx, rbp
jne .L193
jmp .L187
.p2align 4,,10
.L197:
movsx edx, BYTE PTR 67[rsi]
.L185:
mov rcx, rdi
.LEHB7:
call std::basic_ostream<char, std::char_traits<char> >::put(char)
mov rcx, rax
call std::basic_ostream<char, std::char_traits<char> >::flush()
add rbx, 16
cmp rbp, rbx
je .L187
.L193:
mov edx, DWORD PTR 8[rbx]
mov rcx, r12
mov edi, DWORD PTR 12[rbx]
movsd xmm6, QWORD PTR [rbx]
call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, rax
mov rsi, 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)
movapd xmm1, xmm6
mov rcx, rsi
call std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)
lea rdx, .LC2[rip]
mov r8d, 1
mov rcx, rax
mov rsi, 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 edx, edi
mov rcx, rsi
call std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
mov rdi, rax
mov rax, QWORD PTR [rax]
mov rax, QWORD PTR -24[rax]
mov rsi, QWORD PTR 240[rdi+rax]
test rsi, rsi
je .L196
cmp BYTE PTR 56[rsi], 0
jne .L197
mov rcx, rsi
call std::ctype<char>::_M_widen_init() const
mov rax, QWORD PTR [rsi]
mov edx, 10
mov rax, QWORD PTR 48[rax]
cmp rax, r14
je .L185
mov rcx, rsi
call rax
movsx edx, al
jmp .L185
.p2align 4,,10
.L187:
mov rcx, r13
call vector_noinline<handwritten()::Row>::~vector_noinline()
nop
movaps xmm6, XMMWORD PTR 64[rsp]
xor eax, eax
add rsp, 80
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
.L196:
call std::__throw_bad_cast()
.LEHE7:
.L192:
mov rbx, rax
mov rcx, r13
call vector_noinline<handwritten()::Row>::~vector_noinline()
mov rcx, rbx
.LEHB8:
call _Unwind_Resume
.L191:
mov rbx, rax
mov rcx, r13
call vector_noinline<make_row<table_column<foo_aux, double, foo_aux::value_column::field_value>, table_column<foo_aux, int, foo_aux::id_column::field_id>, table_column<foo_aux, int, foo_aux::number_column::field_number> > >::~vector_noinline()
mov rcx, rbx
call _Unwind_Resume
nop
.LEHE8:
.seh_handler __gxx_personality_seh0, @unwind, @except
.seh_handlerdata
.LLSDA2013:
.byte 0xff
.byte 0xff
.byte 0x1
.uleb128 .LLSDACSE2013-.LLSDACSB2013
.LLSDACSB2013:
.uleb128 .LEHB4-.LFB2013
.uleb128 .LEHE4-.LEHB4
.uleb128 0
.uleb128 0
.uleb128 .LEHB5-.LFB2013
.uleb128 .LEHE5-.LEHB5
.uleb128 .L191-.LFB2013
.uleb128 0
.uleb128 .LEHB6-.LFB2013
.uleb128 .LEHE6-.LEHB6
.uleb128 0
.uleb128 0
.uleb128 .LEHB7-.LFB2013
.uleb128 .LEHE7-.LEHB7
.uleb128 .L192-.LFB2013
.uleb128 0
.uleb128 .LEHB8-.LFB2013
.uleb128 .LEHE8-.LEHB8
.uleb128 0
.uleb128 0
.LLSDACSE2013:
.section .text.startup,"x"
.seh_endproc
.p2align 4,,15
.def _GLOBAL__sub_I__ZNK8dummy_db3getIiEET_j; .scl 3; .type 32; .endef
.seh_proc _GLOBAL__sub_I__ZNK8dummy_db3getIiEET_j
_GLOBAL__sub_I__ZNK8dummy_db3getIiEET_j:
.LFB2560:
sub rsp, 40
.seh_stackalloc 40
.seh_endprologue
lea rcx, std::__ioinit[rip]
call std::ios_base::Init::Init()
mov r8, QWORD PTR .refptr.__dso_handle[rip]
lea rdx, std::__ioinit[rip]
lea rcx, std::ios_base::Init::~Init()[rip]
add rsp, 40
jmp __cxa_atexit
.seh_endproc
.section .ctors,"w"
.align 8
.quad _GLOBAL__sub_I__ZNK8dummy_db3getIiEET_j
.globl string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value
.section .rdata$_ZN12string_valueIJLc115ELc101ELc108ELc101ELc99ELc116ELc32ELc102ELc111ELc111ELc46ELc118ELc97ELc108ELc117ELc101ELc44ELc32ELc102ELc111ELc111ELc46ELc105ELc100ELc44ELc32ELc102ELc111ELc111ELc46ELc110ELc117ELc109ELc98ELc101ELc114ELc32ELc102ELc114ELc111ELc109ELc32ELc102ELc111ELc111ELc32ELc119ELc104ELc101ELc114ELc101ELc32ELc105ELc100ELc62ELc52ELc50EEE5valueE,"dr"
.linkonce same_size
.align 32
string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value:
.byte 115
.byte 101
.byte 108
.byte 101
.byte 99
.byte 116
.byte 32
.byte 102
.byte 111
.byte 111
.byte 46
.byte 118
.byte 97
.byte 108
.byte 117
.byte 101
.byte 44
.byte 32
.byte 102
.byte 111
.byte 111
.byte 46
.byte 105
.byte 100
.byte 44
.byte 32
.byte 102
.byte 111
.byte 111
.byte 46
.byte 110
.byte 117
.byte 109
.byte 98
.byte 101
.byte 114
.byte 32
.byte 102
.byte 114
.byte 111
.byte 109
.byte 32
.byte 102
.byte 111
.byte 111
.byte 32
.byte 119
.byte 104
.byte 101
.byte 114
.byte 101
.byte 32
.byte 105
.byte 100
.byte 62
.byte 52
.byte 50
.byte 0
.globl string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value
.set string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value,string_value<(char)115, (char)101, (char)108, (char)101, (char)99, (char)116, (char)32, (char)102, (char)111, (char)111, (char)46, (char)118, (char)97, (char)108, (char)117, (char)101, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)105, (char)100, (char)44, (char)32, (char)102, (char)111, (char)111, (char)46, (char)110, (char)117, (char)109, (char)98, (char)101, (char)114, (char)32, (char)102, (char)114, (char)111, (char)109, (char)32, (char)102, (char)111, (char)111, (char)32, (char)119, (char)104, (char)101, (char)114, (char)101, (char)32, (char)105, (char)100, (char)62, (char)52, (char)50>::value
.globl foo
.bss
foo:
.space 4
.lcomm std::__ioinit,1,1
.section .rdata,"dr"
.align 8
.LC4:
.long 1202590843
.long 1065646817
.align 8
.LC5:
.long 0
.long 1072693248
.ident "GCC: (GNU) 5.3.0"
.def __real__ZdlPv; .scl 2; .type 32; .endef
.def operator delete(void*); .scl 2; .type 32; .endef
.def __real__Znwm; .scl 2; .type 32; .endef
.def operator new(unsigned long); .scl 2; .type 32; .endef
.def memmove; .scl 2; .type 32; .endef
.def std::__throw_length_error(char const*); .scl 2; .type 32; .endef
.def 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); .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >::put(char); .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >::flush(); .scl 2; .type 32; .endef
.def std::ctype<char>::_M_widen_init() const; .scl 2; .type 32; .endef
.def std::__throw_bad_cast(); .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<unsigned long>(unsigned long); .scl 2; .type 32; .endef
.def strlen; .scl 2; .type 32; .endef
.def std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate); .scl 2; .type 32; .endef
.def _Unwind_Resume; .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >::operator<<(int); .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double); .scl 2; .type 32; .endef
.def std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&); .scl 2; .type 32; .endef
.def std::ios_base::Init::Init(); .scl 2; .type 32; .endef
.def std::ios_base::Init::~Init(); .scl 2; .type 32; .endef
.def __cxa_atexit; .scl 2; .type 32; .endef
.section .rdata$.refptr._ZNSt8ios_base4InitD1Ev, "dr"
.globl .refptr._ZNSt8ios_base4InitD1Ev
.linkonce discard
.refptr._ZNSt8ios_base4InitD1Ev:
.quad std::ios_base::Init::~Init()
.section .rdata$.refptr.__dso_handle, "dr"
.globl .refptr.__dso_handle
.linkonce discard
.refptr.__dso_handle:
.quad __dso_handle
.section .rdata$.refptr._ZSt4cout, "dr"
.globl .refptr._ZSt4cout
.linkonce discard
.refptr._ZSt4cout:
.quad std::cout
|