From 7d471b4691fb2cd4f6cd2e7f0c859340d321441f Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Tue, 28 Jun 2016 20:46:33 +0200 Subject: [PATCH] use per default rdtsc instead of rdtscp because old CPUs don't support the instruction rdtscp --- hermit/usr/benchmarks/basic.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hermit/usr/benchmarks/basic.c b/hermit/usr/benchmarks/basic.c index 4cfa7cfb3..16547c2e9 100644 --- a/hermit/usr/benchmarks/basic.c +++ b/hermit/usr/benchmarks/basic.c @@ -57,6 +57,14 @@ int sched_yield(void); static char* buff[M]; +#if 1 +inline static unsigned long long rdtsc(void) +{ + unsigned long lo, hi; + asm volatile ("rdtsc" : "=a"(lo), "=d"(hi) :: "memory"); + return ((unsigned long long) hi << 32ULL | (unsigned long long) lo); +} +#else inline static unsigned long long rdtsc(void) { unsigned int lo, hi; @@ -66,6 +74,7 @@ inline static unsigned long long rdtsc(void) return ((unsigned long long)hi << 32ULL | (unsigned long long)lo); } +#endif int main(int argc, char** argv) { @@ -74,7 +83,8 @@ int main(int argc, char** argv) const char str[] = "H"; size_t len = strlen(str); - printf("Determine systems performance\n\n"); + printf("Determine systems performance\n"); + printf("=============================\n"); // cache warm-up ret = mygetpid();