summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--loop.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/loop.cc b/loop.cc
index b64d9a4..ca8ebb8 100644
--- a/loop.cc
+++ b/loop.cc
@@ -41,12 +41,11 @@ inline ticks getticks()
{
#if __has_builtin(__builtin_readcyclecounter)
return __builtin_readcyclecounter();
-#else
-# if defined __x86_64__
+#elif defined __x86_64__
ticks a, d;
asm volatile("rdtsc" : "=a" (a), "=d" (d));
return a | (d << 32);
-# elif defined __powerpc__
+#elif defined __powerpc__
unsigned int tbl, tbu, tbu1;
do {
asm volatile("mftbu %0": "=r"(tbu));
@@ -54,7 +53,13 @@ inline ticks getticks()
asm volatile("mftbu %0": "=r"(tbu1));
} while (tbu != tbu1);
return ((unsigned long long)tbu << 32) | tbl;
-# endif
+#else
+ timeval tv;
+ gettimeofday(&tv, NULL);
+ return 1000000ULL * tv.tv_sec + tv.tv_usec;
+ // timespec ts;
+ // clock_gettime(CLOCK_REALTIME, &ts);
+ // return 1000000000ULL * ts.tv_sec + ts.tv_nsec;
#endif
}
inline double elapsed(ticks t1, ticks t0)
OpenPOWER on IntegriCloud