; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/none @ 0x4c7ee0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_void__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_void_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) */ 0x004c7ee0 push rbp | 0x004c7ee1 push r15 | 0x004c7ee3 push r14 | 0x004c7ee5 push r13 | 0x004c7ee7 push r12 | 0x004c7ee9 push rbx | 0x004c7eea sub rsp, 0x68 | 0x004c7eee mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c7ef2 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c7ef6 cmp byte [rip + 0x250a99], 0 | | if (*(obj.verbose) != 0) { 0x004c7efd je 0x4c7f09 | 0x004c7eff mov edi, 0x4f6973 | 0x004c7f04 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c7f09 xor eax, eax | eax = 0; 0x004c7f0b jmp 0x4c7f3c | goto label_4; | label_1: 0x004c7f10 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7f15 mov rsi, rbp | rsi = rbp; 0x004c7f18 call 0x4e20b0 | voidverify(void**,char const*) (); 0x004c7f1d mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7f22 mov rsi, rbp | rsi = rbp; 0x004c7f25 call 0x4e22f0 | voidcleanup(void**,char const*) (); 0x004c7f2a mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c7f2f inc rax | rax++; 0x004c7f32 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c7f36 je 0x4c8486 | goto label_5; | } | label_4: 0x004c7f3c mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004c7f41 lea rbp, [rax*8] | rbp = rax*8; 0x004c7f49 mov r12, qword [rbp + rbp*4 + 0x4f3c98] | r12 = *((rbp + rbp*4 + 0x4f3c98)); 0x004c7f51 mov rdi, r12 | 0x004c7f54 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3c98))); 0x004c7f59 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c7f5c jl 0x4c7f87 | 0x004c7f5e mov edi, 0x4f4e04 | 0x004c7f63 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c7f68 mov esi, 0xfe6 | esi = 0xfe6; 0x004c7f6d xor eax, eax | eax = 0; 0x004c7f6f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c7f74 mov eax, dword [rip + 0x250a1e] | eax = (anonymous namespace)::testStatus; 0x004c7f7a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c7f7d ja 0x4c7f87 | goto label_6; | } 0x004c7f7f inc eax | eax++; 0x004c7f81 mov dword [rip + 0x250a11], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_6: 0x004c7f87 mov r14d, dword [rbp + rbp*4 + 0x4f3c90] | r14d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c7f8f movsxd r15, dword [rbp + rbp*4 + 0x4f3ca0] | r15 = *((rbp + rbp*4 + 0x4f3ca0)); 0x004c7f97 mov ebx, dword [rbp + rbp*4 + 0x4f3ca4] | ebx = *((rbp + rbp*4 + 0x4f3ca4)); 0x004c7f9e movsxd r13, dword [rbp + rbp*4 + 0x4f3ca8] | r13 = *((rbp + rbp*4 + 0x4f3ca8)); 0x004c7fa6 mov rbp, qword [rbp + rbp*4 + 0x4f3cb0] | rbp = *((rbp + rbp*4 + 0x4f3cb0)); 0x004c7fae cmp byte [rip + 0x2509db], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c7fb5 je 0x4c7fd6 | 0x004c7fb7 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c7fbb mov edi, 0x4f5c41 | 0x004c7fc0 mov esi, r14d | esi = r14d; 0x004c7fc3 mov rdx, r12 | rdx = r12; 0x004c7fc6 mov ecx, r15d | ecx = r15d; 0x004c7fc9 mov r8d, ebx | r8d = ebx; 0x004c7fcc mov r9d, r13d | r9d = r13d; 0x004c7fcf xor eax, eax | eax = 0; 0x004c7fd1 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c7fd6 mov dword [rsp + 0x14], r14d | *((rsp + 0x14)) = r14d; 0x004c7fdb mov qword [rsp + 0x18], rbx | *((rsp + 0x18)) = rbx; 0x004c7fe0 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7fe5 mov rsi, r12 | rsi = r12; 0x004c7fe8 call 0x4e1fd0 | void*&gg(void**,char const*) (); 0x004c7fed mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c7ff2 mov rsi, r12 | rsi = r12; 0x004c7ff5 call 0x4e20b0 | voidverify(void**,char const*) (); 0x004c7ffa mov r12d, dword [rip + 0x2509a3] | r12d = numCopyCtorCalls; 0x004c8001 mov r14d, dword [rip + 0x2509a4] | r14d = numCharCtorCalls; 0x004c8008 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c800d je 0x4c80f0 | goto label_7; | } 0x004c8013 cmp byte [rip + 0x250976], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c801a je 0x4c802f | 0x004c801c cmp dword [rip + 0x250565], 0 | | if (*(obj.testCopyConstructWithIterators_void__bool__bool__bool_::firstTime) == 0) { 0x004c8023 je 0x4c802f | goto label_8; | } 0x004c8025 mov edi, 0x4f43ea | 0x004c802a call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_8: 0x004c802f mov dword [rip + 0x25054f], 0 | *(obj.testCopyConstructWithIterators_void__bool__bool__bool_::firstTime) = 0; 0x004c8039 cmp byte [rip + 0x250955], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c8040 je 0x4c804c | 0x004c8042 mov edi, 0x4f4411 | 0x004c8047 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c804c mov rax, qword [rip + 0x2507cd] | rax = Z; 0x004c8053 mov qword [rsp + 0x20], 0x4f69e0 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c805c mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c8061 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c8069 test rax, rax | 0x004c806c je 0x4c81b5 | | while (rax != 0) { | label_0: 0x004c8072 lea rsi, [r15*8 + 0x74f760] | rsi = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c807a mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c807f add eax, r15d | eax += r15d; 0x004c8082 cdqe | rax = (int64_t) eax; 0x004c8084 lea rdx, [rax*8 + 0x74f760] | rdx = rax*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c808c sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c808f je 0x4c809e | 0x004c8091 lea rdi, [r13*8 + 0x74f760] | 0x004c8099 call 0x401930 | memcpy (r13*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u, rsi, rdx); | } 0x004c809e mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c80a3 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c80a8 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c80af call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c80b2 cmp byte [rip + 0x2508dc], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c80b9 je 0x4c80c5 | 0x004c80bb mov edi, 0x4f4571 | 0x004c80c0 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c80c5 cmp byte [rip + 0x2508c4], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c80cc je 0x4c83aa | goto label_9; | } 0x004c80d2 mov edi, 0xa | 0x004c80d7 call 0x401720 | putchar (0xa); 0x004c80dc mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c80e0 jmp 0x4c8381 | goto label_10; | label_7: 0x004c80f0 cmp qword [rip + 0x250728], 0 | | if (*(obj.Z) == 0) { 0x004c80f8 jne 0x4c8110 | 0x004c80fa mov rax, qword [rip + 0x2891b7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c8101 test rax, rax | | if (rax != 0) { 0x004c8104 jne 0x4c8110 | goto label_11; | } 0x004c8106 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c810b nop dword [rax + rax] | | } | label_11: 0x004c8110 cmp qword [rsp + 0x48], 6 | 0x004c8116 mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (*((rsp + 0x48)) < 6) { 0x004c811a jb 0x4c8381 | goto label_10; | } 0x004c8120 lea rax, [r15*8 + 0x74f760] | rax = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8128 lea rcx, [r13*8 + 0x74f760] | rcx = r13*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8130 mov rsi, qword [rsp + 0x18] | rsi = *((rsp + 0x18)); 0x004c8135 lea edx, [rsi + r15] | edx = rsi + r15; 0x004c8139 movsxd r9, edx | r9 = (int64_t) edx; 0x004c813c shl r9, 3 | r9 <<= 3; 0x004c8140 lea rdi, [r15*8] | rdi = r15*8; 0x004c8148 mov r10, r9 | r10 = r9; 0x004c814b sub r10, rdi | r10 -= rdi; 0x004c814e add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c8152 cmp r10, 0x18 | | if (r10 < 0x18) { 0x004c8156 jb 0x4c8360 | goto label_12; | } 0x004c815c mov dword [rsp + 0x50], r14d | *((rsp + 0x50)) = r14d; 0x004c8161 mov r11, rbp | r11 = rbp; 0x004c8164 lea rbp, [r13*8 + 0x74f760] | rbp = r13*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c816c lea edx, [rsi + r15] | edx = rsi + r15; 0x004c8170 movsxd rdx, edx | rdx = (int64_t) edx; 0x004c8173 lea rbx, [rdx*8 + 0x74f760] | rbx = rdx*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c817b cmp rbp, rbx | | if (rbp >= rbx) { 0x004c817e jae 0x4c8227 | goto label_13; | } 0x004c8184 shl rdx, 3 | rdx <<= 3; 0x004c8188 sub rdx, rdi | rdx -= rdi; 0x004c818b lea rdx, [rdx + r13*8 + 0x74f760] | rdx = rdx + r13*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8193 lea rbp, [r15*8 + 0x74f760] | rbp = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c819b cmp rbp, rdx | | if (rbp >= rdx) { 0x004c819e jae 0x4c8227 | goto label_13; | } 0x004c81a4 mov rbp, r11 | 0x004c81a7 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c81ac mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); 0x004c81b0 jmp 0x4c8360 | goto label_12; 0x004c81b5 mov ebx, 1 | ebx = 1; 0x004c81ba mov rax, qword [rip + 0x2890f7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c81c1 test rax, rax | 0x004c81c4 jne 0x4c8072 | | } 0x004c81ca call 0x4eede0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c81cf jmp 0x4c8072 | goto label_0; | label_13: 0x004c8227 shr r10, 3 | r10 >>= 3; 0x004c822b inc r10 | r10++; 0x004c822e mov r8, r10 | r8 = r10; 0x004c8231 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c8235 lea rdx, [r8 - 4] | rdx = r8 - 4; 0x004c8239 mov rbp, rdx | 0x004c823c shr rbp, 2 | rbp >>= 2; 0x004c8240 inc rbp | rbp++; 0x004c8243 mov ebx, ebp | ebx = ebp; 0x004c8245 and ebx, 3 | ebx &= 3; 0x004c8248 cmp rdx, 0xc | | if (rdx < 0xc) { 0x004c824c jae 0x4c8255 | 0x004c824e xor edx, edx | edx = 0; 0x004c8250 jmp 0x4c82fa | goto label_14; | } 0x004c8255 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c8259 neg rbp | rbp = -rbp; 0x004c825c xor edx, edx | edx = 0; 0x004c825e nop | | do { 0x004c8260 movups xmm0, xmmword [rdi + rdx*8 + 0x74f760] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u]"); 0x004c8268 movups xmm1, xmmword [rdi + rdx*8 + 0x74f770] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f770]"); 0x004c8270 lea rsi, [r13*8] | rsi = r13*8; 0x004c8278 movups xmmword [rsi + rdx*8 + 0x74f760], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c8280 movups xmmword [rsi + rdx*8 + 0x74f770], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f770], xmm1"); 0x004c8288 movups xmm0, xmmword [rdi + rdx*8 + 0x74f780] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f780]"); 0x004c8290 movups xmm1, xmmword [rdi + rdx*8 + 0x74f790] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f790]"); 0x004c8298 movups xmmword [rsi + rdx*8 + 0x74f780], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f780], xmm0"); 0x004c82a0 movups xmmword [rsi + rdx*8 + 0x74f790], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f790], xmm1"); 0x004c82a8 movups xmm0, xmmword [rdi + rdx*8 + 0x74f7a0] | __asm ("movups xmm0, xmmword [rdi + rdx*8 + 0x74f7a0]"); 0x004c82b0 movups xmm1, xmmword [rdi + rdx*8 + 0x74f7b0] | __asm ("movups xmm1, xmmword [rdi + rdx*8 + 0x74f7b0]"); 0x004c82b8 movups xmmword [rsi + rdx*8 + 0x74f7a0], xmm0 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f7a0], xmm0"); 0x004c82c0 movups xmmword [rsi + rdx*8 + 0x74f7b0], xmm1 | __asm ("movups xmmword [rsi + rdx*8 + 0x74f7b0], xmm1"); 0x004c82c8 movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f7c0] | __asm ("movdqu xmm0, xmmword [rdi + rdx*8 + 0x74f7c0]"); 0x004c82d1 movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f7d0] | __asm ("movdqu xmm1, xmmword [rdi + rdx*8 + 0x74f7d0]"); 0x004c82da movdqu xmmword [rsi + rdx*8 + 0x74f7c0], xmm0 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f7c0], xmm0"); 0x004c82e3 movdqu xmmword [rsi + rdx*8 + 0x74f7d0], xmm1 | __asm ("movdqu xmmword [rsi + rdx*8 + 0x74f7d0], xmm1"); 0x004c82ec add rdx, 0x10 | rdx += 0x10; 0x004c82f0 add rbp, 4 | rbp += 4; 0x004c82f4 jne 0x4c8260 | | } while (rbp != 0); | label_14: 0x004c82fa test rbx, rbx | | if (rbx == 0) { 0x004c82fd je 0x4c8340 | goto label_15; | } 0x004c82ff shl r13, 3 | r13 <<= 3; 0x004c8303 lea rbp, [r13 + rdx*8 + 0x74f770] | rbp = r13 + rdx*8 + 0x74f770; 0x004c830b lea rdx, [rdi + rdx*8 + 0x74f770] | rdx = rdi + rdx*8 + 0x74f770; 0x004c8313 shl rbx, 5 | rbx <<= 5; 0x004c8317 xor edi, edi | edi = 0; 0x004c8319 nop dword [rax] | | do { 0x004c8320 movdqu xmm0, xmmword [rdx + rdi - 0x10] | __asm ("movdqu xmm0, xmmword [rdx + rdi - 0x10]"); 0x004c8326 movdqu xmm1, xmmword [rdx + rdi] | __asm ("movdqu xmm1, xmmword [rdx + rdi]"); 0x004c832b movdqu xmmword [rbp + rdi - 0x10], xmm0 | __asm ("movdqu xmmword [rbp + rdi - 0x10], xmm0"); 0x004c8331 movdqu xmmword [rbp + rdi], xmm1 | __asm ("movdqu xmmword [rbp + rdi], xmm1"); 0x004c8337 add rdi, 0x20 | rdi += 0x20; 0x004c833b cmp rbx, rdi | 0x004c833e jne 0x4c8320 | | } while (rbx != rdi); | label_15: 0x004c8340 cmp r10, r8 | 0x004c8343 mov rbp, r11 | 0x004c8346 mov r14d, dword [rsp + 0x50] | r14d = *((rsp + 0x50)); 0x004c834b mov ebx, dword [rsp + 0x14] | ebx = *((rsp + 0x14)); | if (r10 == r8) { 0x004c834f je 0x4c8381 | goto label_10; | } 0x004c8351 lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c8355 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c8359 nop dword [rax] | | label_12: 0x004c8360 sub r9, rax | r9 -= rax; 0x004c8363 lea rdx, [r9 + 0x74f760] | rdx = r9 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c836a xor esi, esi | esi = 0; 0x004c836c nop dword [rax] | | do { 0x004c8370 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c8374 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c8378 add rsi, 8 | rsi += 8; 0x004c837c cmp rdx, rsi | 0x004c837f jne 0x4c8370 | | } while (rdx != rsi); | label_10: 0x004c8381 cmp byte [rip + 0x250608], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c8388 je 0x4c83aa | 0x004c838a mov edx, dword [rip + 0x250614] | edx = numCopyCtorCalls; 0x004c8390 sub edx, r12d | edx -= r12d; 0x004c8393 mov ecx, dword [rip + 0x250613] | ecx = numCharCtorCalls; 0x004c8399 sub ecx, r14d | ecx -= r14d; 0x004c839c mov edi, 0x4f5db4 | 0x004c83a1 mov esi, ebx | esi = ebx; 0x004c83a3 xor eax, eax | eax = 0; 0x004c83a5 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_9: 0x004c83aa cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c83af je 0x4c8410 | goto label_16; | } 0x004c83b1 cmp r12d, dword [rip + 0x2505ec] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c83b8 je 0x4c83e3 | 0x004c83ba mov edi, 0x4f4e04 | 0x004c83bf mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c83c4 mov esi, 0x1005 | esi = 0x1005; 0x004c83c9 xor eax, eax | eax = 0; 0x004c83cb call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c83d0 mov eax, dword [rip + 0x2505c2] | eax = (anonymous namespace)::testStatus; 0x004c83d6 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c83d9 ja 0x4c83e3 | goto label_17; | } 0x004c83db inc eax | eax++; 0x004c83dd mov dword [rip + 0x2505b5], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_17: 0x004c83e3 cmp r14d, dword [rip + 0x2505c2] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c83ea je 0x4c7f10 | goto label_1; | } 0x004c83f0 mov edi, 0x4f4e04 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c83f5 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c83fa mov esi, 0x1006 | esi = 0x1006; 0x004c83ff jmp 0x4c8463 | goto label_18; | label_16: 0x004c8410 add r12d, dword [rsp + 0x18] | r12d += *((rsp + 0x18)); 0x004c8415 cmp r12d, dword [rip + 0x250588] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c841c jle 0x4c8447 | 0x004c841e mov edi, 0x4f4e04 | 0x004c8423 mov edx, 0x4f5e02 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c8428 mov esi, 0x1009 | esi = 0x1009; 0x004c842d xor eax, eax | eax = 0; 0x004c842f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c8434 mov eax, dword [rip + 0x25055e] | eax = (anonymous namespace)::testStatus; 0x004c843a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c843d ja 0x4c8447 | goto label_19; | } 0x004c843f inc eax | eax++; 0x004c8441 mov dword [rip + 0x250551], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c8447 cmp r14d, dword [rip + 0x25055e] | | if (r14d == *(obj.numCharCtorCalls)) { 0x004c844e je 0x4c7f10 | goto label_1; | } 0x004c8454 mov edi, 0x4f4e04 | 0x004c8459 mov edx, 0x4f5de4 | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c845e mov esi, 0x100a | esi = 0x100a; | label_18: 0x004c8463 xor eax, eax | eax = 0; 0x004c8465 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c846a mov eax, dword [rip + 0x250528] | eax = (anonymous namespace)::testStatus; 0x004c8470 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c8473 ja 0x4c7f10 | goto label_1; | } 0x004c8479 inc eax | eax++; 0x004c847b mov dword [rip + 0x250517], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c8481 jmp 0x4c7f10 | goto label_1; | label_5: 0x004c8486 cmp byte [rip + 0x250509], 0 | | if (*(obj.verbose) != 0) { 0x004c848d je 0x4c8499 | 0x004c848f mov edi, 0x4f695c | 0x004c8494 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c8499 xor r12d, r12d | r12d = 0; 0x004c849c jmp 0x4c84c7 | goto label_20; | label_3: 0x004c84a0 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c84a5 mov rsi, rbx | rsi = rbx; 0x004c84a8 call 0x4e20b0 | voidverify(void**,char const*) (); 0x004c84ad mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c84b2 mov rsi, rbx | rsi = rbx; 0x004c84b5 call 0x4e22f0 | voidcleanup(void**,char const*) (); 0x004c84ba inc r12 | r12++; 0x004c84bd cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c84c1 je 0x4c8aed | goto label_21; | } | label_20: 0x004c84c7 lea rbx, [r12*8] | rbx = r12*8; 0x004c84cf mov rbp, qword [rbx + rbx*4 + 0x4f3c98] | rbp = *((rbx + rbx*4 + 0x4f3c98)); 0x004c84d7 mov rdi, rbp | 0x004c84da call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3c98))); 0x004c84df cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c84e2 jl 0x4c850d | 0x004c84e4 mov edi, 0x4f4e04 | 0x004c84e9 mov edx, 0x4f4393 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c84ee mov esi, 0x1019 | esi = 0x1019; 0x004c84f3 xor eax, eax | eax = 0; 0x004c84f5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c84fa mov eax, dword [rip + 0x250498] | eax = (anonymous namespace)::testStatus; 0x004c8500 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c8503 ja 0x4c850d | goto label_22; | } 0x004c8505 inc eax | eax++; 0x004c8507 mov dword [rip + 0x25048b], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_22: 0x004c850d mov rdi, rbp | 0x004c8510 call 0x401790 | rax = strlen (rbp); 0x004c8515 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c8519 jb 0x4c8544 | 0x004c851b mov edi, 0x4f4e04 | 0x004c8520 mov edx, 0x4f5e26 | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c8525 mov esi, 0x101c | esi = 0x101c; 0x004c852a xor eax, eax | eax = 0; 0x004c852c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c8531 mov eax, dword [rip + 0x250461] | eax = (anonymous namespace)::testStatus; 0x004c8537 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c853a ja 0x4c8544 | goto label_23; | } 0x004c853c inc eax | eax++; 0x004c853e mov dword [rip + 0x250454], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_23: 0x004c8544 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c8549 pxor xmm0, xmm0 | xmm0 = 0; 0x004c854d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c8553 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c855b mov al, byte [rbp] | al = *(rbp); 0x004c855e test al, al | | if (al == 0) { 0x004c8560 je 0x4c8580 | goto label_24; | } 0x004c8562 xor ecx, ecx | ecx = 0; 0x004c8564 nop word cs:[rax + rax] | 0x004c856e nop | | do { 0x004c8570 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c8574 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c8579 inc rcx | rcx++; 0x004c857c test al, al | 0x004c857e jne 0x4c8570 | | } while (al != 0); | label_24: 0x004c8580 mov r14d, dword [rbx + rbx*4 + 0x4f3c90] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c8588 movsxd r13, dword [rbx + rbx*4 + 0x4f3ca0] | r13 = *((rbx + rbx*4 + 0x4f3ca0)); 0x004c8590 movsxd r12, dword [rbx + rbx*4 + 0x4f3ca4] | r12 = *((rbx + rbx*4 + 0x4f3ca4)); 0x004c8598 movsxd r15, dword [rbx + rbx*4 + 0x4f3ca8] | r15 = *((rbx + rbx*4 + 0x4f3ca8)); 0x004c85a0 mov rbx, qword [rbx + rbx*4 + 0x4f3cb0] | rbx = *((rbx + rbx*4 + 0x4f3cb0)); 0x004c85a8 cmp byte [rip + 0x2503e1], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c85af je 0x4c85d0 | 0x004c85b1 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c85b5 mov edi, 0x4f5c41 | 0x004c85ba mov esi, r14d | esi = r14d; 0x004c85bd mov rdx, rbp | rdx = rbp; 0x004c85c0 mov ecx, r13d | ecx = r13d; 0x004c85c3 mov r8d, r12d | r8d = r12d; 0x004c85c6 mov r9d, r15d | r9d = r15d; 0x004c85c9 xor eax, eax | eax = 0; 0x004c85cb call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c85d0 mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c85d5 mov rsi, rbp | rsi = rbp; 0x004c85d8 call 0x4e1fd0 | void*&gg(void**,char const*) (); 0x004c85dd mov edi, 0x74f760 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c85e2 mov rsi, rbp | rsi = rbp; 0x004c85e5 call 0x4e20b0 | voidverify(void**,char const*) (); 0x004c85ea mov eax, dword [rip + 0x2503b4] | eax = numCopyCtorCalls; 0x004c85f0 mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c85f4 mov eax, dword [rip + 0x2503b2] | eax = numCharCtorCalls; 0x004c85fa mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c85fe cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c8603 je 0x4c86d0 | goto label_25; | } 0x004c8609 cmp byte [rip + 0x250380], 0 | 0x004c8610 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c8613 je 0x4c8628 | 0x004c8615 cmp dword [rip + 0x24ff70], 0 | | if (*(0x0071858c) == 0) { 0x004c861c je 0x4c8628 | goto label_26; | } 0x004c861e mov edi, 0x4f43ea | 0x004c8623 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_26: 0x004c8628 mov dword [rip + 0x24ff5a], 0 | *(0x0071858c) = 0; 0x004c8632 cmp byte [rip + 0x25035c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c8639 je 0x4c8645 | 0x004c863b mov edi, 0x4f4411 | 0x004c8640 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c8645 mov rax, qword [rip + 0x2501d4] | rax = Z; 0x004c864c mov qword [rsp + 0x58], 0x4f69e0 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c8655 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c865a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c8662 test rax, rax | 0x004c8665 je 0x4c875d | | while (rax != 0) { | label_2: 0x004c866b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c8671 jb 0x4c8a41 | goto label_27; | } 0x004c8677 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c867c lea rsi, [r15*8 + 0x74f760] | rsi = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8684 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c8689 movsxd r9, eax | r9 = (int64_t) eax; 0x004c868c mov r10, r9 | r10 = r9; 0x004c868f sub r10, r13 | r10 -= r13; 0x004c8692 cmp r10, 4 | | if (r10 < 4) { 0x004c8696 jb 0x4c8a26 | goto label_28; | } 0x004c869c mov r11, rbx | r11 = rbx; 0x004c869f mov r8, r10 | r8 = r10; 0x004c86a2 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c86a6 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c86aa mov rbp, rax | 0x004c86ad shr rbp, 2 | rbp >>= 2; 0x004c86b1 inc rbp | rbp++; 0x004c86b4 mov edi, ebp | edi = ebp; 0x004c86b6 and edi, 3 | edi &= 3; 0x004c86b9 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c86bd jae 0x4c8916 | goto label_29; | } 0x004c86c3 xor ebx, ebx | ebx = 0; 0x004c86c5 jmp 0x4c89c5 | goto label_30; | label_25: 0x004c86d0 cmp qword [rip + 0x250148], 0 | 0x004c86d8 mov ebp, r14d | 0x004c86db mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c86de jne 0x4c8700 | 0x004c86e0 mov rax, qword [rip + 0x288bd1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c86e7 test rax, rax | | if (rax != 0) { 0x004c86ea jne 0x4c8700 | goto label_31; | } 0x004c86ec call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c86f1 mov r11, r12 | r11 = r12; 0x004c86f4 nop word cs:[rax + rax] | 0x004c86fe nop | | } | label_31: 0x004c8700 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c8705 cmp r12, 6 | | if (r12 < 6) { 0x004c8709 jb 0x4c8a80 | goto label_32; | } 0x004c870f lea rax, [r15*8 + 0x74f760] | rax = r15*8 + obj_testCopyConstructWithIterators_void__bool__bool__bool_::u; 0x004c8717 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c871c add r11, r13 | r11 += r13; 0x004c871f mov r9, r11 | r9 = r11; 0x004c8722 sub r9, r13 | r9 -= r13; 0x004c8725 cmp r9, 4 | | if (r9 < 4) { 0x004c8729 jb 0x4c88ea | goto label_33; | } 0x004c872f mov r10, rbx | r10 = rbx; 0x004c8732 mov r8, r9 | r8 = r9; 0x004c8735 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c8739 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c873d mov rdi, rsi | rdi = rsi; 0x004c8740 shr rdi, 2 | rdi >>= 2; 0x004c8744 inc rdi | rdi++; 0x004c8747 mov ebp, edi | 0x004c8749 and ebp, 3 | ebp &= 3; 0x004c874c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c8750 jae 0x4c87dd | goto label_34; | } 0x004c8756 xor ebx, ebx | ebx = 0; 0x004c8758 jmp 0x4c8885 | goto label_35; 0x004c875d mov eax, 1 | eax = 1; 0x004c8762 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c8767 mov rax, qword [rip + 0x288b4a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c876e test rax, rax | 0x004c8771 jne 0x4c866b | | } 0x004c8777 call 0x4eede0 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c877c jmp 0x4c866b | goto label_2; | label_34: 0x004c87dd lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c87e2 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c87e6 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c87ea neg rdi | rdi = -rdi; 0x004c87ed xor ebx, ebx | ebx = 0; 0x004c87ef nop | | do { 0x004c87f0 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c87f7 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c87fe lea rdx, [r15*8] | rdx = r15*8; 0x004c8806 movdqu xmmword [rdx + rbx*8 + 0x74f760], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c880f movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1"); 0x004c8818 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c881f pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c8826 movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0"); 0x004c882f movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1"); 0x004c8838 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c883f pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c8846 movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0"); 0x004c884f movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1"); 0x004c8858 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c885f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c8865 movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0"); 0x004c886e movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1"); 0x004c8877 add rbx, 0x10 | rbx += 0x10; 0x004c887b add rdi, 4 | rdi += 4; 0x004c887f jne 0x4c87f0 | | } while (rdi != 0); | label_35: 0x004c8885 test rbp, rbp | | if (rbp == 0) { 0x004c8888 je 0x4c88d4 | goto label_36; | } 0x004c888a add r13, rbx | r13 += rbx; 0x004c888d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c8892 add r13, rdx | r13 += rdx; 0x004c8895 shl r15, 3 | r15 <<= 3; 0x004c8899 lea rsi, [r15 + rbx*8 + 0x74f770] | rsi = r15 + rbx*8 + 0x74f770; 0x004c88a1 shl rbp, 2 | rbp <<= 2; 0x004c88a5 xor edi, edi | edi = 0; 0x004c88a7 nop word [rax + rax] | | do { 0x004c88b0 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c88b8 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c88c0 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c88c6 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c88cb add rdi, 4 | rdi += 4; 0x004c88cf cmp rbp, rdi | 0x004c88d2 jne 0x4c88b0 | | } while (rbp != rdi); | label_36: 0x004c88d4 cmp r9, r8 | 0x004c88d7 mov rbx, r10 | rbx = r10; 0x004c88da mov ebp, r14d | | if (r9 == r8) { 0x004c88dd je 0x4c8a80 | goto label_32; | } 0x004c88e3 add rcx, r8 | rcx += r8; 0x004c88e6 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_33: 0x004c88ea sub r11, rcx | r11 -= rcx; 0x004c88ed lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c88f2 xor esi, esi | esi = 0; 0x004c88f4 nop word cs:[rax + rax] | 0x004c88fe nop | | do { 0x004c8900 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c8905 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c8909 inc rsi | rsi++; 0x004c890c cmp rdx, rsi | 0x004c890f jne 0x4c8900 | | } while (rdx != rsi); 0x004c8911 jmp 0x4c8a80 | goto label_32; | label_29: 0x004c8916 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c891b add rax, r13 | rax += r13; 0x004c891e and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c8922 neg rbp | rbp = -rbp; 0x004c8925 xor ebx, ebx | ebx = 0; 0x004c8927 nop word [rax + rax] | | do { 0x004c8930 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c8937 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c893e lea rdx, [r15*8] | rdx = r15*8; 0x004c8946 movdqu xmmword [rdx + rbx*8 + 0x74f760], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_void__bool__bool__bool_::u], xmm0"); 0x004c894f movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f770], xmm1"); 0x004c8958 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c895f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c8966 movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f780], xmm0"); 0x004c896f movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f790], xmm1"); 0x004c8978 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c897f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c8986 movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7a0], xmm0"); 0x004c898f movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7b0], xmm1"); 0x004c8998 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c899f pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c89a5 movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7c0], xmm0"); 0x004c89ae movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f7d0], xmm1"); 0x004c89b7 add rbx, 0x10 | rbx += 0x10; 0x004c89bb add rbp, 4 | rbp += 4; 0x004c89bf jne 0x4c8930 | | } while (rbp != 0); | label_30: 0x004c89c5 test rdi, rdi | | if (rdi == 0) { 0x004c89c8 je 0x4c8a14 | goto label_37; | } 0x004c89ca add r13, rbx | r13 += rbx; 0x004c89cd lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c89d2 add r13, rax | r13 += rax; 0x004c89d5 shl r15, 3 | r15 <<= 3; 0x004c89d9 lea rax, [r15 + rbx*8 + 0x74f770] | rax = r15 + rbx*8 + 0x74f770; 0x004c89e1 shl rdi, 2 | rdi <<= 2; 0x004c89e5 xor ebp, ebp | ebp = 0; 0x004c89e7 nop word [rax + rax] | | do { 0x004c89f0 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c89f8 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c8a00 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c8a06 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c8a0b add rbp, 4 | rbp += 4; 0x004c8a0f cmp rdi, rbp | 0x004c8a12 jne 0x4c89f0 | | } while (rdi != rbp); | label_37: 0x004c8a14 cmp r10, r8 | 0x004c8a17 mov rbx, r11 | rbx = r11; 0x004c8a1a mov ebp, r14d | | if (r10 == r8) { 0x004c8a1d je 0x4c8a41 | goto label_27; | } 0x004c8a1f add rcx, r8 | rcx += r8; 0x004c8a22 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_28: 0x004c8a26 sub r9, rcx | r9 -= rcx; 0x004c8a29 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c8a2e xor edi, edi | edi = 0; | do { 0x004c8a30 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c8a35 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c8a39 inc rdi | rdi++; 0x004c8a3c cmp rax, rdi | 0x004c8a3f jne 0x4c8a30 | | } while (rax != rdi); | label_27: 0x004c8a41 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c8a46 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c8a4b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c8a52 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c8a55 cmp byte [rip + 0x24ff39], 0 | 0x004c8a5c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c8a61 je 0x4c8a6d | 0x004c8a63 mov edi, 0x4f4571 | 0x004c8a68 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c8a6d cmp byte [rip + 0x24ff1c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c8a74 je 0x4c8aab | 0x004c8a76 mov edi, 0xa | 0x004c8a7b call 0x401720 | eax = putchar (0xa); | label_32: 0x004c8a80 cmp byte [rip + 0x24ff09], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c8a87 je 0x4c8aab | goto label_38; | } 0x004c8a89 mov edx, dword [rip + 0x24ff15] | edx = numCopyCtorCalls; 0x004c8a8f sub edx, dword [rsp + 0x48] | edx -= *((rsp + 0x48)); 0x004c8a93 mov ecx, dword [rip + 0x24ff13] | ecx = numCharCtorCalls; 0x004c8a99 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c8a9d mov edi, 0x4f5db4 | 0x004c8aa2 mov esi, ebp | esi = ebp; 0x004c8aa4 xor eax, eax | eax = 0; 0x004c8aa6 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_38: 0x004c8aab mov eax, dword [rsp + 0x48] | eax = *((rsp + 0x48)); 0x004c8aaf cmp eax, dword [rip + 0x24feef] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c8ab5 je 0x4c84a0 | goto label_3; | } 0x004c8abb mov edi, 0x4f4e04 | 0x004c8ac0 mov edx, 0x4f5176 | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c8ac5 mov esi, 0x103f | esi = 0x103f; 0x004c8aca xor eax, eax | eax = 0; 0x004c8acc call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-none/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c8ad1 mov eax, dword [rip + 0x24fec1] | eax = (anonymous namespace)::testStatus; 0x004c8ad7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c8ada ja 0x4c84a0 | goto label_3; | } 0x004c8ae0 inc eax | eax++; 0x004c8ae2 mov dword [rip + 0x24feb0], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c8ae8 jmp 0x4c84a0 | goto label_3; | label_21: 0x004c8aed add rsp, 0x68 | 0x004c8af1 pop rbx | 0x004c8af2 pop r12 | 0x004c8af4 pop r13 | 0x004c8af6 pop r14 | 0x004c8af8 pop r15 | 0x004c8afa pop rbp | 0x004c8afb ret | return rax; | }