在学习 LoongArch 汇编时遇到的问题,请问有人能给我解答吗?
LEI-Xiongwei
xry111 请问大佬,做C语言底层库的适配优化工作是需要写纯汇编,还是只要C源码上的内嵌汇编?
xen0n
LEI-Xiongwei 做C语言底层库的适配优化工作是需要写纯汇编,还是只要C源码上的内嵌汇编?
显然是根据需要而灵活选择。一般是不喜欢很多汇编的,因为不好维护,一般将其控制在必须的最低限度即可。
LEI-Xiongwei
xen0n
LEI-Xiongwei 不需特别折腾。这文章的作者现在是龙芯员工了,文章里提到的东西都已经进入上游glibc,对着函数名找具体实现方式就行了。
LEI-Xiongwei
xen0n 最新版本的glibc 2.38 里面的字符串处理函数变得挺抽象的,我还没找到对应的汇编在哪儿。 😅
LEI-Xiongwei
xen0n 我在glibc 2.38 的 sysdep/loongarch 目录下没有找到跟字符串优化相关的汇编代码。
Sunny
LEI-Xiongwei
在 "https://sourceware.org/git/glibc.git" 所在的仓库中查看git log,"dengjianbo" 大佬应该是相关补丁提交者
LEI-Xiongwei
Sunny 网址打不开。
LEI-Xiongwei
Sunny 非常感谢! 😃
LEI-Xiongwei
打开了,应该是梯子的问题。
狗剩
LEI-Xiongwei .S结尾,这是汇编文件,需要预处理,leaf()是一个叶子函数
狗剩
你可以看一下我写的一个gforth的后端的汇编代码,可以利用他查看code字,都是用的汇编指令
狗剩
LEI-Xiongwei
狗剩 所以说“#include”,“#define”这些其实是汇编指令?
xry111
LEI-Xiongwei 大写 .S
的汇编文件先用 C 预处理器处理再汇编,小写 .s
直接汇编。
这里是大写 .S
所以会先用 C 预处理器过一遍。
狗剩
这是宏,但可以用gcc进行预处理
狗剩
不是汇编指令
LEI-Xiongwei
xry111 Xi Ruoyao 大佬您好,请问你们在OpenSSL的MD5汇编实现中为什么没有用原来X86中用的cfi呢?
xry111
LEI-Xiongwei 不是我写的。而且好像除了 x86 以外都没有用 .cfi_*。
这个东西应该只对 C++ 异常处理 (但是 OpenSSL 是 C),以及提高调试和性能分析的精确度有用,可能大家目前还没有这么高的精确度要求?或者由于某种原因别的架构上没有这个东西精确度也凑合够用,而 x86 上直接爆炸?我不是很清楚。
LEI-Xiongwei
xry111 好的,谢谢您的解答。