1 #ifndef FWCore_Utilities_HRRealTime_H 2 #define FWCore_Utilities_HRRealTime_H 23 static __inline__
unsigned long long rdtsc(
void) {
24 unsigned long long int x;
25 __asm__
volatile(
".byte 0x0f, 0x31" :
"=A"(
x));
28 #elif defined(__x86_64__) 30 static __inline__
unsigned long long rdtsc(
void) {
32 __asm__ __volatile__(
"rdtsc" :
"=a"(lo),
"=d"(
hi));
33 return ((
unsigned long long)lo) | (((
unsigned long long)
hi) << 32);
36 #elif defined(__powerpc__) 38 static __inline__
unsigned long long rdtsc(
void) {
39 unsigned long long int result = 0;
40 unsigned long int upper, lower,
tmp;
48 :
"=r"(upper),
"=r"(lower),
"=r"(
tmp));
55 #elif defined(__arm__) 56 #warning unsigned long long rdtsc(void) is not implemented on ARMv7 architecture. Returning 0 by default. 57 static __inline__
unsigned long long rdtsc(
void) {
return 0; }
58 #elif defined(__aarch64__) 59 static __inline__
unsigned long long rdtsc(
void) {
75 unsigned long long ret;
76 __asm__ __volatile__(
"isb; mrs %0, cntvct_el0" :
"=r"(
ret));
79 #elif defined(__riscv) && __riscv_xlen == 64 80 static __inline__
unsigned long long rdtsc(
void) {
81 unsigned long long cycles;
82 asm volatile(
"rdcycle %0" :
"=r"(cycles));
86 #error The file FWCore/Utilities/interface/HRRealTime.h needs to be set up for your CPU type. 101 #endif // FWCore_Utilities__HRRealTime_H
ret
prodAgent to be discontinued
long long int HRTimeDiffType
unsigned long long int HRTimeType