On 9/23/19 3:02 AM, Paolo Bonzini wrote: > On 23/09/19 11:54, David Hildenbrand wrote: >> On 23.09.19 11:51, Paolo Bonzini wrote: >>> that includes the switches? Everything should be inlined just the same >>> if you do >>> >>> if (unlikely(tlb_addr & TLB_BSWAP)) { >>> st_memop(haddr, op ^ MO_BSWAP, val); >>> } else { >>> st_memop(haddr, op, val); >>> } >> >> I asked the same question on v2 and Richard explained that - for >> whatever reason - the compiler will not properly propagate the constant >> in the "op ^ MO_BSWAP" case. > > Even if ld_memop and st_memop are __always_inline__?
I'm not sure I tried __always_inline__. I can, if you like. r~