; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4c45c0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_long_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_long_long_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_14h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_22h; | int64_t var_28h; | int64_t var_2eh; | int64_t var_30h; | uint32_t var_40h; | uint32_t var_48h; | int64_t var_50h; | uint32_t var_54h; | int64_t var_58h; | int64_t var_60h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004c45c0 push rbp | 0x004c45c1 push r15 | 0x004c45c3 push r14 | 0x004c45c5 push r13 | 0x004c45c7 push r12 | 0x004c45c9 push rbx | 0x004c45ca sub rsp, 0x68 | 0x004c45ce mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c45d2 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c45d6 cmp byte [rip + 0x2543b9], 0 | | if (*(obj.verbose) != 0) { 0x004c45dd je 0x4c45e9 | 0x004c45df mov edi, 0x4f6973 | 0x004c45e4 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c45e9 xor eax, eax | eax = 0; 0x004c45eb jmp 0x4c461c | goto label_4; | label_1: 0x004c45f0 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c45f5 mov rsi, rbp | rsi = rbp; 0x004c45f8 call 0x4e06e0 | voidverify(long long*,char const*) (); 0x004c45fd mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4602 mov rsi, rbp | rsi = rbp; 0x004c4605 call 0x4e0920 | voidcleanup(long long*,char const*) (); 0x004c460a mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c460f inc rax | rax++; 0x004c4612 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c4616 je 0x4c4b66 | goto label_5; | } | label_4: 0x004c461c mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004c4621 lea rbp, [rax*8] | rbp = rax*8; 0x004c4629 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c4631 mov rdi, r12 | 0x004c4634 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c4639 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c463c jl 0x4c4667 | 0x004c463e mov edi, 0x4f4e04 | 0x004c4643 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c4648 mov esi, 0xfe6 | esi = 0xfe6; 0x004c464d xor eax, eax | eax = 0; 0x004c464f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4654 mov eax, dword [rip + 0x25433e] | eax = (anonymous namespace)::testStatus; 0x004c465a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c465d ja 0x4c4667 | goto label_6; | } 0x004c465f inc eax | eax++; 0x004c4661 mov dword [rip + 0x254331], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_6: 0x004c4667 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c466f movsxd r15, dword [rbp + rbp*4 + 0x4f3ca0] | r15 = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c4677 mov ebx, dword [rbp + rbp*4 + 0x4f3ca4] | ebx = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c467e movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c4686 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c468e cmp byte [rip + 0x2542fb], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4695 je 0x4c46b6 | 0x004c4697 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c469b mov edi, 0x4f5c41 | 0x004c46a0 mov esi, r14d | esi = r14d; 0x004c46a3 mov rdx, r12 | rdx = r12; 0x004c46a6 mov ecx, r15d | ecx = r15d; 0x004c46a9 mov r8d, ebx | r8d = ebx; 0x004c46ac mov r9d, r13d | r9d = r13d; 0x004c46af xor eax, eax | eax = 0; 0x004c46b1 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c46b6 mov dword [rsp + 0x14], r14d | *((rsp + 0x14)) = r14d; 0x004c46bb mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c46c0 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c46c5 mov rsi, r12 | rsi = r12; 0x004c46c8 call 0x4e0600 | long long&gg(long long*,char const*) (); 0x004c46cd mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c46d2 mov rsi, r12 | rsi = r12; 0x004c46d5 call 0x4e06e0 | voidverify(long long*,char const*) (); 0x004c46da mov r12d, dword [rip + 0x2542c3] | r12d = numCopyCtorCalls; 0x004c46e1 mov r14d, dword [rip + 0x2542c4] | r14d = numCharCtorCalls; 0x004c46e8 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c46ed je 0x4c47d0 | goto label_7; | } 0x004c46f3 cmp byte [rip + 0x254296], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c46fa je 0x4c470f | 0x004c46fc cmp dword [rip + 0x253e5d], 0 | | if (*(0x00718560) == 0) { 0x004c4703 je 0x4c470f | goto label_8; | } 0x004c4705 mov edi, 0x4f43ea | 0x004c470a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_8: 0x004c470f mov dword [rip + 0x253e47], 0 | *(0x00718560) = 0; 0x004c4719 cmp byte [rip + 0x254275], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c4720 je 0x4c472c | 0x004c4722 mov edi, 0x4f4411 | 0x004c4727 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c472c mov rax, qword [rip + 0x2540ed] | rax = Z; 0x004c4733 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c473c mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c4741 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c4749 test rax, rax | 0x004c474c je 0x4c4895 | | while (rax != 0) { | label_0: 0x004c4752 lea rsi, [r15*8 + 0x74f4a0] | rsi = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c475a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c475f add eax, r15d | eax += r15d; 0x004c4762 cdqe | rax = (int64_t) eax; 0x004c4764 lea rdx, [rax*8 + 0x74f4a0] | rdx = rax*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c476c sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c476f je 0x4c477e | 0x004c4771 lea rdi, [r13*8 + 0x74f4a0] | 0x004c4779 call 0x401930 | memcpy (r13*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c477e mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c4783 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c4788 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c478f call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c4792 cmp byte [rip + 0x2541fc], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c4799 je 0x4c47a5 | 0x004c479b mov edi, 0x4f4571 | 0x004c47a0 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c47a5 cmp byte [rip + 0x2541e4], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c47ac je 0x4c4a8a | goto label_9; | } 0x004c47b2 mov edi, 0xa | 0x004c47b7 call 0x401720 | putchar (0xa); 0x004c47bc mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c47c0 jmp 0x4c4a61 | goto label_10; | label_7: 0x004c47d0 cmp qword [rip + 0x254048], 0 | | if (*(obj.Z) == 0) { 0x004c47d8 jne 0x4c47f0 | 0x004c47da mov rax, qword [rip + 0x28cad7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c47e1 test rax, rax | | if (rax != 0) { 0x004c47e4 jne 0x4c47f0 | goto label_11; | } 0x004c47e6 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c47eb nop dword [rax + rax] | | } | label_11: 0x004c47f0 cmp qword [rsp + 0x48], 6 | 0x004c47f6 mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (*((rsp + 0x48)) < 6) { 0x004c47fa jb 0x4c4a61 | goto label_10; | } 0x004c4800 lea rax, [r15*8 + 0x74f4a0] | rax = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4808 lea rcx, [r13*8 + 0x74f4a0] | rcx = r13*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4810 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x004c4815 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c4819 movsxd r9, edx | r9 = (int64_t) edx; 0x004c481c shl r9, 3 | r9 <<= 3; 0x004c4820 lea rdi, [r15*8] | rdi = r15*8; 0x004c4828 mov r10, r9 | r10 = r9; 0x004c482b sub r10, rdi | r10 -= rdi; 0x004c482e add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c4832 cmp r10, 0x18 | | if (r10 < 0x18) { 0x004c4836 jb 0x4c4a40 | goto label_12; | } 0x004c483c mov dword [rsp + 0x50], r14d | *((rsp + 0x50)) = r14d; 0x004c4841 mov r11, rbp | r11 = rbp; 0x004c4844 lea rbp, [r13*8 + 0x74f4a0] | rbp = r13*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c484c lea edx, [rsi + r15] | edx = rsi + r15; 0x004c4850 movsxd rdx, edx | rdx = (int64_t) edx; 0x004c4853 lea rbx, [rdx*8 + 0x74f4a0] | rbx = rdx*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c485b cmp rbp, rbx | | if (rbp >= rbx) { 0x004c485e jae 0x4c4907 | goto label_13; | } 0x004c4864 shl rdx, 3 | rdx <<= 3; 0x004c4868 sub rdx, rdi | rdx -= rdi; 0x004c486b lea rdx, [rdx + r13*8 + 0x74f4a0] | rdx = rdx + r13*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4873 lea rbp, [r15*8 + 0x74f4a0] | rbp = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c487b cmp rbp, rdx | | if (rbp >= rdx) { 0x004c487e jae 0x4c4907 | goto label_13; | } 0x004c4884 mov rbp, r11 | 0x004c4887 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c488c mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c4890 jmp 0x4c4a40 | goto label_12; 0x004c4895 mov ebx, 1 | ebx = 1; 0x004c489a mov rax, qword [rip + 0x28ca17] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c48a1 test rax, rax | 0x004c48a4 jne 0x4c4752 | | } 0x004c48aa call 0x4eede0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c48af jmp 0x4c4752 | goto label_0; | label_13: 0x004c4907 shr r10, 3 | r10 >>= 3; 0x004c490b inc r10 | r10++; 0x004c490e mov r8, r10 | r8 = r10; 0x004c4911 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4915 lea rdx, [r8 - 4] | rdx = r8 - 4; 0x004c4919 mov rbp, rdx | 0x004c491c shr rbp, 2 | rbp >>= 2; 0x004c4920 inc rbp | rbp++; 0x004c4923 mov ebx, ebp | ebx = ebp; 0x004c4925 and ebx, 3 | ebx &= 3; 0x004c4928 cmp rdx, 0xc | | if (rdx < 0xc) { 0x004c492c jae 0x4c4935 | 0x004c492e xor edx, edx | edx = 0; 0x004c4930 jmp 0x4c49da | goto label_14; | } 0x004c4935 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c4939 neg rbp | rbp = -rbp; 0x004c493c xor edx, edx | edx = 0; 0x004c493e nop | | do { 0x004c4940 movups xmm0, xmmword [rdi + rdx*8 + 0x74f4a0] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u]"); 0x004c4948 movups xmm1, xmmword [rdi + rdx*8 + 0x74f4b0] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f4b0]"); 0x004c4950 lea rsi, [r13*8] | rsi = r13*8; 0x004c4958 movups xmmword [rsi + rdx*8 + 0x74f4a0], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c4960 movups xmmword [rsi + rdx*8 + 0x74f4b0], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f4b0], xmm1"); 0x004c4968 movups xmm0, xmmword [rdi + rdx*8 + 0x74f4c0] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f4c0]"); 0x004c4970 movups xmm1, xmmword [rdi + rdx*8 + 0x74f4d0] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f4d0]"); 0x004c4978 movups xmmword [rsi + rdx*8 + 0x74f4c0], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f4c0], xmm0"); 0x004c4980 movups xmmword [rsi + rdx*8 + 0x74f4d0], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f4d0], xmm1"); 0x004c4988 movups xmm0, xmmword [rdi + rdx*8 + 0x74f4e0] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f4e0]"); 0x004c4990 movups xmm1, xmmword [rdi + rdx*8 + 0x74f4f0] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f4f0]"); 0x004c4998 movups xmmword [rsi + rdx*8 + 0x74f4e0], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f4e0], xmm0"); 0x004c49a0 movups xmmword [rsi + rdx*8 + 0x74f4f0], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f4f0], xmm1"); 0x004c49a8 movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f500] | __asm ("movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f500]"); 0x004c49b1 movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f510] | __asm ("movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f510]"); 0x004c49ba movdqu xmmword [rsi + rdx*8 + 0x74f500], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f500], xmm0"); 0x004c49c3 movdqu xmmword [rsi + rdx*8 + 0x74f510], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f510], xmm1"); 0x004c49cc add rdx, 0x10 | rdx += 0x10; 0x004c49d0 add rbp, 4 | rbp += 4; 0x004c49d4 jne 0x4c4940 | | } while (rbp != 0); | label_14: 0x004c49da test rbx, rbx | | if (rbx == 0) { 0x004c49dd je 0x4c4a20 | goto label_15; | } 0x004c49df shl r13, 3 | r13 <<= 3; 0x004c49e3 lea rbp, [r13 + rdx*8 + 0x74f4b0] | rbp = r13 + rdx*8 + 0x74f4b0; 0x004c49eb lea rdx, [rdi + rdx*8 + 0x74f4b0] | rdx = rdi + rdx*8 + 0x74f4b0; 0x004c49f3 shl rbx, 5 | rbx <<= 5; 0x004c49f7 xor edi, edi | edi = 0; 0x004c49f9 nop dword [rax] | | do { 0x004c4a00 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c4a06 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c4a0b movdqu xmmword [rbp + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbp + rdi - 0x10], xmm0"); 0x004c4a11 movdqu xmmword [rbp + rdi], xmm1 | __asm ("movdqu xmmword [rbp + rdi], xmm1"); 0x004c4a17 add rdi, 0x20 | rdi += 0x20; 0x004c4a1b cmp rbx, rdi | 0x004c4a1e jne 0x4c4a00 | | } while (rbx != rdi); | label_15: 0x004c4a20 cmp r10, r8 | 0x004c4a23 mov rbp, r11 | 0x004c4a26 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c4a2b mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (r10 == r8) { 0x004c4a2f je 0x4c4a61 | goto label_10; | } 0x004c4a31 lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c4a35 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c4a39 nop dword [rax] | | label_12: 0x004c4a40 sub r9, rax | r9 -= rax; 0x004c4a43 lea rdx, [r9 + 0x74f4a0] | rdx = r9 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4a4a xor esi, esi | esi = 0; 0x004c4a4c nop dword [rax] | | do { 0x004c4a50 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c4a54 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c4a58 add rsi, 8 | rsi += 8; 0x004c4a5c cmp rdx, rsi | 0x004c4a5f jne 0x4c4a50 | | } while (rdx != rsi); | label_10: 0x004c4a61 cmp byte [rip + 0x253f28], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4a68 je 0x4c4a8a | 0x004c4a6a mov edx, dword [rip + 0x253f34] | edx = numCopyCtorCalls; 0x004c4a70 sub edx, r12d | edx -= r12d; 0x004c4a73 mov ecx, dword [rip + 0x253f33] | ecx = numCharCtorCalls; 0x004c4a79 sub ecx, r14d | ecx -= r14d; 0x004c4a7c mov edi, 0x4f5db4 | 0x004c4a81 mov esi, ebx | esi = ebx; 0x004c4a83 xor eax, eax | eax = 0; 0x004c4a85 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_9: 0x004c4a8a cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c4a8f je 0x4c4af0 | goto label_16; | } 0x004c4a91 cmp r12d, dword [rip + 0x253f0c] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c4a98 je 0x4c4ac3 | 0x004c4a9a mov edi, 0x4f4e04 | 0x004c4a9f mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c4aa4 mov esi, 0x1005 | esi = 0x1005; 0x004c4aa9 xor eax, eax | eax = 0; 0x004c4aab call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4ab0 mov eax, dword [rip + 0x253ee2] | eax = (anonymous namespace)::testStatus; 0x004c4ab6 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4ab9 ja 0x4c4ac3 | goto label_17; | } 0x004c4abb inc eax | eax++; 0x004c4abd mov dword [rip + 0x253ed5], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_17: 0x004c4ac3 cmp r14d, dword [rip + 0x253ee2] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c4aca je 0x4c45f0 | goto label_1; | } 0x004c4ad0 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c4ad5 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c4ada mov esi, 0x1006 | esi = 0x1006; 0x004c4adf jmp 0x4c4b43 | goto label_18; | label_16: 0x004c4af0 add r12d, dword [rsp + 0x18] | r12d += *((rsp + 0x18)); 0x004c4af5 cmp r12d, dword [rip + 0x253ea8] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c4afc jle 0x4c4b27 | 0x004c4afe mov edi, 0x4f4e04 | 0x004c4b03 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c4b08 mov esi, 0x1009 | esi = 0x1009; 0x004c4b0d xor eax, eax | eax = 0; 0x004c4b0f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4b14 mov eax, dword [rip + 0x253e7e] | eax = (anonymous namespace)::testStatus; 0x004c4b1a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4b1d ja 0x4c4b27 | goto label_19; | } 0x004c4b1f inc eax | eax++; 0x004c4b21 mov dword [rip + 0x253e71], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c4b27 cmp r14d, dword [rip + 0x253e7e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c4b2e je 0x4c45f0 | goto label_1; | } 0x004c4b34 mov edi, 0x4f4e04 | 0x004c4b39 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c4b3e mov esi, 0x100a | esi = 0x100a; | label_18: 0x004c4b43 xor eax, eax | eax = 0; 0x004c4b45 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4b4a mov eax, dword [rip + 0x253e48] | eax = (anonymous namespace)::testStatus; 0x004c4b50 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4b53 ja 0x4c45f0 | goto label_1; | } 0x004c4b59 inc eax | eax++; 0x004c4b5b mov dword [rip + 0x253e37], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c4b61 jmp 0x4c45f0 | goto label_1; | label_5: 0x004c4b66 cmp byte [rip + 0x253e29], 0 | | if (*(obj.verbose) != 0) { 0x004c4b6d je 0x4c4b79 | 0x004c4b6f mov edi, 0x4f695c | 0x004c4b74 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c4b79 xor r12d, r12d | r12d = 0; 0x004c4b7c jmp 0x4c4ba7 | goto label_20; | label_3: 0x004c4b80 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4b85 mov rsi, rbx | rsi = rbx; 0x004c4b88 call 0x4e06e0 | voidverify(long long*,char const*) (); 0x004c4b8d mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4b92 mov rsi, rbx | rsi = rbx; 0x004c4b95 call 0x4e0920 | voidcleanup(long long*,char const*) (); 0x004c4b9a inc r12 | r12++; 0x004c4b9d cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c4ba1 je 0x4c51cd | goto label_21; | } | label_20: 0x004c4ba7 lea rbx, [r12*8] | rbx = r12*8; 0x004c4baf mov rbp, qword [rbx + rbx*4 + 0x4f3c98] | rbp = *((rbx + rbx*4 + 0x4f3c98)); 0x004c4bb7 mov rdi, rbp | 0x004c4bba call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c4bbf cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c4bc2 jl 0x4c4bed | 0x004c4bc4 mov edi, 0x4f4e04 | 0x004c4bc9 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c4bce mov esi, 0x1019 | esi = 0x1019; 0x004c4bd3 xor eax, eax | eax = 0; 0x004c4bd5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4bda mov eax, dword [rip + 0x253db8] | eax = (anonymous namespace)::testStatus; 0x004c4be0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4be3 ja 0x4c4bed | goto label_22; | } 0x004c4be5 inc eax | eax++; 0x004c4be7 mov dword [rip + 0x253dab], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_22: 0x004c4bed mov rdi, rbp | 0x004c4bf0 call 0x401790 | rax = strlen (rbp); 0x004c4bf5 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c4bf9 jb 0x4c4c24 | 0x004c4bfb mov edi, 0x4f4e04 | 0x004c4c00 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c4c05 mov esi, 0x101c | esi = 0x101c; 0x004c4c0a xor eax, eax | eax = 0; 0x004c4c0c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4c11 mov eax, dword [rip + 0x253d81] | eax = (anonymous namespace)::testStatus; 0x004c4c17 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4c1a ja 0x4c4c24 | goto label_23; | } 0x004c4c1c inc eax | eax++; 0x004c4c1e mov dword [rip + 0x253d74], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c4c24 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c4c29 pxor xmm0, xmm0 | xmm0 = 0; 0x004c4c2d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c4c33 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c4c3b mov al, byte [rbp] | al = *(rbp); 0x004c4c3e test al, al | | if (al == 0) { 0x004c4c40 je 0x4c4c60 | goto label_24; | } 0x004c4c42 xor ecx, ecx | ecx = 0; 0x004c4c44 nop word cs:[rax + rax] | 0x004c4c4e nop | | do { 0x004c4c50 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c4c54 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c4c59 inc rcx | rcx++; 0x004c4c5c test al, al | 0x004c4c5e jne 0x4c4c50 | | } while (al != 0); | label_24: 0x004c4c60 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c4c68 movsxd r13, dword [rbx + rbx*4 + 0x4f3ca0] | r13 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c4c70 movsxd r12, dword [rbx + rbx*4 + 0x4f3ca4] | r12 = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c4c78 movsxd r15, dword [rbx + rbx*4 + 0x4f3ca8] | r15 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c4c80 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c4c88 cmp byte [rip + 0x253d01], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4c8f je 0x4c4cb0 | 0x004c4c91 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c4c95 mov edi, 0x4f5c41 | 0x004c4c9a mov esi, r14d | esi = r14d; 0x004c4c9d mov rdx, rbp | rdx = rbp; 0x004c4ca0 mov ecx, r13d | ecx = r13d; 0x004c4ca3 mov r8d, r12d | r8d = r12d; 0x004c4ca6 mov r9d, r15d | r9d = r15d; 0x004c4ca9 xor eax, eax | eax = 0; 0x004c4cab call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c4cb0 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4cb5 mov rsi, rbp | rsi = rbp; 0x004c4cb8 call 0x4e0600 | long long&gg(long long*,char const*) (); 0x004c4cbd mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4cc2 mov rsi, rbp | rsi = rbp; 0x004c4cc5 call 0x4e06e0 | voidverify(long long*,char const*) (); 0x004c4cca mov eax, dword [rip + 0x253cd4] | eax = numCopyCtorCalls; 0x004c4cd0 mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c4cd4 mov eax, dword [rip + 0x253cd2] | eax = numCharCtorCalls; 0x004c4cda mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c4cde cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c4ce3 je 0x4c4db0 | goto label_25; | } 0x004c4ce9 cmp byte [rip + 0x253ca0], 0 | 0x004c4cf0 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c4cf3 je 0x4c4d08 | 0x004c4cf5 cmp dword [rip + 0x253868], 0 | | if (*(obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::firstTime) == 0) { 0x004c4cfc je 0x4c4d08 | goto label_26; | } 0x004c4cfe mov edi, 0x4f43ea | 0x004c4d03 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_26: 0x004c4d08 mov dword [rip + 0x253852], 0 | *(obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::firstTime) = 0; 0x004c4d12 cmp byte [rip + 0x253c7c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c4d19 je 0x4c4d25 | 0x004c4d1b mov edi, 0x4f4411 | 0x004c4d20 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c4d25 mov rax, qword [rip + 0x253af4] | rax = Z; 0x004c4d2c mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c4d35 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c4d3a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c4d42 test rax, rax | 0x004c4d45 je 0x4c4e3d | | while (rax != 0) { | label_2: 0x004c4d4b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c4d51 jb 0x4c5121 | goto label_27; | } 0x004c4d57 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c4d5c lea rsi, [r15*8 + 0x74f4a0] | rsi = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4d64 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c4d69 movsxd r9, eax | r9 = (int64_t) eax; 0x004c4d6c mov r10, r9 | r10 = r9; 0x004c4d6f sub r10, r13 | r10 -= r13; 0x004c4d72 cmp r10, 4 | | if (r10 < 4) { 0x004c4d76 jb 0x4c5106 | goto label_28; | } 0x004c4d7c mov r11, rbx | r11 = rbx; 0x004c4d7f mov r8, r10 | r8 = r10; 0x004c4d82 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4d86 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c4d8a mov rbp, rax | 0x004c4d8d shr rbp, 2 | rbp >>= 2; 0x004c4d91 inc rbp | rbp++; 0x004c4d94 mov edi, ebp | edi = ebp; 0x004c4d96 and edi, 3 | edi &= 3; 0x004c4d99 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c4d9d jae 0x4c4ff6 | goto label_29; | } 0x004c4da3 xor ebx, ebx | ebx = 0; 0x004c4da5 jmp 0x4c50a5 | goto label_30; | label_25: 0x004c4db0 cmp qword [rip + 0x253a68], 0 | 0x004c4db8 mov ebp, r14d | 0x004c4dbb mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c4dbe jne 0x4c4de0 | 0x004c4dc0 mov rax, qword [rip + 0x28c4f1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4dc7 test rax, rax | | if (rax != 0) { 0x004c4dca jne 0x4c4de0 | goto label_31; | } 0x004c4dcc call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4dd1 mov r11, r12 | r11 = r12; 0x004c4dd4 nop word cs:[rax + rax] | 0x004c4dde nop | | } | label_31: 0x004c4de0 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c4de5 cmp r12, 6 | | if (r12 < 6) { 0x004c4de9 jb 0x4c5160 | goto label_32; | } 0x004c4def lea rax, [r15*8 + 0x74f4a0] | rax = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4df7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c4dfc add r11, r13 | r11 += r13; 0x004c4dff mov r9, r11 | r9 = r11; 0x004c4e02 sub r9, r13 | r9 -= r13; 0x004c4e05 cmp r9, 4 | | if (r9 < 4) { 0x004c4e09 jb 0x4c4fca | goto label_33; | } 0x004c4e0f mov r10, rbx | r10 = rbx; 0x004c4e12 mov r8, r9 | r8 = r9; 0x004c4e15 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4e19 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c4e1d mov rdi, rsi | rdi = rsi; 0x004c4e20 shr rdi, 2 | rdi >>= 2; 0x004c4e24 inc rdi | rdi++; 0x004c4e27 mov ebp, edi | 0x004c4e29 and ebp, 3 | ebp &= 3; 0x004c4e2c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c4e30 jae 0x4c4ebd | goto label_34; | } 0x004c4e36 xor ebx, ebx | ebx = 0; 0x004c4e38 jmp 0x4c4f65 | goto label_35; 0x004c4e3d mov eax, 1 | eax = 1; 0x004c4e42 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c4e47 mov rax, qword [rip + 0x28c46a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4e4e test rax, rax | 0x004c4e51 jne 0x4c4d4b | | } 0x004c4e57 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4e5c jmp 0x4c4d4b | goto label_2; | label_34: 0x004c4ebd lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c4ec2 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c4ec6 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c4eca neg rdi | rdi = -rdi; 0x004c4ecd xor ebx, ebx | ebx = 0; 0x004c4ecf nop | | do { 0x004c4ed0 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c4ed7 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c4ede lea rdx, [r15*8] | rdx = r15*8; 0x004c4ee6 movdqu xmmword [rdx + rbx*8 + 0x74f4a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c4eef movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1"); 0x004c4ef8 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c4eff pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c4f06 movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0"); 0x004c4f0f movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1"); 0x004c4f18 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c4f1f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c4f26 movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0"); 0x004c4f2f movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1"); 0x004c4f38 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c4f3f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c4f45 movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0"); 0x004c4f4e movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1"); 0x004c4f57 add rbx, 0x10 | rbx += 0x10; 0x004c4f5b add rdi, 4 | rdi += 4; 0x004c4f5f jne 0x4c4ed0 | | } while (rdi != 0); | label_35: 0x004c4f65 test rbp, rbp | | if (rbp == 0) { 0x004c4f68 je 0x4c4fb4 | goto label_36; | } 0x004c4f6a add r13, rbx | r13 += rbx; 0x004c4f6d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c4f72 add r13, rdx | r13 += rdx; 0x004c4f75 shl r15, 3 | r15 <<= 3; 0x004c4f79 lea rsi, [r15 + rbx*8 + 0x74f4b0] | rsi = r15 + rbx*8 + 0x74f4b0; 0x004c4f81 shl rbp, 2 | rbp <<= 2; 0x004c4f85 xor edi, edi | edi = 0; 0x004c4f87 nop word [rax + rax] | | do { 0x004c4f90 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c4f98 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c4fa0 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c4fa6 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c4fab add rdi, 4 | rdi += 4; 0x004c4faf cmp rbp, rdi | 0x004c4fb2 jne 0x4c4f90 | | } while (rbp != rdi); | label_36: 0x004c4fb4 cmp r9, r8 | 0x004c4fb7 mov rbx, r10 | rbx = r10; 0x004c4fba mov ebp, r14d | | if (r9 == r8) { 0x004c4fbd je 0x4c5160 | goto label_32; | } 0x004c4fc3 add rcx, r8 | rcx += r8; 0x004c4fc6 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_33: 0x004c4fca sub r11, rcx | r11 -= rcx; 0x004c4fcd lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c4fd2 xor esi, esi | esi = 0; 0x004c4fd4 nop word cs:[rax + rax] | 0x004c4fde nop | | do { 0x004c4fe0 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c4fe5 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c4fe9 inc rsi | rsi++; 0x004c4fec cmp rdx, rsi | 0x004c4fef jne 0x4c4fe0 | | } while (rdx != rsi); 0x004c4ff1 jmp 0x4c5160 | goto label_32; | label_29: 0x004c4ff6 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c4ffb add rax, r13 | rax += r13; 0x004c4ffe and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c5002 neg rbp | rbp = -rbp; 0x004c5005 xor ebx, ebx | ebx = 0; 0x004c5007 nop word [rax + rax] | | do { 0x004c5010 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c5017 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c501e lea rdx, [r15*8] | rdx = r15*8; 0x004c5026 movdqu xmmword [rdx + rbx*8 + 0x74f4a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c502f movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1"); 0x004c5038 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c503f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c5046 movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0"); 0x004c504f movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1"); 0x004c5058 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c505f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c5066 movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0"); 0x004c506f movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1"); 0x004c5078 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c507f pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c5085 movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0"); 0x004c508e movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1"); 0x004c5097 add rbx, 0x10 | rbx += 0x10; 0x004c509b add rbp, 4 | rbp += 4; 0x004c509f jne 0x4c5010 | | } while (rbp != 0); | label_30: 0x004c50a5 test rdi, rdi | | if (rdi == 0) { 0x004c50a8 je 0x4c50f4 | goto label_37; | } 0x004c50aa add r13, rbx | r13 += rbx; 0x004c50ad lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c50b2 add r13, rax | r13 += rax; 0x004c50b5 shl r15, 3 | r15 <<= 3; 0x004c50b9 lea rax, [r15 + rbx*8 + 0x74f4b0] | rax = r15 + rbx*8 + 0x74f4b0; 0x004c50c1 shl rdi, 2 | rdi <<= 2; 0x004c50c5 xor ebp, ebp | ebp = 0; 0x004c50c7 nop word [rax + rax] | | do { 0x004c50d0 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c50d8 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c50e0 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c50e6 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c50eb add rbp, 4 | rbp += 4; 0x004c50ef cmp rdi, rbp | 0x004c50f2 jne 0x4c50d0 | | } while (rdi != rbp); | label_37: 0x004c50f4 cmp r10, r8 | 0x004c50f7 mov rbx, r11 | rbx = r11; 0x004c50fa mov ebp, r14d | | if (r10 == r8) { 0x004c50fd je 0x4c5121 | goto label_27; | } 0x004c50ff add rcx, r8 | rcx += r8; 0x004c5102 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_28: 0x004c5106 sub r9, rcx | r9 -= rcx; 0x004c5109 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c510e xor edi, edi | edi = 0; | do { 0x004c5110 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c5115 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c5119 inc rdi | rdi++; 0x004c511c cmp rax, rdi | 0x004c511f jne 0x4c5110 | | } while (rax != rdi); | label_27: 0x004c5121 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c5126 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c512b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c5132 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c5135 cmp byte [rip + 0x253859], 0 | 0x004c513c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c5141 je 0x4c514d | 0x004c5143 mov edi, 0x4f4571 | 0x004c5148 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c514d cmp byte [rip + 0x25383c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c5154 je 0x4c518b | 0x004c5156 mov edi, 0xa | 0x004c515b call 0x401720 | eax = putchar (0xa); | label_32: 0x004c5160 cmp byte [rip + 0x253829], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c5167 je 0x4c518b | goto label_38; | } 0x004c5169 mov edx, dword [rip + 0x253835] | edx = numCopyCtorCalls; 0x004c516f sub edx, dword [rsp + 0x48] | edx -= *((rsp + 0x48)); 0x004c5173 mov ecx, dword [rip + 0x253833] | ecx = numCharCtorCalls; 0x004c5179 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c517d mov edi, 0x4f5db4 | 0x004c5182 mov esi, ebp | esi = ebp; 0x004c5184 xor eax, eax | eax = 0; 0x004c5186 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_38: 0x004c518b mov eax, dword [rsp + 0x48] | eax = *((rsp + 0x48)); 0x004c518f cmp eax, dword [rip + 0x25380f] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c5195 je 0x4c4b80 | goto label_3; | } 0x004c519b mov edi, 0x4f4e04 | 0x004c51a0 mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c51a5 mov esi, 0x103f | esi = 0x103f; 0x004c51aa xor eax, eax | eax = 0; 0x004c51ac call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c51b1 mov eax, dword [rip + 0x2537e1] | eax = (anonymous namespace)::testStatus; 0x004c51b7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c51ba ja 0x4c4b80 | goto label_3; | } 0x004c51c0 inc eax | eax++; 0x004c51c2 mov dword [rip + 0x2537d0], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c51c8 jmp 0x4c4b80 | goto label_3; | label_21: 0x004c51cd add rsp, 0x68 | 0x004c51d1 pop rbx | 0x004c51d2 pop r12 | 0x004c51d4 pop r13 | 0x004c51d6 pop r14 | 0x004c51d8 pop r15 | 0x004c51da pop rbp | 0x004c51db ret | return rax; | }