File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -416,7 +416,8 @@ static inline void mi_atomic_yield(void) {
416416#elif (defined(__GNUC__) || defined(__clang__)) && \
417417 (defined (__x86_64__) || defined (__i386__) || \
418418 defined (__aarch64__) || defined(__arm__) || \
419- defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(__POWERPC__))
419+ defined(__powerpc__) || defined(__ppc__) || defined(__PPC__) || defined(__POWERPC__) || \
420+ defined(__riscv))
420421#if defined(__x86_64__) || defined(__i386__)
421422static inline void mi_atomic_yield (void ) {
422423 __asm__ volatile (" pause" ::: " memory" );
@@ -445,6 +446,16 @@ static inline void mi_atomic_yield(void) {
445446 __asm__ __volatile__ (" or 27,27,27" ::: " memory" );
446447}
447448#endif
449+ #elif defined(__riscv)
450+ #if defined(__riscv_zihintpause)
451+ static inline void mi_atomic_yield (void ) {
452+ __asm__ volatile (" pause" ::: " memory" );
453+ }
454+ #else
455+ static inline void mi_atomic_yield (void ) {
456+ __asm__ volatile (" nop" ::: " memory" );
457+ }
458+ #endif
448459#endif
449460#elif defined(__sun)
450461#include < synch.h>
You can’t perform that action at this time.
0 commit comments