On 8/20/2026 10:59 PM, Richard Henderson wrote:
> On 8/20/26 02:46, BillXiang wrote:
>> diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h
>> index 387d65c..c23f5a2 100644
>> --- a/include/qemu/bswap.h
>> +++ b/include/qemu/bswap.h
>> @@ -255,6 +255,20 @@ static inline int lduw_he_p(const void *ptr)
>>       return r;
>>   }
>> +static inline int lduw_he_p_aligned(const void *ptr)
>> +{
>> +    uint16_t r;
>> +    __builtin_memcpy(&r, __builtin_assume_aligned(ptr, sizeof(r)), 
>> sizeof(r));
>> +    return r;
>> +}
> 
> If you know it's aligned, then you don't need anything special: just a 
> normal C memory access.  E.g.
> 
>      *(uint16_t *)ptr
> 
> and then of course no need for a wrapper function.

Noted, thanks! I’ll resend it with the changes.

> 
>> +static inline int lduw_le_p_aligned(const void *ptr)
>> +{
>> +    return (uint16_t)le_bswap(lduw_he_p_aligned(ptr), 16);
>> +}
> 
> And this:  le16_to_cpu(*(uint16_t *)ptr)
> 
> 
> r~

Reply via email to