aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2021-02-17 05:52:46 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-02-17 05:52:46 +0000
commit8debd283666db094244159a5169aa6a3806e3484 (patch)
tree61f88d9a095a390cab484c109bd55ce293b117b0
parent2f3e20fee3c12b3d41312680858b5c5e07ba1ca2 (diff)
parent5d086d83c41d8e9b054ce4c4c079fe490c3c6e4e (diff)
downloadgoogle-benchmark-8debd283666db094244159a5169aa6a3806e3484.tar.gz
Upgrade google-benchmark to ea5a5bbff491fd625c6e3458f6edd680b8bd5452 am: 5d086d83c4
Original change: https://android-review.googlesource.com/c/platform/external/google-benchmark/+/1587517 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ifba5997b2a85b168c821ec10f3868d48f25a5c95
-rw-r--r--METADATA6
-rw-r--r--src/cycleclock.h8
2 files changed, 10 insertions, 4 deletions
diff --git a/METADATA b/METADATA
index a202da4..0584c04 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@ third_party {
type: GIT
value: "https://github.com/google/benchmark.git"
}
- version: "8df87f6c879cbcabd17c5cfcec7b89687df36953"
+ version: "ea5a5bbff491fd625c6e3458f6edd680b8bd5452"
license_type: NOTICE
last_upgrade_date {
year: 2021
- month: 1
- day: 5
+ month: 2
+ day: 12
}
}
diff --git a/src/cycleclock.h b/src/cycleclock.h
index 89de86f..6843b69 100644
--- a/src/cycleclock.h
+++ b/src/cycleclock.h
@@ -36,7 +36,7 @@
// declarations of some other intrinsics, breaking compilation.
// Therefore, we simply declare __rdtsc ourselves. See also
// http://connect.microsoft.com/VisualStudio/feedback/details/262047
-#if defined(COMPILER_MSVC) && !defined(_M_IX86)
+#if defined(COMPILER_MSVC) && !defined(_M_IX86) && !defined(_M_ARM64)
extern "C" uint64_t __rdtsc();
#pragma intrinsic(__rdtsc)
#endif
@@ -114,6 +114,12 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
// when I know it will work. Otherwise, I'll use __rdtsc and hope
// the code is being compiled with a non-ancient compiler.
_asm rdtsc
+#elif defined(COMPILER_MSVC) && defined(_M_ARM64)
+ // See https://docs.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=vs-2019
+ // and https://reviews.llvm.org/D53115
+ int64_t virtual_timer_value;
+ virtual_timer_value = _ReadStatusReg(ARM64_CNTVCT);
+ return virtual_timer_value;
#elif defined(COMPILER_MSVC)
return __rdtsc();
#elif defined(BENCHMARK_OS_NACL)