8.6.5 PIC/PID機能の制約

(1)

位置独立であるコードやデータは,リンク時とは異なるアドレスで動作します。そのため,位置独立であるコードやデータのアドレスを,静的変数の初期化子に指定することはできません。

(2)

GP相対,EP相対セクションは,位置独立データと,位置独立でないデータの両方で使用可能です。ただし,GP,EPレジスタを共有しているため,PID機能を使用するためにGP,EPレジスタの値を変更すると,位置独立でないデータの参照アドレスも変更されます。GP,EPレジスタはそれぞれについて,位置独立データ用に使うか,位置独立でないデータ用に使うかを,プログラム全体で統一することを推奨します。

(3)

標準ライブラリは,PIC,PIROD,PID機能に対応していません。共有部に配置して使用してください。

(4)

PIC/PID機能を使用するとセクション名が変わるので,リンカの-startオプション指定も合わせて変更する必要があります。

(5)

PIC/PID機能を使用する場合,標準のスタートアップ・ルーチンは使用できません。「8.6.6 スタートアップ・ルーチン」を参照して,スタートアップ・ルーチンを作成してください。