ABI注册RISC-V呼叫大会的名称

Cli*_*nna 12 riscv

我对RISC-V ABI寄存器名称感到困惑.例如,"RISC-V指令集手册,第I卷:用户级ISA,版本2.0"(第85页)中的表18.2指定堆栈指针sp是寄存器x14.但是,指令

addi sp,zero,0
Run Code Online (Sandbox Code Playgroud)

由riscv64-unknown-elf-as编译为0x00000113(-m32没有区别).二进制:

000000000000 00000 000 00010 0010011
^imm         ^rs1  ^f3 ^rd   ^opcode
Run Code Online (Sandbox Code Playgroud)

所以这里sp似乎是x2.然后我google了一下,找到了RISC-V Linux用户手册.该文件表明了这sp一点x30.

那是什么?是否有不同的ABI?我可以使用命令行选项设置ABI riscv64-unknown-elf-*吗?某处有一张综合表吗?

Chr*_*ris 10

堆栈指针现在x2.

以下是当前的ABI文档,该文档已移出用户级ISA规范,该规范现在包含相同的链接.

对ABI进行了修改,以更好地适应新的RISC-V压缩规范,该规范将8个最常用的寄存器放在x8-x15中.

注意:不要相信任何非riscv.org网页.Quan Nguyen在他的介绍中明确指出,"RISC-V Linux用户手册"用于记录移植过程,并且不保证准确性.