From 18906a65b7ad424777789b8a7f5d0239fba32225 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sat, 16 Aug 2025 00:01:53 +0800 Subject: [PATCH 1/2] verilatedos.h: improve powerpc support --- include/verilatedos.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git include/verilatedos.h include/verilatedos.h index 6b289292f..7894a4510 100644 --- include/verilatedos.h +++ include/verilatedos.h @@ -575,7 +575,9 @@ static inline double VL_ROUND(double n) { # define VL_CPU_RELAX() asm volatile("nop" ::: "memory") #elif defined(__mips64el__) || defined(__mips__) || defined(__mips64__) || defined(__mips64) # define VL_CPU_RELAX() asm volatile("pause" ::: "memory") -#elif defined(__powerpc64__) +#elif defined(__POWERPC__) && defined(__APPLE__) // First check for a special case of macOS +# define VL_CPU_RELAX() asm volatile("or r1, r1, r1; or r2, r2, r2;" ::: "memory") +#elif defined(__powerpc64__) || defined(__powerpc__) // Generic powerpc # define VL_CPU_RELAX() asm volatile("or 1, 1, 1; or 2, 2, 2;" ::: "memory") #elif defined(__riscv) // RiscV does not currently have yield/pause, but one is proposed # define VL_CPU_RELAX() asm volatile("nop" ::: "memory")