Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vppinfra - ARM: cycle count 64bits register is only available on ARMv8
[vpp.git]
/
vppinfra
/
vppinfra
/
time.h
diff --git
a/vppinfra/vppinfra/time.h
b/vppinfra/vppinfra/time.h
index
29398f3
..
ffafaf7
100644
(file)
--- a/
vppinfra/vppinfra/time.h
+++ b/
vppinfra/vppinfra/time.h
@@
-113,13
+113,20
@@
always_inline u64 clib_cpu_time_now (void)
}
#elif defined (__arm__)
}
#elif defined (__arm__)
-#if defined(__ARM_ARCH_
7
A__)
-always_inline u64 clib_cpu_time_now (void)
+#if defined(__ARM_ARCH_
8
A__)
+always_inline u64 clib_cpu_time_now (void)
/* We may run arm64 in aarch32 mode, to leverage 64bit counter */
{
u64 tsc;
asm volatile("mrrc p15, 0, %Q0, %R0, c9" : "=r" (tsc));
return tsc;
}
{
u64 tsc;
asm volatile("mrrc p15, 0, %Q0, %R0, c9" : "=r" (tsc));
return tsc;
}
+#elif defined(__ARM_ARCH_7A__)
+always_inline u64 clib_cpu_time_now (void)
+{
+ u32 tsc;
+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (tsc));
+ return (u64)tsc;
+}
#else
always_inline u64 clib_cpu_time_now (void)
{
#else
always_inline u64 clib_cpu_time_now (void)
{