Wydanie R2019.06.2: SSE

This commit is contained in:
Jan Potocki
2019-06-08 15:00:44 +02:00
parent d66a281cad
commit 523a597a4d
4 changed files with 143 additions and 0 deletions
+23
View File
@@ -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