.tocof 疑似命令
目的
ローカル・シンボルの定義を外部シンボルの目次にして、そのローカル・シンボルを式の中で使用できるようにします。
構文
description
.tocof 疑似命令は、 Name2 パラメーターをグローバル・シンボルとして宣言し、 Name1 シンボルを、そのシンボル Name2を含む別のモジュールの目次 (TOC) としてマークします。 結果として、ローカル・シンボルを外部シンボルの TOC として定義することができます。これにより、ローカル・シンボルを式で使用したり、呼び出されるモジュールの TOC (通常は .tc (T) ステートメントで) を参照したりすることができます。 この疑似命令は、このデータを TOC 外部シンボルのアドレスに初期化する再配置辞書項目 (RLD) を生成します。 .tocof 疑似命令は、呼び出し元が制御権を移動する前に、呼び出されたモジュールの TOC のアドレスを最初にロードする必要があるモジュール間呼び出しに使用できます。
パラメーター
| 項目 | 説明 |
|---|---|
| Name1 | Name2 値を含むモジュールの TOC として機能するローカル・シンボルを指定します。 Name1 記号は、 .tc (T) ステートメントに指定する必要があります。 |
| Name2 | TOC を含むモジュール内に存在するグローバル・シンボルを指定します。 |
例
以下の例は、 .tocof 疑似命令の使用法を示しています。
tocbeg: .toc
apb: .tc [tc],pb,tpb
# This is an unnamed TOC entry
# that contains two addresses:
# the address of pb and
# the address of the TOC
# containing pb.
.tocof tpb,pb
.set always,0x14
.csect [PR]
.using tocbeg,rtoc
l 14,apb
# Load R14 with the address
# of pb.
l rtoc,apb+4
# Load the TOC register with the
# address pb's TOC.
mtspr lr,14
# Move to Link Register.
bcr always,0
# Branch Conditional Register branch
# address is contained in the Link
# register.