Ich bin verwirrt über die RISC-V ABI-Register-Namen. Zum Beispiel gibt Tabelle 18.2 im "RISC-V Befehlssatzhandbuch, Band I: Benutzer-ISA, Version 2.0" auf Seite 85 an, dass der Stapelzeiger sp
das Register x14
ist. Allerdings ist die AnweisungABI-Register-Namen für RISC-V Calling Convention
addi sp,zero,0
auf 0x00000113 von riscv64-unknown-Elf-als kompilierte (-m32
keinen Unterschied machen). In binär:
000000000000 00000 000 00010 0010011
^imm ^rs1 ^f3 ^rd ^opcode
Also hier sp
scheint x2
zu sein. Dann habe ich ein wenig gegoogelt und die RISC-V Linux User's Manual gefunden. Dieses Dokument gibt an, dass sp
x30
ist.
Also was ist das? Gibt es verschiedene ABIs? Kann ich den ABI mit einer Befehlszeilenoption auf riscv64-unknown-elf-*
setzen? Gibt es irgendwo einen umfassenden Tisch?
Diese Verbindung ist unterbrochen. Bitte aktualisiere es. –
Behoben defekte Verbindung. – RicoRico