Catty Steve 在rpmalloc.c中有用于获取线程id的函数get_thread_id,其做法是使用汇编将$tp移动到%0 翻遍指令集手册没发现mov指令,因此目前的写法是__asm__ volatile ("add.d %0, $zero, $tp" : "=r" (tid)); 请问龙架构有无寄存器间移动指令?(类似x86_64的mov)
xen0n 如果你指的是 https://github.com/mjansson/rpmalloc/blob/develop/rpmalloc/rpmalloc.c 这个东西的话,可能只需要给这个部分增加 || defined(__loongarch__) 即可,因为 Clang 主线有龙架构的 __builtin_thread_pointer() 支持。等价于读取 $tp 但是不用写汇编 Tested with GCC 14.2.1 & Clang 20.1.0