; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4c3970 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_unsigned_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) */ 0x004c3970 push rbp | 0x004c3971 push r15 | 0x004c3973 push r14 | 0x004c3975 push r13 | 0x004c3977 push r12 | 0x004c3979 push rbx | 0x004c397a sub rsp, 0x68 | 0x004c397e mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c3982 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c3986 cmp byte [rip + 0x255009], 0 | | if (*(obj.verbose) != 0) { 0x004c398d je 0x4c3999 | 0x004c398f mov edi, 0x4f6973 | 0x004c3994 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c3999 xor eax, eax | eax = 0; 0x004c399b jmp 0x4c39cc | goto label_4; | label_1: 0x004c39a0 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c39a5 mov rsi, rbp | rsi = rbp; 0x004c39a8 call 0x4e01e0 | voidverify(unsigned long*,char const*) (); 0x004c39ad mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c39b2 mov rsi, rbp | rsi = rbp; 0x004c39b5 call 0x4e0420 | voidcleanup(unsigned long*,char const*) (); 0x004c39ba mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c39bf inc rax | rax++; 0x004c39c2 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c39c6 je 0x4c3f16 | goto label_5; | } | label_4: 0x004c39cc mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004c39d1 lea rbp, [rax*8] | rbp = rax*8; 0x004c39d9 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c39e1 mov rdi, r12 | 0x004c39e4 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c39e9 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c39ec jl 0x4c3a17 | 0x004c39ee mov edi, 0x4f4e04 | 0x004c39f3 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c39f8 mov esi, 0xfe6 | esi = 0xfe6; 0x004c39fd xor eax, eax | eax = 0; 0x004c39ff call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3a04 mov eax, dword [rip + 0x254f8e] | eax = (anonymous namespace)::testStatus; 0x004c3a0a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3a0d ja 0x4c3a17 | goto label_6; | } 0x004c3a0f inc eax | eax++; 0x004c3a11 mov dword [rip + 0x254f81], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_6: 0x004c3a17 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c3a1f movsxd r15, dword [rbp + rbp*4 + 0x4f3ca0] | r15 = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c3a27 mov ebx, dword [rbp + rbp*4 + 0x4f3ca4] | ebx = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c3a2e movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c3a36 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c3a3e cmp byte [rip + 0x254f4b], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3a45 je 0x4c3a66 | 0x004c3a47 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c3a4b mov edi, 0x4f5c41 | 0x004c3a50 mov esi, r14d | esi = r14d; 0x004c3a53 mov rdx, r12 | rdx = r12; 0x004c3a56 mov ecx, r15d | ecx = r15d; 0x004c3a59 mov r8d, ebx | r8d = ebx; 0x004c3a5c mov r9d, r13d | r9d = r13d; 0x004c3a5f xor eax, eax | eax = 0; 0x004c3a61 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c3a66 mov dword [rsp + 0x14], r14d | *((rsp + 0x14)) = r14d; 0x004c3a6b mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c3a70 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3a75 mov rsi, r12 | rsi = r12; 0x004c3a78 call 0x4e0100 | unsigned long&gg(unsigned long*,char const*) (); 0x004c3a7d mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3a82 mov rsi, r12 | rsi = r12; 0x004c3a85 call 0x4e01e0 | voidverify(unsigned long*,char const*) (); 0x004c3a8a mov r12d, dword [rip + 0x254f13] | r12d = numCopyCtorCalls; 0x004c3a91 mov r14d, dword [rip + 0x254f14] | r14d = numCharCtorCalls; 0x004c3a98 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c3a9d je 0x4c3b80 | goto label_7; | } 0x004c3aa3 cmp byte [rip + 0x254ee6], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3aaa je 0x4c3abf | 0x004c3aac cmp dword [rip + 0x254aa5], 0 | | if (*(0x00718558) == 0) { 0x004c3ab3 je 0x4c3abf | goto label_8; | } 0x004c3ab5 mov edi, 0x4f43ea | 0x004c3aba call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_8: 0x004c3abf mov dword [rip + 0x254a8f], 0 | *(0x00718558) = 0; 0x004c3ac9 cmp byte [rip + 0x254ec5], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c3ad0 je 0x4c3adc | 0x004c3ad2 mov edi, 0x4f4411 | 0x004c3ad7 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c3adc mov rax, qword [rip + 0x254d3d] | rax = Z; 0x004c3ae3 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c3aec mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c3af1 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c3af9 test rax, rax | 0x004c3afc je 0x4c3c45 | | while (rax != 0) { | label_0: 0x004c3b02 lea rsi, [r15*8 + 0x74f420] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3b0a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c3b0f add eax, r15d | eax += r15d; 0x004c3b12 cdqe | rax = (int64_t) eax; 0x004c3b14 lea rdx, [rax*8 + 0x74f420] | rdx = rax*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3b1c sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c3b1f je 0x4c3b2e | 0x004c3b21 lea rdi, [r13*8 + 0x74f420] | 0x004c3b29 call 0x401930 | memcpy (r13*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c3b2e mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c3b33 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c3b38 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c3b3f call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c3b42 cmp byte [rip + 0x254e4c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c3b49 je 0x4c3b55 | 0x004c3b4b mov edi, 0x4f4571 | 0x004c3b50 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c3b55 cmp byte [rip + 0x254e34], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c3b5c je 0x4c3e3a | goto label_9; | } 0x004c3b62 mov edi, 0xa | 0x004c3b67 call 0x401720 | putchar (0xa); 0x004c3b6c mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c3b70 jmp 0x4c3e11 | goto label_10; | label_7: 0x004c3b80 cmp qword [rip + 0x254c98], 0 | | if (*(obj.Z) == 0) { 0x004c3b88 jne 0x4c3ba0 | 0x004c3b8a mov rax, qword [rip + 0x28d727] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c3b91 test rax, rax | | if (rax != 0) { 0x004c3b94 jne 0x4c3ba0 | goto label_11; | } 0x004c3b96 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c3b9b nop dword [rax + rax] | | } | label_11: 0x004c3ba0 cmp qword [rsp + 0x48], 6 | 0x004c3ba6 mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (*((rsp + 0x48)) < 6) { 0x004c3baa jb 0x4c3e11 | goto label_10; | } 0x004c3bb0 lea rax, [r15*8 + 0x74f420] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3bb8 lea rcx, [r13*8 + 0x74f420] | rcx = r13*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3bc0 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x004c3bc5 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c3bc9 movsxd r9, edx | r9 = (int64_t) edx; 0x004c3bcc shl r9, 3 | r9 <<= 3; 0x004c3bd0 lea rdi, [r15*8] | rdi = r15*8; 0x004c3bd8 mov r10, r9 | r10 = r9; 0x004c3bdb sub r10, rdi | r10 -= rdi; 0x004c3bde add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c3be2 cmp r10, 0x18 | | if (r10 < 0x18) { 0x004c3be6 jb 0x4c3df0 | goto label_12; | } 0x004c3bec mov dword [rsp + 0x50], r14d | *((rsp + 0x50)) = r14d; 0x004c3bf1 mov r11, rbp | r11 = rbp; 0x004c3bf4 lea rbp, [r13*8 + 0x74f420] | rbp = r13*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3bfc lea edx, [rsi + r15] | edx = rsi + r15; 0x004c3c00 movsxd rdx, edx | rdx = (int64_t) edx; 0x004c3c03 lea rbx, [rdx*8 + 0x74f420] | rbx = rdx*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3c0b cmp rbp, rbx | | if (rbp >= rbx) { 0x004c3c0e jae 0x4c3cb7 | goto label_13; | } 0x004c3c14 shl rdx, 3 | rdx <<= 3; 0x004c3c18 sub rdx, rdi | rdx -= rdi; 0x004c3c1b lea rdx, [rdx + r13*8 + 0x74f420] | rdx = rdx + r13*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3c23 lea rbp, [r15*8 + 0x74f420] | rbp = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3c2b cmp rbp, rdx | | if (rbp >= rdx) { 0x004c3c2e jae 0x4c3cb7 | goto label_13; | } 0x004c3c34 mov rbp, r11 | 0x004c3c37 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c3c3c mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c3c40 jmp 0x4c3df0 | goto label_12; 0x004c3c45 mov ebx, 1 | ebx = 1; 0x004c3c4a mov rax, qword [rip + 0x28d667] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c3c51 test rax, rax | 0x004c3c54 jne 0x4c3b02 | | } 0x004c3c5a call 0x4eede0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c3c5f jmp 0x4c3b02 | goto label_0; | label_13: 0x004c3cb7 shr r10, 3 | r10 >>= 3; 0x004c3cbb inc r10 | r10++; 0x004c3cbe mov r8, r10 | r8 = r10; 0x004c3cc1 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c3cc5 lea rdx, [r8 - 4] | rdx = r8 - 4; 0x004c3cc9 mov rbp, rdx | 0x004c3ccc shr rbp, 2 | rbp >>= 2; 0x004c3cd0 inc rbp | rbp++; 0x004c3cd3 mov ebx, ebp | ebx = ebp; 0x004c3cd5 and ebx, 3 | ebx &= 3; 0x004c3cd8 cmp rdx, 0xc | | if (rdx < 0xc) { 0x004c3cdc jae 0x4c3ce5 | 0x004c3cde xor edx, edx | edx = 0; 0x004c3ce0 jmp 0x4c3d8a | goto label_14; | } 0x004c3ce5 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c3ce9 neg rbp | rbp = -rbp; 0x004c3cec xor edx, edx | edx = 0; 0x004c3cee nop | | do { 0x004c3cf0 movups xmm0, xmmword [rdi + rdx*8 + 0x74f420] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u]"); 0x004c3cf8 movups xmm1, xmmword [rdi + rdx*8 + 0x74f430] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f430]"); 0x004c3d00 lea rsi, [r13*8] | rsi = r13*8; 0x004c3d08 movups xmmword [rsi + rdx*8 + 0x74f420], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c3d10 movups xmmword [rsi + rdx*8 + 0x74f430], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f430], xmm1"); 0x004c3d18 movups xmm0, xmmword [rdi + rdx*8 + 0x74f440] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f440]"); 0x004c3d20 movups xmm1, xmmword [rdi + rdx*8 + 0x74f450] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f450]"); 0x004c3d28 movups xmmword [rsi + rdx*8 + 0x74f440], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f440], xmm0"); 0x004c3d30 movups xmmword [rsi + rdx*8 + 0x74f450], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f450], xmm1"); 0x004c3d38 movups xmm0, xmmword [rdi + rdx*8 + 0x74f460] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f460]"); 0x004c3d40 movups xmm1, xmmword [rdi + rdx*8 + 0x74f470] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f470]"); 0x004c3d48 movups xmmword [rsi + rdx*8 + 0x74f460], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f460], xmm0"); 0x004c3d50 movups xmmword [rsi + rdx*8 + 0x74f470], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f470], xmm1"); 0x004c3d58 movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f480] | __asm ("movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f480]"); 0x004c3d61 movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f490] | __asm ("movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f490]"); 0x004c3d6a movdqu xmmword [rsi + rdx*8 + 0x74f480], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f480], xmm0"); 0x004c3d73 movdqu xmmword [rsi + rdx*8 + 0x74f490], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f490], xmm1"); 0x004c3d7c add rdx, 0x10 | rdx += 0x10; 0x004c3d80 add rbp, 4 | rbp += 4; 0x004c3d84 jne 0x4c3cf0 | | } while (rbp != 0); | label_14: 0x004c3d8a test rbx, rbx | | if (rbx == 0) { 0x004c3d8d je 0x4c3dd0 | goto label_15; | } 0x004c3d8f shl r13, 3 | r13 <<= 3; 0x004c3d93 lea rbp, [r13 + rdx*8 + 0x74f430] | rbp = r13 + rdx*8 + 0x74f430; 0x004c3d9b lea rdx, [rdi + rdx*8 + 0x74f430] | rdx = rdi + rdx*8 + 0x74f430; 0x004c3da3 shl rbx, 5 | rbx <<= 5; 0x004c3da7 xor edi, edi | edi = 0; 0x004c3da9 nop dword [rax] | | do { 0x004c3db0 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c3db6 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c3dbb movdqu xmmword [rbp + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbp + rdi - 0x10], xmm0"); 0x004c3dc1 movdqu xmmword [rbp + rdi], xmm1 | __asm ("movdqu xmmword [rbp + rdi], xmm1"); 0x004c3dc7 add rdi, 0x20 | rdi += 0x20; 0x004c3dcb cmp rbx, rdi | 0x004c3dce jne 0x4c3db0 | | } while (rbx != rdi); | label_15: 0x004c3dd0 cmp r10, r8 | 0x004c3dd3 mov rbp, r11 | 0x004c3dd6 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c3ddb mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (r10 == r8) { 0x004c3ddf je 0x4c3e11 | goto label_10; | } 0x004c3de1 lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c3de5 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c3de9 nop dword [rax] | | label_12: 0x004c3df0 sub r9, rax | r9 -= rax; 0x004c3df3 lea rdx, [r9 + 0x74f420] | rdx = r9 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3dfa xor esi, esi | esi = 0; 0x004c3dfc nop dword [rax] | | do { 0x004c3e00 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c3e04 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c3e08 add rsi, 8 | rsi += 8; 0x004c3e0c cmp rdx, rsi | 0x004c3e0f jne 0x4c3e00 | | } while (rdx != rsi); | label_10: 0x004c3e11 cmp byte [rip + 0x254b78], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3e18 je 0x4c3e3a | 0x004c3e1a mov edx, dword [rip + 0x254b84] | edx = numCopyCtorCalls; 0x004c3e20 sub edx, r12d | edx -= r12d; 0x004c3e23 mov ecx, dword [rip + 0x254b83] | ecx = numCharCtorCalls; 0x004c3e29 sub ecx, r14d | ecx -= r14d; 0x004c3e2c mov edi, 0x4f5db4 | 0x004c3e31 mov esi, ebx | esi = ebx; 0x004c3e33 xor eax, eax | eax = 0; 0x004c3e35 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_9: 0x004c3e3a cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c3e3f je 0x4c3ea0 | goto label_16; | } 0x004c3e41 cmp r12d, dword [rip + 0x254b5c] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c3e48 je 0x4c3e73 | 0x004c3e4a mov edi, 0x4f4e04 | 0x004c3e4f mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c3e54 mov esi, 0x1005 | esi = 0x1005; 0x004c3e59 xor eax, eax | eax = 0; 0x004c3e5b call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3e60 mov eax, dword [rip + 0x254b32] | eax = (anonymous namespace)::testStatus; 0x004c3e66 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3e69 ja 0x4c3e73 | goto label_17; | } 0x004c3e6b inc eax | eax++; 0x004c3e6d mov dword [rip + 0x254b25], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_17: 0x004c3e73 cmp r14d, dword [rip + 0x254b32] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c3e7a je 0x4c39a0 | goto label_1; | } 0x004c3e80 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c3e85 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c3e8a mov esi, 0x1006 | esi = 0x1006; 0x004c3e8f jmp 0x4c3ef3 | goto label_18; | label_16: 0x004c3ea0 add r12d, dword [rsp + 0x18] | r12d += *((rsp + 0x18)); 0x004c3ea5 cmp r12d, dword [rip + 0x254af8] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c3eac jle 0x4c3ed7 | 0x004c3eae mov edi, 0x4f4e04 | 0x004c3eb3 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c3eb8 mov esi, 0x1009 | esi = 0x1009; 0x004c3ebd xor eax, eax | eax = 0; 0x004c3ebf call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3ec4 mov eax, dword [rip + 0x254ace] | eax = (anonymous namespace)::testStatus; 0x004c3eca cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3ecd ja 0x4c3ed7 | goto label_19; | } 0x004c3ecf inc eax | eax++; 0x004c3ed1 mov dword [rip + 0x254ac1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c3ed7 cmp r14d, dword [rip + 0x254ace] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c3ede je 0x4c39a0 | goto label_1; | } 0x004c3ee4 mov edi, 0x4f4e04 | 0x004c3ee9 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c3eee mov esi, 0x100a | esi = 0x100a; | label_18: 0x004c3ef3 xor eax, eax | eax = 0; 0x004c3ef5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3efa mov eax, dword [rip + 0x254a98] | eax = (anonymous namespace)::testStatus; 0x004c3f00 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3f03 ja 0x4c39a0 | goto label_1; | } 0x004c3f09 inc eax | eax++; 0x004c3f0b mov dword [rip + 0x254a87], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c3f11 jmp 0x4c39a0 | goto label_1; | label_5: 0x004c3f16 cmp byte [rip + 0x254a79], 0 | | if (*(obj.verbose) != 0) { 0x004c3f1d je 0x4c3f29 | 0x004c3f1f mov edi, 0x4f695c | 0x004c3f24 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c3f29 xor r12d, r12d | r12d = 0; 0x004c3f2c jmp 0x4c3f57 | goto label_20; | label_3: 0x004c3f30 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3f35 mov rsi, rbx | rsi = rbx; 0x004c3f38 call 0x4e01e0 | voidverify(unsigned long*,char const*) (); 0x004c3f3d mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3f42 mov rsi, rbx | rsi = rbx; 0x004c3f45 call 0x4e0420 | voidcleanup(unsigned long*,char const*) (); 0x004c3f4a inc r12 | r12++; 0x004c3f4d cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c3f51 je 0x4c457d | goto label_21; | } | label_20: 0x004c3f57 lea rbx, [r12*8] | rbx = r12*8; 0x004c3f5f mov rbp, qword [rbx + rbx*4 + 0x4f3c98] | rbp = *((rbx + rbx*4 + 0x4f3c98)); 0x004c3f67 mov rdi, rbp | 0x004c3f6a call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c3f6f cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c3f72 jl 0x4c3f9d | 0x004c3f74 mov edi, 0x4f4e04 | 0x004c3f79 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c3f7e mov esi, 0x1019 | esi = 0x1019; 0x004c3f83 xor eax, eax | eax = 0; 0x004c3f85 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3f8a mov eax, dword [rip + 0x254a08] | eax = (anonymous namespace)::testStatus; 0x004c3f90 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3f93 ja 0x4c3f9d | goto label_22; | } 0x004c3f95 inc eax | eax++; 0x004c3f97 mov dword [rip + 0x2549fb], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_22: 0x004c3f9d mov rdi, rbp | 0x004c3fa0 call 0x401790 | rax = strlen (rbp); 0x004c3fa5 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c3fa9 jb 0x4c3fd4 | 0x004c3fab mov edi, 0x4f4e04 | 0x004c3fb0 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c3fb5 mov esi, 0x101c | esi = 0x101c; 0x004c3fba xor eax, eax | eax = 0; 0x004c3fbc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3fc1 mov eax, dword [rip + 0x2549d1] | eax = (anonymous namespace)::testStatus; 0x004c3fc7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3fca ja 0x4c3fd4 | goto label_23; | } 0x004c3fcc inc eax | eax++; 0x004c3fce mov dword [rip + 0x2549c4], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c3fd4 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c3fd9 pxor xmm0, xmm0 | xmm0 = 0; 0x004c3fdd movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c3fe3 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c3feb mov al, byte [rbp] | al = *(rbp); 0x004c3fee test al, al | | if (al == 0) { 0x004c3ff0 je 0x4c4010 | goto label_24; | } 0x004c3ff2 xor ecx, ecx | ecx = 0; 0x004c3ff4 nop word cs:[rax + rax] | 0x004c3ffe nop | | do { 0x004c4000 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c4004 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c4009 inc rcx | rcx++; 0x004c400c test al, al | 0x004c400e jne 0x4c4000 | | } while (al != 0); | label_24: 0x004c4010 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c4018 movsxd r13, dword [rbx + rbx*4 + 0x4f3ca0] | r13 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c4020 movsxd r12, dword [rbx + rbx*4 + 0x4f3ca4] | r12 = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c4028 movsxd r15, dword [rbx + rbx*4 + 0x4f3ca8] | r15 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c4030 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c4038 cmp byte [rip + 0x254951], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c403f je 0x4c4060 | 0x004c4041 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c4045 mov edi, 0x4f5c41 | 0x004c404a mov esi, r14d | esi = r14d; 0x004c404d mov rdx, rbp | rdx = rbp; 0x004c4050 mov ecx, r13d | ecx = r13d; 0x004c4053 mov r8d, r12d | r8d = r12d; 0x004c4056 mov r9d, r15d | r9d = r15d; 0x004c4059 xor eax, eax | eax = 0; 0x004c405b call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c4060 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4065 mov rsi, rbp | rsi = rbp; 0x004c4068 call 0x4e0100 | unsigned long&gg(unsigned long*,char const*) (); 0x004c406d mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4072 mov rsi, rbp | rsi = rbp; 0x004c4075 call 0x4e01e0 | voidverify(unsigned long*,char const*) (); 0x004c407a mov eax, dword [rip + 0x254924] | eax = numCopyCtorCalls; 0x004c4080 mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c4084 mov eax, dword [rip + 0x254922] | eax = numCharCtorCalls; 0x004c408a mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c408e cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c4093 je 0x4c4160 | goto label_25; | } 0x004c4099 cmp byte [rip + 0x2548f0], 0 | 0x004c40a0 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c40a3 je 0x4c40b8 | 0x004c40a5 cmp dword [rip + 0x2544b0], 0 | | if (*(obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::firstTime) == 0) { 0x004c40ac je 0x4c40b8 | goto label_26; | } 0x004c40ae mov edi, 0x4f43ea | 0x004c40b3 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_26: 0x004c40b8 mov dword [rip + 0x25449a], 0 | *(obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::firstTime) = 0; 0x004c40c2 cmp byte [rip + 0x2548cc], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c40c9 je 0x4c40d5 | 0x004c40cb mov edi, 0x4f4411 | 0x004c40d0 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c40d5 mov rax, qword [rip + 0x254744] | rax = Z; 0x004c40dc mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c40e5 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c40ea mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c40f2 test rax, rax | 0x004c40f5 je 0x4c41ed | | while (rax != 0) { | label_2: 0x004c40fb cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c4101 jb 0x4c44d1 | goto label_27; | } 0x004c4107 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c410c lea rsi, [r15*8 + 0x74f420] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c4114 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c4119 movsxd r9, eax | r9 = (int64_t) eax; 0x004c411c mov r10, r9 | r10 = r9; 0x004c411f sub r10, r13 | r10 -= r13; 0x004c4122 cmp r10, 4 | | if (r10 < 4) { 0x004c4126 jb 0x4c44b6 | goto label_28; | } 0x004c412c mov r11, rbx | r11 = rbx; 0x004c412f mov r8, r10 | r8 = r10; 0x004c4132 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4136 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c413a mov rbp, rax | 0x004c413d shr rbp, 2 | rbp >>= 2; 0x004c4141 inc rbp | rbp++; 0x004c4144 mov edi, ebp | edi = ebp; 0x004c4146 and edi, 3 | edi &= 3; 0x004c4149 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c414d jae 0x4c43a6 | goto label_29; | } 0x004c4153 xor ebx, ebx | ebx = 0; 0x004c4155 jmp 0x4c4455 | goto label_30; | label_25: 0x004c4160 cmp qword [rip + 0x2546b8], 0 | 0x004c4168 mov ebp, r14d | 0x004c416b mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c416e jne 0x4c4190 | 0x004c4170 mov rax, qword [rip + 0x28d141] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4177 test rax, rax | | if (rax != 0) { 0x004c417a jne 0x4c4190 | goto label_31; | } 0x004c417c call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4181 mov r11, r12 | r11 = r12; 0x004c4184 nop word cs:[rax + rax] | 0x004c418e nop | | } | label_31: 0x004c4190 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c4195 cmp r12, 6 | | if (r12 < 6) { 0x004c4199 jb 0x4c4510 | goto label_32; | } 0x004c419f lea rax, [r15*8 + 0x74f420] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c41a7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c41ac add r11, r13 | r11 += r13; 0x004c41af mov r9, r11 | r9 = r11; 0x004c41b2 sub r9, r13 | r9 -= r13; 0x004c41b5 cmp r9, 4 | | if (r9 < 4) { 0x004c41b9 jb 0x4c437a | goto label_33; | } 0x004c41bf mov r10, rbx | r10 = rbx; 0x004c41c2 mov r8, r9 | r8 = r9; 0x004c41c5 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c41c9 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c41cd mov rdi, rsi | rdi = rsi; 0x004c41d0 shr rdi, 2 | rdi >>= 2; 0x004c41d4 inc rdi | rdi++; 0x004c41d7 mov ebp, edi | 0x004c41d9 and ebp, 3 | ebp &= 3; 0x004c41dc cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c41e0 jae 0x4c426d | goto label_34; | } 0x004c41e6 xor ebx, ebx | ebx = 0; 0x004c41e8 jmp 0x4c4315 | goto label_35; 0x004c41ed mov eax, 1 | eax = 1; 0x004c41f2 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c41f7 mov rax, qword [rip + 0x28d0ba] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c41fe test rax, rax | 0x004c4201 jne 0x4c40fb | | } 0x004c4207 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c420c jmp 0x4c40fb | goto label_2; | label_34: 0x004c426d lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c4272 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c4276 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c427a neg rdi | rdi = -rdi; 0x004c427d xor ebx, ebx | ebx = 0; 0x004c427f nop | | do { 0x004c4280 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c4287 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c428e lea rdx, [r15*8] | rdx = r15*8; 0x004c4296 movdqu xmmword [rdx + rbx*8 + 0x74f420], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c429f movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1"); 0x004c42a8 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c42af pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c42b6 movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0"); 0x004c42bf movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1"); 0x004c42c8 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c42cf pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c42d6 movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0"); 0x004c42df movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1"); 0x004c42e8 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c42ef pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c42f5 movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0"); 0x004c42fe movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1"); 0x004c4307 add rbx, 0x10 | rbx += 0x10; 0x004c430b add rdi, 4 | rdi += 4; 0x004c430f jne 0x4c4280 | | } while (rdi != 0); | label_35: 0x004c4315 test rbp, rbp | | if (rbp == 0) { 0x004c4318 je 0x4c4364 | goto label_36; | } 0x004c431a add r13, rbx | r13 += rbx; 0x004c431d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c4322 add r13, rdx | r13 += rdx; 0x004c4325 shl r15, 3 | r15 <<= 3; 0x004c4329 lea rsi, [r15 + rbx*8 + 0x74f430] | rsi = r15 + rbx*8 + 0x74f430; 0x004c4331 shl rbp, 2 | rbp <<= 2; 0x004c4335 xor edi, edi | edi = 0; 0x004c4337 nop word [rax + rax] | | do { 0x004c4340 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c4348 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c4350 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c4356 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c435b add rdi, 4 | rdi += 4; 0x004c435f cmp rbp, rdi | 0x004c4362 jne 0x4c4340 | | } while (rbp != rdi); | label_36: 0x004c4364 cmp r9, r8 | 0x004c4367 mov rbx, r10 | rbx = r10; 0x004c436a mov ebp, r14d | | if (r9 == r8) { 0x004c436d je 0x4c4510 | goto label_32; | } 0x004c4373 add rcx, r8 | rcx += r8; 0x004c4376 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_33: 0x004c437a sub r11, rcx | r11 -= rcx; 0x004c437d lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c4382 xor esi, esi | esi = 0; 0x004c4384 nop word cs:[rax + rax] | 0x004c438e nop | | do { 0x004c4390 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c4395 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c4399 inc rsi | rsi++; 0x004c439c cmp rdx, rsi | 0x004c439f jne 0x4c4390 | | } while (rdx != rsi); 0x004c43a1 jmp 0x4c4510 | goto label_32; | label_29: 0x004c43a6 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c43ab add rax, r13 | rax += r13; 0x004c43ae and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c43b2 neg rbp | rbp = -rbp; 0x004c43b5 xor ebx, ebx | ebx = 0; 0x004c43b7 nop word [rax + rax] | | do { 0x004c43c0 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c43c7 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c43ce lea rdx, [r15*8] | rdx = r15*8; 0x004c43d6 movdqu xmmword [rdx + rbx*8 + 0x74f420], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c43df movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1"); 0x004c43e8 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c43ef pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c43f6 movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0"); 0x004c43ff movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1"); 0x004c4408 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c440f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c4416 movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0"); 0x004c441f movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1"); 0x004c4428 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c442f pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c4435 movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0"); 0x004c443e movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1"); 0x004c4447 add rbx, 0x10 | rbx += 0x10; 0x004c444b add rbp, 4 | rbp += 4; 0x004c444f jne 0x4c43c0 | | } while (rbp != 0); | label_30: 0x004c4455 test rdi, rdi | | if (rdi == 0) { 0x004c4458 je 0x4c44a4 | goto label_37; | } 0x004c445a add r13, rbx | r13 += rbx; 0x004c445d lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c4462 add r13, rax | r13 += rax; 0x004c4465 shl r15, 3 | r15 <<= 3; 0x004c4469 lea rax, [r15 + rbx*8 + 0x74f430] | rax = r15 + rbx*8 + 0x74f430; 0x004c4471 shl rdi, 2 | rdi <<= 2; 0x004c4475 xor ebp, ebp | ebp = 0; 0x004c4477 nop word [rax + rax] | | do { 0x004c4480 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c4488 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c4490 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c4496 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c449b add rbp, 4 | rbp += 4; 0x004c449f cmp rdi, rbp | 0x004c44a2 jne 0x4c4480 | | } while (rdi != rbp); | label_37: 0x004c44a4 cmp r10, r8 | 0x004c44a7 mov rbx, r11 | rbx = r11; 0x004c44aa mov ebp, r14d | | if (r10 == r8) { 0x004c44ad je 0x4c44d1 | goto label_27; | } 0x004c44af add rcx, r8 | rcx += r8; 0x004c44b2 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_28: 0x004c44b6 sub r9, rcx | r9 -= rcx; 0x004c44b9 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c44be xor edi, edi | edi = 0; | do { 0x004c44c0 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c44c5 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c44c9 inc rdi | rdi++; 0x004c44cc cmp rax, rdi | 0x004c44cf jne 0x4c44c0 | | } while (rax != rdi); | label_27: 0x004c44d1 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c44d6 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c44db mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c44e2 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c44e5 cmp byte [rip + 0x2544a9], 0 | 0x004c44ec mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c44f1 je 0x4c44fd | 0x004c44f3 mov edi, 0x4f4571 | 0x004c44f8 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c44fd cmp byte [rip + 0x25448c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4504 je 0x4c453b | 0x004c4506 mov edi, 0xa | 0x004c450b call 0x401720 | eax = putchar (0xa); | label_32: 0x004c4510 cmp byte [rip + 0x254479], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c4517 je 0x4c453b | goto label_38; | } 0x004c4519 mov edx, dword [rip + 0x254485] | edx = numCopyCtorCalls; 0x004c451f sub edx, dword [rsp + 0x48] | edx -= *((rsp + 0x48)); 0x004c4523 mov ecx, dword [rip + 0x254483] | ecx = numCharCtorCalls; 0x004c4529 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c452d mov edi, 0x4f5db4 | 0x004c4532 mov esi, ebp | esi = ebp; 0x004c4534 xor eax, eax | eax = 0; 0x004c4536 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_38: 0x004c453b mov eax, dword [rsp + 0x48] | eax = *((rsp + 0x48)); 0x004c453f cmp eax, dword [rip + 0x25445f] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c4545 je 0x4c3f30 | goto label_3; | } 0x004c454b mov edi, 0x4f4e04 | 0x004c4550 mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c4555 mov esi, 0x103f | esi = 0x103f; 0x004c455a xor eax, eax | eax = 0; 0x004c455c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4561 mov eax, dword [rip + 0x254431] | eax = (anonymous namespace)::testStatus; 0x004c4567 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c456a ja 0x4c3f30 | goto label_3; | } 0x004c4570 inc eax | eax++; 0x004c4572 mov dword [rip + 0x254420], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c4578 jmp 0x4c3f30 | goto label_3; | label_21: 0x004c457d add rsp, 0x68 | 0x004c4581 pop rbx | 0x004c4582 pop r12 | 0x004c4584 pop r13 | 0x004c4586 pop r14 | 0x004c4588 pop r15 | 0x004c458a pop rbp | 0x004c458b ret | return rax; | }