программистское
Feb. 13th, 2007 04:52 pmПишу на ассемблере! Просто чуть ли не "бойцы вспоминают минувшие дни".
.text
.globl readcounter
readcounter:
pushl %ebx
pushl %ecx
subl %eax, %eax
cpuid
rdtsc
pushl %eax
pushl %edx
subl %eax, %eax
cpuid
popl %edx
popl %eax
popl %ecx
popl %ebx
ret
.size readcounter, .-counter
no subject
Date: 2007-02-13 08:01 pm (UTC)no subject
Date: 2007-02-13 08:54 pm (UTC)Проще говоря, если даже в случае без 2го cpuid будет какое-то "убыстрение" (хотя неясно, относительно чего), то в случае с ним будем замедление, которое гораздо труднее учесть.
Против "подобно тому...": первый cpuid делается только чтобы избежать OOO исполнения самого rdtsc. OOO исполнения чего нужно избежать после rdtsc?
Извините, что так длинно :)
no subject
Date: 2007-02-18 11:28 pm (UTC)