3 #if defined(__i386__) || defined(__x86_64__) || defined(_MSC_VER) 
    9 #  include <sys/resource.h> 
   32         asm volatile(
"rdtsc\nmovl %%eax,%0\nmovl %%edx,%1":
"=g"(ax),
"=g"(dx): :
"eax",
"edx");
 
   34           (
static_cast<unsigned long long>(dx)<<32)
 
   35           + 
static_cast<unsigned long long>(ax);
 
   55         asm volatile(
"rdtsc\nmovl %%eax,%0\nmovl %%edx,%1":
"=g"(ax),
"=g"(dx): :
"eax",
"edx");
 
   56         const unsigned long long end_time
 
   57           = ((
static_cast<unsigned long long>(dx)<<32)
 
   58              + 
static_cast<unsigned long long>(ax));
 
   66         getrusage(RUSAGE_SELF,&end_time);
 
   68         int ret=getrusage(RUSAGE_SELF,&end_time);
 
   71         return (end_time.ru_utime.tv_sec - 
start_time.ru_utime.tv_sec)*1000000
 
   72           +(end_time.ru_utime.tv_usec - 
start_time.ru_utime.tv_usec);
 
   80                           const char *
message,
long long int loop);
 
   96         asm volatile(
"rdtsc\nmovl %%eax,%0\nmovl %%edx,%1":
"=g"(ax),
"=g"(dx): :
"eax",
"edx");
 
   98           (
static_cast<unsigned long long>(dx)<<32)
 
   99           + 
static_cast<unsigned long long>(ax);
 
  110         asm volatile(
"rdtsc\nmovl %%eax,%0\nmovl %%edx,%1":
"=g"(ax),
"=g"(dx): :
"eax",
"edx");
 
  111         const unsigned long long end_time
 
  112           = ((
static_cast<unsigned long long>(dx)<<32)
 
  113              + 
static_cast<unsigned long long>(ax));
 
  148       CounterPair(
const char *file, 
const char *
function, 
int line);
 
  167         : os (os), message (message)
 
  172           gettimeofday(&
start, NULL);