2015-06-04 36 views
8

我對RISC-V ABI寄存器名稱感到困惑。例如,第85頁的「RISC-V指令集手冊第一卷:用戶級ISA,版本2.0」中的表18.2指定了堆棧指針sp是寄存器x14。然而,指令RISC-V調用公約的ABI寄存器名稱

addi sp,zero,0 

由riscv64未知的小精靈,因爲編譯0x00000113(-m32不會有所作爲)。在二進制:

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

所以這裏sp似乎是x2。然後我搜索了一下,發現了RISC-V Linux User's Manual。該文件指出spx30

那是什麼?有不同的ABI嗎?我可以使用命令行選項將ABI設置爲riscv64-unknown-elf-*?有沒有一個綜合表格?

回答

6

堆棧指針現在是x2

Here是當前的ABI文檔,它已被移出User-Level ISA specification,它現在包含相同的鏈接。

對ABI進行了修改,以更好地適應新的RISC-V壓縮規範,該規範將8個最常用的寄存器放在x8-x15中彼此相鄰。

注意:不信任任何非riscv.org網頁。 Quan Nguyen在他的介紹中明確指出,「RISC-V Linux用戶手冊」用於記錄移植過程,並且不保證準確性。

+0

該鏈接已損壞。請更新它。 –

+0

修復了斷開的鏈接。 – RicoRico

相關問題