Sha256: 8eab0dcc67102d89658b24b4d1857271b48d6f725866d33f172271fb8e7f5798
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
#ifndef __RDTSC_H_DEFINED__ #define __RDTSC_H_DEFINED__ #if defined(__i386__) static __inline__ unsigned long long rdtsc(void) { unsigned long long int x; __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x)); return x; } #elif defined(__x86_64__) static __inline__ unsigned long long rdtsc(void) { unsigned hi, lo; __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi)); return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 ); } #elif defined(__powerpc__) static __inline__ unsigned long long rdtsc(void) { unsigned long long int result=0; unsigned long int upper, lower,tmp; __asm__ volatile( "0: \n" "\tmftbu %0 \n" "\tmftb %1 \n" "\tmftbu %2 \n" "\tcmpw %2,%0 \n" "\tbne 0b \n" : "=r"(upper),"=r"(lower),"=r"(tmp) ); result = upper; result = result<<32; result = result|lower; return(result); } #else #error "No tick counter is available!" #endif /* $RCSfile: $ $Author: kazutomo $ * $Revision: 1.6 $ $Date: 2005/04/13 18:49:58 $ */ #endif
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nyara-0.1.pre.2 | ext/inc/rdtsc.h |
nyara-0.1.pre.1 | ext/inc/rdtsc.h |
nyara-0.1.pre.0 | ext/inc/rdtsc.h |