Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory:RISCV
papi
riscv.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File riscv.patch of Package papi
Index: papi-7.0.0/src/linux-context.h =================================================================== --- papi-7.0.0.orig/src/linux-context.h +++ papi-7.0.0/src/linux-context.h @@ -39,6 +39,8 @@ typedef ucontext_t hwd_ucontext_t; #define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.pc #elif defined(__hppa__) #define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.sc_iaoq[0] +#elif defined(__riscv) +#define OVERFLOW_ADDRESS(ctx) ctx.ucontext->uc_mcontext.__gregs[REG_PC] #else #error "OVERFLOW_ADDRESS() undefined!" #endif Index: papi-7.0.0/src/linux-timer.c =================================================================== --- papi-7.0.0.orig/src/linux-timer.c +++ papi-7.0.0/src/linux-timer.c @@ -301,6 +301,21 @@ get_cycles( void ) } +/************************/ +/* riscv64 get_cycles() */ +/************************/ + +#elif defined(__riscv) +static inline long long +get_cycles( void ) +{ + register unsigned long ret; + + __asm__ __volatile__ ("rdcycle %0" : "=r" (ret)); + + return ret; +} + #elif !defined(HAVE_GETTIMEOFDAY) && !defined(HAVE_CLOCK_GETTIME) #error "No get_cycles support for this architecture. " Index: papi-7.0.0/src/mb.h =================================================================== --- papi-7.0.0.orig/src/mb.h +++ papi-7.0.0/src/mb.h @@ -63,6 +63,9 @@ #define rmb() asm volatile("lfence":::"memory") #endif +#elif defined(__riscv) +#define rmb() asm volatile("fence ir,ir" ::: "memory") + #else #error Need to define rmb for this architecture! #error See the kernel source directory: tools/perf/perf.h file
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor