2015-06-04 11 views
8

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?

risposta

6

Il puntatore dello stack è ora x2.

Here è la documentazione ABI corrente, che è stata spostata dallo User-Level ISA specification, che ora contiene lo stesso collegamento.

L'ABI è stato modificato per meglio adattarsi alla nuova specifica compressa RISC-V, che mette gli 8 registri più utilizzati l'uno accanto all'altro in x8-x15.

Nota: non si fida di alcuna pagina Web di non riscv.org. Quan Nguyen chiarisce nella sua introduzione che il "Manuale dell'utente di RISC-V Linux" è destinato alla documentazione del processo di porting e che la precisione NON è garantita.

+0

Il collegamento è interrotto. Si prega di aggiornarlo. –

+0

Corretto collegamento interrotto. – RicoRico

Problemi correlati