On Thu, May 2, 2024, at 07:42, D. Jeff Dionne wrote: > On May 2, 2024, at 14:07, Paul E. McKenney <paulmck@xxxxxxxxxx> wrote: > >> That would be 8-bit xchg() rather than 8-byte cmpxchg(), correct? >> >> Or am I missing something subtle here that makes sh also support one-byte >> (8-bit) cmpxchg()? > > The native SH atomic operation is test and set TAS.B. J2 adds a > compare and swap CAS.L instruction, carefully chosen for patent free > prior art (s360, IIRC). > > The (relatively expensive) encoding space we allocated for CAS.L does > not contain size bits. > > Not all SH4 patents had expired when J2 was under development, but now > have (watch this space). Not sure (me myself) if there are more atomic > operations in sh4. SH4A supports MIPS R4000 style LL/SC instructions, but it looks like the older SH4 does not. Arnd