[PATCH v3 4/6] mips: Add C implementation of memcpy/memset

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Thu Sep 18 13:25:42 GMT 2025



On 18/09/25 10:19, Jovan Dmitrovic wrote:
> Hello Adhemerval,
> 
>> And TARGET_STRICT_ALIGN is set for -mstrict-align, which in turns defines
>> the __mips_strict_alignment.
>>
>> Wouldn't be simpler to use
>>
>> #if !defined __mips_strict_alignment && mips_isa_rev >= 6
>> # define UNALIGNED_INSTR_SUPPORT 1
>> #else
>> # define UNALIGNED_INSTR_SUPPORT 0
>> #endif
> 
> I see, this is a neater way to write this, I wasn't aware of 
> __mips_strict_alignment.
> I will refactor this and other macros for sake of brevity.
> 
>> Also, for UNALIGNED_INSTR_SUPPORT what does mean performance-wise when
>> load/store instruction are used on unaligned memory? Just a performance
>> hit from the hardware or would it be emulated by the kernel (as for some
>> ARM chips)?
> 
> This is what the MIPSR6 ISA manual says:
> 
>> Pre-Release 6: The effective address must be naturally-aligned. If 
>> either of the 2 least-significant bits of the address is
>> non-zero, an Address Error exception occurs.
>> Release 6 allows hardware to provide address misalignment support in 
>> lieu of requiring natural alignment.
> 
> In short, misaligned load/store instructions such as LW or SW throw an 
> exception pre-R6, and R6 has misalignment support. Handling of 
> misalignment is implementation dependent. Pre-R6 there are special 
> load/store instructions such as LWL and SWL that allow for misaligned 
> loading and storing. Those instructions were removed in release 6 as 
> they are unnecessary.

But for pre-R6 is really worth to use LWL/SWL on unaligned memory in
comparison on adjusting the algorithm to user only aligned accesses?
I trying to understand if it worth to have two different implementation
for unaligned_words.

> 
>> The ENABLE_PREFETCH_CHECK is racy and only meant to debug outsize glibc on in
>> very specific cases.  I think it would be better to just remove it.
> 
> Seems reasonable to me.
> 
> Thank you for your time,
> Jovan



More information about the Libc-alpha mailing list