diff --git a/Framework/Foundation/3rdparty/x9/x9.c b/Framework/Foundation/3rdparty/x9/x9.c index 2ca4bb80237b3..28684183cc954 100644 --- a/Framework/Foundation/3rdparty/x9/x9.c +++ b/Framework/Foundation/3rdparty/x9/x9.c @@ -38,6 +38,7 @@ #if defined(__x86_64__) || defined(__i386__) #include /* _mm_pause */ #elif defined(__aarch64__) +#elif defined(__riscv) #else #error Not supported architecture #endif @@ -370,6 +371,8 @@ void x9_read_from_inbox_spin(x9_inbox* const inbox, _mm_pause(); #elif defined(__aarch64__) __asm__ __volatile__ ("yield"); +#elif defined(__riscv) + __asm__ __volatile__ (".4byte 0x0100000F"); /* PAUSE hint (Zihintpause); NOP if unsupported */ #else #error Not supported architecture #endif diff --git a/Utilities/rANS/include/rANS/internal/common/defines.h b/Utilities/rANS/include/rANS/internal/common/defines.h index 21afb4ff01750..d053a2e67dab3 100644 --- a/Utilities/rANS/include/rANS/internal/common/defines.h +++ b/Utilities/rANS/include/rANS/internal/common/defines.h @@ -40,7 +40,7 @@ #error RANS_FMA cannot be directly set #endif -#if (defined(__x86_64__) || defined(__aarch64__)) +#if (defined(__x86_64__) || defined(__aarch64__) || (defined(__riscv) && __riscv_xlen == 64)) #define RANS_COMPAT #if defined(__SIZEOF_INT128__) #define RANS_SINGLE_STREAM