asm diff
62 removals
Words removed | 157 |
Total words | 499 |
Words removed (%) | 31.46 |
133 lines
49 additions
Words added | 68 |
Total words | 410 |
Words added (%) | 16.59 |
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