; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4c0b20 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_unsigned_short_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_10h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_28h; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_4ch; | uint32_t var_50h; | uint32_t var_54h; | int64_t var_58h; | int64_t var_60h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004c0b20 push rbp | 0x004c0b21 push r15 | 0x004c0b23 push r14 | 0x004c0b25 push r13 | 0x004c0b27 push r12 | 0x004c0b29 push rbx | 0x004c0b2a sub rsp, 0x68 | 0x004c0b2e mov dword [rsp + 0x50], edx | *((rsp + 0x50)) = edx; 0x004c0b32 mov dword [rsp + 0x54], esi | *((rsp + 0x54)) = esi; 0x004c0b36 cmp byte [rip + 0x257e59], 0 | | if (*(obj.verbose) != 0) { 0x004c0b3d je 0x4c0b49 | 0x004c0b3f mov edi, 0x4f6973 | 0x004c0b44 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c0b49 xor eax, eax | eax = 0; 0x004c0b4b jmp 0x4c0b7c | goto label_8; | label_1: 0x004c0b50 mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0b55 mov rsi, rbx | rsi = rbx; 0x004c0b58 call 0x4dede0 | voidverify(unsignedshort*,char const*) (); 0x004c0b5d mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0b62 mov rsi, rbx | rsi = rbx; 0x004c0b65 call 0x4df020 | voidcleanup(unsignedshort*,char const*) (); 0x004c0b6a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c0b6f inc rax | rax++; 0x004c0b72 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c0b76 je 0x4c10c6 | goto label_9; | } | label_8: 0x004c0b7c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c0b81 lea rbx, [rax*8] | rbx = rax*8; 0x004c0b89 mov r12, qword [rbx + rbx*4 + 0x4f3c98] | r12 = *((rbx + rbx*4 + 0x4f3c98)); 0x004c0b91 mov rdi, r12 | 0x004c0b94 call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c0b99 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c0b9c jl 0x4c0bc7 | 0x004c0b9e mov edi, 0x4f4e04 | 0x004c0ba3 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c0ba8 mov esi, 0xfe6 | esi = 0xfe6; 0x004c0bad xor eax, eax | eax = 0; 0x004c0baf call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c0bb4 mov eax, dword [rip + 0x257dde] | eax = (anonymous namespace)::testStatus; 0x004c0bba cmp eax, 0x64 | | if (eax > 0x64) { 0x004c0bbd ja 0x4c0bc7 | goto label_10; | } 0x004c0bbf inc eax | eax++; 0x004c0bc1 mov dword [rip + 0x257dd1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_10: 0x004c0bc7 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c0bcf movsxd r15, dword [rbx + rbx*4 + 0x4f3ca0] | r15 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c0bd7 mov ebp, dword [rbx + rbx*4 + 0x4f3ca4] | ebp = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c0bde movsxd r13, dword [rbx + rbx*4 + 0x4f3ca8] | r13 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c0be6 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c0bee cmp byte [rip + 0x257d9b], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0bf5 je 0x4c0c16 | 0x004c0bf7 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c0bfb mov edi, 0x4f5c41 | 0x004c0c00 mov esi, r14d | esi = r14d; 0x004c0c03 mov rdx, r12 | rdx = r12; 0x004c0c06 mov ecx, r15d | ecx = r15d; 0x004c0c09 mov r8d, ebp | r8d = ebp; 0x004c0c0c mov r9d, r13d | r9d = r13d; 0x004c0c0f xor eax, eax | eax = 0; 0x004c0c11 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c0c16 mov dword [rsp + 0x10], r14d | *((rsp + 0x10)) = r14d; 0x004c0c1b mov qword [rsp + 0x40], rbp | *((rsp + 0x40)) = rbp; 0x004c0c20 mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0c25 mov rsi, r12 | rsi = r12; 0x004c0c28 call 0x4decf0 | unsignedshort&gg(unsignedshort*,char const*) (); 0x004c0c2d mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0c32 mov rsi, r12 | rsi = r12; 0x004c0c35 call 0x4dede0 | voidverify(unsignedshort*,char const*) (); 0x004c0c3a mov r12d, dword [rip + 0x257d63] | r12d = numCopyCtorCalls; 0x004c0c41 mov r14d, dword [rip + 0x257d64] | r14d = numCharCtorCalls; 0x004c0c48 cmp byte [rsp + 0x50], 0 | | if (*((rsp + 0x50)) == 0) { 0x004c0c4d je 0x4c0d30 | goto label_11; | } 0x004c0c53 cmp byte [rip + 0x257d36], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0c5a je 0x4c0c6f | 0x004c0c5c cmp dword [rip + 0x2578d5], 0 | | if (*(obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::firstTime) == 0) { 0x004c0c63 je 0x4c0c6f | goto label_12; | } 0x004c0c65 mov edi, 0x4f43ea | 0x004c0c6a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_12: 0x004c0c6f mov dword [rip + 0x2578bf], 0 | *(obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::firstTime) = 0; 0x004c0c79 cmp byte [rip + 0x257d15], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c0c80 je 0x4c0c8c | 0x004c0c82 mov edi, 0x4f4411 | 0x004c0c87 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c0c8c mov rax, qword [rip + 0x257b8d] | rax = Z; 0x004c0c93 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c0c9c mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c0ca1 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c0ca9 test rax, rax | 0x004c0cac je 0x4c0def | | while (rax != 0) { | label_0: 0x004c0cb2 lea rsi, [r15 + r15 + 0x74f300] | rsi = r15 + r15 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0cba mov rax, qword [rsp + 0x40] | rax = *((rsp + 0x40)); 0x004c0cbf add eax, r15d | eax += r15d; 0x004c0cc2 cdqe | rax = (int64_t) eax; 0x004c0cc4 lea rdx, [rax + rax + 0x74f300] | rdx = rax + rax + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0ccc sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c0ccf je 0x4c0cde | 0x004c0cd1 lea rdi, [r13 + r13 + 0x74f300] | 0x004c0cd9 call 0x401930 | memcpy (r13 + r13 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u, rsi, rdx); | } 0x004c0cde mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c0ce3 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c0ce8 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c0cef call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c0cf2 cmp byte [rip + 0x257c9c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c0cf9 je 0x4c0d05 | 0x004c0cfb mov edi, 0x4f4571 | 0x004c0d00 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c0d05 cmp byte [rip + 0x257c84], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c0d0c je 0x4c0fea | goto label_13; | } 0x004c0d12 mov edi, 0xa | 0x004c0d17 call 0x401720 | putchar (0xa); 0x004c0d1c mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004c0d20 jmp 0x4c0fc1 | goto label_14; | label_11: 0x004c0d30 cmp qword [rip + 0x257ae8], 0 | | if (*(obj.Z) == 0) { 0x004c0d38 jne 0x4c0d50 | 0x004c0d3a mov rax, qword [rip + 0x290577] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c0d41 test rax, rax | | if (rax != 0) { 0x004c0d44 jne 0x4c0d50 | goto label_15; | } 0x004c0d46 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c0d4b nop dword [rax + rax] | | } | label_15: 0x004c0d50 cmp qword [rsp + 0x18], 6 | 0x004c0d56 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (*((rsp + 0x18)) < 6) { 0x004c0d5a jb 0x4c0fc1 | goto label_14; | } 0x004c0d60 lea rax, [r15 + r15 + 0x74f300] | rax = r15 + r15 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0d68 lea rcx, [r13 + r13 + 0x74f300] | rcx = r13 + r13 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0d70 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x004c0d75 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c0d79 movsxd r9, edx | r9 = (int64_t) edx; 0x004c0d7c add r9, r9 | r9 += r9; 0x004c0d7f lea rdi, [r15 + r15] | rdi = r15 + r15; 0x004c0d83 mov r10, r9 | r10 = r9; 0x004c0d86 sub r10, rdi | r10 -= rdi; 0x004c0d89 add r10, 0xfffffffffffffffe | r10 += 0xfffffffffffffffe; 0x004c0d8d cmp r10, 0x1e | | if (r10 < 0x1e) { 0x004c0d91 jb 0x4c0fa0 | goto label_16; | } 0x004c0d97 mov dword [rsp + 0x4c], r14d | *((rsp + 0x4c)) = r14d; 0x004c0d9c mov r11, rbx | r11 = rbx; 0x004c0d9f lea rbp, [r13 + r13 + 0x74f300] | rbp = r13 + r13 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0da7 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c0dab movsxd rdx, edx | rdx = (int64_t) edx; 0x004c0dae lea rbx, [rdx + rdx + 0x74f300] | rbx = rdx + rdx + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0db6 cmp rbp, rbx | | if (rbp >= rbx) { 0x004c0db9 jae 0x4c0e61 | goto label_17; | } 0x004c0dbf add rdx, rdx | rdx += rdx; 0x004c0dc2 sub rdx, rdi | rdx -= rdi; 0x004c0dc5 lea rdx, [rdx + r13*2 + 0x74f300] | rdx = rdx + r13*2 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0dcd lea rbp, [r15 + r15 + 0x74f300] | rbp = r15 + r15 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0dd5 cmp rbp, rdx | | if (rbp >= rdx) { 0x004c0dd8 jae 0x4c0e61 | goto label_17; | } 0x004c0dde mov rbx, r11 | rbx = r11; 0x004c0de1 mov r14d, dword [rsp + 0x4c] | r14d = *((rsp + 0x4c)); 0x004c0de6 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004c0dea jmp 0x4c0fa0 | goto label_16; 0x004c0def mov ebp, 1 | 0x004c0df4 mov rax, qword [rip + 0x2904bd] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c0dfb test rax, rax | 0x004c0dfe jne 0x4c0cb2 | | } 0x004c0e04 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c0e09 jmp 0x4c0cb2 | goto label_0; | label_17: 0x004c0e61 shr r10, 1 | r10 >>= 1; 0x004c0e64 inc r10 | r10++; 0x004c0e67 mov r8, r10 | r8 = r10; 0x004c0e6a and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c0e6e lea rdx, [r8 - 0x10] | rdx = r8 - 0x10; 0x004c0e72 mov rbx, rdx | rbx = rdx; 0x004c0e75 shr rbx, 4 | rbx >>= 4; 0x004c0e79 inc rbx | rbx++; 0x004c0e7c mov ebp, ebx | 0x004c0e7e and ebp, 3 | ebp &= 3; 0x004c0e81 cmp rdx, 0x30 | | if (rdx < 0x30) { 0x004c0e85 jae 0x4c0e8e | 0x004c0e87 xor edx, edx | edx = 0; 0x004c0e89 jmp 0x4c0f37 | goto label_18; | } 0x004c0e8e and rbx, 0xfffffffffffffffc | rbx &= 0xfffffffffffffffc; 0x004c0e92 neg rbx | rbx = -rbx; 0x004c0e95 xor edx, edx | edx = 0; 0x004c0e97 nop word [rax + rax] | | do { 0x004c0ea0 movups xmm0, xmmword [rdi + rdx*2 + 0x74f300] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u]"); 0x004c0ea8 movups xmm1, xmmword [rdi + rdx*2 + 0x74f310] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f310]"); 0x004c0eb0 lea rsi, [r13 + r13] | rsi = r13 + r13; 0x004c0eb5 movups xmmword [rsi + rdx*2 + 0x74f300], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c0ebd movups xmmword [rsi + rdx*2 + 0x74f310], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f310], xmm1"); 0x004c0ec5 movups xmm0, xmmword [rdi + rdx*2 + 0x74f320] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + 0x74f320]"); 0x004c0ecd movups xmm1, xmmword [rdi + rdx*2 + 0x74f330] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f330]"); 0x004c0ed5 movups xmmword [rsi + rdx*2 + 0x74f320], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f320], xmm0"); 0x004c0edd movups xmmword [rsi + rdx*2 + 0x74f330], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f330], xmm1"); 0x004c0ee5 movups xmm0, xmmword [rdi + rdx*2 + 0x74f340] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + 0x74f340]"); 0x004c0eed movups xmm1, xmmword [rdi + rdx*2 + 0x74f350] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f350]"); 0x004c0ef5 movups xmmword [rsi + rdx*2 + 0x74f340], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f340], xmm0"); 0x004c0efd movups xmmword [rsi + rdx*2 + 0x74f350], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f350], xmm1"); 0x004c0f05 movdqu xmm0, xmmword [rdi + rdx*2 + 0x74f360] | __asm ("movdqu xmm0, xmmword [rdi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_int__bool__bool__bool_::u]"); 0x004c0f0e movdqu xmm1, xmmword [rdi + rdx*2 + 0x74f370] | __asm ("movdqu xmm1, xmmword [rdi + rdx*2 + 0x74f370]"); 0x004c0f17 movdqu xmmword [rsi + rdx*2 + 0x74f360], xmm0 | __asm ("movdqu xmmword [rsi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_int__bool__bool__bool_::u], xmm0"); 0x004c0f20 movdqu xmmword [rsi + rdx*2 + 0x74f370], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 + 0x74f370], xmm1"); 0x004c0f29 add rdx, 0x40 | rdx += 0x40; 0x004c0f2d add rbx, 4 | rbx += 4; 0x004c0f31 jne 0x4c0ea0 | | } while (rbx != 0); | label_18: 0x004c0f37 test rbp, rbp | | if (rbp == 0) { 0x004c0f3a je 0x4c0f7f | goto label_19; | } 0x004c0f3c add r13, r13 | r13 += r13; 0x004c0f3f lea rbx, [r13 + rdx*2 + 0x74f310] | rbx = r13 + rdx*2 + 0x74f310; 0x004c0f47 lea rdx, [rdi + rdx*2 + 0x74f310] | rdx = rdi + rdx*2 + 0x74f310; 0x004c0f4f shl rbp, 5 | rbp <<= 5; 0x004c0f53 xor edi, edi | edi = 0; 0x004c0f55 nop word cs:[rax + rax] | 0x004c0f5f nop | | do { 0x004c0f60 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c0f66 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c0f6b movdqu xmmword [rbx + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbx + rdi - 0x10], xmm0"); 0x004c0f71 movdqu xmmword [rbx + rdi], xmm1 | __asm ("movdqu xmmword [rbx + rdi], xmm1"); 0x004c0f76 add rdi, 0x20 | rdi += 0x20; 0x004c0f7a cmp rbp, rdi | 0x004c0f7d jne 0x4c0f60 | | } while (rbp != rdi); | label_19: 0x004c0f7f cmp r10, r8 | 0x004c0f82 mov rbx, r11 | rbx = r11; 0x004c0f85 mov r14d, dword [rsp + 0x4c] | r14d = *((rsp + 0x4c)); 0x004c0f8a mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (r10 == r8) { 0x004c0f8e je 0x4c0fc1 | goto label_14; | } 0x004c0f90 lea rax, [rax + r8*2] | rax = rax + r8*2; 0x004c0f94 lea rcx, [rcx + r8*2] | rcx = rcx + r8*2; 0x004c0f98 nop dword [rax + rax] | | label_16: 0x004c0fa0 sub r9, rax | r9 -= rax; 0x004c0fa3 lea rdx, [r9 + 0x74f300] | rdx = r9 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c0faa xor esi, esi | esi = 0; 0x004c0fac nop dword [rax] | | do { 0x004c0fb0 movzx edi, word [rax + rsi] | edi = *((rax + rsi)); 0x004c0fb4 mov word [rcx + rsi], di | *((rcx + rsi)) = di; 0x004c0fb8 add rsi, 2 | rsi += 2; 0x004c0fbc cmp rdx, rsi | 0x004c0fbf jne 0x4c0fb0 | | } while (rdx != rsi); | label_14: 0x004c0fc1 cmp byte [rip + 0x2579c8], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0fc8 je 0x4c0fea | 0x004c0fca mov edx, dword [rip + 0x2579d4] | edx = numCopyCtorCalls; 0x004c0fd0 sub edx, r12d | edx -= r12d; 0x004c0fd3 mov ecx, dword [rip + 0x2579d3] | ecx = numCharCtorCalls; 0x004c0fd9 sub ecx, r14d | ecx -= r14d; 0x004c0fdc mov edi, 0x4f5db4 | 0x004c0fe1 mov esi, ebp | esi = ebp; 0x004c0fe3 xor eax, eax | eax = 0; 0x004c0fe5 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_13: 0x004c0fea cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c0fef je 0x4c1050 | goto label_20; | } 0x004c0ff1 cmp r12d, dword [rip + 0x2579ac] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c0ff8 je 0x4c1023 | 0x004c0ffa mov edi, 0x4f4e04 | 0x004c0fff mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c1004 mov esi, 0x1005 | esi = 0x1005; 0x004c1009 xor eax, eax | eax = 0; 0x004c100b call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c1010 mov eax, dword [rip + 0x257982] | eax = (anonymous namespace)::testStatus; 0x004c1016 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c1019 ja 0x4c1023 | goto label_21; | } 0x004c101b inc eax | eax++; 0x004c101d mov dword [rip + 0x257975], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c1023 cmp r14d, dword [rip + 0x257982] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c102a je 0x4c0b50 | goto label_1; | } 0x004c1030 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c1035 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c103a mov esi, 0x1006 | esi = 0x1006; 0x004c103f jmp 0x4c10a3 | goto label_22; | label_20: 0x004c1050 add r12d, dword [rsp + 0x40] | r12d += *((rsp + 0x40)); 0x004c1055 cmp r12d, dword [rip + 0x257948] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c105c jle 0x4c1087 | 0x004c105e mov edi, 0x4f4e04 | 0x004c1063 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c1068 mov esi, 0x1009 | esi = 0x1009; 0x004c106d xor eax, eax | eax = 0; 0x004c106f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c1074 mov eax, dword [rip + 0x25791e] | eax = (anonymous namespace)::testStatus; 0x004c107a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c107d ja 0x4c1087 | goto label_23; | } 0x004c107f inc eax | eax++; 0x004c1081 mov dword [rip + 0x257911], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c1087 cmp r14d, dword [rip + 0x25791e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c108e je 0x4c0b50 | goto label_1; | } 0x004c1094 mov edi, 0x4f4e04 | 0x004c1099 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c109e mov esi, 0x100a | esi = 0x100a; | label_22: 0x004c10a3 xor eax, eax | eax = 0; 0x004c10a5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c10aa mov eax, dword [rip + 0x2578e8] | eax = (anonymous namespace)::testStatus; 0x004c10b0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c10b3 ja 0x4c0b50 | goto label_1; | } 0x004c10b9 inc eax | eax++; 0x004c10bb mov dword [rip + 0x2578d7], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c10c1 jmp 0x4c0b50 | goto label_1; | label_9: 0x004c10c6 cmp byte [rip + 0x2578c9], 0 | | if (*(obj.verbose) != 0) { 0x004c10cd je 0x4c10d9 | 0x004c10cf mov edi, 0x4f695c | 0x004c10d4 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c10d9 xor ebx, ebx | ebx = 0; 0x004c10db jmp 0x4c110c | goto label_24; | label_2: 0x004c10e0 mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c10e5 mov rsi, rbp | rsi = rbp; 0x004c10e8 call 0x4dede0 | voidverify(unsignedshort*,char const*) (); 0x004c10ed mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c10f2 mov rsi, rbp | rsi = rbp; 0x004c10f5 call 0x4df020 | voidcleanup(unsignedshort*,char const*) (); 0x004c10fa mov rbx, qword [rsp + 0x18] | rbx = *((rsp + 0x18)); 0x004c10ff inc rbx | rbx++; 0x004c1102 cmp rbx, 0x1e | | if (rbx == 0x1e) { 0x004c1106 je 0x4c163c | goto label_25; | } | label_24: 0x004c110c lea rbp, [rbx*8] | rbp = rbx*8; 0x004c1114 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c111c mov rdi, r12 | 0x004c111f call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c1124 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c1127 jl 0x4c1152 | 0x004c1129 mov edi, 0x4f4e04 | 0x004c112e mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c1133 mov esi, 0x1019 | esi = 0x1019; 0x004c1138 xor eax, eax | eax = 0; 0x004c113a call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c113f mov eax, dword [rip + 0x257853] | eax = (anonymous namespace)::testStatus; 0x004c1145 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c1148 ja 0x4c1152 | goto label_26; | } 0x004c114a inc eax | eax++; 0x004c114c mov dword [rip + 0x257846], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_26: 0x004c1152 mov rdi, r12 | 0x004c1155 call 0x401790 | rax = strlen (r12); 0x004c115a cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c115e jb 0x4c1189 | 0x004c1160 mov edi, 0x4f4e04 | 0x004c1165 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c116a mov esi, 0x101c | esi = 0x101c; 0x004c116f xor eax, eax | eax = 0; 0x004c1171 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c1176 mov eax, dword [rip + 0x25781c] | eax = (anonymous namespace)::testStatus; 0x004c117c cmp eax, 0x64 | | if (eax > 0x64) { 0x004c117f ja 0x4c1189 | goto label_27; | } 0x004c1181 inc eax | eax++; 0x004c1183 mov dword [rip + 0x25780f], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_27: 0x004c1189 mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c118e pxor xmm0, xmm0 | xmm0 = 0; 0x004c1192 movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c1198 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c11a0 mov al, byte [r12] | al = *(r12); 0x004c11a4 test al, al | | if (al == 0) { 0x004c11a6 je 0x4c11c1 | goto label_28; | } 0x004c11a8 xor ecx, ecx | ecx = 0; 0x004c11aa nop word [rax + rax] | | do { 0x004c11b0 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c11b4 movzx eax, byte [r12 + rcx + 1] | eax = *((r12 + rcx + 1)); 0x004c11ba inc rcx | rcx++; 0x004c11bd test al, al | 0x004c11bf jne 0x4c11b0 | | } while (al != 0); | label_28: 0x004c11c1 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c11c9 movsxd rbx, dword [rbp + rbp*4 + 0x4f3ca0] | rbx = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c11d1 movsxd r15, dword [rbp + rbp*4 + 0x4f3ca4] | r15 = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c11d9 movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c11e1 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c11e9 cmp byte [rip + 0x2577a0], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c11f0 je 0x4c1210 | 0x004c11f2 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c11f6 mov edi, 0x4f5c41 | 0x004c11fb mov esi, r14d | esi = r14d; 0x004c11fe mov rdx, r12 | rdx = r12; 0x004c1201 mov ecx, ebx | ecx = ebx; 0x004c1203 mov r8d, r15d | r8d = r15d; 0x004c1206 mov r9d, r13d | r9d = r13d; 0x004c1209 xor eax, eax | eax = 0; 0x004c120b call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c1210 mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c1215 mov rsi, r12 | rsi = r12; 0x004c1218 call 0x4decf0 | unsignedshort&gg(unsignedshort*,char const*) (); 0x004c121d mov edi, 0x74f300 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c1222 mov rsi, r12 | rsi = r12; 0x004c1225 call 0x4dede0 | voidverify(unsignedshort*,char const*) (); 0x004c122a mov r12d, dword [rip + 0x257773] | r12d = numCopyCtorCalls; 0x004c1231 mov eax, dword [rip + 0x257775] | eax = numCharCtorCalls; 0x004c1237 mov dword [rsp + 0x40], eax | *((rsp + 0x40)) = eax; 0x004c123b cmp byte [rsp + 0x50], 0 | | if (*((rsp + 0x50)) == 0) { 0x004c1240 je 0x4c1400 | goto label_29; | } 0x004c1246 cmp byte [rip + 0x257743], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c124d je 0x4c1262 | 0x004c124f cmp dword [rip + 0x2572e6], 0 | | if (*(0x0071853c) == 0) { 0x004c1256 je 0x4c1262 | goto label_30; | } 0x004c1258 mov edi, 0x4f43ea | 0x004c125d call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_30: 0x004c1262 mov dword [rip + 0x2572d0], 0 | *(0x0071853c) = 0; 0x004c126c cmp byte [rip + 0x257722], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c1273 je 0x4c127f | 0x004c1275 mov edi, 0x4f4411 | 0x004c127a call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c127f mov rax, qword [rip + 0x25759a] | rax = Z; 0x004c1286 mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c128f mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c1294 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c129c test rax, rax | | if (rax == 0) { 0x004c129f je 0x4c159a | goto label_31; | } | label_3: 0x004c12a5 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c12ab jb 0x4c13b0 | goto label_32; | } 0x004c12b1 lea rcx, [rsp + rbx + 0x20] | rcx = rsp + rbx + 0x20; 0x004c12b6 lea rsi, [r13 + r13 + 0x74f300] | rsi = r13 + r13 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c12be lea eax, [rbx + r15] | eax = rbx + r15; 0x004c12c2 movsxd r9, eax | r9 = (int64_t) eax; 0x004c12c5 mov rdx, r9 | rdx = r9; 0x004c12c8 sub rdx, rbx | rdx -= rbx; 0x004c12cb cmp rdx, 0x10 | | if (rdx < 0x10) { 0x004c12cf jb 0x4c138b | goto label_33; | } 0x004c12d5 mov r11, rbp | r11 = rbp; 0x004c12d8 mov r8, rdx | r8 = rdx; 0x004c12db and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c12df lea rdi, [r8 - 0x10] | rdi = r8 - 0x10; 0x004c12e3 mov r10, rdi | r10 = rdi; 0x004c12e6 shr r10, 4 | r10 >>= 4; 0x004c12ea inc r10 | r10++; 0x004c12ed test rdi, rdi | | if (rdi == 0) { 0x004c12f0 je 0x4c162b | goto label_34; | } 0x004c12f6 lea rax, [rsp + 0x38] | rax = rsp + 0x38; 0x004c12fb add rbx, rax | rbx += rax; 0x004c12fe mov rbp, r10 | 0x004c1301 and rbp, 0xfffffffffffffffe | rbp &= 0xfffffffffffffffe; 0x004c1305 neg rbp | rbp = -rbp; 0x004c1308 xor edi, edi | edi = 0; 0x004c130a nop word [rax + rax] | | do { 0x004c1310 pmovsxbw xmm0, qword [rbx + rdi - 0x18] | __asm ("pmovsxbw xmm0, qword [rbx + rdi - 0x18]"); 0x004c1317 pmovsxbw xmm1, qword [rbx + rdi - 0x10] | __asm ("pmovsxbw xmm1, qword [rbx + rdi - 0x10]"); 0x004c131e lea rax, [r13 + r13] | rax = r13 + r13; 0x004c1323 movdqu xmmword [rax + rdi*2 + 0x74f300], xmm0 | __asm ("movdqu xmmword [rax + rdi*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c132c movdqu xmmword [rax + rdi*2 + 0x74f310], xmm1 | __asm ("movdqu xmmword [rax + rdi*2 + 0x74f310], xmm1"); 0x004c1335 pmovsxbw xmm0, qword [rbx + rdi - 8] | __asm ("pmovsxbw xmm0, qword [rbx + rdi - 8]"); 0x004c133c pmovsxbw xmm1, qword [rbx + rdi] | __asm ("pmovsxbw xmm1, qword [rbx + rdi]"); 0x004c1342 movdqu xmmword [rax + rdi*2 + 0x74f320], xmm0 | __asm ("movdqu xmmword [rax + rdi*2 + 0x74f320], xmm0"); 0x004c134b movdqu xmmword [rax + rdi*2 + 0x74f330], xmm1 | __asm ("movdqu xmmword [rax + rdi*2 + 0x74f330], xmm1"); 0x004c1354 add rdi, 0x20 | rdi += 0x20; 0x004c1358 add rbp, 2 | rbp += 2; 0x004c135c jne 0x4c1310 | | } while (rbp != 0); 0x004c135e test r10b, 1 | | if ((r10b & 1) != 0) { 0x004c1362 je 0x4c137c | | label_6: 0x004c1364 pmovsxbw xmm0, qword [rcx + rdi] | __asm ("pmovsxbw xmm0, qword [rcx + rdi]"); 0x004c136a pmovsxbw xmm1, qword [rcx + rdi + 8] | __asm ("pmovsxbw xmm1, qword [rcx + rdi + 8]"); 0x004c1371 movdqu xmmword [rsi + rdi*2], xmm0 | __asm ("movdqu xmmword [rsi + rdi*2], xmm0"); 0x004c1376 movdqu xmmword [rsi + rdi*2 + 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdi*2 + 0x10], xmm1"); | } | label_7: 0x004c137c cmp rdx, r8 | 0x004c137f mov rbp, r11 | | if (rdx == r8) { 0x004c1382 je 0x4c13b0 | goto label_32; | } 0x004c1384 add rcx, r8 | rcx += r8; 0x004c1387 lea rsi, [rsi + r8*2] | rsi = rsi + r8*2; | label_33: 0x004c138b sub r9, rcx | r9 -= rcx; 0x004c138e lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c1393 xor edi, edi | edi = 0; 0x004c1395 nop word cs:[rax + rax] | 0x004c139f nop | | do { 0x004c13a0 movsx edx, byte [rcx + rdi] | edx = *((rcx + rdi)); 0x004c13a4 mov word [rsi + rdi*2], dx | *((rsi + rdi*2)) = dx; 0x004c13a8 inc rdi | rdi++; 0x004c13ab cmp rax, rdi | 0x004c13ae jne 0x4c13a0 | | } while (rax != rdi); | label_32: 0x004c13b0 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c13b5 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c13ba mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c13c1 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c13c4 cmp byte [rip + 0x2575ca], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c13cb je 0x4c13d7 | 0x004c13cd mov edi, 0x4f4571 | 0x004c13d2 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c13d7 cmp byte [rip + 0x2575b2], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c13de je 0x4c155b | goto label_35; | } 0x004c13e4 mov edi, 0xa | 0x004c13e9 call 0x401720 | putchar (0xa); 0x004c13ee mov r11d, r14d | r11d = r14d; 0x004c13f1 jmp 0x4c1530 | goto label_36; | label_29: 0x004c1400 cmp qword [rip + 0x257418], 0 | | if (*(obj.Z) == 0) { 0x004c1408 jne 0x4c1420 | 0x004c140a mov rax, qword [rip + 0x28fea7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c1411 test rax, rax | | if (rax != 0) { 0x004c1414 jne 0x4c1420 | goto label_37; | } 0x004c1416 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c141b nop dword [rax + rax] | | } | label_37: 0x004c1420 cmp qword [rsp + 0x18], 6 | 0x004c1426 mov r11d, r14d | r11d = r14d; | if (*((rsp + 0x18)) < 6) { 0x004c1429 jb 0x4c1530 | goto label_36; | } 0x004c142f lea rax, [r13 + r13 + 0x74f300] | rax = r13 + r13 + obj_testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u; 0x004c1437 lea rcx, [rsp + rbx + 0x20] | rcx = rsp + rbx + 0x20; 0x004c143c add r15, rbx | r15 += rbx; 0x004c143f mov rdx, r15 | rdx = r15; 0x004c1442 sub rdx, rbx | rdx -= rbx; 0x004c1445 cmp rdx, 0x10 | | if (rdx < 0x10) { 0x004c1449 jb 0x4c150b | goto label_38; | } 0x004c144f mov r10, rbp | r10 = rbp; 0x004c1452 mov r8, rdx | r8 = rdx; 0x004c1455 and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c1459 lea rdi, [r8 - 0x10] | rdi = r8 - 0x10; 0x004c145d mov r9, rdi | r9 = rdi; 0x004c1460 shr r9, 4 | r9 >>= 4; 0x004c1464 inc r9 | r9++; 0x004c1467 test rdi, rdi | | if (rdi == 0) { 0x004c146a je 0x4c161a | goto label_39; | } 0x004c1470 lea rsi, [rsp + 0x38] | rsi = rsp + 0x38; 0x004c1475 add rbx, rsi | rbx += rsi; 0x004c1478 mov rdi, r9 | rdi = r9; 0x004c147b and rdi, 0xfffffffffffffffe | rdi &= 0xfffffffffffffffe; 0x004c147f neg rdi | rdi = -rdi; 0x004c1482 xor ebp, ebp | ebp = 0; 0x004c1484 nop word cs:[rax + rax] | 0x004c148e nop | | do { 0x004c1490 pmovsxbw xmm0, qword [rbx + rbp - 0x18] | __asm ("pmovsxbw xmm0, qword [rbx + rbp - 0x18]"); 0x004c1497 pmovsxbw xmm1, qword [rbx + rbp - 0x10] | __asm ("pmovsxbw xmm1, qword [rbx + rbp - 0x10]"); 0x004c149e lea rsi, [r13 + r13] | rsi = r13 + r13; 0x004c14a3 movdqu xmmword [rsi + rbp*2 + 0x74f300], xmm0 | __asm ("movdqu xmmword [rsi + rbp*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c14ac movdqu xmmword [rsi + rbp*2 + 0x74f310], xmm1 | __asm ("movdqu xmmword [rsi + rbp*2 + 0x74f310], xmm1"); 0x004c14b5 pmovsxbw xmm0, qword [rbx + rbp - 8] | __asm ("pmovsxbw xmm0, qword [rbx + rbp - 8]"); 0x004c14bc pmovsxbw xmm1, qword [rbx + rbp] | __asm ("pmovsxbw xmm1, qword [rbx + rbp]"); 0x004c14c2 movdqu xmmword [rsi + rbp*2 + 0x74f320], xmm0 | __asm ("movdqu xmmword [rsi + rbp*2 + 0x74f320], xmm0"); 0x004c14cb movdqu xmmword [rsi + rbp*2 + 0x74f330], xmm1 | __asm ("movdqu xmmword [rsi + rbp*2 + 0x74f330], xmm1"); 0x004c14d4 add rbp, 0x20 | rbp += 0x20; 0x004c14d8 add rdi, 2 | rdi += 2; 0x004c14dc jne 0x4c1490 | | } while (rdi != 0); 0x004c14de test r9b, 1 | | if ((r9b & 1) != 0) { 0x004c14e2 je 0x4c14fc | | label_4: 0x004c14e4 pmovsxbw xmm0, qword [rcx + rbp] | __asm ("pmovsxbw xmm0, qword [rcx + rbp]"); 0x004c14ea pmovsxbw xmm1, qword [rcx + rbp + 8] | __asm ("pmovsxbw xmm1, qword [rcx + rbp + 8]"); 0x004c14f1 movdqu xmmword [rax + rbp*2], xmm0 | __asm ("movdqu xmmword [rax + rbp*2], xmm0"); 0x004c14f6 movdqu xmmword [rax + rbp*2 + 0x10], xmm1 | __asm ("movdqu xmmword [rax + rbp*2 + 0x10], xmm1"); | } | label_5: 0x004c14fc cmp rdx, r8 | 0x004c14ff mov rbp, r10 | | if (rdx == r8) { 0x004c1502 je 0x4c1530 | goto label_36; | } 0x004c1504 add rcx, r8 | rcx += r8; 0x004c1507 lea rax, [rax + r8*2] | rax = rax + r8*2; | label_38: 0x004c150b sub r15, rcx | r15 -= rcx; 0x004c150e lea rdx, [rsp + r15 + 0x20] | rdx = rsp + r15 + 0x20; 0x004c1513 xor esi, esi | esi = 0; 0x004c1515 nop word cs:[rax + rax] | 0x004c151f nop | | do { 0x004c1520 movsx edi, byte [rcx + rsi] | edi = *((rcx + rsi)); 0x004c1524 mov word [rax + rsi*2], di | *((rax + rsi*2)) = di; 0x004c1528 inc rsi | rsi++; 0x004c152b cmp rdx, rsi | 0x004c152e jne 0x4c1520 | | } while (rdx != rsi); | label_36: 0x004c1530 cmp byte [rip + 0x257459], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c1537 je 0x4c155b | 0x004c1539 mov edx, dword [rip + 0x257465] | edx = numCopyCtorCalls; 0x004c153f sub edx, r12d | edx -= r12d; 0x004c1542 mov ecx, dword [rip + 0x257464] | ecx = numCharCtorCalls; 0x004c1548 sub ecx, dword [rsp + 0x40] | ecx -= *((rsp + 0x40)); 0x004c154c mov edi, 0x4f5db4 | 0x004c1551 mov esi, r11d | esi = r11d; 0x004c1554 xor eax, eax | eax = 0; 0x004c1556 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_35: 0x004c155b cmp r12d, dword [rip + 0x257442] | | if (r12d == *(obj.numCopyCtorCalls)) { 0x004c1562 je 0x4c10e0 | goto label_2; | } 0x004c1568 mov edi, 0x4f4e04 | 0x004c156d mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c1572 mov esi, 0x103f | esi = 0x103f; 0x004c1577 xor eax, eax | eax = 0; 0x004c1579 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c157e mov eax, dword [rip + 0x257414] | eax = (anonymous namespace)::testStatus; 0x004c1584 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c1587 ja 0x4c10e0 | goto label_2; | } 0x004c158d inc eax | eax++; 0x004c158f mov dword [rip + 0x257403], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c1595 jmp 0x4c10e0 | goto label_2; | label_31: 0x004c159a mov eax, 1 | eax = 1; 0x004c159f mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004c15a4 mov rax, qword [rip + 0x28fd0d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c15ab test rax, rax | | if (rax != 0) { 0x004c15ae jne 0x4c12a5 | goto label_3; | } 0x004c15b4 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c15b9 jmp 0x4c12a5 | goto label_3; | label_39: 0x004c161a xor ebp, ebp | ebp = 0; 0x004c161c test r9b, 1 | | if ((r9b & 1) != 0) { 0x004c1620 jne 0x4c14e4 | goto label_4; | } 0x004c1626 jmp 0x4c14fc | goto label_5; | label_34: 0x004c162b xor edi, edi | edi = 0; 0x004c162d test r10b, 1 | | if ((r10b & 1) != 0) { 0x004c1631 jne 0x4c1364 | goto label_6; | } 0x004c1637 jmp 0x4c137c | goto label_7; | label_25: 0x004c163c add rsp, 0x68 | 0x004c1640 pop rbx | 0x004c1641 pop r12 | 0x004c1643 pop r13 | 0x004c1645 pop r14 | 0x004c1647 pop r15 | 0x004c1649 pop rbp | 0x004c164a ret | return rax; | }