[PATCH] linux: mips: Fix syscall_cancell build for __mips_isa_rev >= 6

Maciej W. Rozycki macro@orcam.me.uk
Fri Sep 6 01:46:44 GMT 2024


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. :(

> > 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.

 NB `bnezl' could be used for consistency/readability, and likewise `negu' 
rather than `SUBU' (why is it capitalised anyway?).

  Maciej


More information about the Libc-alpha mailing list