LoongArch-Documentation icon indicating copy to clipboard operation
LoongArch-Documentation copied to clipboard

ABI文档中没有syscall寄存器约定

Open XiaodongLoong opened this issue 1 year ago • 6 comments

Describe the question:

C库或者一些系统调用相关的库函数在实现时需要知道向内核参数传递的寄存器约定和寄存器里面的值的销毁情况。目前ABI文档中没有这样的描述。

Describe the idea:

Additional context:

XiaodongLoong avatar Aug 19 '22 02:08 XiaodongLoong

不同内核的 syscall ABI 不一样,倒是可以在 Linux docs 补充这些信息

xen0n avatar Aug 19 '22 02:08 xen0n

目前 LoongArch 的系统调用寄存器约定和普通的函数调用一样。

FreeFlyingSheep avatar Aug 19 '22 03:08 FreeFlyingSheep

目前 LoongArch 的系统调用寄存器约定和普通的函数调用一样。

syscall返回值里面应该不会使用多个寄存器,但是函数调用中会这种情况发生。我建议单独列出来,比较清楚,不容易混淆。

XiaodongLoong avatar Aug 19 '22 07:08 XiaodongLoong

目前 LoongArch 的系统调用寄存器约定和普通的函数调用一样。

不一样,Linux/LoongArch 系统调用确保除了九个临时寄存器之外其他寄存器不被 clobber。正常寄存器约定里 a1-a7 也会给 clobber 掉。

xen0n avatar Aug 19 '22 10:08 xen0n

See https://github.com/loongson/LoongArch-Documentation/pull/67.

FreeFlyingSheep avatar Aug 22 '22 02:08 FreeFlyingSheep

https://lore.kernel.org/linux-doc/[email protected]/

xen0n avatar Oct 18 '22 10:10 xen0n