Sono confuso riguardo ai nomi dei registri ABI RISC-V. Ad esempio, la Tabella 18.2 nel "Manuale di istruzioni RISC-V, Volume I: Livello utente ISA, Versione 2.0" a pagina 85 specifica che il puntatore dello stack sp
è registrato x14
. Tuttavia, l'istruzioneNome registro ABI per convenzione chiamata RISC-V
addi sp,zero,0
è compilato a 0x00000113 per riscv64-unknown-elf-come (-m32
non fa differenza). In binario:
000000000000 00000 000 00010 0010011
^imm ^rs1 ^f3 ^rd ^opcode
Così qui sp
sembra essere x2
. Poi ho cercato su Google un po 'e ho trovato il RISC-V Linux User's Manual. Questo documento afferma che sp
è x30
.
Quindi che cos'è? Esistono ABI diversi? Posso impostare l'ABI con un'opzione della riga di comando su riscv64-unknown-elf-*
? C'è un tavolo completo da qualche parte?
Il collegamento è interrotto. Si prega di aggiornarlo. –
Corretto collegamento interrotto. – RicoRico