On 9/23/19 8:52 AM, Richard Henderson wrote:
> 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.

FWIW, that works.

Since two of you have now asked about this, I'll change the patch.


r~

Reply via email to