pure nothrow @safe std.bigint.BigInt example.fib1!(std.bigint.BigInt).fib1(std.bigint.BigInt):
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 168
mov rbx, rdi
mov rax, qword ptr [rip + std.bigint.BigInt.__init@GOTPCREL]
mov r12, qword ptr [rax + 16]
mov qword ptr [rdi + 16], r12
movups xmm0, xmmword ptr [rax]
movaps xmmword ptr [rsp + 128], xmm0
movups xmmword ptr [rdi], xmm0
mov r15, qword ptr [rip + TypeInfo_Ayk.__init@GOTPCREL]
mov esi, 1
mov rdi, r15
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rbx], 1
mov qword ptr [rbx + 8], rdx
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov rax, qword ptr [rip + immutable(uint[]) std.internal.math.biguintcore.ONE@GOTPCREL]
mov rbp, qword ptr [rax]
mov r14, qword ptr [rax + 8]
mov qword ptr [rbx], rbp
mov qword ptr [rbx + 8], r14
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rbx + 16], 0
movups xmm0, xmmword ptr [rbx]
movaps xmmword ptr [rsp + 96], xmm0
mov qword ptr [rsp + 88], rbx
mov rax, qword ptr [rbx + 16]
mov qword ptr [rsp + 112], rax
movaps xmm0, xmmword ptr [rsp + 128]
movaps xmmword ptr [rsp], xmm0
mov qword ptr [rsp + 16], r12
mov esi, 1
mov rdi, r15
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp], 1
mov qword ptr [rsp + 8], rdx
mov rbx, rsp
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp], rbp
mov qword ptr [rsp + 8], r14
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rsp + 16], 0
movaps xmm0, xmmword ptr [rsp + 224]
movaps xmmword ptr [rsp + 64], xmm0
mov rax, qword ptr [rsp + 240]
mov qword ptr [rsp + 80], rax
xor eax, eax
jmp .LBB4_1
.LBB4_3:
lea rdi, [rsp + 64]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
.LBB4_8:
mov r12, qword ptr [rsp + 96]
mov r13, qword ptr [rsp + 104]
movzx ecx, byte ptr [rsp + 112]
mov byte ptr [rsp + 128], cl
mov r14, qword ptr [rsp + 88]
movups xmm0, xmmword ptr [r14]
movaps xmmword ptr [rsp + 32], xmm0
mov rax, qword ptr [r14 + 16]
mov qword ptr [rsp + 48], rax
mov r8, qword ptr [rsp + 32]
mov r9, qword ptr [rsp + 40]
xor esi, esi
cmp al, cl
setne sil
lea rdi, [rsp + 48]
mov rdx, r12
mov rcx, r13
call pure nothrow @safe std.internal.math.biguintcore.BigUint std.internal.math.biguintcore.BigUint.addOrSub(std.internal.math.biguintcore.BigUint, std.internal.math.biguintcore.BigUint, bool, bool*)@PLT
mov rbp, rax
mov r15, rdx
lea rbx, [rsp + 32]
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp + 32], rbp
mov qword ptr [rsp + 40], r15
mov rdi, rbx
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
movaps xmm0, xmmword ptr [rsp + 32]
movaps xmmword ptr [rsp + 144], xmm0
movzx ebx, byte ptr [rsp + 48]
lea rbp, [rsp + 96]
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
movaps xmm0, xmmword ptr [rsp + 144]
movaps xmmword ptr [rsp + 96], xmm0
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rsp + 112], bl
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [r14], r12
mov qword ptr [r14 + 8], r13
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
movzx eax, byte ptr [rsp + 128]
mov byte ptr [r14 + 16], al
mov rcx, qword ptr [rsp]
mov r8, qword ptr [rsp + 8]
movzx esi, byte ptr [rsp + 16]
mov edx, 1
lea rdi, [rsp + 16]
call pure nothrow @safe std.internal.math.biguintcore.BigUint std.internal.math.biguintcore.BigUint.addOrSubInt!(ulong).addOrSubInt(const(std.internal.math.biguintcore.BigUint), ulong, bool, ref bool)@PLT
mov rbp, rax
mov rbx, rdx
mov r14, rsp
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp], rbp
mov qword ptr [rsp + 8], rbx
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
movzx eax, byte ptr [rsp + 16]
.LBB4_1:
cmp al, byte ptr [rsp + 80]
jne .LBB4_8
lea rdi, [rsp + 64]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov rdx, qword ptr [rsp]
cmp rdx, qword ptr [rsp + 64]
jne .LBB4_3
test rdx, rdx
je .LBB4_5
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 72]
shl rdx, 2
call bcmp@PLT
mov ebp, eax
lea rdi, [rsp + 64]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
test ebp, ebp
jne .LBB4_8
jmp .LBB4_6
.LBB4_5:
lea rdi, [rsp + 64]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
.LBB4_6:
mov rax, qword ptr [rsp + 88]
add rsp, 168
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
pure nothrow @safe std.bigint.BigInt example.fib2!(std.bigint.BigInt).fib2(std.bigint.BigInt):
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 280
mov qword ptr [rsp + 216], rdi
mov r14, qword ptr [rip + TypeInfo_Ayk.__init@GOTPCREL]
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp + 152], 0
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp + 136], 1
mov qword ptr [rsp + 144], rdx
lea rbp, [rsp + 136]
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov rax, qword ptr [rip + immutable(uint[]) std.internal.math.biguintcore.ONE@GOTPCREL]
mov rbx, qword ptr [rax]
mov r15, qword ptr [rax + 8]
mov qword ptr [rsp + 136], rbx
mov qword ptr [rsp + 144], r15
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rsp + 152], 0
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp + 128], 0
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp + 112], 1
mov qword ptr [rsp + 120], rdx
lea rbp, [rsp + 112]
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp + 112], rbx
mov qword ptr [rsp + 120], r15
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rsp + 128], 0
mov rax, qword ptr [rsp + 152]
mov qword ptr [rsp + 48], rax
movups xmm0, xmmword ptr [rsp + 136]
movaps xmmword ptr [rsp + 32], xmm0
movups xmm0, xmmword ptr [rsp + 112]
movaps xmmword ptr [rsp + 224], xmm0
mov rax, qword ptr [rsp + 128]
mov qword ptr [rsp + 240], rax
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
movaps xmm0, xmmword ptr [rsp + 32]
movaps xmmword ptr [rsp + 160], xmm0
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 176], rax
mov rax, qword ptr [rsp + 240]
mov qword ptr [rsp + 200], rax
movaps xmm0, xmmword ptr [rsp + 224]
movups xmmword ptr [rsp + 184], xmm0
mov rax, qword ptr [rip + std.bigint.BigInt.__init@GOTPCREL]
mov rcx, qword ptr [rax + 16]
mov qword ptr [rsp + 16], rcx
movups xmm0, xmmword ptr [rax]
movaps xmmword ptr [rsp], xmm0
mov esi, 1
mov rdi, r14
call _d_newarrayU@PLT
mov dword ptr [rdx], 0
mov qword ptr [rsp], 1
mov qword ptr [rsp + 8], rdx
mov rbp, rsp
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp], rbx
mov qword ptr [rsp + 8], r15
mov rdi, rbp
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov byte ptr [rsp + 16], 0
movaps xmm0, xmmword ptr [rsp + 336]
movaps xmmword ptr [rsp + 80], xmm0
mov rax, qword ptr [rsp + 352]
mov qword ptr [rsp + 96], rax
xor eax, eax
jmp .LBB7_1
.LBB7_3:
lea rdi, [rsp + 80]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
.LBB7_8:
mov r14, qword ptr [rsp + 184]
mov r15, qword ptr [rsp + 192]
mov rbx, qword ptr [rsp + 200]
movaps xmm0, xmmword ptr [rsp + 160]
movaps xmmword ptr [rsp + 32], xmm0
mov rax, qword ptr [rsp + 176]
mov qword ptr [rsp + 48], rax
mov r8, qword ptr [rsp + 32]
mov r9, qword ptr [rsp + 40]
xor esi, esi
cmp al, bl
setne sil
lea rdi, [rsp + 48]
mov rdx, r14
mov rcx, r15
call pure nothrow @safe std.internal.math.biguintcore.BigUint std.internal.math.biguintcore.BigUint.addOrSub(std.internal.math.biguintcore.BigUint, std.internal.math.biguintcore.BigUint, bool, bool*)@PLT
mov rbp, rax
mov r12, rdx
lea r13, [rsp + 32]
mov rdi, r13
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp + 32], rbp
mov qword ptr [rsp + 40], r12
mov rdi, r13
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov rax, qword ptr [rsp + 48]
mov qword ptr [rsp + 272], rax
movaps xmm0, xmmword ptr [rsp + 32]
movaps xmmword ptr [rsp + 256], xmm0
mov qword ptr [rsp + 32], r14
mov qword ptr [rsp + 40], r15
mov qword ptr [rsp + 48], rbx
lea rcx, [rsp + 48]
mov qword ptr [rcx + 24], rax
movups xmmword ptr [rcx + 8], xmm0
mov rax, qword ptr [rsp + 32]
mov rcx, qword ptr [rsp + 40]
mov rdx, qword ptr [rsp + 48]
mov rsi, qword ptr [rsp + 56]
movups xmm0, xmmword ptr [rsp + 64]
mov qword ptr [rsp + 160], rax
mov qword ptr [rsp + 168], rcx
mov qword ptr [rsp + 176], rdx
mov qword ptr [rsp + 184], rsi
movaps xmmword ptr [rsp + 192], xmm0
mov rcx, qword ptr [rsp]
mov r8, qword ptr [rsp + 8]
movzx esi, byte ptr [rsp + 16]
mov edx, 1
lea rdi, [rsp + 16]
call pure nothrow @safe std.internal.math.biguintcore.BigUint std.internal.math.biguintcore.BigUint.addOrSubInt!(ulong).addOrSubInt(const(std.internal.math.biguintcore.BigUint), ulong, bool, ref bool)@PLT
mov rbp, rax
mov rbx, rdx
mov r14, rsp
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov qword ptr [rsp], rbp
mov qword ptr [rsp + 8], rbx
mov rdi, r14
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
movzx eax, byte ptr [rsp + 16]
.LBB7_1:
cmp al, byte ptr [rsp + 96]
jne .LBB7_8
lea rdi, [rsp + 80]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
mov rdx, qword ptr [rsp]
cmp rdx, qword ptr [rsp + 80]
jne .LBB7_3
test rdx, rdx
je .LBB7_5
mov rdi, qword ptr [rsp + 8]
mov rsi, qword ptr [rsp + 88]
shl rdx, 2
call bcmp@PLT
mov ebp, eax
lea rdi, [rsp + 80]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
test ebp, ebp
jne .LBB7_8
jmp .LBB7_6
.LBB7_5:
lea rdi, [rsp + 80]
call const pure void std.internal.math.biguintcore.BigUint.__invariant()@PLT
.LBB7_6:
mov rcx, qword ptr [rsp + 176]
mov rax, qword ptr [rsp + 216]
mov qword ptr [rax + 16], rcx
movaps xmm0, xmmword ptr [rsp + 160]
movups xmmword ptr [rax], xmm0
add rsp, 280
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret