> We probably want to do some nop'ish thing here which will yield the
> cpu thread on Niagara cpus, I'd recommend something along the lines of
> "rd %ccr, %g0" or "rd %y, %g0"

libgomp has its own idea about cpu_relax:

static inline void
cpu_relax (void)
{
#if defined __arch64__ || defined  __sparc_v9__
  __asm volatile ("membar #LoadLoad" : : : "memory");
#else
  __asm volatile ("" : : : "memory");
#endif
}

Maybe we can come up with a single implementation for libgomp and libitm?

And defined(__sparc_v9__) doesn't work on Solaris so we should drop the 
condition altogether in libgomp.

-- 
Eric Botcazou

Reply via email to