加载论坛时出错,请强制刷新页面重试。

在学习 LoongArch 汇编时遇到的问题,请问有人能给我解答吗?

xry111

LEI-Xiongwei 因为栈溢出了。默认存储的局部变量要在栈上分配空间,而 Linux 默认的栈限制通常是 8 MB。


xry111

LEI-Xiongwei 你也可以要一个 SSH access,比如 https://portal.cfarm.net/


LEI-Xiongwei

xry111

我对GCC还没有贡献,怎么申请啊?


LEI-Xiongwei

xry111 请问一下,您的编译器是龙芯版的而不是官方的吗?我现在用的编译器没有-mlsx这个参数。


xry111

LEI-Xiongwei 是 GCC 14 的 snapshot,GCC 14 要到明年第二季度正式发布。


LEI-Xiongwei

xry111 请问大佬,做C语言底层库的适配优化工作是需要写纯汇编,还是只要C源码上的内嵌汇编?


LEI-Xiongwei

xen0n xry111

loongarchglibc.pdf
3MB

各位大佬,我想要复现这篇论文里的工作,本以为只需要在原来的C代码上进行内嵌汇编,但我联系上了该文的指导老师,他告诉我说他们用的纯汇编。这篇文章的源代码应该是与龙芯签了保密协议的不能提供给我。那么我该如何将多个汇编源文件与源glibc一起编译,再一起跑Unixbenchmark呢?


xen0n

LEI-Xiongwei 做C语言底层库的适配优化工作是需要写纯汇编,还是只要C源码上的内嵌汇编?

显然是根据需要而灵活选择。一般是不喜欢很多汇编的,因为不好维护,一般将其控制在必须的最低限度即可。


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

@xen0n @Sunny 为什么这段代码可以直接用C语言的“#include”和宏定义,又可以直接写汇编,内链汇编不是要用asm()包起来的吗?


狗剩

LEI-Xiongwei .S结尾,这是汇编文件,需要预处理,leaf()是一个叶子函数


狗剩

你可以看一下我写的一个gforth的后端的汇编代码,可以利用他查看code字,都是用的汇编指令


狗剩


LEI-Xiongwei

狗剩 所以说“#include”,“#define”这些其实是汇编指令?


xry111

LEI-Xiongwei 大写 .S 的汇编文件先用 C 预处理器处理再汇编,小写 .s 直接汇编。

这里是大写 .S 所以会先用 C 预处理器过一遍。


« 上一页

知识共享许可协议
本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权。
进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途