; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/assume @ 0x4c44f0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_long_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_long_long_bool_bool_bool_ (uint32_t arg3, uint32_t arg2) { | int64_t var_14h; | uint32_t var_18h; | int64_t var_20h; | int64_t var_22h; | int64_t var_28h; | int64_t var_2eh; | int64_t var_30h; | uint32_t var_40h; | int64_t var_48h; | uint32_t var_54h; | int64_t var_58h; | int64_t var_60h; | rdx = arg3; | rsi = arg2; | /* void testCopyConstructWithIterators(bool, bool, bool) */ 0x004c44f0 push rbp | 0x004c44f1 push r15 | 0x004c44f3 push r14 | 0x004c44f5 push r13 | 0x004c44f7 push r12 | 0x004c44f9 push rbx | 0x004c44fa sub rsp, 0x68 | 0x004c44fe mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c4502 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c4506 cmp byte [rip + 0x254489], 0 | | if (*(obj.verbose) != 0) { 0x004c450d je 0x4c4519 | 0x004c450f mov edi, 0x4f67e9 | 0x004c4514 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c4519 xor eax, eax | eax = 0; 0x004c451b jmp 0x4c454c | goto label_5; | label_2: 0x004c4520 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4525 mov rsi, rbp | rsi = rbp; 0x004c4528 call 0x4e0590 | voidverify(long long*,char const*) (); 0x004c452d mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4532 mov rsi, rbp | rsi = rbp; 0x004c4535 call 0x4e07d0 | voidcleanup(long long*,char const*) (); 0x004c453a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c453f inc rax | rax++; 0x004c4542 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c4546 je 0x4c4a89 | goto label_6; | } | label_5: 0x004c454c mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c4551 lea rbp, [rax*8] | rbp = rax*8; 0x004c4559 mov r12, qword [rbp + rbp*4 + 0x4f3b08] | r12 = *((rbp + rbp*4 + 0x4f3b08)); 0x004c4561 mov rdi, r12 | 0x004c4564 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3b08))); 0x004c4569 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c456c jl 0x4c4597 | 0x004c456e mov edi, 0x4f4c78 | 0x004c4573 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c4578 mov esi, 0xfe6 | esi = 0xfe6; 0x004c457d xor eax, eax | eax = 0; 0x004c457f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4584 mov eax, dword [rip + 0x25440e] | eax = (anonymous namespace)::testStatus; 0x004c458a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c458d ja 0x4c4597 | goto label_7; | } 0x004c458f inc eax | eax++; 0x004c4591 mov dword [rip + 0x254401], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_7: 0x004c4597 mov r13d, dword [rbp + rbp*4 + 0x4f3b00] | r13d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c459f movsxd r15, dword [rbp + rbp*4 + 0x4f3b10] | r15 = *((rbp + rbp*4 + 0x4f3b10)); 0x004c45a7 mov ebx, dword [rbp + rbp*4 + 0x4f3b14] | ebx = *((rbp + rbp*4 + 0x4f3b14)); 0x004c45ae movsxd r14, dword [rbp + rbp*4 + 0x4f3b18] | r14 = *((rbp + rbp*4 + 0x4f3b18)); 0x004c45b6 mov rbp, qword [rbp + rbp*4 + 0x4f3b20] | rbp = *((rbp + rbp*4 + 0x4f3b20)); 0x004c45be cmp byte [rip + 0x2543cb], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c45c5 je 0x4c45e6 | 0x004c45c7 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c45cb mov edi, 0x4f5ab7 | 0x004c45d0 mov esi, r13d | esi = r13d; 0x004c45d3 mov rdx, r12 | rdx = r12; 0x004c45d6 mov ecx, r15d | ecx = r15d; 0x004c45d9 mov r8d, ebx | r8d = ebx; 0x004c45dc mov r9d, r14d | r9d = r14d; 0x004c45df xor eax, eax | eax = 0; 0x004c45e1 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c45e6 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x004c45eb mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c45f0 mov rsi, r12 | rsi = r12; 0x004c45f3 call 0x4e04b0 | long long&gg(long long*,char const*) (); 0x004c45f8 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c45fd mov rsi, r12 | rsi = r12; 0x004c4600 call 0x4e0590 | voidverify(long long*,char const*) (); 0x004c4605 mov r12d, dword [rip + 0x254398] | r12d = numCopyCtorCalls; 0x004c460c mov eax, dword [rip + 0x25439a] | eax = numCharCtorCalls; 0x004c4612 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c4616 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c461b je 0x4c4700 | goto label_8; | } 0x004c4621 cmp byte [rip + 0x254368], 0 | 0x004c4628 mov ebx, r13d | ebx = r13d; | if (*(obj.veryVerbose) != 0) { 0x004c462b je 0x4c4640 | 0x004c462d cmp dword [rip + 0x253f2c], 0 | | if (*(0x00718560) == 0) { 0x004c4634 je 0x4c4640 | goto label_9; | } 0x004c4636 mov edi, 0x4f425a | 0x004c463b call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_9: 0x004c4640 mov dword [rip + 0x253f16], 0 | *(0x00718560) = 0; 0x004c464a cmp byte [rip + 0x254344], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c4651 je 0x4c465d | 0x004c4653 mov edi, 0x4f4281 | 0x004c4658 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c465d mov rax, qword [rip + 0x2541bc] | rax = Z; 0x004c4664 mov qword [rsp + 0x20], 0x4f6858 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c466d mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c4672 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c467a test rax, rax | 0x004c467d je 0x4c4769 | | while (rax != 0) { | label_0: 0x004c4683 lea rsi, [r15*8 + 0x74f4a0] | rsi = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c468b mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c4690 add eax, r15d | eax += r15d; 0x004c4693 cdqe | rax = (int64_t) eax; 0x004c4695 lea rdx, [rax*8 + 0x74f4a0] | rdx = rax*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c469d sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c46a0 je 0x4c46af | 0x004c46a2 lea rdi, [r14*8 + 0x74f4a0] | 0x004c46aa call 0x401930 | memcpy (r14*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c46af mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c46b4 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c46b9 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c46c0 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c46c3 cmp byte [rip + 0x2542cb], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c46ca je 0x4c46d6 | 0x004c46cc mov edi, 0x4f43e1 | 0x004c46d1 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c46d6 cmp byte [rip + 0x2542b3], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c46dd je 0x4c49ab | goto label_10; | } 0x004c46e3 mov edi, 0xa | 0x004c46e8 call 0x401720 | putchar (0xa); 0x004c46ed jmp 0x4c4981 | goto label_11; | label_8: 0x004c4700 cmp qword [rip + 0x254118], 0 | 0x004c4708 mov ebx, r13d | ebx = r13d; | if (*(obj.Z) == 0) { 0x004c470b jne 0x4c471d | 0x004c470d mov rax, qword [rip + 0x28cba4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4714 test rax, rax | | if (rax == 0) { 0x004c4717 je 0x4c4823 | goto label_12; | } | } 0x004c471d cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c4723 jb 0x4c4981 | goto label_11; | } | label_1: 0x004c4729 lea rax, [r15*8 + 0x74f4a0] | rax = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4731 lea rcx, [r14*8 + 0x74f4a0] | rcx = r14*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4739 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x004c473e lea edx, [rbx + r15] | edx = rbx + r15; 0x004c4742 movsxd r9, edx | r9 = (int64_t) edx; 0x004c4745 shl r9, 3 | r9 <<= 3; 0x004c4749 lea rdi, [r15*8] | rdi = r15*8; 0x004c4751 mov r10, r9 | r10 = r9; 0x004c4754 sub r10, rdi | r10 -= rdi; 0x004c4757 add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c475b cmp r10, 0x18 | | if (r10 >= 0x18) { 0x004c475f jae 0x4c47dd | goto label_13; | } 0x004c4761 mov ebx, r13d | ebx = r13d; 0x004c4764 jmp 0x4c4960 | goto label_14; 0x004c4769 mov r13d, 1 | r13d = 1; 0x004c476f mov rax, qword [rip + 0x28cb42] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4776 test rax, rax | 0x004c4779 jne 0x4c4683 | | } 0x004c477f call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4784 jmp 0x4c4683 | goto label_0; | label_13: 0x004c47dd mov r11, rbp | r11 = rbp; 0x004c47e0 lea rsi, [r14*8 + 0x74f4a0] | rsi = r14*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c47e8 lea edx, [rbx + r15] | edx = rbx + r15; 0x004c47ec movsxd rdx, edx | rdx = (int64_t) edx; 0x004c47ef lea rbp, [rdx*8 + 0x74f4a0] | rbp = rdx*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c47f7 cmp rsi, rbp | | if (rsi >= rbp) { 0x004c47fa jae 0x4c4839 | goto label_15; | } 0x004c47fc shl rdx, 3 | rdx <<= 3; 0x004c4800 sub rdx, rdi | rdx -= rdi; 0x004c4803 lea rdx, [rdx + r14*8 + 0x74f4a0] | rdx = rdx + r14*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c480b lea rsi, [r15*8 + 0x74f4a0] | rsi = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4813 cmp rsi, rdx | | if (rsi >= rdx) { 0x004c4816 jae 0x4c4839 | goto label_15; | } 0x004c4818 mov rbp, r11 | 0x004c481b mov ebx, r13d | ebx = r13d; 0x004c481e jmp 0x4c4960 | goto label_14; | label_12: 0x004c4823 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4828 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) >= 6) { 0x004c482e jae 0x4c4729 | goto label_1; | } 0x004c4834 jmp 0x4c4981 | goto label_11; | label_15: 0x004c4839 shr r10, 3 | r10 >>= 3; 0x004c483d inc r10 | r10++; 0x004c4840 mov r8, r10 | r8 = r10; 0x004c4843 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4847 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c484b mov rbp, rsi | 0x004c484e shr rbp, 2 | rbp >>= 2; 0x004c4852 inc rbp | rbp++; 0x004c4855 mov edx, ebp | edx = ebp; 0x004c4857 and edx, 3 | edx &= 3; 0x004c485a cmp rsi, 0xc | | if (rsi < 0xc) { 0x004c485e jae 0x4c4867 | 0x004c4860 xor ebx, ebx | ebx = 0; 0x004c4862 jmp 0x4c48f0 | goto label_16; | } 0x004c4867 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c486b neg rbp | rbp = -rbp; 0x004c486e mov esi, 0x74f4a0 | esi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4873 xor ebx, ebx | ebx = 0; 0x004c4875 nop word cs:[rax + rax] | 0x004c487f nop | | do { 0x004c4880 movups xmm0, xmmword [rsi + r15*8] | __asm ("movups xmm0, xmmword [rsi + r15*8]"); 0x004c4885 movups xmm1, xmmword [rsi + r15*8 + 0x10] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x10]"); 0x004c488b movups xmmword [rsi + r14*8], xmm0 | __asm ("movups xmmword [rsi + r14*8], xmm0"); 0x004c4890 movups xmmword [rsi + r14*8 + 0x10], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x10], xmm1"); 0x004c4896 movups xmm0, xmmword [rsi + r15*8 + 0x20] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x20]"); 0x004c489c movups xmm1, xmmword [rsi + r15*8 + 0x30] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x30]"); 0x004c48a2 movups xmmword [rsi + r14*8 + 0x20], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x20], xmm0"); 0x004c48a8 movups xmmword [rsi + r14*8 + 0x30], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x30], xmm1"); 0x004c48ae movups xmm0, xmmword [rsi + r15*8 + 0x40] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x40]"); 0x004c48b4 movups xmm1, xmmword [rsi + r15*8 + 0x50] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x50]"); 0x004c48ba movups xmmword [rsi + r14*8 + 0x40], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x40], xmm0"); 0x004c48c0 movups xmmword [rsi + r14*8 + 0x50], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x50], xmm1"); 0x004c48c6 movdqu xmm0, xmmword [rsi + r15*8 + 0x60] | __asm ("movdqu xmm0, xmmword [rsi + r15*8 + 0x60]"); 0x004c48cd movdqu xmm1, xmmword [rsi + r15*8 + 0x70] | __asm ("movdqu xmm1, xmmword [rsi + r15*8 + 0x70]"); 0x004c48d4 movdqu xmmword [rsi + r14*8 + 0x60], xmm0 | __asm ("movdqu xmmword [rsi + r14*8 + 0x60], xmm0"); 0x004c48db movdqu xmmword [rsi + r14*8 + 0x70], xmm1 | __asm ("movdqu xmmword [rsi + r14*8 + 0x70], xmm1"); 0x004c48e2 add rbx, 0x10 | rbx += 0x10; 0x004c48e6 sub rsi, 0xffffffffffffff80 | rsi -= 0xffffffffffffff80; 0x004c48ea add rbp, 4 | rbp += 4; 0x004c48ee jne 0x4c4880 | | } while (rbp != 0); | label_16: 0x004c48f0 test rdx, rdx | | if (rdx == 0) { 0x004c48f3 je 0x4c4943 | goto label_17; | } 0x004c48f5 shl r14, 3 | r14 <<= 3; 0x004c48f9 lea rsi, [rbx*8 + 0x74f4a0] | rsi = rbx*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4901 neg rdx | rdx = -rdx; 0x004c4904 nop word cs:[rax + rax] | 0x004c490e nop | | do { 0x004c4910 movdqu xmm0, xmmword [rdi + rbx*8 + 0x74f4a0] | __asm ("movdqu xmm0, xmmword [rdi + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u]"); 0x004c4919 movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f4b0] | __asm ("movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f4b0]"); 0x004c4922 movdqu xmmword [r14 + rbx*8 + 0x74f4a0], xmm0 | __asm ("movdqu xmmword [r14 + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c492c movdqu xmmword [r14 + rbx*8 + 0x74f4b0], xmm1 | __asm ("movdqu xmmword [r14 + rbx*8 + 0x74f4b0], xmm1"); 0x004c4936 add rbx, 4 | rbx += 4; 0x004c493a add rsi, 0x20 | rsi += 0x20; 0x004c493e inc rdx | rdx++; 0x004c4941 jne 0x4c4910 | | } while (rdx != 0); | label_17: 0x004c4943 cmp r10, r8 | 0x004c4946 mov rbp, r11 | 0x004c4949 mov ebx, r13d | ebx = r13d; | if (r10 == r8) { 0x004c494c je 0x4c4981 | goto label_11; | } 0x004c494e lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c4952 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c4956 nop word cs:[rax + rax] | | label_14: 0x004c4960 sub r9, rax | r9 -= rax; 0x004c4963 lea rdx, [r9 + 0x74f4a0] | rdx = r9 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c496a xor esi, esi | esi = 0; 0x004c496c nop dword [rax] | | do { 0x004c4970 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c4974 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c4978 add rsi, 8 | rsi += 8; 0x004c497c cmp rdx, rsi | 0x004c497f jne 0x4c4970 | | } while (rdx != rsi); | label_11: 0x004c4981 cmp byte [rip + 0x254008], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4988 je 0x4c49ab | 0x004c498a mov edx, dword [rip + 0x254014] | edx = numCopyCtorCalls; 0x004c4990 sub edx, r12d | edx -= r12d; 0x004c4993 mov ecx, dword [rip + 0x254013] | ecx = numCharCtorCalls; 0x004c4999 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c499d mov edi, 0x4f5c2a | 0x004c49a2 mov esi, ebx | esi = ebx; 0x004c49a4 xor eax, eax | eax = 0; 0x004c49a6 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_10: 0x004c49ab cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c49b0 je 0x4c4a10 | goto label_18; | } 0x004c49b2 cmp r12d, dword [rip + 0x253feb] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c49b9 je 0x4c49e4 | 0x004c49bb mov edi, 0x4f4c78 | 0x004c49c0 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c49c5 mov esi, 0x1005 | esi = 0x1005; 0x004c49ca xor eax, eax | eax = 0; 0x004c49cc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c49d1 mov eax, dword [rip + 0x253fc1] | eax = (anonymous namespace)::testStatus; 0x004c49d7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c49da ja 0x4c49e4 | goto label_19; | } 0x004c49dc inc eax | eax++; 0x004c49de mov dword [rip + 0x253fb4], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c49e4 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c49e8 cmp eax, dword [rip + 0x253fbe] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c49ee je 0x4c4520 | goto label_2; | } 0x004c49f4 mov edi, 0x4f4c78 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c49f9 mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c49fe mov esi, 0x1006 | esi = 0x1006; 0x004c4a03 jmp 0x4c4a66 | goto label_20; | label_18: 0x004c4a10 add r12d, dword [rsp + 0x48] | r12d += *((rsp + 0x48)); 0x004c4a15 cmp r12d, dword [rip + 0x253f88] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c4a1c jle 0x4c4a47 | 0x004c4a1e mov edi, 0x4f4c78 | 0x004c4a23 mov edx, 0x4f5c78 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c4a28 mov esi, 0x1009 | esi = 0x1009; 0x004c4a2d xor eax, eax | eax = 0; 0x004c4a2f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4a34 mov eax, dword [rip + 0x253f5e] | eax = (anonymous namespace)::testStatus; 0x004c4a3a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4a3d ja 0x4c4a47 | goto label_21; | } 0x004c4a3f inc eax | eax++; 0x004c4a41 mov dword [rip + 0x253f51], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c4a47 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c4a4b cmp eax, dword [rip + 0x253f5b] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c4a51 je 0x4c4520 | goto label_2; | } 0x004c4a57 mov edi, 0x4f4c78 | 0x004c4a5c mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c4a61 mov esi, 0x100a | esi = 0x100a; | label_20: 0x004c4a66 xor eax, eax | eax = 0; 0x004c4a68 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4a6d mov eax, dword [rip + 0x253f25] | eax = (anonymous namespace)::testStatus; 0x004c4a73 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4a76 ja 0x4c4520 | goto label_2; | } 0x004c4a7c inc eax | eax++; 0x004c4a7e mov dword [rip + 0x253f14], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c4a84 jmp 0x4c4520 | goto label_2; | label_6: 0x004c4a89 cmp byte [rip + 0x253f06], 0 | | if (*(obj.verbose) != 0) { 0x004c4a90 je 0x4c4a9c | 0x004c4a92 mov edi, 0x4f67d2 | 0x004c4a97 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c4a9c xor r12d, r12d | r12d = 0; 0x004c4a9f jmp 0x4c4ad7 | goto label_22; | label_4: 0x004c4ab0 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4ab5 mov rsi, rbx | rsi = rbx; 0x004c4ab8 call 0x4e0590 | voidverify(long long*,char const*) (); 0x004c4abd mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4ac2 mov rsi, rbx | rsi = rbx; 0x004c4ac5 call 0x4e07d0 | voidcleanup(long long*,char const*) (); 0x004c4aca inc r12 | r12++; 0x004c4acd cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c4ad1 je 0x4c50fd | goto label_23; | } | label_22: 0x004c4ad7 lea rbx, [r12*8] | rbx = r12*8; 0x004c4adf mov rbp, qword [rbx + rbx*4 + 0x4f3b08] | rbp = *((rbx + rbx*4 + 0x4f3b08)); 0x004c4ae7 mov rdi, rbp | 0x004c4aea call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3b08))); 0x004c4aef cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c4af2 jl 0x4c4b1d | 0x004c4af4 mov edi, 0x4f4c78 | 0x004c4af9 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c4afe mov esi, 0x1019 | esi = 0x1019; 0x004c4b03 xor eax, eax | eax = 0; 0x004c4b05 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4b0a mov eax, dword [rip + 0x253e88] | eax = (anonymous namespace)::testStatus; 0x004c4b10 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4b13 ja 0x4c4b1d | goto label_24; | } 0x004c4b15 inc eax | eax++; 0x004c4b17 mov dword [rip + 0x253e7b], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_24: 0x004c4b1d mov rdi, rbp | 0x004c4b20 call 0x401790 | rax = strlen (rbp); 0x004c4b25 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c4b29 jb 0x4c4b54 | 0x004c4b2b mov edi, 0x4f4c78 | 0x004c4b30 mov edx, 0x4f5c9c | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c4b35 mov esi, 0x101c | esi = 0x101c; 0x004c4b3a xor eax, eax | eax = 0; 0x004c4b3c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4b41 mov eax, dword [rip + 0x253e51] | eax = (anonymous namespace)::testStatus; 0x004c4b47 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c4b4a ja 0x4c4b54 | goto label_25; | } 0x004c4b4c inc eax | eax++; 0x004c4b4e mov dword [rip + 0x253e44], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_25: 0x004c4b54 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c4b59 pxor xmm0, xmm0 | xmm0 = 0; 0x004c4b5d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c4b63 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c4b6b mov al, byte [rbp] | al = *(rbp); 0x004c4b6e test al, al | | if (al == 0) { 0x004c4b70 je 0x4c4b90 | goto label_26; | } 0x004c4b72 xor ecx, ecx | ecx = 0; 0x004c4b74 nop word cs:[rax + rax] | 0x004c4b7e nop | | do { 0x004c4b80 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c4b84 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c4b89 inc rcx | rcx++; 0x004c4b8c test al, al | 0x004c4b8e jne 0x4c4b80 | | } while (al != 0); | label_26: 0x004c4b90 mov r14d, dword [rbx + rbx*4 + 0x4f3b00] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c4b98 movsxd r13, dword [rbx + rbx*4 + 0x4f3b10] | r13 = *((rbx + rbx*4 + 0x4f3b10)); 0x004c4ba0 movsxd r12, dword [rbx + rbx*4 + 0x4f3b14] | r12 = *((rbx + rbx*4 + 0x4f3b14)); 0x004c4ba8 movsxd r15, dword [rbx + rbx*4 + 0x4f3b18] | r15 = *((rbx + rbx*4 + 0x4f3b18)); 0x004c4bb0 mov rbx, qword [rbx + rbx*4 + 0x4f3b20] | rbx = *((rbx + rbx*4 + 0x4f3b20)); 0x004c4bb8 cmp byte [rip + 0x253dd1], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4bbf je 0x4c4be0 | 0x004c4bc1 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c4bc5 mov edi, 0x4f5ab7 | 0x004c4bca mov esi, r14d | esi = r14d; 0x004c4bcd mov rdx, rbp | rdx = rbp; 0x004c4bd0 mov ecx, r13d | ecx = r13d; 0x004c4bd3 mov r8d, r12d | r8d = r12d; 0x004c4bd6 mov r9d, r15d | r9d = r15d; 0x004c4bd9 xor eax, eax | eax = 0; 0x004c4bdb call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c4be0 mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4be5 mov rsi, rbp | rsi = rbp; 0x004c4be8 call 0x4e04b0 | long long&gg(long long*,char const*) (); 0x004c4bed mov edi, 0x74f4a0 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c4bf2 mov rsi, rbp | rsi = rbp; 0x004c4bf5 call 0x4e0590 | voidverify(long long*,char const*) (); 0x004c4bfa mov eax, dword [rip + 0x253da4] | eax = numCopyCtorCalls; 0x004c4c00 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c4c04 mov eax, dword [rip + 0x253da2] | eax = numCharCtorCalls; 0x004c4c0a mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c4c0e cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c4c13 je 0x4c4ce0 | goto label_27; | } 0x004c4c19 cmp byte [rip + 0x253d70], 0 | 0x004c4c20 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c4c23 je 0x4c4c38 | 0x004c4c25 cmp dword [rip + 0x253938], 0 | | if (*(obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::firstTime) == 0) { 0x004c4c2c je 0x4c4c38 | goto label_28; | } 0x004c4c2e mov edi, 0x4f425a | 0x004c4c33 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_28: 0x004c4c38 mov dword [rip + 0x253922], 0 | *(obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::firstTime) = 0; 0x004c4c42 cmp byte [rip + 0x253d4c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c4c49 je 0x4c4c55 | 0x004c4c4b mov edi, 0x4f4281 | 0x004c4c50 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c4c55 mov rax, qword [rip + 0x253bc4] | rax = Z; 0x004c4c5c mov qword [rsp + 0x58], 0x4f6858 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c4c65 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c4c6a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c4c72 test rax, rax | 0x004c4c75 je 0x4c4d6d | | while (rax != 0) { | label_3: 0x004c4c7b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c4c81 jb 0x4c5051 | goto label_29; | } 0x004c4c87 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c4c8c lea rsi, [r15*8 + 0x74f4a0] | rsi = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4c94 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c4c99 movsxd r9, eax | r9 = (int64_t) eax; 0x004c4c9c mov r10, r9 | r10 = r9; 0x004c4c9f sub r10, r13 | r10 -= r13; 0x004c4ca2 cmp r10, 4 | | if (r10 < 4) { 0x004c4ca6 jb 0x4c5036 | goto label_30; | } 0x004c4cac mov r11, rbx | r11 = rbx; 0x004c4caf mov r8, r10 | r8 = r10; 0x004c4cb2 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4cb6 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c4cba mov rbp, rax | 0x004c4cbd shr rbp, 2 | rbp >>= 2; 0x004c4cc1 inc rbp | rbp++; 0x004c4cc4 mov edi, ebp | edi = ebp; 0x004c4cc6 and edi, 3 | edi &= 3; 0x004c4cc9 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c4ccd jae 0x4c4f26 | goto label_31; | } 0x004c4cd3 xor ebx, ebx | ebx = 0; 0x004c4cd5 jmp 0x4c4fd5 | goto label_32; | label_27: 0x004c4ce0 cmp qword [rip + 0x253b38], 0 | 0x004c4ce8 mov ebp, r14d | 0x004c4ceb mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c4cee jne 0x4c4d10 | 0x004c4cf0 mov rax, qword [rip + 0x28c5c1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4cf7 test rax, rax | | if (rax != 0) { 0x004c4cfa jne 0x4c4d10 | goto label_33; | } 0x004c4cfc call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4d01 mov r11, r12 | r11 = r12; 0x004c4d04 nop word cs:[rax + rax] | 0x004c4d0e nop | | } | label_33: 0x004c4d10 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c4d15 cmp r12, 6 | | if (r12 < 6) { 0x004c4d19 jb 0x4c5090 | goto label_34; | } 0x004c4d1f lea rax, [r15*8 + 0x74f4a0] | rax = r15*8 + obj_testCopyConstructWithIterators_long_long__bool__bool__bool_::u; 0x004c4d27 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c4d2c add r11, r13 | r11 += r13; 0x004c4d2f mov r9, r11 | r9 = r11; 0x004c4d32 sub r9, r13 | r9 -= r13; 0x004c4d35 cmp r9, 4 | | if (r9 < 4) { 0x004c4d39 jb 0x4c4efa | goto label_35; | } 0x004c4d3f mov r10, rbx | r10 = rbx; 0x004c4d42 mov r8, r9 | r8 = r9; 0x004c4d45 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4d49 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c4d4d mov rdi, rsi | rdi = rsi; 0x004c4d50 shr rdi, 2 | rdi >>= 2; 0x004c4d54 inc rdi | rdi++; 0x004c4d57 mov ebp, edi | 0x004c4d59 and ebp, 3 | ebp &= 3; 0x004c4d5c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c4d60 jae 0x4c4ded | goto label_36; | } 0x004c4d66 xor ebx, ebx | ebx = 0; 0x004c4d68 jmp 0x4c4e95 | goto label_37; 0x004c4d6d mov eax, 1 | eax = 1; 0x004c4d72 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c4d77 mov rax, qword [rip + 0x28c53a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c4d7e test rax, rax | 0x004c4d81 jne 0x4c4c7b | | } 0x004c4d87 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c4d8c jmp 0x4c4c7b | goto label_3; | label_36: 0x004c4ded lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c4df2 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c4df6 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c4dfa neg rdi | rdi = -rdi; 0x004c4dfd xor ebx, ebx | ebx = 0; 0x004c4dff nop | | do { 0x004c4e00 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c4e07 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c4e0e lea rdx, [r15*8] | rdx = r15*8; 0x004c4e16 movdqu xmmword [rdx + rbx*8 + 0x74f4a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c4e1f movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1"); 0x004c4e28 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c4e2f pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c4e36 movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0"); 0x004c4e3f movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1"); 0x004c4e48 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c4e4f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c4e56 movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0"); 0x004c4e5f movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1"); 0x004c4e68 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c4e6f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c4e75 movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0"); 0x004c4e7e movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1"); 0x004c4e87 add rbx, 0x10 | rbx += 0x10; 0x004c4e8b add rdi, 4 | rdi += 4; 0x004c4e8f jne 0x4c4e00 | | } while (rdi != 0); | label_37: 0x004c4e95 test rbp, rbp | | if (rbp == 0) { 0x004c4e98 je 0x4c4ee4 | goto label_38; | } 0x004c4e9a add r13, rbx | r13 += rbx; 0x004c4e9d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c4ea2 add r13, rdx | r13 += rdx; 0x004c4ea5 shl r15, 3 | r15 <<= 3; 0x004c4ea9 lea rsi, [r15 + rbx*8 + 0x74f4b0] | rsi = r15 + rbx*8 + 0x74f4b0; 0x004c4eb1 shl rbp, 2 | rbp <<= 2; 0x004c4eb5 xor edi, edi | edi = 0; 0x004c4eb7 nop word [rax + rax] | | do { 0x004c4ec0 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c4ec8 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c4ed0 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c4ed6 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c4edb add rdi, 4 | rdi += 4; 0x004c4edf cmp rbp, rdi | 0x004c4ee2 jne 0x4c4ec0 | | } while (rbp != rdi); | label_38: 0x004c4ee4 cmp r9, r8 | 0x004c4ee7 mov rbx, r10 | rbx = r10; 0x004c4eea mov ebp, r14d | | if (r9 == r8) { 0x004c4eed je 0x4c5090 | goto label_34; | } 0x004c4ef3 add rcx, r8 | rcx += r8; 0x004c4ef6 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_35: 0x004c4efa sub r11, rcx | r11 -= rcx; 0x004c4efd lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c4f02 xor esi, esi | esi = 0; 0x004c4f04 nop word cs:[rax + rax] | 0x004c4f0e nop | | do { 0x004c4f10 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c4f15 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c4f19 inc rsi | rsi++; 0x004c4f1c cmp rdx, rsi | 0x004c4f1f jne 0x4c4f10 | | } while (rdx != rsi); 0x004c4f21 jmp 0x4c5090 | goto label_34; | label_31: 0x004c4f26 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c4f2b add rax, r13 | rax += r13; 0x004c4f2e and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c4f32 neg rbp | rbp = -rbp; 0x004c4f35 xor ebx, ebx | ebx = 0; 0x004c4f37 nop word [rax + rax] | | do { 0x004c4f40 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c4f47 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c4f4e lea rdx, [r15*8] | rdx = r15*8; 0x004c4f56 movdqu xmmword [rdx + rbx*8 + 0x74f4a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_long_long__bool__bool__bool_::u], xmm0"); 0x004c4f5f movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4b0], xmm1"); 0x004c4f68 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c4f6f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c4f76 movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4c0], xmm0"); 0x004c4f7f movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4d0], xmm1"); 0x004c4f88 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c4f8f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c4f96 movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4e0], xmm0"); 0x004c4f9f movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f4f0], xmm1"); 0x004c4fa8 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c4faf pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c4fb5 movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f500], xmm0"); 0x004c4fbe movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f510], xmm1"); 0x004c4fc7 add rbx, 0x10 | rbx += 0x10; 0x004c4fcb add rbp, 4 | rbp += 4; 0x004c4fcf jne 0x4c4f40 | | } while (rbp != 0); | label_32: 0x004c4fd5 test rdi, rdi | | if (rdi == 0) { 0x004c4fd8 je 0x4c5024 | goto label_39; | } 0x004c4fda add r13, rbx | r13 += rbx; 0x004c4fdd lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c4fe2 add r13, rax | r13 += rax; 0x004c4fe5 shl r15, 3 | r15 <<= 3; 0x004c4fe9 lea rax, [r15 + rbx*8 + 0x74f4b0] | rax = r15 + rbx*8 + 0x74f4b0; 0x004c4ff1 shl rdi, 2 | rdi <<= 2; 0x004c4ff5 xor ebp, ebp | ebp = 0; 0x004c4ff7 nop word [rax + rax] | | do { 0x004c5000 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c5008 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c5010 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c5016 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c501b add rbp, 4 | rbp += 4; 0x004c501f cmp rdi, rbp | 0x004c5022 jne 0x4c5000 | | } while (rdi != rbp); | label_39: 0x004c5024 cmp r10, r8 | 0x004c5027 mov rbx, r11 | rbx = r11; 0x004c502a mov ebp, r14d | | if (r10 == r8) { 0x004c502d je 0x4c5051 | goto label_29; | } 0x004c502f add rcx, r8 | rcx += r8; 0x004c5032 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_30: 0x004c5036 sub r9, rcx | r9 -= rcx; 0x004c5039 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c503e xor edi, edi | edi = 0; | do { 0x004c5040 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c5045 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c5049 inc rdi | rdi++; 0x004c504c cmp rax, rdi | 0x004c504f jne 0x4c5040 | | } while (rax != rdi); | label_29: 0x004c5051 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c5056 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c505b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c5062 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c5065 cmp byte [rip + 0x253929], 0 | 0x004c506c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c5071 je 0x4c507d | 0x004c5073 mov edi, 0x4f43e1 | 0x004c5078 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c507d cmp byte [rip + 0x25390c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c5084 je 0x4c50bb | 0x004c5086 mov edi, 0xa | 0x004c508b call 0x401720 | eax = putchar (0xa); | label_34: 0x004c5090 cmp byte [rip + 0x2538f9], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c5097 je 0x4c50bb | goto label_40; | } 0x004c5099 mov edx, dword [rip + 0x253905] | edx = numCopyCtorCalls; 0x004c509f sub edx, dword [rsp + 0x14] | edx -= *((rsp + 0x14)); 0x004c50a3 mov ecx, dword [rip + 0x253903] | ecx = numCharCtorCalls; 0x004c50a9 sub ecx, dword [rsp + 0x48] | ecx -= *((rsp + 0x48)); 0x004c50ad mov edi, 0x4f5c2a | 0x004c50b2 mov esi, ebp | esi = ebp; 0x004c50b4 xor eax, eax | eax = 0; 0x004c50b6 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_40: 0x004c50bb mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c50bf cmp eax, dword [rip + 0x2538df] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c50c5 je 0x4c4ab0 | goto label_4; | } 0x004c50cb mov edi, 0x4f4c78 | 0x004c50d0 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c50d5 mov esi, 0x103f | esi = 0x103f; 0x004c50da xor eax, eax | eax = 0; 0x004c50dc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c50e1 mov eax, dword [rip + 0x2538b1] | eax = (anonymous namespace)::testStatus; 0x004c50e7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c50ea ja 0x4c4ab0 | goto label_4; | } 0x004c50f0 inc eax | eax++; 0x004c50f2 mov dword [rip + 0x2538a0], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c50f8 jmp 0x4c4ab0 | goto label_4; | label_23: 0x004c50fd add rsp, 0x68 | 0x004c5101 pop rbx | 0x004c5102 pop r12 | 0x004c5104 pop r13 | 0x004c5106 pop r14 | 0x004c5108 pop r15 | 0x004c510a pop rbp | 0x004c510b ret | return rax; | }