; assembly | /* r2dec pseudo code output */ | /* bslalg_arrayprimitives.t/assume @ 0x4c38a0 */ | #include | ; (fcn) sym.void_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_ () | uint64_t void_testCopyConstructWithIterators_unsigned_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) */ 0x004c38a0 push rbp | 0x004c38a1 push r15 | 0x004c38a3 push r14 | 0x004c38a5 push r13 | 0x004c38a7 push r12 | 0x004c38a9 push rbx | 0x004c38aa sub rsp, 0x68 | 0x004c38ae mov dword [rsp + 0x54], edx | *((rsp + 0x54)) = edx; 0x004c38b2 mov dword [rsp + 0x40], esi | *((rsp + 0x40)) = esi; 0x004c38b6 cmp byte [rip + 0x2550d9], 0 | | if (*(obj.verbose) != 0) { 0x004c38bd je 0x4c38c9 | 0x004c38bf mov edi, 0x4f67e9 | 0x004c38c4 call 0x401710 | eax = puts ("\t\tfrom same type."); | } 0x004c38c9 xor eax, eax | eax = 0; 0x004c38cb jmp 0x4c38fc | goto label_5; | label_2: 0x004c38d0 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c38d5 mov rsi, rbp | rsi = rbp; 0x004c38d8 call 0x4e0090 | voidverify(unsigned long*,char const*) (); 0x004c38dd mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c38e2 mov rsi, rbp | rsi = rbp; 0x004c38e5 call 0x4e02d0 | voidcleanup(unsigned long*,char const*) (); 0x004c38ea mov rax, qword [rsp + 0x18] | rax = *((rsp + 0x18)); 0x004c38ef inc rax | rax++; 0x004c38f2 cmp rax, 0x1e | | if (rax == 0x1e) { 0x004c38f6 je 0x4c3e39 | goto label_6; | } | label_5: 0x004c38fc mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004c3901 lea rbp, [rax*8] | rbp = rax*8; 0x004c3909 mov r12, qword [rbp + rbp*4 + 0x4f3b08] | r12 = *((rbp + rbp*4 + 0x4f3b08)); 0x004c3911 mov rdi, r12 | 0x004c3914 call 0x401790 | eax = strlen (*((rbp + rbp*4 + 0x4f3b08))); 0x004c3919 cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c391c jl 0x4c3947 | 0x004c391e mov edi, 0x4f4c78 | 0x004c3923 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c3928 mov esi, 0xfe6 | esi = 0xfe6; 0x004c392d xor eax, eax | eax = 0; 0x004c392f call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3934 mov eax, dword [rip + 0x25505e] | eax = (anonymous namespace)::testStatus; 0x004c393a cmp eax, 0x64 | | if (eax > 0x64) { 0x004c393d ja 0x4c3947 | goto label_7; | } 0x004c393f inc eax | eax++; 0x004c3941 mov dword [rip + 0x255051], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_7: 0x004c3947 mov r13d, dword [rbp + rbp*4 + 0x4f3b00] | r13d = *((rbp + rbp*4 + obj.DATA_3)); 0x004c394f movsxd r15, dword [rbp + rbp*4 + 0x4f3b10] | r15 = *((rbp + rbp*4 + 0x4f3b10)); 0x004c3957 mov ebx, dword [rbp + rbp*4 + 0x4f3b14] | ebx = *((rbp + rbp*4 + 0x4f3b14)); 0x004c395e movsxd r14, dword [rbp + rbp*4 + 0x4f3b18] | r14 = *((rbp + rbp*4 + 0x4f3b18)); 0x004c3966 mov rbp, qword [rbp + rbp*4 + 0x4f3b20] | rbp = *((rbp + rbp*4 + 0x4f3b20)); 0x004c396e cmp byte [rip + 0x25501b], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3975 je 0x4c3996 | 0x004c3977 mov qword [rsp], rbp | *(rsp) = rbp; 0x004c397b mov edi, 0x4f5ab7 | 0x004c3980 mov esi, r13d | esi = r13d; 0x004c3983 mov rdx, r12 | rdx = r12; 0x004c3986 mov ecx, r15d | ecx = r15d; 0x004c3989 mov r8d, ebx | r8d = ebx; 0x004c398c mov r9d, r14d | r9d = r14d; 0x004c398f xor eax, eax | eax = 0; 0x004c3991 call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c3996 mov qword [rsp + 0x48], rbx | *((rsp + 0x48)) = rbx; 0x004c399b mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c39a0 mov rsi, r12 | rsi = r12; 0x004c39a3 call 0x4dffb0 | unsigned long&gg(unsigned long*,char const*) (); 0x004c39a8 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c39ad mov rsi, r12 | rsi = r12; 0x004c39b0 call 0x4e0090 | voidverify(unsigned long*,char const*) (); 0x004c39b5 mov r12d, dword [rip + 0x254fe8] | r12d = numCopyCtorCalls; 0x004c39bc mov eax, dword [rip + 0x254fea] | eax = numCharCtorCalls; 0x004c39c2 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c39c6 cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c39cb je 0x4c3ab0 | goto label_8; | } 0x004c39d1 cmp byte [rip + 0x254fb8], 0 | 0x004c39d8 mov ebx, r13d | ebx = r13d; | if (*(obj.veryVerbose) != 0) { 0x004c39db je 0x4c39f0 | 0x004c39dd cmp dword [rip + 0x254b74], 0 | | if (*(0x00718558) == 0) { 0x004c39e4 je 0x4c39f0 | goto label_9; | } 0x004c39e6 mov edi, 0x4f425a | 0x004c39eb call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_9: 0x004c39f0 mov dword [rip + 0x254b5e], 0 | *(0x00718558) = 0; 0x004c39fa cmp byte [rip + 0x254f94], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c3a01 je 0x4c3a0d | 0x004c3a03 mov edi, 0x4f4281 | 0x004c3a08 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c3a0d mov rax, qword [rip + 0x254e0c] | rax = Z; 0x004c3a14 mov qword [rsp + 0x20], 0x4f6858 | *((rsp + 0x20)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c3a1d mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004c3a22 mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c3a2a test rax, rax | 0x004c3a2d je 0x4c3b19 | | while (rax != 0) { | label_0: 0x004c3a33 lea rsi, [r15*8 + 0x74f420] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3a3b mov rax, qword [rsp + 0x48] | rax = *((rsp + 0x48)); 0x004c3a40 add eax, r15d | eax += r15d; 0x004c3a43 cdqe | rax = (int64_t) eax; 0x004c3a45 lea rdx, [rax*8 + 0x74f420] | rdx = rax*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3a4d sub rdx, rsi | rdx -= rsi; | if (rdx != 0) { 0x004c3a50 je 0x4c3a5f | 0x004c3a52 lea rdi, [r14*8 + 0x74f420] | 0x004c3a5a call 0x401930 | memcpy (r14*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u, rsi, rdx); | } 0x004c3a5f mov rax, qword [rsp + 0x20] | rax = *((rsp + 0x20)); 0x004c3a64 lea rdi, [rsp + 0x20] | rdi = rsp + 0x20; 0x004c3a69 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c3a70 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c3a73 cmp byte [rip + 0x254f1b], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c3a7a je 0x4c3a86 | 0x004c3a7c mov edi, 0x4f43e1 | 0x004c3a81 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c3a86 cmp byte [rip + 0x254f03], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c3a8d je 0x4c3d5b | goto label_10; | } 0x004c3a93 mov edi, 0xa | 0x004c3a98 call 0x401720 | putchar (0xa); 0x004c3a9d jmp 0x4c3d31 | goto label_11; | label_8: 0x004c3ab0 cmp qword [rip + 0x254d68], 0 | 0x004c3ab8 mov ebx, r13d | ebx = r13d; | if (*(obj.Z) == 0) { 0x004c3abb jne 0x4c3acd | 0x004c3abd mov rax, qword [rip + 0x28d7f4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c3ac4 test rax, rax | | if (rax == 0) { 0x004c3ac7 je 0x4c3bd3 | goto label_12; | } | } 0x004c3acd cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c3ad3 jb 0x4c3d31 | goto label_11; | } | label_1: 0x004c3ad9 lea rax, [r15*8 + 0x74f420] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3ae1 lea rcx, [r14*8 + 0x74f420] | rcx = r14*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3ae9 mov rbx, qword [rsp + 0x48] | rbx = *((rsp + 0x48)); 0x004c3aee lea edx, [rbx + r15] | edx = rbx + r15; 0x004c3af2 movsxd r9, edx | r9 = (int64_t) edx; 0x004c3af5 shl r9, 3 | r9 <<= 3; 0x004c3af9 lea rdi, [r15*8] | rdi = r15*8; 0x004c3b01 mov r10, r9 | r10 = r9; 0x004c3b04 sub r10, rdi | r10 -= rdi; 0x004c3b07 add r10, 0xfffffffffffffff8 | r10 += 0xfffffffffffffff8; 0x004c3b0b cmp r10, 0x18 | | if (r10 >= 0x18) { 0x004c3b0f jae 0x4c3b8d | goto label_13; | } 0x004c3b11 mov ebx, r13d | ebx = r13d; 0x004c3b14 jmp 0x4c3d10 | goto label_14; 0x004c3b19 mov r13d, 1 | r13d = 1; 0x004c3b1f mov rax, qword [rip + 0x28d792] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c3b26 test rax, rax | 0x004c3b29 jne 0x4c3a33 | | } 0x004c3b2f call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c3b34 jmp 0x4c3a33 | goto label_0; | label_13: 0x004c3b8d mov r11, rbp | r11 = rbp; 0x004c3b90 lea rsi, [r14*8 + 0x74f420] | rsi = r14*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3b98 lea edx, [rbx + r15] | edx = rbx + r15; 0x004c3b9c movsxd rdx, edx | rdx = (int64_t) edx; 0x004c3b9f lea rbp, [rdx*8 + 0x74f420] | rbp = rdx*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3ba7 cmp rsi, rbp | | if (rsi >= rbp) { 0x004c3baa jae 0x4c3be9 | goto label_15; | } 0x004c3bac shl rdx, 3 | rdx <<= 3; 0x004c3bb0 sub rdx, rdi | rdx -= rdi; 0x004c3bb3 lea rdx, [rdx + r14*8 + 0x74f420] | rdx = rdx + r14*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3bbb lea rsi, [r15*8 + 0x74f420] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3bc3 cmp rsi, rdx | | if (rsi >= rdx) { 0x004c3bc6 jae 0x4c3be9 | goto label_15; | } 0x004c3bc8 mov rbp, r11 | 0x004c3bcb mov ebx, r13d | ebx = r13d; 0x004c3bce jmp 0x4c3d10 | goto label_14; | label_12: 0x004c3bd3 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c3bd8 cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) >= 6) { 0x004c3bde jae 0x4c3ad9 | goto label_1; | } 0x004c3be4 jmp 0x4c3d31 | goto label_11; | label_15: 0x004c3be9 shr r10, 3 | r10 >>= 3; 0x004c3bed inc r10 | r10++; 0x004c3bf0 mov r8, r10 | r8 = r10; 0x004c3bf3 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c3bf7 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c3bfb mov rbp, rsi | 0x004c3bfe shr rbp, 2 | rbp >>= 2; 0x004c3c02 inc rbp | rbp++; 0x004c3c05 mov edx, ebp | edx = ebp; 0x004c3c07 and edx, 3 | edx &= 3; 0x004c3c0a cmp rsi, 0xc | | if (rsi < 0xc) { 0x004c3c0e jae 0x4c3c17 | 0x004c3c10 xor ebx, ebx | ebx = 0; 0x004c3c12 jmp 0x4c3ca0 | goto label_16; | } 0x004c3c17 and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c3c1b neg rbp | rbp = -rbp; 0x004c3c1e mov esi, 0x74f420 | esi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3c23 xor ebx, ebx | ebx = 0; 0x004c3c25 nop word cs:[rax + rax] | 0x004c3c2f nop | | do { 0x004c3c30 movups xmm0, xmmword [rsi + r15*8] | __asm ("movups xmm0, xmmword [rsi + r15*8]"); 0x004c3c35 movups xmm1, xmmword [rsi + r15*8 + 0x10] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x10]"); 0x004c3c3b movups xmmword [rsi + r14*8], xmm0 | __asm ("movups xmmword [rsi + r14*8], xmm0"); 0x004c3c40 movups xmmword [rsi + r14*8 + 0x10], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x10], xmm1"); 0x004c3c46 movups xmm0, xmmword [rsi + r15*8 + 0x20] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x20]"); 0x004c3c4c movups xmm1, xmmword [rsi + r15*8 + 0x30] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x30]"); 0x004c3c52 movups xmmword [rsi + r14*8 + 0x20], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x20], xmm0"); 0x004c3c58 movups xmmword [rsi + r14*8 + 0x30], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x30], xmm1"); 0x004c3c5e movups xmm0, xmmword [rsi + r15*8 + 0x40] | __asm ("movups xmm0, xmmword [rsi + r15*8 + 0x40]"); 0x004c3c64 movups xmm1, xmmword [rsi + r15*8 + 0x50] | __asm ("movups xmm1, xmmword [rsi + r15*8 + 0x50]"); 0x004c3c6a movups xmmword [rsi + r14*8 + 0x40], xmm0 | __asm ("movups xmmword [rsi + r14*8 + 0x40], xmm0"); 0x004c3c70 movups xmmword [rsi + r14*8 + 0x50], xmm1 | __asm ("movups xmmword [rsi + r14*8 + 0x50], xmm1"); 0x004c3c76 movdqu xmm0, xmmword [rsi + r15*8 + 0x60] | __asm ("movdqu xmm0, xmmword [rsi + r15*8 + 0x60]"); 0x004c3c7d movdqu xmm1, xmmword [rsi + r15*8 + 0x70] | __asm ("movdqu xmm1, xmmword [rsi + r15*8 + 0x70]"); 0x004c3c84 movdqu xmmword [rsi + r14*8 + 0x60], xmm0 | __asm ("movdqu xmmword [rsi + r14*8 + 0x60], xmm0"); 0x004c3c8b movdqu xmmword [rsi + r14*8 + 0x70], xmm1 | __asm ("movdqu xmmword [rsi + r14*8 + 0x70], xmm1"); 0x004c3c92 add rbx, 0x10 | rbx += 0x10; 0x004c3c96 sub rsi, 0xffffffffffffff80 | rsi -= 0xffffffffffffff80; 0x004c3c9a add rbp, 4 | rbp += 4; 0x004c3c9e jne 0x4c3c30 | | } while (rbp != 0); | label_16: 0x004c3ca0 test rdx, rdx | | if (rdx == 0) { 0x004c3ca3 je 0x4c3cf3 | goto label_17; | } 0x004c3ca5 shl r14, 3 | r14 <<= 3; 0x004c3ca9 lea rsi, [rbx*8 + 0x74f420] | rsi = rbx*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3cb1 neg rdx | rdx = -rdx; 0x004c3cb4 nop word cs:[rax + rax] | 0x004c3cbe nop | | do { 0x004c3cc0 movdqu xmm0, xmmword [rdi + rbx*8 + 0x74f420] | __asm ("movdqu xmm0, xmmword [rdi + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u]"); 0x004c3cc9 movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f430] | __asm ("movdqu xmm1, xmmword [rdi + rbx*8 + 0x74f430]"); 0x004c3cd2 movdqu xmmword [r14 + rbx*8 + 0x74f420], xmm0 | __asm ("movdqu xmmword [r14 + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c3cdc movdqu xmmword [r14 + rbx*8 + 0x74f430], xmm1 | __asm ("movdqu xmmword [r14 + rbx*8 + 0x74f430], xmm1"); 0x004c3ce6 add rbx, 4 | rbx += 4; 0x004c3cea add rsi, 0x20 | rsi += 0x20; 0x004c3cee inc rdx | rdx++; 0x004c3cf1 jne 0x4c3cc0 | | } while (rdx != 0); | label_17: 0x004c3cf3 cmp r10, r8 | 0x004c3cf6 mov rbp, r11 | 0x004c3cf9 mov ebx, r13d | ebx = r13d; | if (r10 == r8) { 0x004c3cfc je 0x4c3d31 | goto label_11; | } 0x004c3cfe lea rax, [rax + r8*8] | rax = rax + r8*8; 0x004c3d02 lea rcx, [rcx + r8*8] | rcx = rcx + r8*8; 0x004c3d06 nop word cs:[rax + rax] | | label_14: 0x004c3d10 sub r9, rax | r9 -= rax; 0x004c3d13 lea rdx, [r9 + 0x74f420] | rdx = r9 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c3d1a xor esi, esi | esi = 0; 0x004c3d1c nop dword [rax] | | do { 0x004c3d20 mov rdi, qword [rax + rsi] | rdi = *((rax + rsi)); 0x004c3d24 mov qword [rcx + rsi], rdi | *((rcx + rsi)) = rdi; 0x004c3d28 add rsi, 8 | rsi += 8; 0x004c3d2c cmp rdx, rsi | 0x004c3d2f jne 0x4c3d20 | | } while (rdx != rsi); | label_11: 0x004c3d31 cmp byte [rip + 0x254c58], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3d38 je 0x4c3d5b | 0x004c3d3a mov edx, dword [rip + 0x254c64] | edx = numCopyCtorCalls; 0x004c3d40 sub edx, r12d | edx -= r12d; 0x004c3d43 mov ecx, dword [rip + 0x254c63] | ecx = numCharCtorCalls; 0x004c3d49 sub ecx, dword [rsp + 0x14] | ecx -= *((rsp + 0x14)); 0x004c3d4d mov edi, 0x4f5c2a | 0x004c3d52 mov esi, ebx | esi = ebx; 0x004c3d54 xor eax, eax | eax = 0; 0x004c3d56 call 0x401680 | eax = printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_10: 0x004c3d5b cmp byte [rsp + 0x40], 0 | | if (*((rsp + 0x40)) == 0) { 0x004c3d60 je 0x4c3dc0 | goto label_18; | } 0x004c3d62 cmp r12d, dword [rip + 0x254c3b] | | if (r12d != *(obj.numCopyCtorCalls)) { 0x004c3d69 je 0x4c3d94 | 0x004c3d6b mov edi, 0x4f4c78 | 0x004c3d70 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c3d75 mov esi, 0x1005 | esi = 0x1005; 0x004c3d7a xor eax, eax | eax = 0; 0x004c3d7c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3d81 mov eax, dword [rip + 0x254c11] | eax = (anonymous namespace)::testStatus; 0x004c3d87 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3d8a ja 0x4c3d94 | goto label_19; | } 0x004c3d8c inc eax | eax++; 0x004c3d8e mov dword [rip + 0x254c04], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_19: 0x004c3d94 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c3d98 cmp eax, dword [rip + 0x254c0e] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c3d9e je 0x4c38d0 | goto label_2; | } 0x004c3da4 mov edi, 0x4f4c78 | edi = "Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"; 0x004c3da9 mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c3dae mov esi, 0x1006 | esi = 0x1006; 0x004c3db3 jmp 0x4c3e16 | goto label_20; | label_18: 0x004c3dc0 add r12d, dword [rsp + 0x48] | r12d += *((rsp + 0x48)); 0x004c3dc5 cmp r12d, dword [rip + 0x254bd8] | | if (r12d > *(obj.numCopyCtorCalls)) { 0x004c3dcc jle 0x4c3df7 | 0x004c3dce mov edi, 0x4f4c78 | 0x004c3dd3 mov edx, 0x4f5c78 | edx = "NUM_COPIES + NE <= numCopyCtorCalls"; 0x004c3dd8 mov esi, 0x1009 | esi = 0x1009; 0x004c3ddd xor eax, eax | eax = 0; 0x004c3ddf call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3de4 mov eax, dword [rip + 0x254bae] | eax = (anonymous namespace)::testStatus; 0x004c3dea cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3ded ja 0x4c3df7 | goto label_21; | } 0x004c3def inc eax | eax++; 0x004c3df1 mov dword [rip + 0x254ba1], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_21: 0x004c3df7 mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c3dfb cmp eax, dword [rip + 0x254bab] | | if (eax == *(obj.numCharCtorCalls)) { 0x004c3e01 je 0x4c38d0 | goto label_2; | } 0x004c3e07 mov edi, 0x4f4c78 | 0x004c3e0c mov edx, 0x4f5c5a | edx = "NUM_CTORS == numCharCtorCalls"; 0x004c3e11 mov esi, 0x100a | esi = 0x100a; | label_20: 0x004c3e16 xor eax, eax | eax = 0; 0x004c3e18 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3e1d mov eax, dword [rip + 0x254b75] | eax = (anonymous namespace)::testStatus; 0x004c3e23 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3e26 ja 0x4c38d0 | goto label_2; | } 0x004c3e2c inc eax | eax++; 0x004c3e2e mov dword [rip + 0x254b64], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c3e34 jmp 0x4c38d0 | goto label_2; | label_6: 0x004c3e39 cmp byte [rip + 0x254b56], 0 | | if (*(obj.verbose) != 0) { 0x004c3e40 je 0x4c3e4c | 0x004c3e42 mov edi, 0x4f67d2 | 0x004c3e47 call 0x401710 | puts ("\t\tfrom different type."); | } 0x004c3e4c xor r12d, r12d | r12d = 0; 0x004c3e4f jmp 0x4c3e87 | goto label_22; | label_4: 0x004c3e60 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3e65 mov rsi, rbx | rsi = rbx; 0x004c3e68 call 0x4e0090 | voidverify(unsigned long*,char const*) (); 0x004c3e6d mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3e72 mov rsi, rbx | rsi = rbx; 0x004c3e75 call 0x4e02d0 | voidcleanup(unsigned long*,char const*) (); 0x004c3e7a inc r12 | r12++; 0x004c3e7d cmp r12, 0x1e | | if (r12 == 0x1e) { 0x004c3e81 je 0x4c44ad | goto label_23; | } | label_22: 0x004c3e87 lea rbx, [r12*8] | rbx = r12*8; 0x004c3e8f mov rbp, qword [rbx + rbx*4 + 0x4f3b08] | rbp = *((rbx + rbx*4 + 0x4f3b08)); 0x004c3e97 mov rdi, rbp | 0x004c3e9a call 0x401790 | eax = strlen (*((rbx + rbx*4 + 0x4f3b08))); 0x004c3e9f cmp eax, 0x11 | | if (eax >= 0x11) { 0x004c3ea2 jl 0x4c3ecd | 0x004c3ea4 mov edi, 0x4f4c78 | 0x004c3ea9 mov edx, 0x4f4203 | edx = "MAX_SIZE >= (int)std::strlen(SPEC)"; 0x004c3eae mov esi, 0x1019 | esi = 0x1019; 0x004c3eb3 xor eax, eax | eax = 0; 0x004c3eb5 call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3eba mov eax, dword [rip + 0x254ad8] | eax = (anonymous namespace)::testStatus; 0x004c3ec0 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3ec3 ja 0x4c3ecd | goto label_24; | } 0x004c3ec5 inc eax | eax++; 0x004c3ec7 mov dword [rip + 0x254acb], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_24: 0x004c3ecd mov rdi, rbp | 0x004c3ed0 call 0x401790 | rax = strlen (rbp); 0x004c3ed5 cmp rax, 0x14 | | if (rax >= 0x14) { 0x004c3ed9 jb 0x4c3f04 | 0x004c3edb mov edi, 0x4f4c78 | 0x004c3ee0 mov edx, 0x4f5c9c | edx = "SPEC_CE_LEN > std::strlen(SPEC)"; 0x004c3ee5 mov esi, 0x101c | esi = 0x101c; 0x004c3eea xor eax, eax | eax = 0; 0x004c3eec call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c3ef1 mov eax, dword [rip + 0x254aa1] | eax = (anonymous namespace)::testStatus; 0x004c3ef7 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c3efa ja 0x4c3f04 | goto label_25; | } 0x004c3efc inc eax | eax++; 0x004c3efe mov dword [rip + 0x254a94], eax | *(obj._anonymous_namespace_::testStatus) = eax; | } | label_25: 0x004c3f04 mov qword [rsp + 0x18], r12 | *((rsp + 0x18)) = r12; 0x004c3f09 pxor xmm0, xmm0 | xmm0 = 0; 0x004c3f0d movdqa xmmword [rsp + 0x20], xmm0 | __asm ("movdqa xmmword [rsp + 0x20], xmm0"); 0x004c3f13 mov dword [rsp + 0x30], 0 | *((rsp + 0x30)) = 0; 0x004c3f1b mov al, byte [rbp] | al = *(rbp); 0x004c3f1e test al, al | | if (al == 0) { 0x004c3f20 je 0x4c3f40 | goto label_26; | } 0x004c3f22 xor ecx, ecx | ecx = 0; 0x004c3f24 nop word cs:[rax + rax] | 0x004c3f2e nop | | do { 0x004c3f30 mov byte [rsp + rcx + 0x20], al | *((rsp + rcx + 0x20)) = al; 0x004c3f34 movzx eax, byte [rbp + rcx + 1] | eax = *((rbp + rcx + 1)); 0x004c3f39 inc rcx | rcx++; 0x004c3f3c test al, al | 0x004c3f3e jne 0x4c3f30 | | } while (al != 0); | label_26: 0x004c3f40 mov r14d, dword [rbx + rbx*4 + 0x4f3b00] | r14d = *((rbx + rbx*4 + obj.DATA_3)); 0x004c3f48 movsxd r13, dword [rbx + rbx*4 + 0x4f3b10] | r13 = *((rbx + rbx*4 + 0x4f3b10)); 0x004c3f50 movsxd r12, dword [rbx + rbx*4 + 0x4f3b14] | r12 = *((rbx + rbx*4 + 0x4f3b14)); 0x004c3f58 movsxd r15, dword [rbx + rbx*4 + 0x4f3b18] | r15 = *((rbx + rbx*4 + 0x4f3b18)); 0x004c3f60 mov rbx, qword [rbx + rbx*4 + 0x4f3b20] | rbx = *((rbx + rbx*4 + 0x4f3b20)); 0x004c3f68 cmp byte [rip + 0x254a21], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c3f6f je 0x4c3f90 | 0x004c3f71 mov qword [rsp], rbx | *(rsp) = rbx; 0x004c3f75 mov edi, 0x4f5ab7 | 0x004c3f7a mov esi, r14d | esi = r14d; 0x004c3f7d mov rdx, rbp | rdx = rbp; 0x004c3f80 mov ecx, r13d | ecx = r13d; 0x004c3f83 mov r8d, r12d | r8d = r12d; 0x004c3f86 mov r9d, r15d | r9d = r15d; 0x004c3f89 xor eax, eax | eax = 0; 0x004c3f8b call 0x401680 | printf ("LINE = %d, SPEC = %s, SRC = %d, NE = %d, DST = %d, EXP = %s\n"); | } 0x004c3f90 mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3f95 mov rsi, rbp | rsi = rbp; 0x004c3f98 call 0x4dffb0 | unsigned long&gg(unsigned long*,char const*) (); 0x004c3f9d mov edi, 0x74f420 | edi = testCopyConstructWithIterators(bool, bool, bool)::u; 0x004c3fa2 mov rsi, rbp | rsi = rbp; 0x004c3fa5 call 0x4e0090 | voidverify(unsigned long*,char const*) (); 0x004c3faa mov eax, dword [rip + 0x2549f4] | eax = numCopyCtorCalls; 0x004c3fb0 mov dword [rsp + 0x14], eax | *((rsp + 0x14)) = eax; 0x004c3fb4 mov eax, dword [rip + 0x2549f2] | eax = numCharCtorCalls; 0x004c3fba mov dword [rsp + 0x48], eax | *((rsp + 0x48)) = eax; 0x004c3fbe cmp byte [rsp + 0x54], 0 | | if (*((rsp + 0x54)) == 0) { 0x004c3fc3 je 0x4c4090 | goto label_27; | } 0x004c3fc9 cmp byte [rip + 0x2549c0], 0 | 0x004c3fd0 mov ebp, r14d | | if (*(obj.veryVerbose) != 0) { 0x004c3fd3 je 0x4c3fe8 | 0x004c3fd5 cmp dword [rip + 0x254580], 0 | | if (*(obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::firstTime) == 0) { 0x004c3fdc je 0x4c3fe8 | goto label_28; | } 0x004c3fde mov edi, 0x4f425a | 0x004c3fe3 call 0x401710 | puts ("\t\tBSLMA EXCEPTION TEST -- (ENABLED) --"); | } | label_28: 0x004c3fe8 mov dword [rip + 0x25456a], 0 | *(obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::firstTime) = 0; 0x004c3ff2 cmp byte [rip + 0x25499c], 0 | | if (*(obj.veryVeryVerbose) != 0) { 0x004c3ff9 je 0x4c4005 | 0x004c3ffb mov edi, 0x4f4281 | 0x004c4000 call 0x401710 | puts ("\t\tBegin bslma exception test."); | } 0x004c4005 mov rax, qword [rip + 0x254814] | rax = Z; 0x004c400c mov qword [rsp + 0x58], 0x4f6858 | *((rsp + 0x58)) = vtable.BloombergLP::bslma::TestAllocator_Proxy_BloombergLP::bslma::TestAllocator_.0; 0x004c4015 mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004c401a mov qword [rax + 0x20], 0 | *((rax + 0x20)) = 0; 0x004c4022 test rax, rax | 0x004c4025 je 0x4c411d | | while (rax != 0) { | label_3: 0x004c402b cmp qword [rsp + 0x18], 6 | | if (*((rsp + 0x18)) < 6) { 0x004c4031 jb 0x4c4401 | goto label_29; | } 0x004c4037 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c403c lea rsi, [r15*8 + 0x74f420] | rsi = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c4044 lea eax, [r13 + r12] | eax = r13 + r12; 0x004c4049 movsxd r9, eax | r9 = (int64_t) eax; 0x004c404c mov r10, r9 | r10 = r9; 0x004c404f sub r10, r13 | r10 -= r13; 0x004c4052 cmp r10, 4 | | if (r10 < 4) { 0x004c4056 jb 0x4c43e6 | goto label_30; | } 0x004c405c mov r11, rbx | r11 = rbx; 0x004c405f mov r8, r10 | r8 = r10; 0x004c4062 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c4066 lea rax, [r8 - 4] | rax = r8 - 4; 0x004c406a mov rbp, rax | 0x004c406d shr rbp, 2 | rbp >>= 2; 0x004c4071 inc rbp | rbp++; 0x004c4074 mov edi, ebp | edi = ebp; 0x004c4076 and edi, 3 | edi &= 3; 0x004c4079 cmp rax, 0xc | | if (rax >= 0xc) { 0x004c407d jae 0x4c42d6 | goto label_31; | } 0x004c4083 xor ebx, ebx | ebx = 0; 0x004c4085 jmp 0x4c4385 | goto label_32; | label_27: 0x004c4090 cmp qword [rip + 0x254788], 0 | 0x004c4098 mov ebp, r14d | 0x004c409b mov r11, r12 | r11 = r12; | if (*(obj.Z) == 0) { 0x004c409e jne 0x4c40c0 | 0x004c40a0 mov rax, qword [rip + 0x28d211] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c40a7 test rax, rax | | if (rax != 0) { 0x004c40aa jne 0x4c40c0 | goto label_33; | } 0x004c40ac call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c40b1 mov r11, r12 | r11 = r12; 0x004c40b4 nop word cs:[rax + rax] | 0x004c40be nop | | } | label_33: 0x004c40c0 mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); 0x004c40c5 cmp r12, 6 | | if (r12 < 6) { 0x004c40c9 jb 0x4c4440 | goto label_34; | } 0x004c40cf lea rax, [r15*8 + 0x74f420] | rax = r15*8 + obj_testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u; 0x004c40d7 lea rcx, [rsp + r13 + 0x20] | rcx = rsp + r13 + 0x20; 0x004c40dc add r11, r13 | r11 += r13; 0x004c40df mov r9, r11 | r9 = r11; 0x004c40e2 sub r9, r13 | r9 -= r13; 0x004c40e5 cmp r9, 4 | | if (r9 < 4) { 0x004c40e9 jb 0x4c42aa | goto label_35; | } 0x004c40ef mov r10, rbx | r10 = rbx; 0x004c40f2 mov r8, r9 | r8 = r9; 0x004c40f5 and r8, 0xfffffffffffffffc | r8 &= 0xfffffffffffffffc; 0x004c40f9 lea rsi, [r8 - 4] | rsi = r8 - 4; 0x004c40fd mov rdi, rsi | rdi = rsi; 0x004c4100 shr rdi, 2 | rdi >>= 2; 0x004c4104 inc rdi | rdi++; 0x004c4107 mov ebp, edi | 0x004c4109 and ebp, 3 | ebp &= 3; 0x004c410c cmp rsi, 0xc | | if (rsi >= 0xc) { 0x004c4110 jae 0x4c419d | goto label_36; | } 0x004c4116 xor ebx, ebx | ebx = 0; 0x004c4118 jmp 0x4c4245 | goto label_37; 0x004c411d mov eax, 1 | eax = 1; 0x004c4122 mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004c4127 mov rax, qword [rip + 0x28d18a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004c412e test rax, rax | 0x004c4131 jne 0x4c402b | | } 0x004c4137 call 0x4eec50 | BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004c413c jmp 0x4c402b | goto label_3; | label_36: 0x004c419d lea rdx, [rsp + 0x2e] | rdx = rsp + 0x2e; 0x004c41a2 lea rsi, [rdx + r13] | rsi = rdx + r13; 0x004c41a6 and rdi, 0xfffffffffffffffc | rdi &= 0xfffffffffffffffc; 0x004c41aa neg rdi | rdi = -rdi; 0x004c41ad xor ebx, ebx | ebx = 0; 0x004c41af nop | | do { 0x004c41b0 pmovsxbq xmm0, word [rsi + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xe]"); 0x004c41b7 pmovsxbq xmm1, word [rsi + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 0xc]"); 0x004c41be lea rdx, [r15*8] | rdx = r15*8; 0x004c41c6 movdqu xmmword [rdx + rbx*8 + 0x74f420], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c41cf movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1"); 0x004c41d8 pmovsxbq xmm0, word [rsi + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 0xa]"); 0x004c41df pmovsxbq xmm1, word [rsi + rbx - 8] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 8]"); 0x004c41e6 movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0"); 0x004c41ef movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1"); 0x004c41f8 pmovsxbq xmm0, word [rsi + rbx - 6] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 6]"); 0x004c41ff pmovsxbq xmm1, word [rsi + rbx - 4] | __asm ("pmovsxbq xmm1, word [rsi + rbx - 4]"); 0x004c4206 movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0"); 0x004c420f movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1"); 0x004c4218 pmovsxbq xmm0, word [rsi + rbx - 2] | __asm ("pmovsxbq xmm0, word [rsi + rbx - 2]"); 0x004c421f pmovsxbq xmm1, word [rsi + rbx] | __asm ("pmovsxbq xmm1, word [rsi + rbx]"); 0x004c4225 movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0"); 0x004c422e movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1"); 0x004c4237 add rbx, 0x10 | rbx += 0x10; 0x004c423b add rdi, 4 | rdi += 4; 0x004c423f jne 0x4c41b0 | | } while (rdi != 0); | label_37: 0x004c4245 test rbp, rbp | | if (rbp == 0) { 0x004c4248 je 0x4c4294 | goto label_38; | } 0x004c424a add r13, rbx | r13 += rbx; 0x004c424d lea rdx, [rsp + 0x22] | rdx = rsp + 0x22; 0x004c4252 add r13, rdx | r13 += rdx; 0x004c4255 shl r15, 3 | r15 <<= 3; 0x004c4259 lea rsi, [r15 + rbx*8 + 0x74f430] | rsi = r15 + rbx*8 + 0x74f430; 0x004c4261 shl rbp, 2 | rbp <<= 2; 0x004c4265 xor edi, edi | edi = 0; 0x004c4267 nop word [rax + rax] | | do { 0x004c4270 pmovsxbq xmm0, word [r13 + rdi - 2] | __asm ("pmovsxbq xmm0, word [r13 + rdi - 2]"); 0x004c4278 pmovsxbq xmm1, word [r13 + rdi] | __asm ("pmovsxbq xmm1, word [r13 + rdi]"); 0x004c4280 movdqu xmmword [rsi + rdi*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rsi + rdi*8 - 0x10], xmm0"); 0x004c4286 movdqu xmmword [rsi + rdi*8], xmm1 | __asm ("movdqu xmmword [rsi + rdi*8], xmm1"); 0x004c428b add rdi, 4 | rdi += 4; 0x004c428f cmp rbp, rdi | 0x004c4292 jne 0x4c4270 | | } while (rbp != rdi); | label_38: 0x004c4294 cmp r9, r8 | 0x004c4297 mov rbx, r10 | rbx = r10; 0x004c429a mov ebp, r14d | | if (r9 == r8) { 0x004c429d je 0x4c4440 | goto label_34; | } 0x004c42a3 add rcx, r8 | rcx += r8; 0x004c42a6 lea rax, [rax + r8*8] | rax = rax + r8*8; | label_35: 0x004c42aa sub r11, rcx | r11 -= rcx; 0x004c42ad lea rdx, [rsp + r11 + 0x20] | rdx = rsp + r11 + 0x20; 0x004c42b2 xor esi, esi | esi = 0; 0x004c42b4 nop word cs:[rax + rax] | 0x004c42be nop | | do { 0x004c42c0 movsx rdi, byte [rcx + rsi] | rdi = *((rcx + rsi)); 0x004c42c5 mov qword [rax + rsi*8], rdi | *((rax + rsi*8)) = rdi; 0x004c42c9 inc rsi | rsi++; 0x004c42cc cmp rdx, rsi | 0x004c42cf jne 0x4c42c0 | | } while (rdx != rsi); 0x004c42d1 jmp 0x4c4440 | goto label_34; | label_31: 0x004c42d6 lea rax, [rsp + 0x2e] | rax = rsp + 0x2e; 0x004c42db add rax, r13 | rax += r13; 0x004c42de and rbp, 0xfffffffffffffffc | rbp &= 0xfffffffffffffffc; 0x004c42e2 neg rbp | rbp = -rbp; 0x004c42e5 xor ebx, ebx | ebx = 0; 0x004c42e7 nop word [rax + rax] | | do { 0x004c42f0 pmovsxbq xmm0, word [rax + rbx - 0xe] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xe]"); 0x004c42f7 pmovsxbq xmm1, word [rax + rbx - 0xc] | __asm ("pmovsxbq xmm1, word [rax + rbx - 0xc]"); 0x004c42fe lea rdx, [r15*8] | rdx = r15*8; 0x004c4306 movdqu xmmword [rdx + rbx*8 + 0x74f420], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + obj.testCopyConstructWithIterators_unsigned_long__bool__bool__bool_::u], xmm0"); 0x004c430f movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f430], xmm1"); 0x004c4318 pmovsxbq xmm0, word [rax + rbx - 0xa] | __asm ("pmovsxbq xmm0, word [rax + rbx - 0xa]"); 0x004c431f pmovsxbq xmm1, word [rax + rbx - 8] | __asm ("pmovsxbq xmm1, word [rax + rbx - 8]"); 0x004c4326 movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f440], xmm0"); 0x004c432f movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f450], xmm1"); 0x004c4338 pmovsxbq xmm0, word [rax + rbx - 6] | __asm ("pmovsxbq xmm0, word [rax + rbx - 6]"); 0x004c433f pmovsxbq xmm1, word [rax + rbx - 4] | __asm ("pmovsxbq xmm1, word [rax + rbx - 4]"); 0x004c4346 movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f460], xmm0"); 0x004c434f movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f470], xmm1"); 0x004c4358 pmovsxbq xmm0, word [rax + rbx - 2] | __asm ("pmovsxbq xmm0, word [rax + rbx - 2]"); 0x004c435f pmovsxbq xmm1, word [rax + rbx] | __asm ("pmovsxbq xmm1, word [rax + rbx]"); 0x004c4365 movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f480], xmm0"); 0x004c436e movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1 | __asm ("movdqu xmmword [rdx + rbx*8 + 0x74f490], xmm1"); 0x004c4377 add rbx, 0x10 | rbx += 0x10; 0x004c437b add rbp, 4 | rbp += 4; 0x004c437f jne 0x4c42f0 | | } while (rbp != 0); | label_32: 0x004c4385 test rdi, rdi | | if (rdi == 0) { 0x004c4388 je 0x4c43d4 | goto label_39; | } 0x004c438a add r13, rbx | r13 += rbx; 0x004c438d lea rax, [rsp + 0x22] | rax = rsp + 0x22; 0x004c4392 add r13, rax | r13 += rax; 0x004c4395 shl r15, 3 | r15 <<= 3; 0x004c4399 lea rax, [r15 + rbx*8 + 0x74f430] | rax = r15 + rbx*8 + 0x74f430; 0x004c43a1 shl rdi, 2 | rdi <<= 2; 0x004c43a5 xor ebp, ebp | ebp = 0; 0x004c43a7 nop word [rax + rax] | | do { 0x004c43b0 pmovsxbq xmm0, word [r13 + rbp - 2] | __asm ("pmovsxbq xmm0, word [r13 + rbp - 2]"); 0x004c43b8 pmovsxbq xmm1, word [r13 + rbp] | __asm ("pmovsxbq xmm1, word [r13 + rbp]"); 0x004c43c0 movdqu xmmword [rax + rbp*8 - 0x10], xmm0 | __asm ("movdqu xmmword [rax + rbp*8 - 0x10], xmm0"); 0x004c43c6 movdqu xmmword [rax + rbp*8], xmm1 | __asm ("movdqu xmmword [rax + rbp*8], xmm1"); 0x004c43cb add rbp, 4 | rbp += 4; 0x004c43cf cmp rdi, rbp | 0x004c43d2 jne 0x4c43b0 | | } while (rdi != rbp); | label_39: 0x004c43d4 cmp r10, r8 | 0x004c43d7 mov rbx, r11 | rbx = r11; 0x004c43da mov ebp, r14d | | if (r10 == r8) { 0x004c43dd je 0x4c4401 | goto label_29; | } 0x004c43df add rcx, r8 | rcx += r8; 0x004c43e2 lea rsi, [rsi + r8*8] | rsi = rsi + r8*8; | label_30: 0x004c43e6 sub r9, rcx | r9 -= rcx; 0x004c43e9 lea rax, [rsp + r9 + 0x20] | rax = rsp + r9 + 0x20; 0x004c43ee xor edi, edi | edi = 0; | do { 0x004c43f0 movsx rdx, byte [rcx + rdi] | rdx = *((rcx + rdi)); 0x004c43f5 mov qword [rsi + rdi*8], rdx | *((rsi + rdi*8)) = rdx; 0x004c43f9 inc rdi | rdi++; 0x004c43fc cmp rax, rdi | 0x004c43ff jne 0x4c43f0 | | } while (rax != rdi); | label_29: 0x004c4401 mov rax, qword [rsp + 0x58] | rax = *((rsp + 0x58)); 0x004c4406 lea rdi, [rsp + 0x58] | rdi = rsp + 0x58; 0x004c440b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004c4412 call qword [rax + 0x10] | uint64_t (*rax + 0x10)() (); 0x004c4415 cmp byte [rip + 0x254579], 0 | 0x004c441c mov r12, qword [rsp + 0x18] | r12 = *((rsp + 0x18)); | if (*(obj.veryVeryVerbose) != 0) { 0x004c4421 je 0x4c442d | 0x004c4423 mov edi, 0x4f43e1 | 0x004c4428 call 0x401710 | puts ("\t\tEnd bslma exception test."); | } 0x004c442d cmp byte [rip + 0x25455c], 0 | | if (*(obj.veryVerbose) != 0) { 0x004c4434 je 0x4c446b | 0x004c4436 mov edi, 0xa | 0x004c443b call 0x401720 | eax = putchar (0xa); | label_34: 0x004c4440 cmp byte [rip + 0x254549], 0 | | if (*(obj.veryVerbose) == 0) { 0x004c4447 je 0x4c446b | goto label_40; | } 0x004c4449 mov edx, dword [rip + 0x254555] | edx = numCopyCtorCalls; 0x004c444f sub edx, dword [rsp + 0x14] | edx -= *((rsp + 0x14)); 0x004c4453 mov ecx, dword [rip + 0x254553] | ecx = numCharCtorCalls; 0x004c4459 sub ecx, dword [rsp + 0x48] | ecx -= *((rsp + 0x48)); 0x004c445d mov edi, 0x4f5c2a | 0x004c4462 mov esi, ebp | esi = ebp; 0x004c4464 xor eax, eax | eax = 0; 0x004c4466 call 0x401680 | printf ("LINE = %d, #copy ctors = %d, #char ctors = %d.\n"); | } | label_40: 0x004c446b mov eax, dword [rsp + 0x14] | eax = *((rsp + 0x14)); 0x004c446f cmp eax, dword [rip + 0x25452f] | | if (eax == *(obj.numCopyCtorCalls)) { 0x004c4475 je 0x4c3e60 | goto label_4; | } 0x004c447b mov edi, 0x4f4c78 | 0x004c4480 mov edx, 0x4f4fec | edx = "NUM_COPIES == numCopyCtorCalls"; 0x004c4485 mov esi, 0x103f | esi = 0x103f; 0x004c448a xor eax, eax | eax = 0; 0x004c448c call 0x401680 | printf ("Error /home/parsa/experiments/assumptions/crush/ccm-assume/groups/bsl/bslalg/bslalg_arrayprimitives.t.cpp(%d): %s (failed)\n"); 0x004c4491 mov eax, dword [rip + 0x254501] | eax = (anonymous namespace)::testStatus; 0x004c4497 cmp eax, 0x64 | | if (eax > 0x64) { 0x004c449a ja 0x4c3e60 | goto label_4; | } 0x004c44a0 inc eax | eax++; 0x004c44a2 mov dword [rip + 0x2544f0], eax | *(obj._anonymous_namespace_::testStatus) = eax; 0x004c44a8 jmp 0x4c3e60 | goto label_4; | label_23: 0x004c44ad add rsp, 0x68 | 0x004c44b1 pop rbx | 0x004c44b2 pop r12 | 0x004c44b4 pop r13 | 0x004c44b6 pop r14 | 0x004c44b8 pop r15 | 0x004c44ba pop rbp | 0x004c44bb ret | return rax; | }