Size: a a a

2020 January 30

VO

Vyacheslav Olkhovchenkov in freebsd_ru
ну да
источник

A

Aba in freebsd_ru
Это как?))) Знаю просто кеш промахи, а кешлайн это что?))
источник

A

Aba in freebsd_ru
Тоже самое?
источник

VG

Vadim Goncharov in freebsd_ru
кэш делится на лайны
источник

A

Aba in freebsd_ru
Vadim Goncharov
кэш делится на лайны
Уже нашел, понял о чем речь, про блоки кеша
источник

AA

Artyom Abramovich in freebsd_ru
Vyacheslav Olkhovchenkov
да в общем похуй, по 10 тактов на IP и TCP
для форварда или?
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
для генерации син-асков
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
форвардить-то нафига нетмапом?
источник

AA

Artyom Abramovich in freebsd_ru
я не был вовлечен в диалог, сорри
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
разве что извращений каких ради
источник

p

pragus in freebsd_ru
Vyacheslav Olkhovchenkov
мда. для ip заголовков компилятор оптиизирует в 1.5 раза более скоростной вариант.
так с какими флагами?
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
я не мудрствовал и написал просто -march=native
источник

p

pragus in freebsd_ru
Vyacheslav Olkhovchenkov
я не мудрствовал и написал просто -march=native
ну отлично,  чо. а что за асм оно там сгенерировало?
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
pushq   %rbp
       .cfi_def_cfa_offset 16
       .cfi_offset %rbp, -16
       movq    %rsp, %rbp
       .cfi_def_cfa_register %rbp
       pmovzxwd        30(%rdi), %xmm0 # xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       pmovzxwd        38(%rdi), %xmm1 # xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       pmovzxwd        46(%rdi), %xmm2 # xmm2 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       paddd   %xmm0, %xmm1
       movzwl  54(%rdi), %eax
       movzwl  56(%rdi), %ecx
       pshufd  $78, %xmm1, %xmm0       # xmm0 = xmm1[2,3,0,1]
       paddd   %xmm1, %xmm0
       pshufd  $229, %xmm0, %xmm1      # xmm1 = xmm0[1,1,2,3]
       paddd   %xmm0, %xmm1
       movd    %xmm1, %edx
       pshufd  $78, %xmm2, %xmm0       # xmm0 = xmm2[2,3,0,1]
       paddd   %xmm2, %xmm0
       pshufd  $229, %xmm0, %xmm1      # xmm1 = xmm0[1,1,2,3]
       paddd   %xmm0, %xmm1
       movd    %xmm1, %esi
       addl    %edx, %esi
       addl    %eax, %esi
       leal    (%rsi,%rcx), %eax
       leal    6656(%rcx,%rsi), %ecx
       shrl    $16, %ecx
       leal    6656(%rcx,%rax), %eax
       notl    %eax
                                       # kill: def $ax killed $ax killed $eax
       popq    %rbp
       .cfi_def_cfa %rsp, 8
       retq
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
это для tcp
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
а это для ip
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
movq    %rsp, %rbp
       .cfi_def_cfa_register %rbp
       pmovzxwd        18(%rdi), %xmm0 # xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       pmovzxwd        26(%rdi), %xmm1 # xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       paddd   %xmm0, %xmm1
       movzwl  34(%rdi), %eax
       movzwl  36(%rdi), %ecx
       pshufd  $78, %xmm1, %xmm0       # xmm0 = xmm1[2,3,0,1]
       paddd   %xmm1, %xmm0
       pshufd  $229, %xmm0, %xmm1      # xmm1 = xmm0[1,1,2,3]
       paddd   %xmm0, %xmm1
       movd    %xmm1, %edx
       addl    %eax, %edx
       addl    %ecx, %edx
       movl    %edx, %eax
       shrl    $16, %eax
       addl    %edx, %eax
       notl    %eax
                                       # kill: def $ax killed $ax killed $eax
       popq    %rbp
источник

p

pragus in freebsd_ru
Vyacheslav Olkhovchenkov
movq    %rsp, %rbp
       .cfi_def_cfa_register %rbp
       pmovzxwd        18(%rdi), %xmm0 # xmm0 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       pmovzxwd        26(%rdi), %xmm1 # xmm1 = mem[0],zero,mem[1],zero,mem[2],zero,mem[3],zero
       paddd   %xmm0, %xmm1
       movzwl  34(%rdi), %eax
       movzwl  36(%rdi), %ecx
       pshufd  $78, %xmm1, %xmm0       # xmm0 = xmm1[2,3,0,1]
       paddd   %xmm1, %xmm0
       pshufd  $229, %xmm0, %xmm1      # xmm1 = xmm0[1,1,2,3]
       paddd   %xmm0, %xmm1
       movd    %xmm1, %edx
       addl    %eax, %edx
       addl    %ecx, %edx
       movl    %edx, %eax
       shrl    $16, %eax
       addl    %edx, %eax
       notl    %eax
                                       # kill: def $ax killed $ax killed $eax
       popq    %rbp
sse4.1 же
источник

VO

Vyacheslav Olkhovchenkov in freebsd_ru
и шо?
источник

p

pragus in freebsd_ru
а ты с какой версией sse сравнивал?
источник