Nios II Gen2 プロセッサー・リファレンス・ガイド

ID 683836
日付 10/28/2016
Public
ドキュメント目次

7.3. レジスター使用率

ABI では、「Nios II プロセッサー・リファレンス・ハンドブック」の「プログラミング・モデル」の章で定義された Nios II レジスターファイルに、追加の使用法を追加しています。
表 85.  Nios II ABI レジスター使用率
レジスター 名称 コンパイラーにより使用される 呼び出し先保存42 通常の使用法
r0 zero v   0x00000000
r1 at     一時的なアセンブラー
r2   v   戻り値 ( 最下位 32 ビット )
r3   v   戻り値 ( 最上位 32 ビット )
r4   v   レジスター引数 ( 最初の 32 ビット )
r5   v   レジスター引数 ( 2 番目の 32 ビット )
r6   v   レジスター引数 ( 3 番目の 32 ビット )
r7   v   レジスター引数 ( 4番目の 32 ビット )
r8   v   呼び出し先保存汎用レジスター
r9   v  
r10   v  
r11   v  
r12   v  
r13   v  
r14   v  
r15   v  
r16   v v 呼び出し先保存汎用レジスター
r17   v v
r18   v v
r19   v v
r20   v v
r21   v v
r22   v 43
r23   v 44
r24 et     一時的な例外
r25 bt     一時的な中断
R26 gp v   グローバルポインター
r27 sp v   スタックポインター
r28 fp v 45 フレームポインター
r29 ea     例外戻りアドレス
r30 ba    
  • 通常のレジスターセット : ブレーク戻りアドレス
  • シャドー・レジスター・セット : SSTATUSレジスター
r31 ra v   戻りアドレス

8 ビット以上の値のエンディアンはリトル・エンディアンです。 値の上位 8 ビットは上位バイトアドレスに格納されます。

42 関数は、最初に保存すると、これらのレジスターの 1 つを使用できます。この関数は終了する前にレジスターの元の値を復元する必要があります
43 GNU Linux オペレーティング・システムでは、r22はグローバル・オフセット・テーブル (GOT) を指します。それ以外の場合は、呼び出し先退避汎用レジスターとして使用できます。
44 GNU Linux オペレーティング・システムでは、r23スレッドポインターを指します。それ以外の場合は、呼び出し先退避汎用レジスターとして使用します。
45 フレームポインターが使用されていない場合、レジスターは呼び出し先退避一時レジスターとして使用できます。「フレームポインターの消去」を参照してください。