; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4c5210 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_unsigned_long_long_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_14h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_22h; | int64_t var_28h; | int64_t var_2eh; | int64_t var_30h; | uint32_t var_40h; | uint32_t var_48h; | int64_t var_50h; | uint32_t var_54h; | int64_t var_58h; | int64_t var_60h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004c5210 push rbp | 0x004c5211 push r15 | 0x004c5213 push r14 | 0x004c5215 push r13 | 0x004c5217 push r12 | 0x004c5219 push rbx | 0x004c521a sub rsp, 0x68 | 0x004c521e mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c5222 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c5226 cmp byte [rip + 0x253769], 0 | | if (*(obj.verbose) != 0) { 0x004c522d je 0x4c5239 | 0x004c522f mov edi, 0x4f6973 | 0x004c5234 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c5239 xor eax, eax | eax = 0; 0x004c523b jmp 0x4c526c | goto label_4; | label_1: 0x004c5240 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5245 mov rsi, rbp | rsi = rbp; 0x004c5248 call 0x4e0be0 | voidverify(unsigned long long*,char const*) (); 0x004c524d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5252 mov rsi, rbp | rsi = rbp; 0x004c5255 call 0x4e0e20 | voidcleanup(unsigned long long*,char const*) (); 0x004c525a mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c525f inc rax | rax++; 0x004c5262 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c5266 je 0x4c57b6 | goto label_5; | } | label_4: 0x004c526c mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004c5271 lea rbp, [rax*8] | rbp = rax*8; 0x004c5279 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c5281 mov rdi, r12 | 0x004c5284 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c5289 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c528c jl 0x4c52b7 | 0x004c528e mov edi, 0x4f4e04 | 0x004c5293 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c5298 mov esi, 0xfe6 | esi = 0xfe6; 0x004c529d xor eax, eax | eax = 0; 0x004c529f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c52a4 mov eax, dword [rip + 0x2536ee] | eax = (anonymous namespace)::testStatus; 0x004c52aa cmp eax, 0x64 | | if (eax > 0x64) { 0x004c52ad ja 0x4c52b7 | goto label_6; | } 0x004c52af inc eax | eax++; 0x004c52b1 mov dword [rip + 0x2536e1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_6: 0x004c52b7 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c52bf movsxd r15, dword [rbp + rbp*4 + 0x4f3ca0] | r15 = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c52c7 mov ebx, dword [rbp + rbp*4 + 0x4f3ca4] | ebx = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c52ce movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c52d6 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c52de cmp byte [rip + 0x2536ab], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c52e5 je 0x4c5306 | 0x004c52e7 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c52eb mov edi, 0x4f5c41 | 0x004c52f0 mov esi, r14d | esi = r14d; 0x004c52f3 mov rdx, r12 | rdx = r12; 0x004c52f6 mov ecx, r15d | ecx = r15d; 0x004c52f9 mov r8d, ebx | r8d = ebx; 0x004c52fc mov r9d, r13d | r9d = r13d; 0x004c52ff xor eax, eax | eax = 0; 0x004c5301 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c5306 mov dword [rsp + 0x14], r14d | *((rsp + 0x14)) = r14d; 0x004c530b mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c5310 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5315 mov rsi, r12 | rsi = r12; 0x004c5318 call 0x4e0b00 | unsigned long long&gg(unsigned long long*,char const*) (); 0x004c531d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5322 mov rsi, r12 | rsi = r12; 0x004c5325 call 0x4e0be0 | voidverify(unsigned long long*,char const*) (); 0x004c532a mov r12d, dword [rip + 0x253673] | r12d = numCopyCtorCalls; 0x004c5331 mov r14d, dword [rip + 0x253674] | r14d = numCharCtorCalls; 0x004c5338 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c533d je 0x4c5420 | goto label_7; | } 0x004c5343 cmp byte [rip + 0x253646], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c534a je 0x4c535f | 0x004c534c cmp dword [rip + 0x253215], 0 | | if (*(0x00718568) == 0) { 0x004c5353 je 0x4c535f | goto label_8; | } 0x004c5355 mov edi, 0x4f43ea | 0x004c535a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_8: 0x004c535f mov dword [rip + 0x2531ff], 0 | *(0x00718568) = 0; 0x004c5369 cmp byte [rip + 0x253625], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c5370 je 0x4c537c | 0x004c5372 mov edi, 0x4f4411 | 0x004c5377 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c537c mov rax, qword [rip + 0x25349d] | rax = Z; 0x004c5383 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c538c mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c5391 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c5399 test rax, rax | 0x004c539c je 0x4c54e5 | | while (rax != 0) { | label_0: 0x004c53a2 lea rsi, [r15*8 + 0x74f520] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c53aa mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c53af add eax, r15d | eax += r15d; 0x004c53b2 cdqe | rax = (int64_t) eax; 0x004c53b4 lea rdx, [rax*8 + 0x74f520] | rdx = rax*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c53bc sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c53bf je 0x4c53ce | 0x004c53c1 lea rdi, [r13*8 + 0x74f520] | 0x004c53c9 call 0x401930 | memcpy (r13*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c53ce mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c53d3 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c53d8 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c53df call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c53e2 cmp byte [rip + 0x2535ac], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c53e9 je 0x4c53f5 | 0x004c53eb mov edi, 0x4f4571 | 0x004c53f0 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c53f5 cmp byte [rip + 0x253594], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c53fc je 0x4c56da | goto label_9; | } 0x004c5402 mov edi, 0xa | 0x004c5407 call 0x401720 | putchar (0xa); 0x004c540c mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c5410 jmp 0x4c56b1 | goto label_10; | label_7: 0x004c5420 cmp qword [rip + 0x2533f8], 0 | | if (*(obj.Z) == 0) { 0x004c5428 jne 0x4c5440 | 0x004c542a mov rax, qword [rip + 0x28be87] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c5431 test rax, rax | | if (rax != 0) { 0x004c5434 jne 0x4c5440 | goto label_11; | } 0x004c5436 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c543b nop dword [rax + rax] | | } | label_11: 0x004c5440 cmp qword [rsp + 0x48], 6 | 0x004c5446 mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (*((rsp + 0x48)) < 6) { 0x004c544a jb 0x4c56b1 | goto label_10; | } 0x004c5450 lea rax, [r15*8 + 0x74f520] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5458 lea rcx, [r13*8 + 0x74f520] | rcx = r13*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5460 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x004c5465 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c5469 movsxd r9, edx | r9 = (int64_t) edx; 0x004c546c shl r9, 3 | r9 <<= 3; 0x004c5470 lea rdi, [r15*8] | rdi = r15*8; 0x004c5478 mov r10, r9 | r10 = r9; 0x004c547b sub r10, rdi | r10 -= rdi; 0x004c547e add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c5482 cmp r10, 0x18 | | if (r10 < 0x18) { 0x004c5486 jb 0x4c5690 | goto label_12; | } 0x004c548c mov dword [rsp + 0x50], r14d | *((rsp + 0x50)) = r14d; 0x004c5491 mov r11, rbp | r11 = rbp; 0x004c5494 lea rbp, [r13*8 + 0x74f520] | rbp = r13*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c549c lea edx, [rsi + r15] | edx = rsi + r15; 0x004c54a0 movsxd rdx, edx | rdx = (int64_t) edx; 0x004c54a3 lea rbx, [rdx*8 + 0x74f520] | rbx = rdx*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c54ab cmp rbp, rbx | | if (rbp >= rbx) { 0x004c54ae jae 0x4c5557 | goto label_13; | } 0x004c54b4 shl rdx, 3 | rdx <<= 3; 0x004c54b8 sub rdx, rdi | rdx -= rdi; 0x004c54bb lea rdx, [rdx + r13*8 + 0x74f520] | rdx = rdx + r13*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c54c3 lea rbp, [r15*8 + 0x74f520] | rbp = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c54cb cmp rbp, rdx | | if (rbp >= rdx) { 0x004c54ce jae 0x4c5557 | goto label_13; | } 0x004c54d4 mov rbp, r11 | 0x004c54d7 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c54dc mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c54e0 jmp 0x4c5690 | goto label_12; 0x004c54e5 mov ebx, 1 | ebx = 1; 0x004c54ea mov rax, qword [rip + 0x28bdc7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c54f1 test rax, rax | 0x004c54f4 jne 0x4c53a2 | | } 0x004c54fa call 0x4eede0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c54ff jmp 0x4c53a2 | goto label_0; | label_13: 0x004c5557 shr r10, 3 | r10 >>= 3; 0x004c555b inc r10 | r10++; 0x004c555e mov r8, r10 | r8 = r10; 0x004c5561 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c5565 lea rdx, [r8 - 4] | rdx = r8 - 4; 0x004c5569 mov rbp, rdx | 0x004c556c shr rbp, 2 | rbp >>= 2; 0x004c5570 inc rbp | rbp++; 0x004c5573 mov ebx, ebp | ebx = ebp; 0x004c5575 and ebx, 3 | ebx &= 3; 0x004c5578 cmp rdx, 0xc | | if (rdx < 0xc) { 0x004c557c jae 0x4c5585 | 0x004c557e xor edx, edx | edx = 0; 0x004c5580 jmp 0x4c562a | goto label_14; | } 0x004c5585 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c5589 neg rbp | rbp = -rbp; 0x004c558c xor edx, edx | edx = 0; 0x004c558e nop | | do { 0x004c5590 movups xmm0, xmmword [rdi + rdx*8 + 0x74f520] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u]"); 0x004c5598 movups xmm1, xmmword [rdi + rdx*8 + 0x74f530] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f530]"); 0x004c55a0 lea rsi, [r13*8] | rsi = r13*8; 0x004c55a8 movups xmmword [rsi + rdx*8 + 0x74f520], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c55b0 movups xmmword [rsi + rdx*8 + 0x74f530], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f530], xmm1"); 0x004c55b8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f540] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f540]"); 0x004c55c0 movups xmm1, xmmword [rdi + rdx*8 + 0x74f550] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f550]"); 0x004c55c8 movups xmmword [rsi + rdx*8 + 0x74f540], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f540], xmm0"); 0x004c55d0 movups xmmword [rsi + rdx*8 + 0x74f550], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f550], xmm1"); 0x004c55d8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f560] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f560]"); 0x004c55e0 movups xmm1, xmmword [rdi + rdx*8 + 0x74f570] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f570]"); 0x004c55e8 movups xmmword [rsi + rdx*8 + 0x74f560], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f560], xmm0"); 0x004c55f0 movups xmmword [rsi + rdx*8 + 0x74f570], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f570], xmm1"); 0x004c55f8 movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f580] | __asm ("movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f580]"); 0x004c5601 movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f590] | __asm ("movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f590]"); 0x004c560a movdqu xmmword [rsi + rdx*8 + 0x74f580], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f580], xmm0"); 0x004c5613 movdqu xmmword [rsi + rdx*8 + 0x74f590], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f590], xmm1"); 0x004c561c add rdx, 0x10 | rdx += 0x10; 0x004c5620 add rbp, 4 | rbp += 4; 0x004c5624 jne 0x4c5590 | | } while (rbp != 0); | label_14: 0x004c562a test rbx, rbx | | if (rbx == 0) { 0x004c562d je 0x4c5670 | goto label_15; | } 0x004c562f shl r13, 3 | r13 <<= 3; 0x004c5633 lea rbp, [r13 + rdx*8 + 0x74f530] | rbp = r13 + rdx*8 + 0x74f530; 0x004c563b lea rdx, [rdi + rdx*8 + 0x74f530] | rdx = rdi + rdx*8 + 0x74f530; 0x004c5643 shl rbx, 5 | rbx <<= 5; 0x004c5647 xor edi, edi | edi = 0; 0x004c5649 nop dword [rax] | | do { 0x004c5650 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c5656 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c565b movdqu xmmword [rbp + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbp + rdi - 0x10], xmm0"); 0x004c5661 movdqu xmmword [rbp + rdi], xmm1 | __asm ("movdqu xmmword [rbp + rdi], xmm1"); 0x004c5667 add rdi, 0x20 | rdi += 0x20; 0x004c566b cmp rbx, rdi | 0x004c566e jne 0x4c5650 | | } while (rbx != rdi); | label_15: 0x004c5670 cmp r10, r8 | 0x004c5673 mov rbp, r11 | 0x004c5676 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c567b mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (r10 == r8) { 0x004c567f je 0x4c56b1 | goto label_10; | } 0x004c5681 lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c5685 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c5689 nop dword [rax] | | label_12: 0x004c5690 sub r9, rax | r9 -= rax; 0x004c5693 lea rdx, [r9 + 0x74f520] | rdx = r9 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c569a xor esi, esi | esi = 0; 0x004c569c nop dword [rax] | | do { 0x004c56a0 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c56a4 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c56a8 add rsi, 8 | rsi += 8; 0x004c56ac cmp rdx, rsi | 0x004c56af jne 0x4c56a0 | | } while (rdx != rsi); | label_10: 0x004c56b1 cmp byte [rip + 0x2532d8], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c56b8 je 0x4c56da | 0x004c56ba mov edx, dword [rip + 0x2532e4] | edx = numCopyCtorCalls; 0x004c56c0 sub edx, r12d | edx -= r12d; 0x004c56c3 mov ecx, dword [rip + 0x2532e3] | ecx = numCharCtorCalls; 0x004c56c9 sub ecx, r14d | ecx -= r14d; 0x004c56cc mov edi, 0x4f5db4 | 0x004c56d1 mov esi, ebx | esi = ebx; 0x004c56d3 xor eax, eax | eax = 0; 0x004c56d5 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_9: 0x004c56da cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c56df je 0x4c5740 | goto label_16; | } 0x004c56e1 cmp r12d, dword [rip + 0x2532bc] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c56e8 je 0x4c5713 | 0x004c56ea mov edi, 0x4f4e04 | 0x004c56ef mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c56f4 mov esi, 0x1005 | esi = 0x1005; 0x004c56f9 xor eax, eax | eax = 0; 0x004c56fb call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5700 mov eax, dword [rip + 0x253292] | eax = (anonymous namespace)::testStatus; 0x004c5706 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c5709 ja 0x4c5713 | goto label_17; | } 0x004c570b inc eax | eax++; 0x004c570d mov dword [rip + 0x253285], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_17: 0x004c5713 cmp r14d, dword [rip + 0x253292] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c571a je 0x4c5240 | goto label_1; | } 0x004c5720 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c5725 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c572a mov esi, 0x1006 | esi = 0x1006; 0x004c572f jmp 0x4c5793 | goto label_18; | label_16: 0x004c5740 add r12d, dword [rsp + 0x18] | r12d += *((rsp + 0x18)); 0x004c5745 cmp r12d, dword [rip + 0x253258] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c574c jle 0x4c5777 | 0x004c574e mov edi, 0x4f4e04 | 0x004c5753 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c5758 mov esi, 0x1009 | esi = 0x1009; 0x004c575d xor eax, eax | eax = 0; 0x004c575f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5764 mov eax, dword [rip + 0x25322e] | eax = (anonymous namespace)::testStatus; 0x004c576a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c576d ja 0x4c5777 | goto label_19; | } 0x004c576f inc eax | eax++; 0x004c5771 mov dword [rip + 0x253221], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c5777 cmp r14d, dword [rip + 0x25322e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c577e je 0x4c5240 | goto label_1; | } 0x004c5784 mov edi, 0x4f4e04 | 0x004c5789 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c578e mov esi, 0x100a | esi = 0x100a; | label_18: 0x004c5793 xor eax, eax | eax = 0; 0x004c5795 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c579a mov eax, dword [rip + 0x2531f8] | eax = (anonymous namespace)::testStatus; 0x004c57a0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c57a3 ja 0x4c5240 | goto label_1; | } 0x004c57a9 inc eax | eax++; 0x004c57ab mov dword [rip + 0x2531e7], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c57b1 jmp 0x4c5240 | goto label_1; | label_5: 0x004c57b6 cmp byte [rip + 0x2531d9], 0 | | if (*(obj.verbose) != 0) { 0x004c57bd je 0x4c57c9 | 0x004c57bf mov edi, 0x4f695c | 0x004c57c4 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c57c9 xor r12d, r12d | r12d = 0; 0x004c57cc jmp 0x4c57f7 | goto label_20; | label_3: 0x004c57d0 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c57d5 mov rsi, rbx | rsi = rbx; 0x004c57d8 call 0x4e0be0 | voidverify(unsigned long long*,char const*) (); 0x004c57dd mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c57e2 mov rsi, rbx | rsi = rbx; 0x004c57e5 call 0x4e0e20 | voidcleanup(unsigned long long*,char const*) (); 0x004c57ea inc r12 | r12++; 0x004c57ed cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c57f1 je 0x4c5e1d | goto label_21; | } | label_20: 0x004c57f7 lea rbx, [r12*8] | rbx = r12*8; 0x004c57ff mov rbp, qword [rbx + rbx*4 + 0x4f3c98] | rbp = *((rbx + rbx*4 + 0x4f3c98)); 0x004c5807 mov rdi, rbp | 0x004c580a call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c580f cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c5812 jl 0x4c583d | 0x004c5814 mov edi, 0x4f4e04 | 0x004c5819 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c581e mov esi, 0x1019 | esi = 0x1019; 0x004c5823 xor eax, eax | eax = 0; 0x004c5825 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c582a mov eax, dword [rip + 0x253168] | eax = (anonymous namespace)::testStatus; 0x004c5830 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c5833 ja 0x4c583d | goto label_22; | } 0x004c5835 inc eax | eax++; 0x004c5837 mov dword [rip + 0x25315b], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_22: 0x004c583d mov rdi, rbp | 0x004c5840 call 0x401790 | rax = strlen (rbp); 0x004c5845 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c5849 jb 0x4c5874 | 0x004c584b mov edi, 0x4f4e04 | 0x004c5850 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c5855 mov esi, 0x101c | esi = 0x101c; 0x004c585a xor eax, eax | eax = 0; 0x004c585c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5861 mov eax, dword [rip + 0x253131] | eax = (anonymous namespace)::testStatus; 0x004c5867 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c586a ja 0x4c5874 | goto label_23; | } 0x004c586c inc eax | eax++; 0x004c586e mov dword [rip + 0x253124], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c5874 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c5879 pxor xmm0, xmm0 | xmm0 = 0; 0x004c587d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c5883 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c588b mov al, byte [rbp] | al = *(rbp); 0x004c588e test al, al | | if (al == 0) { 0x004c5890 je 0x4c58b0 | goto label_24; | } 0x004c5892 xor ecx, ecx | ecx = 0; 0x004c5894 nop word cs:[rax + rax] | 0x004c589e nop | | do { 0x004c58a0 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c58a4 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c58a9 inc rcx | rcx++; 0x004c58ac test al, al | 0x004c58ae jne 0x4c58a0 | | } while (al != 0); | label_24: 0x004c58b0 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c58b8 movsxd r13, dword [rbx + rbx*4 + 0x4f3ca0] | r13 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c58c0 movsxd r12, dword [rbx + rbx*4 + 0x4f3ca4] | r12 = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c58c8 movsxd r15, dword [rbx + rbx*4 + 0x4f3ca8] | r15 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c58d0 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c58d8 cmp byte [rip + 0x2530b1], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c58df je 0x4c5900 | 0x004c58e1 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c58e5 mov edi, 0x4f5c41 | 0x004c58ea mov esi, r14d | esi = r14d; 0x004c58ed mov rdx, rbp | rdx = rbp; 0x004c58f0 mov ecx, r13d | ecx = r13d; 0x004c58f3 mov r8d, r12d | r8d = r12d; 0x004c58f6 mov r9d, r15d | r9d = r15d; 0x004c58f9 xor eax, eax | eax = 0; 0x004c58fb call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c5900 mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5905 mov rsi, rbp | rsi = rbp; 0x004c5908 call 0x4e0b00 | unsigned long long&gg(unsigned long long*,char const*) (); 0x004c590d mov edi, 0x74f520 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c5912 mov rsi, rbp | rsi = rbp; 0x004c5915 call 0x4e0be0 | voidverify(unsigned long long*,char const*) (); 0x004c591a mov eax, dword [rip + 0x253084] | eax = numCopyCtorCalls; 0x004c5920 mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c5924 mov eax, dword [rip + 0x253082] | eax = numCharCtorCalls; 0x004c592a mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c592e cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c5933 je 0x4c5a00 | goto label_25; | } 0x004c5939 cmp byte [rip + 0x253050], 0 | 0x004c5940 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c5943 je 0x4c5958 | 0x004c5945 cmp dword [rip + 0x252c20], 0 | | if (*(obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::firstTime) == 0) { 0x004c594c je 0x4c5958 | goto label_26; | } 0x004c594e mov edi, 0x4f43ea | 0x004c5953 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_26: 0x004c5958 mov dword [rip + 0x252c0a], 0 | *(obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::firstTime) = 0; 0x004c5962 cmp byte [rip + 0x25302c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c5969 je 0x4c5975 | 0x004c596b mov edi, 0x4f4411 | 0x004c5970 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c5975 mov rax, qword [rip + 0x252ea4] | rax = Z; 0x004c597c mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c5985 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c598a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c5992 test rax, rax | 0x004c5995 je 0x4c5a8d | | while (rax != 0) { | label_2: 0x004c599b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c59a1 jb 0x4c5d71 | goto label_27; | } 0x004c59a7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c59ac lea rsi, [r15*8 + 0x74f520] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c59b4 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c59b9 movsxd r9, eax | r9 = (int64_t) eax; 0x004c59bc mov r10, r9 | r10 = r9; 0x004c59bf sub r10, r13 | r10 -= r13; 0x004c59c2 cmp r10, 4 | | if (r10 < 4) { 0x004c59c6 jb 0x4c5d56 | goto label_28; | } 0x004c59cc mov r11, rbx | r11 = rbx; 0x004c59cf mov r8, r10 | r8 = r10; 0x004c59d2 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c59d6 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c59da mov rbp, rax | 0x004c59dd shr rbp, 2 | rbp >>= 2; 0x004c59e1 inc rbp | rbp++; 0x004c59e4 mov edi, ebp | edi = ebp; 0x004c59e6 and edi, 3 | edi &= 3; 0x004c59e9 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c59ed jae 0x4c5c46 | goto label_29; | } 0x004c59f3 xor ebx, ebx | ebx = 0; 0x004c59f5 jmp 0x4c5cf5 | goto label_30; | label_25: 0x004c5a00 cmp qword [rip + 0x252e18], 0 | 0x004c5a08 mov ebp, r14d | 0x004c5a0b mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c5a0e jne 0x4c5a30 | 0x004c5a10 mov rax, qword [rip + 0x28b8a1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c5a17 test rax, rax | | if (rax != 0) { 0x004c5a1a jne 0x4c5a30 | goto label_31; | } 0x004c5a1c call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c5a21 mov r11, r12 | r11 = r12; 0x004c5a24 nop word cs:[rax + rax] | 0x004c5a2e nop | | } | label_31: 0x004c5a30 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c5a35 cmp r12, 6 | | if (r12 < 6) { 0x004c5a39 jb 0x4c5db0 | goto label_32; | } 0x004c5a3f lea rax, [r15*8 + 0x74f520] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u; 0x004c5a47 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c5a4c add r11, r13 | r11 += r13; 0x004c5a4f mov r9, r11 | r9 = r11; 0x004c5a52 sub r9, r13 | r9 -= r13; 0x004c5a55 cmp r9, 4 | | if (r9 < 4) { 0x004c5a59 jb 0x4c5c1a | goto label_33; | } 0x004c5a5f mov r10, rbx | r10 = rbx; 0x004c5a62 mov r8, r9 | r8 = r9; 0x004c5a65 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c5a69 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c5a6d mov rdi, rsi | rdi = rsi; 0x004c5a70 shr rdi, 2 | rdi >>= 2; 0x004c5a74 inc rdi | rdi++; 0x004c5a77 mov ebp, edi | 0x004c5a79 and ebp, 3 | ebp &= 3; 0x004c5a7c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c5a80 jae 0x4c5b0d | goto label_34; | } 0x004c5a86 xor ebx, ebx | ebx = 0; 0x004c5a88 jmp 0x4c5bb5 | goto label_35; 0x004c5a8d mov eax, 1 | eax = 1; 0x004c5a92 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c5a97 mov rax, qword [rip + 0x28b81a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c5a9e test rax, rax | 0x004c5aa1 jne 0x4c599b | | } 0x004c5aa7 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c5aac jmp 0x4c599b | goto label_2; | label_34: 0x004c5b0d lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c5b12 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c5b16 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c5b1a neg rdi | rdi = -rdi; 0x004c5b1d xor ebx, ebx | ebx = 0; 0x004c5b1f nop | | do { 0x004c5b20 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c5b27 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c5b2e lea rdx, [r15*8] | rdx = r15*8; 0x004c5b36 movdqu xmmword [rdx + rbx*8 + 0x74f520], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c5b3f movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1"); 0x004c5b48 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c5b4f pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c5b56 movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0"); 0x004c5b5f movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1"); 0x004c5b68 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c5b6f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c5b76 movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0"); 0x004c5b7f movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1"); 0x004c5b88 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c5b8f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c5b95 movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0"); 0x004c5b9e movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1"); 0x004c5ba7 add rbx, 0x10 | rbx += 0x10; 0x004c5bab add rdi, 4 | rdi += 4; 0x004c5baf jne 0x4c5b20 | | } while (rdi != 0); | label_35: 0x004c5bb5 test rbp, rbp | | if (rbp == 0) { 0x004c5bb8 je 0x4c5c04 | goto label_36; | } 0x004c5bba add r13, rbx | r13 += rbx; 0x004c5bbd lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c5bc2 add r13, rdx | r13 += rdx; 0x004c5bc5 shl r15, 3 | r15 <<= 3; 0x004c5bc9 lea rsi, [r15 + rbx*8 + 0x74f530] | rsi = r15 + rbx*8 + 0x74f530; 0x004c5bd1 shl rbp, 2 | rbp <<= 2; 0x004c5bd5 xor edi, edi | edi = 0; 0x004c5bd7 nop word [rax + rax] | | do { 0x004c5be0 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c5be8 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c5bf0 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c5bf6 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c5bfb add rdi, 4 | rdi += 4; 0x004c5bff cmp rbp, rdi | 0x004c5c02 jne 0x4c5be0 | | } while (rbp != rdi); | label_36: 0x004c5c04 cmp r9, r8 | 0x004c5c07 mov rbx, r10 | rbx = r10; 0x004c5c0a mov ebp, r14d | | if (r9 == r8) { 0x004c5c0d je 0x4c5db0 | goto label_32; | } 0x004c5c13 add rcx, r8 | rcx += r8; 0x004c5c16 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_33: 0x004c5c1a sub r11, rcx | r11 -= rcx; 0x004c5c1d lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c5c22 xor esi, esi | esi = 0; 0x004c5c24 nop word cs:[rax + rax] | 0x004c5c2e nop | | do { 0x004c5c30 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c5c35 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c5c39 inc rsi | rsi++; 0x004c5c3c cmp rdx, rsi | 0x004c5c3f jne 0x4c5c30 | | } while (rdx != rsi); 0x004c5c41 jmp 0x4c5db0 | goto label_32; | label_29: 0x004c5c46 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c5c4b add rax, r13 | rax += r13; 0x004c5c4e and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c5c52 neg rbp | rbp = -rbp; 0x004c5c55 xor ebx, ebx | ebx = 0; 0x004c5c57 nop word [rax + rax] | | do { 0x004c5c60 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c5c67 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c5c6e lea rdx, [r15*8] | rdx = r15*8; 0x004c5c76 movdqu xmmword [rdx + rbx*8 + 0x74f520], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long_long__bool__bool__bool_::u], xmm0"); 0x004c5c7f movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f530], xmm1"); 0x004c5c88 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c5c8f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c5c96 movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f540], xmm0"); 0x004c5c9f movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f550], xmm1"); 0x004c5ca8 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c5caf pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c5cb6 movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f560], xmm0"); 0x004c5cbf movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f570], xmm1"); 0x004c5cc8 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c5ccf pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c5cd5 movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f580], xmm0"); 0x004c5cde movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f590], xmm1"); 0x004c5ce7 add rbx, 0x10 | rbx += 0x10; 0x004c5ceb add rbp, 4 | rbp += 4; 0x004c5cef jne 0x4c5c60 | | } while (rbp != 0); | label_30: 0x004c5cf5 test rdi, rdi | | if (rdi == 0) { 0x004c5cf8 je 0x4c5d44 | goto label_37; | } 0x004c5cfa add r13, rbx | r13 += rbx; 0x004c5cfd lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c5d02 add r13, rax | r13 += rax; 0x004c5d05 shl r15, 3 | r15 <<= 3; 0x004c5d09 lea rax, [r15 + rbx*8 + 0x74f530] | rax = r15 + rbx*8 + 0x74f530; 0x004c5d11 shl rdi, 2 | rdi <<= 2; 0x004c5d15 xor ebp, ebp | ebp = 0; 0x004c5d17 nop word [rax + rax] | | do { 0x004c5d20 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c5d28 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c5d30 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c5d36 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c5d3b add rbp, 4 | rbp += 4; 0x004c5d3f cmp rdi, rbp | 0x004c5d42 jne 0x4c5d20 | | } while (rdi != rbp); | label_37: 0x004c5d44 cmp r10, r8 | 0x004c5d47 mov rbx, r11 | rbx = r11; 0x004c5d4a mov ebp, r14d | | if (r10 == r8) { 0x004c5d4d je 0x4c5d71 | goto label_27; | } 0x004c5d4f add rcx, r8 | rcx += r8; 0x004c5d52 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_28: 0x004c5d56 sub r9, rcx | r9 -= rcx; 0x004c5d59 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c5d5e xor edi, edi | edi = 0; | do { 0x004c5d60 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c5d65 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c5d69 inc rdi | rdi++; 0x004c5d6c cmp rax, rdi | 0x004c5d6f jne 0x4c5d60 | | } while (rax != rdi); | label_27: 0x004c5d71 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c5d76 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c5d7b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c5d82 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c5d85 cmp byte [rip + 0x252c09], 0 | 0x004c5d8c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c5d91 je 0x4c5d9d | 0x004c5d93 mov edi, 0x4f4571 | 0x004c5d98 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c5d9d cmp byte [rip + 0x252bec], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c5da4 je 0x4c5ddb | 0x004c5da6 mov edi, 0xa | 0x004c5dab call 0x401720 | eax = putchar (0xa); | label_32: 0x004c5db0 cmp byte [rip + 0x252bd9], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c5db7 je 0x4c5ddb | goto label_38; | } 0x004c5db9 mov edx, dword [rip + 0x252be5] | edx = numCopyCtorCalls; 0x004c5dbf sub edx, dword [rsp + 0x48] | edx -= *((rsp + 0x48)); 0x004c5dc3 mov ecx, dword [rip + 0x252be3] | ecx = numCharCtorCalls; 0x004c5dc9 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c5dcd mov edi, 0x4f5db4 | 0x004c5dd2 mov esi, ebp | esi = ebp; 0x004c5dd4 xor eax, eax | eax = 0; 0x004c5dd6 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_38: 0x004c5ddb mov eax, dword [rsp + 0x48] | eax = *((rsp + 0x48)); 0x004c5ddf cmp eax, dword [rip + 0x252bbf] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c5de5 je 0x4c57d0 | goto label_3; | } 0x004c5deb mov edi, 0x4f4e04 | 0x004c5df0 mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c5df5 mov esi, 0x103f | esi = 0x103f; 0x004c5dfa xor eax, eax | eax = 0; 0x004c5dfc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c5e01 mov eax, dword [rip + 0x252b91] | eax = (anonymous namespace)::testStatus; 0x004c5e07 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c5e0a ja 0x4c57d0 | goto label_3; | } 0x004c5e10 inc eax | eax++; 0x004c5e12 mov dword [rip + 0x252b80], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c5e18 jmp 0x4c57d0 | goto label_3; | label_21: 0x004c5e1d add rsp, 0x68 | 0x004c5e21 pop rbx | 0x004c5e22 pop r12 | 0x004c5e24 pop r13 | 0x004c5e26 pop r14 | 0x004c5e28 pop r15 | 0x004c5e2a pop rbp | 0x004c5e2b ret | return rax; | }