File mvapich3-s390_get_cycles.patch of Package mvapich3

commit e83d26fa6213f1ec9c506c43029ed243f89cd63e
Author: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
Date:   Thu Jun 8 15:11:12 2017 +0200

    mvapich3-s390_get_cycles
    
    Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>

diff --git src/mpid/ch3/channels/common/include/mvp_clock.h src/mpid/ch3/channels/common/include/mvp_clock.h
index 2f7e08ede22f..38bc906d3e67 100644
--- src/mpid/ch3/channels/common/include/mvp_clock.h
+++ src/mpid/ch3/channels/common/include/mvp_clock.h
@@ -93,6 +93,14 @@ static inline cycles_t get_cycles()
     return ret;
 }
 
+#elif defined(__s390__) || defined(__s390x__)
+typedef unsigned long cycles_t;
+static inline cycles_t get_cycles()
+{
+    unsigned long  clk;
+    asm volatile("stck %0" : "=Q" (clk) : : "cc");
+    return clk >> 2;
+}
 #else
 #warning get_cycles not implemented for this architecture: attempt asm/timex.h
 #include <asm/timex.h>
openSUSE Build Service is sponsored by