ABI Registrieren Sie Namen für die RISC-V Calling Convention

8

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 register x14 ist. Jedoch die Anweisung

%Vor%

wird von riscv64-unknown-elf-as nach 0x00000113 kompiliert ( -m32 macht keinen Unterschied). In Binär:

%Vor%

Also hier scheint sp x2 zu sein. Dann habe ich ein bisschen gegoogelt und das RISC-V Linux Benutzerhandbuch gefunden. In diesem Dokument wird angegeben, dass sp ist x30 .

Also, was ist es? Gibt es verschiedene ABIs? Kann ich den ABI mit einer Befehlszeilenoption auf riscv64-unknown-elf-* setzen? Gibt es irgendwo einen umfassenden Tisch?

    
CliffordVienna 04.06.2015, 06:32
quelle

1 Antwort

6

Der Stapelzeiger ist jetzt x2 .

Hier ist die aktuelle ABI Dokumentation, die aus der ISA-Spezifikation auf Benutzerebene entfernt wurde und nun denselben Link enthält.

Die ABI wurde modifiziert, um besser der neuen RISC-V-komprimierten Spezifikation zu entsprechen, die die acht meistverwendeten Register in x8-x15 nebeneinander platziert.

Hinweis: trauen keiner ANY riscv.org-Webseite zu. Quan Nguyen stellt in seiner Einführung klar, dass das "RISC-V Linux User Manual" den Portierungsprozess dokumentiert und dass die Genauigkeit NICHT garantiert ist.

    
Chris 04.06.2015, 21:32
quelle

Tags und Links