On Wed, 2 Oct 2019, Julien Grall wrote: > Hi Andrew, > > On 10/2/19 7:42 PM, Andrew Cooper wrote: > > On 02/10/2019 19:00, Julien Grall wrote: > > > Clang is pickier than GCC for the register size in asm statement. It > > > expects the register size to match the value size. > > > > > > The asm statement expects a 32-bit (resp. 64-bit) value on Arm32 > > > (resp. Arm64) whereas the value is a boolean (Clang consider to be > > > 32-bit). > > > > > > It would be possible to impose 32-bit register for both architecture > > > but this require the code to use __OP32. However, it does not really > > > improve the assembly generated. Instead, replace switch the variable > > > to use register_t. > > > > > > Signed-off-by: Julien Grall > > > > > > --- > > > Changes in v2: > > > - Use !! per Stefano's request > > > > You are aware that unlikley(), deliberately, has an embedded !! ? > > I forgot it, sorry about that :/. Stefano are you happy if I revert to v1? I forgot about that too. Yes, that's fine and add my acked-by. > > > > include/xen/compiler.h:11:#define unlikely(x)   __builtin_expect(!!(x),0) > > > > ~Andrew