asm diff

Created Diff never expires
62 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
133 lines
49 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
119 lines
.text
.intel_syntax noprefix
.intel_syntax noprefix
.file "example.290a02931a621f27-cgu.0"
.file "x86_64_bigint_helpers.7d226712d4548253-cgu.0"
.section .text.example::bigint_chain_carrying_add::h8e4280da9079aca1,"ax",@progbits
.section .text.bigint_chain_carrying_add,"ax",@progbits
.globl example::bigint_chain_carrying_add::h8e4280da9079aca1
.globl bigint_chain_carrying_add
.p2align 4, 0x90
.p2align 4
.type example::bigint_chain_carrying_add::h8e4280da9079aca1,@function
.type bigint_chain_carrying_add,@function
example::bigint_chain_carrying_add::h8e4280da9079aca1:
bigint_chain_carrying_add:
.cfi_startproc
.cfi_startproc
mov eax, r8d
mov eax, r8d
test rcx, rcx
test rcx, rcx
je .LBB0_6
je .LBB0_5
mov r8d, ecx
cmp rcx, 1
and r8d, 3
jne .LBB0_6
cmp rcx, 4
xor r8d, r8d
jae .LBB0_7
xor r9d, r9d
jmp .LBB0_3
jmp .LBB0_3
.LBB0_7:
.LBB0_6:
and rcx, -4
mov r9, rcx
and r9, -2
xor r10d, r10d
xor r10d, r10d
.p2align 4, 0x90
.p2align 4
.LBB0_8:
.LBB0_7:
mov r9, qword ptr [rsi + 8*r10]
mov r11, qword ptr [rsi + 8*r10]
movzx eax, al
movzx eax, al
lea r8, [r10 + 2]
bt eax, 0
bt eax, 0
adc r9, qword ptr [rdx + 8*r10]
adc r11, qword ptr [rdx + 8*r10]
mov qword ptr [rdi + 8*r10], r9
mov qword ptr [rdi + 8*r10], r11
mov rax, qword ptr [rsi + 8*r10 + 8]
mov r11, qword ptr [rsi + 8*r10 + 8]
adc rax, qword ptr [rdx + 8*r10 + 8]
adc r11, qword ptr [rdx + 8*r10 + 8]
lea r9, [r10 + 4]
mov qword ptr [rdi + 8*r10 + 8], rax
mov rax, qword ptr [rsi + 8*r10 + 16]
adc rax, qword ptr [rdx + 8*r10 + 16]
mov qword ptr [rdi + 8*r10 + 16], rax
mov r11, qword ptr [rsi + 8*r10 + 24]
adc r11, qword ptr [rdx + 8*r10 + 24]
setb al
setb al
mov qword ptr [rdi + 8*r10 + 24], r11
mov qword ptr [rdi + 8*r10 + 8], r11
mov r10, r9
mov r10, r8
cmp rcx, r9
cmp r9, r8
jne .LBB0_8
jne .LBB0_7
.LBB0_3:
.LBB0_3:
test r8, r8
test cl, 1
je .LBB0_6
je .LBB0_5
lea rcx, [rdi + 8*r9]
mov rcx, qword ptr [rsi + 8*r8]
lea rdx, [rdx + 8*r9]
add rcx, qword ptr [rdx + 8*r8]
lea rsi, [rsi + 8*r9]
setb dl
xor edi, edi
movzx esi, al
.p2align 4, 0x90
add rsi, rcx
.LBB0_5:
mov r9, qword ptr [rsi + 8*rdi]
movzx eax, al
bt eax, 0
adc r9, qword ptr [rdx + 8*rdi]
setb al
setb al
mov qword ptr [rcx + 8*rdi], r9
or al, dl
inc rdi
mov qword ptr [rdi + 8*r8], rsi
cmp r8, rdi
.LBB0_5:
jne .LBB0_5
.LBB0_6:
and al, 1
and al, 1
ret
ret
.Lfunc_end0:
.Lfunc_end0:
.size example::bigint_chain_carrying_add::h8e4280da9079aca1, .Lfunc_end0-example::bigint_chain_carrying_add::h8e4280da9079aca1
.size bigint_chain_carrying_add, .Lfunc_end0-bigint_chain_carrying_add
.cfi_endproc
.cfi_endproc


