Open wangchenguang123 opened 8 months ago
__loongarch__
: 当前在为 LoongArch 编译__loongarch_lp64
: 当前使用 LP64 数据模型,这意味着:
__loongarch64
不应再被使用,它是从 __mips64
直接变为 __loongarch64
的旧世界产物。本义是“我在为支持 64 位的处理器编译”,但请注意:处理器支持 64 位操作,并不意味着你就可以利用这些 64 位操作。请按需使用其他符号。更多详见龙芯官方文档 https://github.com/loongson/la-softdev-convention
__loongarch__
: 当前在为 LoongArch 编译
__loongarch_lp64
: 当前使用 LP64 数据模型,这意味着:
- GPR 至少有 64 位宽,使用其低 64 位(或完整 64 位)传参
- ABI 是 LP64S/LP64F/LP64D 等 LP64 数据模型的 ABI
__loongarch64
不应再被使用,它是从__mips64
直接变为__loongarch64
的旧世界产物。本义是“我在为支持 64 位的处理器编译”,但请注意:处理器支持 64 位操作,并不意味着你就可以利用这些 64 位操作。请按需使用其他符号。更多详见龙芯官方文档 https://github.com/loongson/la-softdev-convention
感谢老师的解答,我在认真学习一下
如果确实需要判断是否处理器支持 64 位操作,建议用 __loongarch_grlen >= 64
,这样读的人一看就知道是在判断处理器而不是 ABI。
Triage: 此问题是常见问题,值得一篇专门的 AWLY 学习资料。待写
想请问以下各位老师,LoongArch的预定义宏的使用原则: (1)什么时候使用loongarch/loongarch64/loongarch_lp64 期待各位老师的解答,辛苦了。