[PATCH v2 4/5] LoongArch: Add support for LA32 in sysdeps/unix/sysv/linux/loongarch

WANG Xuerui i.swmail@xen0n.name
Fri Dec 19 02:25:20 GMT 2025


On 12/19/25 10:00, mengqinggang wrote:
> 
> 在 2025/12/18 22:21, WANG Xuerui 写道:
>> On 12/18/25 21:05, Adhemerval Zanella Netto wrote:
>>>
>>>
>>> On 18/12/25 09:30, mengqinggang wrote:
>>>> [snip]
>>>>   @@ -54,7 +54,7 @@ ENTRY (__clone)
>>>>       syscall        0
>>>>         blt        a0, zero ,L (error)
>>>> -    beqz        a0,L (thread_start)
>>>> +    beq        a0, zero, L (thread_start)
>>>>         /* Successful return from the parent.  */
>>>>       ret
>>>
>>> Does it meant that loongarch32 does not support all the branch
>>> instruction from loongarch64? Or that binutils is not recognizing
>>> beqz as a alias for beq reg, zero ?
>>
>> It is a bit interesting: b{eq,ne}z are *different* instructions in 
>> LA64 and LA32S so that an additional 5 bits becomes free for encoding 
>> the offset. The reduced subset, LA32R, doesn't have them for 
>> simplicity reasons.
>>
>> We may be able to make "b{eq,ne}z x, y" aliases for "b{eq,ne} x, zero, 
>> y" respectively for LA32R, and this won't affect compatibility because 
>> one has to use up-to-date binutils anyway to get any LA32 support at all.
> 
> 
> Just only make "b{eq,ne}z" aliases for "b{eq,ne}" on LA32R?

That's what I mean, of course. Although...

>> I don't know if doing this would create confusion for someone 
>> deliberately choosing beqz for a big offset that isn't expressible 
>> with beq, but I guess the case is contrived because beq already can 
>> reach +/-128KiB which is more than enough for conditional branches. 

... this is what I fear would create confusion, if we're to make such a 
change ideally we would update the ISA manual and assembly language doc 
as well to include this precaution.

>> Maybe someone from Loongson would prepare a patch for binutils, or I 
>> can do it later (next week or so).

Are you going to work on this? I'm okay because I'm not going to have 
much free time. Gotta relax myself (pun intended) for the rest of the 
year...

-- 
Regards,
WANG "xen0n" Xuerui

Linux/LoongArch mailing list: https://lore.kernel.org/loongarch/
Unofficial Loongson OSS community: https://github.com/loongson-community


More information about the Libc-alpha mailing list