On Tue, 24 Jun 2025 08:17:14 -0500 Segher Boessenkool <seg...@kernel.crashing.org> wrote:
> On Tue, Jun 24, 2025 at 07:27:47AM +0200, Christophe Leroy wrote: > > Ah ok, I overlooked that, I didn't know the cmove instruction, seem > > similar to the isel instruction on powerpc e500. > > cmove does a move (register or memory) when some condition is true. The destination of x86 'cmov' is always a register (only the source can be memory - an is probably always read). It is a also a computational instruction. It may well always do the register write - hard to detect. There is a planned new instruction that would do a conditional write to memory - but not on any cpu yet. > isel (which is base PowerPC, not something "e500" only) is a > computational instruction, it copies one of two registers to a third, > which of the two is decided by any bit in the condition register. Does that mean it could be used for all the ppc cpu variants? > But sure, seen from very far off both isel and cmove can be used to > implement the ternary operator ("?:"), are similar in that way :-) Which is exactly what you want to avoid speculation. David > > > Segher