代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/papi 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
diff --color -urN papi-6.0.0/src/configure papi-6.0.0-new/src/configure
--- papi-6.0.0/src/configure 2020-03-04 23:56:58.000000000 +0800
+++ papi-6.0.0-new/src/configure 2022-07-04 19:45:58.799472304 +0800
@@ -4709,7 +4709,7 @@
# First set pthread-mutexes based on arch
case $arch in
- aarch64|arm*|parisc*)
+ aarch64|arm*|parisc*|riscv64)
pthread_mutexes=yes
CFLAGS="$CFLAGS -DUSE_PTHREAD_MUTEXES"
echo "forcing use of pthread mutexes... " >&6
diff --color -urN papi-6.0.0/src/linux-context.h papi-6.0.0-new/src/linux-context.h
--- papi-6.0.0/src/linux-context.h 2020-03-04 23:57:01.000000000 +0800
+++ papi-6.0.0-new/src/linux-context.h 2022-07-04 19:45:58.799472304 +0800
@@ -18,6 +18,8 @@
#define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.gregs[REG_EIP]
#elif defined(__x86_64__)
#define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.gregs[REG_RIP]
+#elif defined(__riscv)
+#define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.__gregs[REG_PC]
#elif defined(__powerpc__) && !defined(__powerpc64__)
/*
* The index of the Next IP (REG_NIP) was obtained by looking at kernel
diff --color -urN papi-6.0.0/src/linux-timer.c papi-6.0.0-new/src/linux-timer.c
--- papi-6.0.0/src/linux-timer.c 2020-03-04 23:57:01.000000000 +0800
+++ papi-6.0.0-new/src/linux-timer.c 2022-07-04 19:46:32.745412162 +0800
@@ -246,6 +246,19 @@
}
/************************/
+/* RISC-V get_cycles() */
+/************************/
+
+#elif defined(__riscv)
+static inline long long
+get_cycles( void )
+{
+ register unsigned long ret;
+ __asm__ __volatile__ ("rdtime %0" : "=r" (ret));
+ return ret;
+}
+
+/************************/
/* POWER get_cycles() */
/************************/
diff --color -urN papi-6.0.0/src/mb.h papi-6.0.0-new/src/mb.h
--- papi-6.0.0/src/mb.h 2020-03-04 23:57:01.000000000 +0800
+++ papi-6.0.0-new/src/mb.h 2022-07-04 19:45:58.799472304 +0800
@@ -10,6 +10,9 @@
#elif defined (__s390__)
#define rmb() asm volatile("bcr 15,0" ::: "memory")
+#elif defined (__riscv)
+#define rmb() asm volatile("fence r,r" : : : "memory");
+
#elif defined (__sh__)
#if defined(__SH4A__) || defined(__SH5__)
#define rmb() asm volatile("synco" ::: "memory")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。