.section .text.bigint_chain_borrowing_sub,"ax",@progbits
.section .text.bigint_chain_borrowing_sub,"ax",@progbits
.globl bigint_chain_borrowing_sub
.globl bigint_chain_borrowing_sub
.p2align 4, 0x90
.p2align 4
.type bigint_chain_borrowing_sub,@function
.type bigint_chain_borrowing_sub,@function
bigint_chain_borrowing_sub:
bigint_chain_borrowing_sub:
.cfi_startproc
.cfi_startproc
mov eax, r8d
mov eax, r8d
test rcx, rcx
test rcx, rcx
je .LBB1_6
je .LBB1_6
mov r8d, ecx
mov r8d, ecx
and r8d, 3
and r8d, 3
cmp rcx, 4
cmp rcx, 4
jae .LBB1_7
jae .LBB1_7
xor r9d, r9d
xor r9d, r9d
jmp .LBB1_3
jmp .LBB1_3
.LBB1_7:
.LBB1_7:
and rcx, -4
and rcx, -4
xor r10d, r10d
xor r10d, r10d
.p2align 4, 0x90
.p2align 4
.LBB1_8:
.LBB1_8:
mov r9, qword ptr [rsi + 8*r10]
mov r9, qword ptr [rsi + 8*r10]
movzx eax, al
movzx eax, al
bt eax, 0
bt eax, 0
sbb r9, qword ptr [rdx + 8*r10]
sbb r9, qword ptr [rdx + 8*r10]
mov qword ptr [rdi + 8*r10], r9
mov qword ptr [rdi + 8*r10], r9
mov rax, qword ptr [rsi + 8*r10 + 8]
mov rax, qword ptr [rsi + 8*r10 + 8]
sbb rax, qword ptr [rdx + 8*r10 + 8]
sbb rax, qword ptr [rdx + 8*r10 + 8]
lea r9, [r10 + 4]
lea r9, [r10 + 4]
mov qword ptr [rdi + 8*r10 + 8], rax
mov qword ptr [rdi + 8*r10 + 8], rax
mov rax, qword ptr [rsi + 8*r10 + 16]
mov rax, qword ptr [rsi + 8*r10 + 16]
sbb rax, qword ptr [rdx + 8*r10 + 16]
sbb rax, qword ptr [rdx + 8*r10 + 16]
mov qword ptr [rdi + 8*r10 + 16], rax
mov qword ptr [rdi + 8*r10 + 16], rax
mov r11, qword ptr [rsi + 8*r10 + 24]
mov r11, qword ptr [rsi + 8*r10 + 24]
sbb r11, qword ptr [rdx + 8*r10 + 24]
sbb r11, qword ptr [rdx + 8*r10 + 24]
setb al
setb al
mov qword ptr [rdi + 8*r10 + 24], r11
mov qword ptr [rdi + 8*r10 + 24], r11
mov r10, r9
mov r10, r9
cmp rcx, r9
cmp rcx, r9
jne .LBB1_8
jne .LBB1_8
.LBB1_3:
.LBB1_3:
test r8, r8
test r8, r8
je .LBB1_6
je .LBB1_6
lea rcx, [rdi + 8*r9]
lea rcx, [rdi + 8*r9]
lea rdx, [rdx + 8*r9]
lea rdx, [rdx + 8*r9]
lea rsi, [rsi + 8*r9]
lea rsi, [rsi + 8*r9]
xor edi, edi
xor edi, edi
.p2align 4, 0x90
.p2align 4
.LBB1_5:
.LBB1_5:
mov r9, qword ptr [rsi + 8*rdi]
mov r9, qword ptr [rsi + 8*rdi]
movzx eax, al
movzx eax, al
bt eax, 0
bt eax, 0
sbb r9, qword ptr [rdx + 8*rdi]
sbb r9, qword ptr [rdx + 8*rdi]
setb al
setb al
mov qword ptr [rcx + 8*rdi], r9
mov qword ptr [rcx + 8*rdi], r9
inc rdi
inc rdi
cmp r8, rdi
cmp r8, rdi
jne .LBB1_5
jne .LBB1_5
.LBB1_6:
.LBB1_6:
and al, 1
and al, 1
ret
ret
.Lfunc_end1:
.Lfunc_end1:
.size bigint_chain_borrowing_sub, .Lfunc_end1-bigint_chain_borrowing_sub
.size bigint_chain_borrowing_sub, .Lfunc_end1-bigint_chain_borrowing_sub
.cfi_endproc
.cfi_endproc


.ident "rustc version 1.86.0-nightly (6067b3631 2025-01-17)"
.ident "rustc version 1.86.0-dev"
.section ".note.GNU-stack","",@progbits
.section ".note.GNU-stack","",@progbits