File 0001-gc.c-tick-for-POWER-arch.patch of Package ruby2.1.2315

From a5456a1d8308cec5461846418500f77b69a01e4d Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Thu, 17 Mar 2016 08:14:53 +0000
Subject: [PATCH] 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 files changed, 12 insertions(+)

diff --git a/gc.c b/gc.c
index 58953b9..d019633 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 <intrin.h>
 typedef unsigned __int64 tick_t;
-- 
2.1.4

openSUSE Build Service is sponsored by