📄 bn-sol.s
字号:
jz .L017aw_finish.L018aw_loop: movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) movl 4(%esi), %ecx movl 4(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 4(%ebx) movl 8(%esi), %ecx movl 8(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 8(%ebx) movl 12(%esi), %ecx movl 12(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 12(%ebx) movl 16(%esi), %ecx movl 16(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 16(%ebx) movl 20(%esi), %ecx movl 20(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 20(%ebx) movl 24(%esi), %ecx movl 24(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 24(%ebx) movl 28(%esi), %ecx movl 28(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 28(%ebx) addl $32, %esi addl $32, %edi addl $32, %ebx subl $8, %ebp jnz .L018aw_loop.L017aw_finish: movl 32(%esp), %ebp andl $7, %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx decl %ebp jz .L019aw_end movl (%esi), %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) addl $4, %esi addl $4, %edi addl $4, %ebx.L019aw_end: cmpl $0, 36(%esp) je .L020pw_end movl 36(%esp), %ebp cmpl $0, %ebp je .L020pw_end jge .L021pw_pos movl $0, %edx subl %ebp, %edx movl %edx, %ebp andl $4294967288, %ebp jz .L022pw_neg_finish.L023pw_neg_loop: movl $0, %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, (%ebx) movl $0, %ecx movl 4(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 4(%ebx) movl $0, %ecx movl 8(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 8(%ebx) movl $0, %ecx movl 12(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 12(%ebx) movl $0, %ecx movl 16(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 16(%ebx) movl $0, %ecx movl 20(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 20(%ebx) movl $0, %ecx movl 24(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 24(%ebx) movl $0, %ecx movl 28(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 28(%ebx) addl $32, %edi addl $32, %ebx subl $8, %ebp jnz .L023pw_neg_loop.L022pw_neg_finish: movl 36(%esp), %edx movl $0, %ebp subl %edx, %ebp andl $7, %ebp jz .L020pw_end movl $0, %ecx movl (%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, (%ebx) jz .L020pw_end movl $0, %ecx movl 4(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, 4(%ebx) jz .L020pw_end movl $0, %ecx movl 8(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, 8(%ebx) jz .L020pw_end movl $0, %ecx movl 12(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, 12(%ebx) jz .L020pw_end movl $0, %ecx movl 16(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, 16(%ebx) jz .L020pw_end movl $0, %ecx movl 20(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax decl %ebp movl %ecx, 20(%ebx) jz .L020pw_end movl $0, %ecx movl 24(%edi), %edx subl %eax, %ecx movl $0, %eax adcl %eax, %eax subl %edx, %ecx adcl $0, %eax movl %ecx, 24(%ebx) jmp .L020pw_end.L021pw_pos: andl $4294967288, %ebp jz .L024pw_pos_finish.L025pw_pos_loop: movl (%esi), %ecx subl %eax, %ecx movl %ecx, (%ebx) jnc .L026pw_nc0 movl 4(%esi), %ecx subl %eax, %ecx movl %ecx, 4(%ebx) jnc .L027pw_nc1 movl 8(%esi), %ecx subl %eax, %ecx movl %ecx, 8(%ebx) jnc .L028pw_nc2 movl 12(%esi), %ecx subl %eax, %ecx movl %ecx, 12(%ebx) jnc .L029pw_nc3 movl 16(%esi), %ecx subl %eax, %ecx movl %ecx, 16(%ebx) jnc .L030pw_nc4 movl 20(%esi), %ecx subl %eax, %ecx movl %ecx, 20(%ebx) jnc .L031pw_nc5 movl 24(%esi), %ecx subl %eax, %ecx movl %ecx, 24(%ebx) jnc .L032pw_nc6 movl 28(%esi), %ecx subl %eax, %ecx movl %ecx, 28(%ebx) jnc .L033pw_nc7 addl $32, %esi addl $32, %ebx subl $8, %ebp jnz .L025pw_pos_loop.L024pw_pos_finish: movl 36(%esp), %ebp andl $7, %ebp jz .L020pw_end movl (%esi), %ecx subl %eax, %ecx movl %ecx, (%ebx) jnc .L034pw_tail_nc0 decl %ebp jz .L020pw_end movl 4(%esi), %ecx subl %eax, %ecx movl %ecx, 4(%ebx) jnc .L035pw_tail_nc1 decl %ebp jz .L020pw_end movl 8(%esi), %ecx subl %eax, %ecx movl %ecx, 8(%ebx) jnc .L036pw_tail_nc2 decl %ebp jz .L020pw_end movl 12(%esi), %ecx subl %eax, %ecx movl %ecx, 12(%ebx) jnc .L037pw_tail_nc3 decl %ebp jz .L020pw_end movl 16(%esi), %ecx subl %eax, %ecx movl %ecx, 16(%ebx) jnc .L038pw_tail_nc4 decl %ebp jz .L020pw_end movl 20(%esi), %ecx subl %eax, %ecx movl %ecx, 20(%ebx) jnc .L039pw_tail_nc5 decl %ebp jz .L020pw_end movl 24(%esi), %ecx subl %eax, %ecx movl %ecx, 24(%ebx) jnc .L040pw_tail_nc6 movl $1, %eax jmp .L020pw_end.L041pw_nc_loop: movl (%esi), %ecx movl %ecx, (%ebx).L026pw_nc0: movl 4(%esi), %ecx movl %ecx, 4(%ebx).L027pw_nc1: movl 8(%esi), %ecx movl %ecx, 8(%ebx).L028pw_nc2: movl 12(%esi), %ecx movl %ecx, 12(%ebx).L029pw_nc3: movl 16(%esi), %ecx movl %ecx, 16(%ebx).L030pw_nc4: movl 20(%esi), %ecx movl %ecx, 20(%ebx).L031pw_nc5: movl 24(%esi), %ecx movl %ecx, 24(%ebx).L032pw_nc6: movl 28(%esi), %ecx movl %ecx, 28(%ebx).L033pw_nc7: addl $32, %esi addl $32, %ebx subl $8, %ebp jnz .L041pw_nc_loop movl 36(%esp), %ebp andl $7, %ebp jz .L042pw_nc_end movl (%esi), %ecx movl %ecx, (%ebx).L034pw_tail_nc0: decl %ebp jz .L042pw_nc_end movl 4(%esi), %ecx movl %ecx, 4(%ebx).L035pw_tail_nc1: decl %ebp jz .L042pw_nc_end movl 8(%esi), %ecx movl %ecx, 8(%ebx).L036pw_tail_nc2: decl %ebp jz .L042pw_nc_end movl 12(%esi), %ecx movl %ecx, 12(%ebx).L037pw_tail_nc3: decl %ebp jz .L042pw_nc_end movl 16(%esi), %ecx movl %ecx, 16(%ebx).L038pw_tail_nc4: decl %ebp jz .L042pw_nc_end movl 20(%esi), %ecx movl %ecx, 20(%ebx).L039pw_tail_nc5: decl %ebp jz .L042pw_nc_end movl 24(%esi), %ecx movl %ecx, 24(%ebx).L040pw_tail_nc6:.L042pw_nc_end: movl $0, %eax.L020pw_end: popl %edi popl %esi popl %ebx popl %ebp ret.L_bn_sub_part_words_end:.size bn_sub_part_words,.L_bn_sub_part_words_end-bn_sub_part_words.ident "bn_sub_part_words".text.globl bn_mul_comba8.type bn_mul_comba8,@function.align 16bn_mul_comba8: pushl %esi movl 12(%esp), %esi pushl %edi movl 20(%esp), %edi pushl %ebp pushl %ebx xorl %ebx, %ebx movl (%esi), %eax xorl %ecx, %ecx movl (%edi), %edx xorl %ebp, %ebp mull %edx addl %eax, %ebx movl 20(%esp), %eax adcl %edx, %ecx movl (%edi), %edx adcl $0, %ebp movl %ebx, (%eax) movl 4(%esi), %eax xorl %ebx, %ebx mull %edx addl %eax, %ecx movl (%esi), %eax adcl %edx, %ebp movl 4(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 20(%esp), %eax adcl %edx, %ebp movl (%edi), %edx adcl $0, %ebx movl %ecx, 4(%eax) movl 8(%esi), %eax xorl %ecx, %ecx mull %edx addl %eax, %ebp movl 4(%esi), %eax adcl %edx, %ebx movl 4(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl (%esi), %eax adcl %edx, %ebx movl 8(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 20(%esp), %eax adcl %edx, %ebx movl (%edi), %edx adcl $0, %ecx movl %ebp, 8(%eax) movl 12(%esi), %eax xorl %ebp, %ebp mull %edx addl %eax, %ebx movl 8(%esi), %eax adcl %edx, %ecx movl 4(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 4(%esi), %eax adcl %edx, %ecx movl 8(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl (%esi), %eax adcl %edx, %ecx movl 12(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 20(%esp), %eax adcl %edx, %ecx movl (%edi), %edx adcl $0, %ebp movl %ebx, 12(%eax) movl 16(%esi), %eax xorl %ebx, %ebx mull %edx addl %eax, %ecx movl 12(%esi), %eax adcl %edx, %ebp movl 4(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 8(%esi), %eax adcl %edx, %ebp movl 8(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 4(%esi), %eax adcl %edx, %ebp movl 12(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl (%esi), %eax adcl %edx, %ebp movl 16(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 20(%esp), %eax adcl %edx, %ebp movl (%edi), %edx adcl $0, %ebx movl %ecx, 16(%eax) movl 20(%esi), %eax xorl %ecx, %ecx mull %edx addl %eax, %ebp movl 16(%esi), %eax adcl %edx, %ebx movl 4(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 12(%esi), %eax adcl %edx, %ebx movl 8(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 8(%esi), %eax adcl %edx, %ebx movl 12(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 4(%esi), %eax adcl %edx, %ebx movl 16(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl (%esi), %eax adcl %edx, %ebx movl 20(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 20(%esp), %eax adcl %edx, %ebx movl (%edi), %edx adcl $0, %ecx movl %ebp, 20(%eax) movl 24(%esi), %eax xorl %ebp, %ebp mull %edx addl %eax, %ebx movl 20(%esi), %eax adcl %edx, %ecx movl 4(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 16(%esi), %eax adcl %edx, %ecx movl 8(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 12(%esi), %eax adcl %edx, %ecx movl 12(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 8(%esi), %eax adcl %edx, %ecx movl 16(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 4(%esi), %eax adcl %edx, %ecx movl 20(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl (%esi), %eax adcl %edx, %ecx movl 24(%edi), %edx adcl $0, %ebp mull %edx addl %eax, %ebx movl 20(%esp), %eax adcl %edx, %ecx movl (%edi), %edx adcl $0, %ebp movl %ebx, 24(%eax) movl 28(%esi), %eax xorl %ebx, %ebx mull %edx addl %eax, %ecx movl 24(%esi), %eax adcl %edx, %ebp movl 4(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 20(%esi), %eax adcl %edx, %ebp movl 8(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 16(%esi), %eax adcl %edx, %ebp movl 12(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 12(%esi), %eax adcl %edx, %ebp movl 16(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 8(%esi), %eax adcl %edx, %ebp movl 20(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 4(%esi), %eax adcl %edx, %ebp movl 24(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl (%esi), %eax adcl %edx, %ebp movl 28(%edi), %edx adcl $0, %ebx mull %edx addl %eax, %ecx movl 20(%esp), %eax adcl %edx, %ebp movl 4(%edi), %edx adcl $0, %ebx movl %ecx, 28(%eax) movl 28(%esi), %eax xorl %ecx, %ecx mull %edx addl %eax, %ebp movl 24(%esi), %eax adcl %edx, %ebx movl 8(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 20(%esi), %eax adcl %edx, %ebx movl 12(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 16(%esi), %eax adcl %edx, %ebx movl 16(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 12(%esi), %eax adcl %edx, %ebx movl 20(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 8(%esi), %eax adcl %edx, %ebx movl 24(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 4(%esi), %eax adcl %edx, %ebx movl 28(%edi), %edx adcl $0, %ecx mull %edx addl %eax, %ebp movl 20(%esp), %eax adcl %edx, %ebx movl 8(%edi), %edx adcl $0, %ecx movl %ebp, 32(%eax) movl 28(%esi), %eax xorl %ebp, %ebp mull %edx
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -