; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4bffc0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_short__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_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) */ 0x004bffc0 push rbp | 0x004bffc1 push r15 | 0x004bffc3 push r14 | 0x004bffc5 push r13 | 0x004bffc7 push r12 | 0x004bffc9 push rbx | 0x004bffca sub rsp, 0x68 | 0x004bffce mov dword [rsp + 0x50], edx | *((rsp + 0x50)) = edx; 0x004bffd2 mov dword [rsp + 0x54], esi | *((rsp + 0x54)) = esi; 0x004bffd6 cmp byte [rip + 0x2589b9], 0 | | if (*(obj.verbose) != 0) { 0x004bffdd je 0x4bffe9 | 0x004bffdf mov edi, 0x4f6973 | 0x004bffe4 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004bffe9 xor eax, eax | eax = 0; 0x004bffeb jmp 0x4c001c | goto label_8; | label_1: 0x004bfff0 mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004bfff5 mov rsi, rbx | rsi = rbx; 0x004bfff8 call 0x4de8d0 | voidverify(short*,char const*) (); 0x004bfffd mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0002 mov rsi, rbx | rsi = rbx; 0x004c0005 call 0x4deb10 | voidcleanup(short*,char const*) (); 0x004c000a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c000f inc rax | rax++; 0x004c0012 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c0016 je 0x4c0566 | goto label_9; | } | label_8: 0x004c001c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c0021 lea rbx, [rax*8] | rbx = rax*8; 0x004c0029 mov r12, qword [rbx + rbx*4 + 0x4f3c98] | r12 = *((rbx + rbx*4 + 0x4f3c98)); 0x004c0031 mov rdi, r12 | 0x004c0034 call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c0039 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c003c jl 0x4c0067 | 0x004c003e mov edi, 0x4f4e04 | 0x004c0043 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c0048 mov esi, 0xfe6 | esi = 0xfe6; 0x004c004d xor eax, eax | eax = 0; 0x004c004f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c0054 mov eax, dword [rip + 0x25893e] | eax = (anonymous namespace)::testStatus; 0x004c005a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c005d ja 0x4c0067 | goto label_10; | } 0x004c005f inc eax | eax++; 0x004c0061 mov dword [rip + 0x258931], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_10: 0x004c0067 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c006f movsxd r15, dword [rbx + rbx*4 + 0x4f3ca0] | r15 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c0077 mov ebp, dword [rbx + rbx*4 + 0x4f3ca4] | ebp = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c007e movsxd r13, dword [rbx + rbx*4 + 0x4f3ca8] | r13 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c0086 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c008e cmp byte [rip + 0x2588fb], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0095 je 0x4c00b6 | 0x004c0097 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c009b mov edi, 0x4f5c41 | 0x004c00a0 mov esi, r14d | esi = r14d; 0x004c00a3 mov rdx, r12 | rdx = r12; 0x004c00a6 mov ecx, r15d | ecx = r15d; 0x004c00a9 mov r8d, ebp | r8d = ebp; 0x004c00ac mov r9d, r13d | r9d = r13d; 0x004c00af xor eax, eax | eax = 0; 0x004c00b1 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c00b6 mov dword [rsp + 0x10], r14d | *((rsp + 0x10)) = r14d; 0x004c00bb mov qword [rsp + 0x40], rbp | *((rsp + 0x40)) = rbp; 0x004c00c0 mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c00c5 mov rsi, r12 | rsi = r12; 0x004c00c8 call 0x4de7e0 | short&gg(short*,char const*) (); 0x004c00cd mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c00d2 mov rsi, r12 | rsi = r12; 0x004c00d5 call 0x4de8d0 | voidverify(short*,char const*) (); 0x004c00da mov r12d, dword [rip + 0x2588c3] | r12d = numCopyCtorCalls; 0x004c00e1 mov r14d, dword [rip + 0x2588c4] | r14d = numCharCtorCalls; 0x004c00e8 cmp byte [rsp + 0x50], 0 | | if (*((rsp + 0x50)) == 0) { 0x004c00ed je 0x4c01d0 | goto label_11; | } 0x004c00f3 cmp byte [rip + 0x258896], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c00fa je 0x4c010f | 0x004c00fc cmp dword [rip + 0x25842d], 0 | | if (*(0x00718530) == 0) { 0x004c0103 je 0x4c010f | goto label_12; | } 0x004c0105 mov edi, 0x4f43ea | 0x004c010a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_12: 0x004c010f mov dword [rip + 0x258417], 0 | *(0x00718530) = 0; 0x004c0119 cmp byte [rip + 0x258875], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c0120 je 0x4c012c | 0x004c0122 mov edi, 0x4f4411 | 0x004c0127 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c012c mov rax, qword [rip + 0x2586ed] | rax = Z; 0x004c0133 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c013c mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c0141 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c0149 test rax, rax | 0x004c014c je 0x4c028f | | while (rax != 0) { | label_0: 0x004c0152 lea rsi, [r15 + r15 + 0x74f2e0] | rsi = r15 + r15 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c015a mov rax, qword [rsp + 0x40] | rax = *((rsp + 0x40)); 0x004c015f add eax, r15d | eax += r15d; 0x004c0162 cdqe | rax = (int64_t) eax; 0x004c0164 lea rdx, [rax + rax + 0x74f2e0] | rdx = rax + rax + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c016c sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c016f je 0x4c017e | 0x004c0171 lea rdi, [r13 + r13 + 0x74f2e0] | 0x004c0179 call 0x401930 | memcpy (r13 + r13 + obj.testCopyConstructWithIterators_short__bool__bool__bool_::u, rsi, rdx); | } 0x004c017e mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c0183 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c0188 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c018f call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c0192 cmp byte [rip + 0x2587fc], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c0199 je 0x4c01a5 | 0x004c019b mov edi, 0x4f4571 | 0x004c01a0 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c01a5 cmp byte [rip + 0x2587e4], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c01ac je 0x4c048a | goto label_13; | } 0x004c01b2 mov edi, 0xa | 0x004c01b7 call 0x401720 | putchar (0xa); 0x004c01bc mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004c01c0 jmp 0x4c0461 | goto label_14; | label_11: 0x004c01d0 cmp qword [rip + 0x258648], 0 | | if (*(obj.Z) == 0) { 0x004c01d8 jne 0x4c01f0 | 0x004c01da mov rax, qword [rip + 0x2910d7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c01e1 test rax, rax | | if (rax != 0) { 0x004c01e4 jne 0x4c01f0 | goto label_15; | } 0x004c01e6 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c01eb nop dword [rax + rax] | | } | label_15: 0x004c01f0 cmp qword [rsp + 0x18], 6 | 0x004c01f6 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (*((rsp + 0x18)) < 6) { 0x004c01fa jb 0x4c0461 | goto label_14; | } 0x004c0200 lea rax, [r15 + r15 + 0x74f2e0] | rax = r15 + r15 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c0208 lea rcx, [r13 + r13 + 0x74f2e0] | rcx = r13 + r13 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c0210 mov rsi, qword [rsp + 0x40] | rsi = *((rsp + 0x40)); 0x004c0215 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c0219 movsxd r9, edx | r9 = (int64_t) edx; 0x004c021c add r9, r9 | r9 += r9; 0x004c021f lea rdi, [r15 + r15] | rdi = r15 + r15; 0x004c0223 mov r10, r9 | r10 = r9; 0x004c0226 sub r10, rdi | r10 -= rdi; 0x004c0229 add r10, 0xfffffffffffffffe | r10 += 0xfffffffffffffffe; 0x004c022d cmp r10, 0x1e | | if (r10 < 0x1e) { 0x004c0231 jb 0x4c0440 | goto label_16; | } 0x004c0237 mov dword [rsp + 0x4c], r14d | *((rsp + 0x4c)) = r14d; 0x004c023c mov r11, rbx | r11 = rbx; 0x004c023f lea rbp, [r13 + r13 + 0x74f2e0] | rbp = r13 + r13 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c0247 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c024b movsxd rdx, edx | rdx = (int64_t) edx; 0x004c024e lea rbx, [rdx + rdx + 0x74f2e0] | rbx = rdx + rdx + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c0256 cmp rbp, rbx | | if (rbp >= rbx) { 0x004c0259 jae 0x4c0301 | goto label_17; | } 0x004c025f add rdx, rdx | rdx += rdx; 0x004c0262 sub rdx, rdi | rdx -= rdi; 0x004c0265 lea rdx, [rdx + r13*2 + 0x74f2e0] | rdx = rdx + r13*2 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c026d lea rbp, [r15 + r15 + 0x74f2e0] | rbp = r15 + r15 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c0275 cmp rbp, rdx | | if (rbp >= rdx) { 0x004c0278 jae 0x4c0301 | goto label_17; | } 0x004c027e mov rbx, r11 | rbx = r11; 0x004c0281 mov r14d, dword [rsp + 0x4c] | r14d = *((rsp + 0x4c)); 0x004c0286 mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); 0x004c028a jmp 0x4c0440 | goto label_16; 0x004c028f mov ebp, 1 | 0x004c0294 mov rax, qword [rip + 0x29101d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c029b test rax, rax | 0x004c029e jne 0x4c0152 | | } 0x004c02a4 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c02a9 jmp 0x4c0152 | goto label_0; | label_17: 0x004c0301 shr r10, 1 | r10 >>= 1; 0x004c0304 inc r10 | r10++; 0x004c0307 mov r8, r10 | r8 = r10; 0x004c030a and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c030e lea rdx, [r8 - 0x10] | rdx = r8 - 0x10; 0x004c0312 mov rbx, rdx | rbx = rdx; 0x004c0315 shr rbx, 4 | rbx >>= 4; 0x004c0319 inc rbx | rbx++; 0x004c031c mov ebp, ebx | 0x004c031e and ebp, 3 | ebp &= 3; 0x004c0321 cmp rdx, 0x30 | | if (rdx < 0x30) { 0x004c0325 jae 0x4c032e | 0x004c0327 xor edx, edx | edx = 0; 0x004c0329 jmp 0x4c03d7 | goto label_18; | } 0x004c032e and rbx, 0xfffffffffffffffc | rbx &= 0xfffffffffffffffc; 0x004c0332 neg rbx | rbx = -rbx; 0x004c0335 xor edx, edx | edx = 0; 0x004c0337 nop word [rax + rax] | | do { 0x004c0340 movups xmm0, xmmword [rdi + rdx*2 + 0x74f2e0] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + obj.testCopyConstructWithIterators_short__bool__bool__bool_::u]"); 0x004c0348 movups xmm1, xmmword [rdi + rdx*2 + 0x74f2f0] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f2f0]"); 0x004c0350 lea rsi, [r13 + r13] | rsi = r13 + r13; 0x004c0355 movups xmmword [rsi + rdx*2 + 0x74f2e0], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + obj.testCopyConstructWithIterators_short__bool__bool__bool_::u], xmm0"); 0x004c035d movups xmmword [rsi + rdx*2 + 0x74f2f0], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f2f0], xmm1"); 0x004c0365 movups xmm0, xmmword [rdi + rdx*2 + 0x74f300] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u]"); 0x004c036d movups xmm1, xmmword [rdi + rdx*2 + 0x74f310] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f310]"); 0x004c0375 movups xmmword [rsi + rdx*2 + 0x74f300], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c037d movups xmmword [rsi + rdx*2 + 0x74f310], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f310], xmm1"); 0x004c0385 movups xmm0, xmmword [rdi + rdx*2 + 0x74f320] | __asm ("movups xmm0, xmmword [rdi + rdx*2 + 0x74f320]"); 0x004c038d movups xmm1, xmmword [rdi + rdx*2 + 0x74f330] | __asm ("movups xmm1, xmmword [rdi + rdx*2 + 0x74f330]"); 0x004c0395 movups xmmword [rsi + rdx*2 + 0x74f320], xmm0 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f320], xmm0"); 0x004c039d movups xmmword [rsi + rdx*2 + 0x74f330], xmm1 | __asm ("movups xmmword [rsi + rdx*2 + 0x74f330], xmm1"); 0x004c03a5 movdqu xmm0, xmmword [rdi + rdx*2 + 0x74f340] | __asm ("movdqu xmm0, xmmword [rdi + rdx*2 + 0x74f340]"); 0x004c03ae movdqu xmm1, xmmword [rdi + rdx*2 + 0x74f350] | __asm ("movdqu xmm1, xmmword [rdi + rdx*2 + 0x74f350]"); 0x004c03b7 movdqu xmmword [rsi + rdx*2 + 0x74f340], xmm0 | __asm ("movdqu xmmword [rsi + rdx*2 + 0x74f340], xmm0"); 0x004c03c0 movdqu xmmword [rsi + rdx*2 + 0x74f350], xmm1 | __asm ("movdqu xmmword [rsi + rdx*2 + 0x74f350], xmm1"); 0x004c03c9 add rdx, 0x40 | rdx += 0x40; 0x004c03cd add rbx, 4 | rbx += 4; 0x004c03d1 jne 0x4c0340 | | } while (rbx != 0); | label_18: 0x004c03d7 test rbp, rbp | | if (rbp == 0) { 0x004c03da je 0x4c041f | goto label_19; | } 0x004c03dc add r13, r13 | r13 += r13; 0x004c03df lea rbx, [r13 + rdx*2 + 0x74f2f0] | rbx = r13 + rdx*2 + 0x74f2f0; 0x004c03e7 lea rdx, [rdi + rdx*2 + 0x74f2f0] | rdx = rdi + rdx*2 + 0x74f2f0; 0x004c03ef shl rbp, 5 | rbp <<= 5; 0x004c03f3 xor edi, edi | edi = 0; 0x004c03f5 nop word cs:[rax + rax] | 0x004c03ff nop | | do { 0x004c0400 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c0406 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c040b movdqu xmmword [rbx + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbx + rdi - 0x10], xmm0"); 0x004c0411 movdqu xmmword [rbx + rdi], xmm1 | __asm ("movdqu xmmword [rbx + rdi], xmm1"); 0x004c0416 add rdi, 0x20 | rdi += 0x20; 0x004c041a cmp rbp, rdi | 0x004c041d jne 0x4c0400 | | } while (rbp != rdi); | label_19: 0x004c041f cmp r10, r8 | 0x004c0422 mov rbx, r11 | rbx = r11; 0x004c0425 mov r14d, dword [rsp + 0x4c] | r14d = *((rsp + 0x4c)); 0x004c042a mov ebp, dword [rsp + 0x10] | ebp = *((rsp + 0x10)); | if (r10 == r8) { 0x004c042e je 0x4c0461 | goto label_14; | } 0x004c0430 lea rax, [rax + r8*2] | rax = rax + r8*2; 0x004c0434 lea rcx, [rcx + r8*2] | rcx = rcx + r8*2; 0x004c0438 nop dword [rax + rax] | | label_16: 0x004c0440 sub r9, rax | r9 -= rax; 0x004c0443 lea rdx, [r9 + 0x74f2e0] | rdx = r9 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c044a xor esi, esi | esi = 0; 0x004c044c nop dword [rax] | | do { 0x004c0450 movzx edi, word [rax + rsi] | edi = *((rax + rsi)); 0x004c0454 mov word [rcx + rsi], di | *((rcx + rsi)) = di; 0x004c0458 add rsi, 2 | rsi += 2; 0x004c045c cmp rdx, rsi | 0x004c045f jne 0x4c0450 | | } while (rdx != rsi); | label_14: 0x004c0461 cmp byte [rip + 0x258528], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0468 je 0x4c048a | 0x004c046a mov edx, dword [rip + 0x258534] | edx = numCopyCtorCalls; 0x004c0470 sub edx, r12d | edx -= r12d; 0x004c0473 mov ecx, dword [rip + 0x258533] | ecx = numCharCtorCalls; 0x004c0479 sub ecx, r14d | ecx -= r14d; 0x004c047c mov edi, 0x4f5db4 | 0x004c0481 mov esi, ebp | esi = ebp; 0x004c0483 xor eax, eax | eax = 0; 0x004c0485 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_13: 0x004c048a cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c048f je 0x4c04f0 | goto label_20; | } 0x004c0491 cmp r12d, dword [rip + 0x25850c] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c0498 je 0x4c04c3 | 0x004c049a mov edi, 0x4f4e04 | 0x004c049f mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c04a4 mov esi, 0x1005 | esi = 0x1005; 0x004c04a9 xor eax, eax | eax = 0; 0x004c04ab call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c04b0 mov eax, dword [rip + 0x2584e2] | eax = (anonymous namespace)::testStatus; 0x004c04b6 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c04b9 ja 0x4c04c3 | goto label_21; | } 0x004c04bb inc eax | eax++; 0x004c04bd mov dword [rip + 0x2584d5], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c04c3 cmp r14d, dword [rip + 0x2584e2] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c04ca je 0x4bfff0 | goto label_1; | } 0x004c04d0 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c04d5 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c04da mov esi, 0x1006 | esi = 0x1006; 0x004c04df jmp 0x4c0543 | goto label_22; | label_20: 0x004c04f0 add r12d, dword [rsp + 0x40] | r12d += *((rsp + 0x40)); 0x004c04f5 cmp r12d, dword [rip + 0x2584a8] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c04fc jle 0x4c0527 | 0x004c04fe mov edi, 0x4f4e04 | 0x004c0503 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c0508 mov esi, 0x1009 | esi = 0x1009; 0x004c050d xor eax, eax | eax = 0; 0x004c050f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c0514 mov eax, dword [rip + 0x25847e] | eax = (anonymous namespace)::testStatus; 0x004c051a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c051d ja 0x4c0527 | goto label_23; | } 0x004c051f inc eax | eax++; 0x004c0521 mov dword [rip + 0x258471], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c0527 cmp r14d, dword [rip + 0x25847e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c052e je 0x4bfff0 | goto label_1; | } 0x004c0534 mov edi, 0x4f4e04 | 0x004c0539 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c053e mov esi, 0x100a | esi = 0x100a; | label_22: 0x004c0543 xor eax, eax | eax = 0; 0x004c0545 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c054a mov eax, dword [rip + 0x258448] | eax = (anonymous namespace)::testStatus; 0x004c0550 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c0553 ja 0x4bfff0 | goto label_1; | } 0x004c0559 inc eax | eax++; 0x004c055b mov dword [rip + 0x258437], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c0561 jmp 0x4bfff0 | goto label_1; | label_9: 0x004c0566 cmp byte [rip + 0x258429], 0 | | if (*(obj.verbose) != 0) { 0x004c056d je 0x4c0579 | 0x004c056f mov edi, 0x4f695c | 0x004c0574 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c0579 xor ebx, ebx | ebx = 0; 0x004c057b jmp 0x4c05ac | goto label_24; | label_2: 0x004c0580 mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0585 mov rsi, rbp | rsi = rbp; 0x004c0588 call 0x4de8d0 | voidverify(short*,char const*) (); 0x004c058d mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c0592 mov rsi, rbp | rsi = rbp; 0x004c0595 call 0x4deb10 | voidcleanup(short*,char const*) (); 0x004c059a mov rbx, qword [rsp + 0x18] | rbx = *((rsp + 0x18)); 0x004c059f inc rbx | rbx++; 0x004c05a2 cmp rbx, 0x1e | | if (rbx == 0x1e) { 0x004c05a6 je 0x4c0adc | goto label_25; | } | label_24: 0x004c05ac lea rbp, [rbx*8] | rbp = rbx*8; 0x004c05b4 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c05bc mov rdi, r12 | 0x004c05bf call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c05c4 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c05c7 jl 0x4c05f2 | 0x004c05c9 mov edi, 0x4f4e04 | 0x004c05ce mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c05d3 mov esi, 0x1019 | esi = 0x1019; 0x004c05d8 xor eax, eax | eax = 0; 0x004c05da call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c05df mov eax, dword [rip + 0x2583b3] | eax = (anonymous namespace)::testStatus; 0x004c05e5 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c05e8 ja 0x4c05f2 | goto label_26; | } 0x004c05ea inc eax | eax++; 0x004c05ec mov dword [rip + 0x2583a6], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_26: 0x004c05f2 mov rdi, r12 | 0x004c05f5 call 0x401790 | rax = strlen (r12); 0x004c05fa cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c05fe jb 0x4c0629 | 0x004c0600 mov edi, 0x4f4e04 | 0x004c0605 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c060a mov esi, 0x101c | esi = 0x101c; 0x004c060f xor eax, eax | eax = 0; 0x004c0611 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c0616 mov eax, dword [rip + 0x25837c] | eax = (anonymous namespace)::testStatus; 0x004c061c cmp eax, 0x64 | | if (eax > 0x64) { 0x004c061f ja 0x4c0629 | goto label_27; | } 0x004c0621 inc eax | eax++; 0x004c0623 mov dword [rip + 0x25836f], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_27: 0x004c0629 mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c062e pxor xmm0, xmm0 | xmm0 = 0; 0x004c0632 movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c0638 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c0640 mov al, byte [r12] | al = *(r12); 0x004c0644 test al, al | | if (al == 0) { 0x004c0646 je 0x4c0661 | goto label_28; | } 0x004c0648 xor ecx, ecx | ecx = 0; 0x004c064a nop word [rax + rax] | | do { 0x004c0650 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c0654 movzx eax, byte [r12 + rcx + 1] | eax = *((r12 + rcx + 1)); 0x004c065a inc rcx | rcx++; 0x004c065d test al, al | 0x004c065f jne 0x4c0650 | | } while (al != 0); | label_28: 0x004c0661 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c0669 movsxd rbx, dword [rbp + rbp*4 + 0x4f3ca0] | rbx = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c0671 movsxd r15, dword [rbp + rbp*4 + 0x4f3ca4] | r15 = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c0679 movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c0681 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c0689 cmp byte [rip + 0x258300], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c0690 je 0x4c06b0 | 0x004c0692 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c0696 mov edi, 0x4f5c41 | 0x004c069b mov esi, r14d | esi = r14d; 0x004c069e mov rdx, r12 | rdx = r12; 0x004c06a1 mov ecx, ebx | ecx = ebx; 0x004c06a3 mov r8d, r15d | r8d = r15d; 0x004c06a6 mov r9d, r13d | r9d = r13d; 0x004c06a9 xor eax, eax | eax = 0; 0x004c06ab call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c06b0 mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c06b5 mov rsi, r12 | rsi = r12; 0x004c06b8 call 0x4de7e0 | short&gg(short*,char const*) (); 0x004c06bd mov edi, 0x74f2e0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c06c2 mov rsi, r12 | rsi = r12; 0x004c06c5 call 0x4de8d0 | voidverify(short*,char const*) (); 0x004c06ca mov r12d, dword [rip + 0x2582d3] | r12d = numCopyCtorCalls; 0x004c06d1 mov eax, dword [rip + 0x2582d5] | eax = numCharCtorCalls; 0x004c06d7 mov dword [rsp + 0x40], eax | *((rsp + 0x40)) = eax; 0x004c06db cmp byte [rsp + 0x50], 0 | | if (*((rsp + 0x50)) == 0) { 0x004c06e0 je 0x4c08a0 | goto label_29; | } 0x004c06e6 cmp byte [rip + 0x2582a3], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c06ed je 0x4c0702 | 0x004c06ef cmp dword [rip + 0x257e3e], 0 | | if (*(obj.testCopyConstructWithIterators_short__bool__bool__bool_::firstTime) == 0) { 0x004c06f6 je 0x4c0702 | goto label_30; | } 0x004c06f8 mov edi, 0x4f43ea | 0x004c06fd call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_30: 0x004c0702 mov dword [rip + 0x257e28], 0 | *(obj.testCopyConstructWithIterators_short__bool__bool__bool_::firstTime) = 0; 0x004c070c cmp byte [rip + 0x258282], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c0713 je 0x4c071f | 0x004c0715 mov edi, 0x4f4411 | 0x004c071a call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c071f mov rax, qword [rip + 0x2580fa] | rax = Z; 0x004c0726 mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c072f mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c0734 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c073c test rax, rax | | if (rax == 0) { 0x004c073f je 0x4c0a3a | goto label_31; | } | label_3: 0x004c0745 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c074b jb 0x4c0850 | goto label_32; | } 0x004c0751 lea rcx, [rsp + rbx + 0x20] | rcx = rsp + rbx + 0x20; 0x004c0756 lea rsi, [r13 + r13 + 0x74f2e0] | rsi = r13 + r13 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c075e lea eax, [rbx + r15] | eax = rbx + r15; 0x004c0762 movsxd r9, eax | r9 = (int64_t) eax; 0x004c0765 mov rdx, r9 | rdx = r9; 0x004c0768 sub rdx, rbx | rdx -= rbx; 0x004c076b cmp rdx, 0x10 | | if (rdx < 0x10) { 0x004c076f jb 0x4c082b | goto label_33; | } 0x004c0775 mov r11, rbp | r11 = rbp; 0x004c0778 mov r8, rdx | r8 = rdx; 0x004c077b and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c077f lea rdi, [r8 - 0x10] | rdi = r8 - 0x10; 0x004c0783 mov r10, rdi | r10 = rdi; 0x004c0786 shr r10, 4 | r10 >>= 4; 0x004c078a inc r10 | r10++; 0x004c078d test rdi, rdi | | if (rdi == 0) { 0x004c0790 je 0x4c0acb | goto label_34; | } 0x004c0796 lea rax, [rsp + 0x38] | rax = rsp + 0x38; 0x004c079b add rbx, rax | rbx += rax; 0x004c079e mov rbp, r10 | 0x004c07a1 and rbp, 0xfffffffffffffffe | rbp &= 0xfffffffffffffffe; 0x004c07a5 neg rbp | rbp = -rbp; 0x004c07a8 xor edi, edi | edi = 0; 0x004c07aa nop word [rax + rax] | | do { 0x004c07b0 pmovsxbw xmm0, qword [rbx + rdi - 0x18] | __asm ("pmovsxbw xmm0, qword [rbx + rdi - 0x18]"); 0x004c07b7 pmovsxbw xmm1, qword [rbx + rdi - 0x10] | __asm ("pmovsxbw xmm1, qword [rbx + rdi - 0x10]"); 0x004c07be lea rax, [r13 + r13] | rax = r13 + r13; 0x004c07c3 movdqu xmmword [rax + rdi*2 + 0x74f2e0], xmm0 | __asm ("movdqu xmmword [rax + rdi*2 + obj.testCopyConstructWithIterators_short__bool__bool__bool_::u], xmm0"); 0x004c07cc movdqu xmmword [rax + rdi*2 + 0x74f2f0], xmm1 | __asm ("movdqu xmmword [rax + rdi*2 + 0x74f2f0], xmm1"); 0x004c07d5 pmovsxbw xmm0, qword [rbx + rdi - 8] | __asm ("pmovsxbw xmm0, qword [rbx + rdi - 8]"); 0x004c07dc pmovsxbw xmm1, qword [rbx + rdi] | __asm ("pmovsxbw xmm1, qword [rbx + rdi]"); 0x004c07e2 movdqu xmmword [rax + rdi*2 + 0x74f300], xmm0 | __asm ("movdqu xmmword [rax + rdi*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c07eb movdqu xmmword [rax + rdi*2 + 0x74f310], xmm1 | __asm ("movdqu xmmword [rax + rdi*2 + 0x74f310], xmm1"); 0x004c07f4 add rdi, 0x20 | rdi += 0x20; 0x004c07f8 add rbp, 2 | rbp += 2; 0x004c07fc jne 0x4c07b0 | | } while (rbp != 0); 0x004c07fe test r10b, 1 | | if ((r10b & 1) != 0) { 0x004c0802 je 0x4c081c | | label_6: 0x004c0804 pmovsxbw xmm0, qword [rcx + rdi] | __asm ("pmovsxbw xmm0, qword [rcx + rdi]"); 0x004c080a pmovsxbw xmm1, qword [rcx + rdi + 8] | __asm ("pmovsxbw xmm1, qword [rcx + rdi + 8]"); 0x004c0811 movdqu xmmword [rsi + rdi*2], xmm0 | __asm ("movdqu xmmword [rsi + rdi*2], xmm0"); 0x004c0816 movdqu xmmword [rsi + rdi*2 + 0x10], xmm1 | __asm ("movdqu xmmword [rsi + rdi*2 + 0x10], xmm1"); | } | label_7: 0x004c081c cmp rdx, r8 | 0x004c081f mov rbp, r11 | | if (rdx == r8) { 0x004c0822 je 0x4c0850 | goto label_32; | } 0x004c0824 add rcx, r8 | rcx += r8; 0x004c0827 lea rsi, [rsi + r8*2] | rsi = rsi + r8*2; | label_33: 0x004c082b sub r9, rcx | r9 -= rcx; 0x004c082e lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c0833 xor edi, edi | edi = 0; 0x004c0835 nop word cs:[rax + rax] | 0x004c083f nop | | do { 0x004c0840 movsx edx, byte [rcx + rdi] | edx = *((rcx + rdi)); 0x004c0844 mov word [rsi + rdi*2], dx | *((rsi + rdi*2)) = dx; 0x004c0848 inc rdi | rdi++; 0x004c084b cmp rax, rdi | 0x004c084e jne 0x4c0840 | | } while (rax != rdi); | label_32: 0x004c0850 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c0855 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c085a mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c0861 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c0864 cmp byte [rip + 0x25812a], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c086b je 0x4c0877 | 0x004c086d mov edi, 0x4f4571 | 0x004c0872 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c0877 cmp byte [rip + 0x258112], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c087e je 0x4c09fb | goto label_35; | } 0x004c0884 mov edi, 0xa | 0x004c0889 call 0x401720 | putchar (0xa); 0x004c088e mov r11d, r14d | r11d = r14d; 0x004c0891 jmp 0x4c09d0 | goto label_36; | label_29: 0x004c08a0 cmp qword [rip + 0x257f78], 0 | | if (*(obj.Z) == 0) { 0x004c08a8 jne 0x4c08c0 | 0x004c08aa mov rax, qword [rip + 0x290a07] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c08b1 test rax, rax | | if (rax != 0) { 0x004c08b4 jne 0x4c08c0 | goto label_37; | } 0x004c08b6 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c08bb nop dword [rax + rax] | | } | label_37: 0x004c08c0 cmp qword [rsp + 0x18], 6 | 0x004c08c6 mov r11d, r14d | r11d = r14d; | if (*((rsp + 0x18)) < 6) { 0x004c08c9 jb 0x4c09d0 | goto label_36; | } 0x004c08cf lea rax, [r13 + r13 + 0x74f2e0] | rax = r13 + r13 + obj_testCopyConstructWithIterators_short__bool__bool__bool_::u; 0x004c08d7 lea rcx, [rsp + rbx + 0x20] | rcx = rsp + rbx + 0x20; 0x004c08dc add r15, rbx | r15 += rbx; 0x004c08df mov rdx, r15 | rdx = r15; 0x004c08e2 sub rdx, rbx | rdx -= rbx; 0x004c08e5 cmp rdx, 0x10 | | if (rdx < 0x10) { 0x004c08e9 jb 0x4c09ab | goto label_38; | } 0x004c08ef mov r10, rbp | r10 = rbp; 0x004c08f2 mov r8, rdx | r8 = rdx; 0x004c08f5 and r8, 0xfffffffffffffff0 | r8 &= 0xfffffffffffffff0; 0x004c08f9 lea rdi, [r8 - 0x10] | rdi = r8 - 0x10; 0x004c08fd mov r9, rdi | r9 = rdi; 0x004c0900 shr r9, 4 | r9 >>= 4; 0x004c0904 inc r9 | r9++; 0x004c0907 test rdi, rdi | | if (rdi == 0) { 0x004c090a je 0x4c0aba | goto label_39; | } 0x004c0910 lea rsi, [rsp + 0x38] | rsi = rsp + 0x38; 0x004c0915 add rbx, rsi | rbx += rsi; 0x004c0918 mov rdi, r9 | rdi = r9; 0x004c091b and rdi, 0xfffffffffffffffe | rdi &= 0xfffffffffffffffe; 0x004c091f neg rdi | rdi = -rdi; 0x004c0922 xor ebp, ebp | ebp = 0; 0x004c0924 nop word cs:[rax + rax] | 0x004c092e nop | | do { 0x004c0930 pmovsxbw xmm0, qword [rbx + rbp - 0x18] | __asm ("pmovsxbw xmm0, qword [rbx + rbp - 0x18]"); 0x004c0937 pmovsxbw xmm1, qword [rbx + rbp - 0x10] | __asm ("pmovsxbw xmm1, qword [rbx + rbp - 0x10]"); 0x004c093e lea rsi, [r13 + r13] | rsi = r13 + r13; 0x004c0943 movdqu xmmword [rsi + rbp*2 + 0x74f2e0], xmm0 | __asm ("movdqu xmmword [rsi + rbp*2 + obj.testCopyConstructWithIterators_short__bool__bool__bool_::u], xmm0"); 0x004c094c movdqu xmmword [rsi + rbp*2 + 0x74f2f0], xmm1 | __asm ("movdqu xmmword [rsi + rbp*2 + 0x74f2f0], xmm1"); 0x004c0955 pmovsxbw xmm0, qword [rbx + rbp - 8] | __asm ("pmovsxbw xmm0, qword [rbx + rbp - 8]"); 0x004c095c pmovsxbw xmm1, qword [rbx + rbp] | __asm ("pmovsxbw xmm1, qword [rbx + rbp]"); 0x004c0962 movdqu xmmword [rsi + rbp*2 + 0x74f300], xmm0 | __asm ("movdqu xmmword [rsi + rbp*2 + obj.testCopyConstructWithIterators_unsigned_short__bool__bool__bool_::u], xmm0"); 0x004c096b movdqu xmmword [rsi + rbp*2 + 0x74f310], xmm1 | __asm ("movdqu xmmword [rsi + rbp*2 + 0x74f310], xmm1"); 0x004c0974 add rbp, 0x20 | rbp += 0x20; 0x004c0978 add rdi, 2 | rdi += 2; 0x004c097c jne 0x4c0930 | | } while (rdi != 0); 0x004c097e test r9b, 1 | | if ((r9b & 1) != 0) { 0x004c0982 je 0x4c099c | | label_4: 0x004c0984 pmovsxbw xmm0, qword [rcx + rbp] | __asm ("pmovsxbw xmm0, qword [rcx + rbp]"); 0x004c098a pmovsxbw xmm1, qword [rcx + rbp + 8] | __asm ("pmovsxbw xmm1, qword [rcx + rbp + 8]"); 0x004c0991 movdqu xmmword [rax + rbp*2], xmm0 | __asm ("movdqu xmmword [rax + rbp*2], xmm0"); 0x004c0996 movdqu xmmword [rax + rbp*2 + 0x10], xmm1 | __asm ("movdqu xmmword [rax + rbp*2 + 0x10], xmm1"); | } | label_5: 0x004c099c cmp rdx, r8 | 0x004c099f mov rbp, r10 | | if (rdx == r8) { 0x004c09a2 je 0x4c09d0 | goto label_36; | } 0x004c09a4 add rcx, r8 | rcx += r8; 0x004c09a7 lea rax, [rax + r8*2] | rax = rax + r8*2; | label_38: 0x004c09ab sub r15, rcx | r15 -= rcx; 0x004c09ae lea rdx, [rsp + r15 + 0x20] | rdx = rsp + r15 + 0x20; 0x004c09b3 xor esi, esi | esi = 0; 0x004c09b5 nop word cs:[rax + rax] | 0x004c09bf nop | | do { 0x004c09c0 movsx edi, byte [rcx + rsi] | edi = *((rcx + rsi)); 0x004c09c4 mov word [rax + rsi*2], di | *((rax + rsi*2)) = di; 0x004c09c8 inc rsi | rsi++; 0x004c09cb cmp rdx, rsi | 0x004c09ce jne 0x4c09c0 | | } while (rdx != rsi); | label_36: 0x004c09d0 cmp byte [rip + 0x257fb9], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c09d7 je 0x4c09fb | 0x004c09d9 mov edx, dword [rip + 0x257fc5] | edx = numCopyCtorCalls; 0x004c09df sub edx, r12d | edx -= r12d; 0x004c09e2 mov ecx, dword [rip + 0x257fc4] | ecx = numCharCtorCalls; 0x004c09e8 sub ecx, dword [rsp + 0x40] | ecx -= *((rsp + 0x40)); 0x004c09ec mov edi, 0x4f5db4 | 0x004c09f1 mov esi, r11d | esi = r11d; 0x004c09f4 xor eax, eax | eax = 0; 0x004c09f6 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_35: 0x004c09fb cmp r12d, dword [rip + 0x257fa2] | | if (r12d == *(obj.numCopyCtorCalls)) { 0x004c0a02 je 0x4c0580 | goto label_2; | } 0x004c0a08 mov edi, 0x4f4e04 | 0x004c0a0d mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c0a12 mov esi, 0x103f | esi = 0x103f; 0x004c0a17 xor eax, eax | eax = 0; 0x004c0a19 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c0a1e mov eax, dword [rip + 0x257f74] | eax = (anonymous namespace)::testStatus; 0x004c0a24 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c0a27 ja 0x4c0580 | goto label_2; | } 0x004c0a2d inc eax | eax++; 0x004c0a2f mov dword [rip + 0x257f63], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c0a35 jmp 0x4c0580 | goto label_2; | label_31: 0x004c0a3a mov eax, 1 | eax = 1; 0x004c0a3f mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004c0a44 mov rax, qword [rip + 0x29086d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c0a4b test rax, rax | | if (rax != 0) { 0x004c0a4e jne 0x4c0745 | goto label_3; | } 0x004c0a54 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c0a59 jmp 0x4c0745 | goto label_3; | label_39: 0x004c0aba xor ebp, ebp | ebp = 0; 0x004c0abc test r9b, 1 | | if ((r9b & 1) != 0) { 0x004c0ac0 jne 0x4c0984 | goto label_4; | } 0x004c0ac6 jmp 0x4c099c | goto label_5; | label_34: 0x004c0acb xor edi, edi | edi = 0; 0x004c0acd test r10b, 1 | | if ((r10b & 1) != 0) { 0x004c0ad1 jne 0x4c0804 | goto label_6; | } 0x004c0ad7 jmp 0x4c081c | goto label_7; | label_25: 0x004c0adc add rsp, 0x68 | 0x004c0ae0 pop rbx | 0x004c0ae1 pop r12 | 0x004c0ae3 pop r13 | 0x004c0ae5 pop r14 | 0x004c0ae7 pop r15 | 0x004c0ae9 pop rbp | 0x004c0aea ret | return rax; | }