Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/biology/bolt-lmm/files/patch-src_Timer.cpp
18160 views
1
--- src/Timer.cpp.orig 2019-08-03 00:25:18 UTC
2
+++ src/Timer.cpp
3
@@ -35,7 +35,19 @@ double Timer::update_time(void) {
4
5
unsigned long long Timer::rdtsc(void) {
6
unsigned int hi, lo;
7
+#ifdef __amd64__
8
__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
9
+#elif __powerpc__
10
+ unsigned int tmp;
11
+ __asm__ ("0:"
12
+ "mftbu %[hi32]\n"
13
+ "mftb %[lo32]\n"
14
+ "mftbu %[tmp]\n"
15
+ "cmpw %[tmp],%[hi32]\n"
16
+ "bne 0b\n"
17
+ : [hi32] "=r"(hi), [lo32] "=r"(lo),
18
+ [tmp] "=r"(tmp));
19
+#endif
20
return ((unsigned long long) lo) | (((unsigned long long) hi)<<32);
21
}
22
23
24