[PATCH] linux: mips: Fix syscall_cancell build for __mips_isa_rev >= 6
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Fri Sep 6 13:03:17 GMT 2024
On 05/09/24 22:46, Maciej W. Rozycki wrote:
> On Mon, 2 Sep 2024, Adhemerval Zanella Netto wrote:
>
>>> Use beqzc instead of bnel.
>>>
>>> Checked with a mipsisa64r6el-n64-linux-gnu build and some nptl
>>> cancellation tests on qemu.
>> The syscall_cancell is spelled wrongly, I will fit it.
>
> It seems like you didn't after all. :(
Yeah, my mistake here.
>
>>> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
>>> index f172041324..cfc0596b6a 100644
>>> --- a/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
>>> +++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
>>> @@ -77,7 +77,11 @@ __syscall_cancel_arch_end:
>>>
>>> .set noreorder
>>> .set nomacro
>>> +#if __mips_isa_rev >= 6
>>> + beqzc $7, 1f
>>> +#else
>>> bnel a3, zero, 1f
>>> +#endif
>>> SUBU v0, zero, v0
>>> .set macro
>>> .set reorder
>
> Why $7 inconsistently rather than a3 as in the existing code? All the
> remaining code uses ABI rather than raw register names.
Because it come mainly from inspecting the code generation from compilers,
and then testing on qemu.
>
> NB `bnezl' could be used for consistency/readability, and likewise `negu'
> rather than `SUBU' (why is it capitalised anyway?).
I don't have a strong preference, I am far from a mips expert, and I could
use some help on improve things here.
More information about the Libc-alpha
mailing list