Index: libcfa/src/bits/defs.hfa
===================================================================
--- libcfa/src/bits/defs.hfa	(revision e67a82d79e32a55496140aa883716d9123ccc7f7)
+++ libcfa/src/bits/defs.hfa	(revision 7cfef0d3591be55e19b3b055bf50d7d4c19e3699)
@@ -10,6 +10,6 @@
 // Created On       : Thu Nov  9 13:24:10 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 28 22:38:27 2020
-// Update Count     : 9
+// Last Modified On : Thu Aug 13 22:00:23 2020
+// Update Count     : 19
 //
 
@@ -17,4 +17,5 @@
 
 #include <stdint.h>
+#include <assert.h>
 
 #define likely(x)   __builtin_expect(!!(x), 1)
@@ -47,7 +48,14 @@
 #endif
 
-static inline long long rdtscl(void) {
-    unsigned int lo, hi;
-    __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
-    return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+static inline long long int rdtscl(void) {
+	#if defined( __aarch64__ )
+	// https://github.com/google/benchmark/blob/v1.1.0/src/cycleclock.h#L116
+	long long int virtual_timer_value;
+	asm volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer_value));
+	return virtual_timer_value;
+	#else
+	unsigned int lo, hi;
+	__asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
+	return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
+	#endif // __ARM_ARCH
 }
