cpplab/src/misc/memory/volatile.cpp
2021-12-12 14:59:55 +00:00

22 lines
No EOL
681 B
C++

#include <iostream>
inline unsigned long getTimestamp(){
unsigned hi,lo;
asm ("rdtsc": "=a" (lo), "=d" (hi) );
return ((unsigned long) lo ) | ((unsigned long) hi << 32);
}
inline unsigned long getTimestampVolatile(){
unsigned hi,lo;
asm volatile("rdtsc": "=a" (lo), "=d" (hi) );
return ((unsigned long) lo )| ((unsigned long) hi << 32);
}
int main(void){
unsigned long t1=getTimestamp();
unsigned long t2=getTimestamp();
std::cout << "Hello 1 -- " << t1 <<std::endl;
std::cout << "Hello 2 -- " << t2 <<std::endl;
std::cout << "Hello 3 -- " << getTimestamp() <<std::endl;
std::cout << "Hello 4 -- " << getTimestamp() <<std::endl;
}