mirror of
https://github.com/google/benchmark.git
synced 2024-12-26 20:40:21 +08:00
Use STCK to get the CPU clock on s390x (#540)
This commit is contained in:
parent
56f52ee228
commit
ff2c255af5
1
AUTHORS
1
AUTHORS
@ -31,6 +31,7 @@ Kishan Kumar <kumar.kishan@outlook.com>
|
|||||||
Lei Xu <eddyxu@gmail.com>
|
Lei Xu <eddyxu@gmail.com>
|
||||||
Matt Clarkson <mattyclarkson@gmail.com>
|
Matt Clarkson <mattyclarkson@gmail.com>
|
||||||
Maxim Vafin <maxvafin@gmail.com>
|
Maxim Vafin <maxvafin@gmail.com>
|
||||||
|
MongoDB Inc.
|
||||||
Nick Hutchinson <nshutchinson@gmail.com>
|
Nick Hutchinson <nshutchinson@gmail.com>
|
||||||
Oleksandr Sochka <sasha.sochka@gmail.com>
|
Oleksandr Sochka <sasha.sochka@gmail.com>
|
||||||
Paul Redmond <paul.redmond@gmail.com>
|
Paul Redmond <paul.redmond@gmail.com>
|
||||||
|
@ -53,6 +53,7 @@ Pierre Phaneuf <pphaneuf@google.com>
|
|||||||
Radoslav Yovchev <radoslav.tm@gmail.com>
|
Radoslav Yovchev <radoslav.tm@gmail.com>
|
||||||
Raul Marin <rmrodriguez@cartodb.com>
|
Raul Marin <rmrodriguez@cartodb.com>
|
||||||
Ray Glover <ray.glover@uk.ibm.com>
|
Ray Glover <ray.glover@uk.ibm.com>
|
||||||
|
Robert Guo <robert.guo@mongodb.com>
|
||||||
Roman Lebedev <lebedev.ri@gmail.com>
|
Roman Lebedev <lebedev.ri@gmail.com>
|
||||||
Shuo Chen <chenshuo@chenshuo.com>
|
Shuo Chen <chenshuo@chenshuo.com>
|
||||||
Tobias Ulvgård <tobias.ulvgard@dirac.se>
|
Tobias Ulvgård <tobias.ulvgard@dirac.se>
|
||||||
|
@ -159,6 +159,11 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
|
|||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, nullptr);
|
gettimeofday(&tv, nullptr);
|
||||||
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
|
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
|
||||||
|
#elif defined(__s390__) // Covers both s390 and s390x.
|
||||||
|
// Return the CPU clock.
|
||||||
|
uint64_t tsc;
|
||||||
|
asm("stck %0" : "=Q" (tsc) : : "cc");
|
||||||
|
return tsc;
|
||||||
#else
|
#else
|
||||||
// The soft failover to a generic implementation is automatic only for ARM.
|
// The soft failover to a generic implementation is automatic only for ARM.
|
||||||
// For other platforms the developer is expected to make an attempt to create
|
// For other platforms the developer is expected to make an attempt to create
|
||||||
|
Loading…
Reference in New Issue
Block a user