2017-01-03 8 views
-1

誰かが私にそれがどんな仕事であり、PPCで新しいのか、そして私がR4のためにブロックされていることを完全に理解していないと私に説明することができるなら、タイトルはすべて言った。ppcでr4とは何ですか?

+0

これは関数の引数のためのレジスタです。http://www.csd.uwo.ca/~mburrel/stuff/ppc-asm.html –

+0

プロセッサー/ ISA?どの部分がはっきりしていなかったのですか? –

答えて

2

r4は単なる固定小数点の汎用レジスタです。整数値を格納する以外に、ハードウェア側に特別な機能はありません。

しかし、ほとんどのソフトウェアABIは、関数呼び出しより2番目(整数)の引数としてr4を使用します。

[「整数」は、ここでポインタ型が含まれていることに注意してください]

POWERのための命令セットアーキテクチャの完全な詳細については、「PowerISA」ドキュメントをチェックアウト:https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0

0

のPowerPCは、32個の汎用レジスタ(GPRを持っています一般に命令のターゲットまたはソースとして使用することができます。 r4は汎用レジスタの1つです。 This siteには、レジスタの一般的な使用方法の説明が含まれています。

アプリケーションバイナリインターフェイス(ABI)は、関数の呼び出し規則に関する一連の規則を提供します。最も一般的なPPC ABIでは、r4が関数の第2引数を保持するために使用されます。例えば、あなたは、機能の単純な組有することができる:

.func1: 
    # ... 
    # foo = func2(8, 9); 
    # ... 
    # Prologue to save SP, etc. omitted 
    li r3, 8 
    li r4, 9 
    bl .func2 
    # Eplogue to restore stack, saved registers, return to caller omitted 

.func2: 
    # Add two numbers together 
    # int32_t func2(a, b) { return a+b; } 
    # r3 = a, first argument 
    # r4 = b, second argument 
    # return value in r3 
    # Note: no need for a prologue or epilogue because we didn't modify saved registers and this is a leaf function 
    add r3, r3, r4 
    blr 

r3は、典型的には、戻り値のために使用されているが、r3が関数から64ビットの戻り値のr4と組み合わせることができます。

ST Manual for Book E processorsなどのマニュアルをご覧ください。彼らはレジスタの使用法などについてもっと詳しく説明します。

関連する問題