From bcadb4d65dec79387d4d86a8b5ad7687c2bc7077 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 17 Mar 2016 08:14:53 +0000 Subject: gc.c: tick for POWER arch * gc.c (tick): Use __builtin_ppc_get_timebase for POWER arch. [Fix GH-1291] This gives a little performance improvement user system total real Before: 20.870000 0.000000 20.870000 ( 20.893959) After: 20.720000 0.000000 20.720000 ( 20.733970) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 58953b94e2..d019633dc0 100644 --- a/gc.c +++ b/gc.c @@ -935,6 +935,18 @@ tick(void) return ((unsigned long long)lo)|( ((unsigned long long)hi)<<32); } +#elif defined(__powerpc64__) && \ + ( __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) +typedef unsigned long long tick_t; +#define PRItick "llu" + +static __inline__ tick_t +tick(void) +{ + unsigned long long val = __builtin_ppc_get_timebase(); + return val; +} + #elif defined(_WIN32) && defined(_MSC_VER) #include typedef unsigned __int64 tick_t; -- cgit v1.2.3