Wydanie R2019.06.2: SSE
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# Jan Potocki 2019
|
||||
# Funkcja odczytujaca i zwracajaca wartosc TSC (time-stamp counter)
|
||||
|
||||
.globl rdtsc
|
||||
.type rdtsc, @function
|
||||
|
||||
rdtsc:
|
||||
pushq %rbp # Wejscie do funkcji
|
||||
movq %rsp, %rbp
|
||||
pushq %rbx # Zapisanie wartosci rbx na stosie
|
||||
# (zgodnie z konwencja wywolan)
|
||||
|
||||
movl $0, %eax # Wybor Maximum Return Value dla CPUID
|
||||
cpuid # Rozkaz serializujacy - zapobiega przesunieciu
|
||||
# rdtsc przez optymalizacje na poziomie mikrokodu
|
||||
rdtsc # edx:eax - time-stamp counter
|
||||
|
||||
shlq $32, %rdx # Przesuniecie bitow z edx do wyzszej polowy rdx
|
||||
orq %rax, %rdx # W rax zwracany wynik (zlozony z edx:eax)
|
||||
|
||||
popq %rbx # Przywrocenie wartosci rbx ze stosu
|
||||
popq %rbp # Wyjscie z funkcji
|
||||
ret
|
||||
Reference in New Issue
Block a user