You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 11, 2024. It is now read-only.
背景
在目前的移植适配实践中,对绝大部分涉及手写汇编的软件,都需要根据 GRLen、FRLen 不同,选择不同的基本操作助记符。不像 RISC-V,LoongArch 所有指令的操作宽度都是固定的(由后缀表示),这要求我们必须反复根据
is64Bit
之类的条件选择不同的指令编码。例如:类似的糟心事在每个项目都要重复发生一遍。
多数时候,LoongArch 汇编相关的开发工作都仅涉及手写汇编文本,而非直接生成、操作机器码。(上文的例子中,只有 LLVM 的使用姿势不被覆盖。)
如果在汇编语法层面可以提供语法糖,根据当前
-march
配置自动选择相应指令的相应宽度的形式,可能对下游汇编开发者是一种生产力的解放。提议
*.n
、*.nu
操作符宽度后缀,用来表示与当前汇编器所 target 的march
的 GRLen 相同的宽度。.n[u]
后缀,作为相应.w[u]
或.d[u]
具体指令的别名。例如ld.n
、mulh.nu
、slli.n
。.n[u]
后缀的支持。例如mulw.d.w
、crc.w.w.w
等等。讨论
xor
一样?取别的后缀?)The text was updated successfully, but these errors were encountered: