【问题标题】:ABI Register Names for RISC-V Calling ConventionRISC-V 调用约定的 ABI 寄存器名称
【发布时间】:2015-08-18 15:14:54
【问题描述】:

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

addi sp,zero,0

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

000000000000 00000 000 00010 0010011
^imm         ^rs1  ^f3 ^rd   ^opcode

所以这里的sp 似乎是x2。然后我用谷歌搜索了一下,找到了RISC-V Linux User's Manual。该文档指出sp 是x30。

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

【问题讨论】:

    标签: cpu-registers calling-convention abi riscv


    【解决方案1】:

    堆栈指针现在是x2。

    Here 是当前的 ABI 文档,已从 User-Level ISA specification 中移出,现在包含相同的链接。

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

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

    【讨论】:

    • 修复了断开的链接。
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2020-08-27
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2021-02-09
    相关资源
    最近更新 更多