16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

• CFM 内のローテーション用のリネーム・ベース・レジスタが0 にリセットされ<br />

る。<br />

• RB b1 にリターン・ リンク値が格納される。<br />

• return: 修飾プ レデ ィ ケ ー ト が 1 の場合に分岐が発生し、 さ ら に以下の処置がなされ<br />

る。<br />

• CFM、 EC、 現在の特権レベルがPFS から復元される。 ( 特権レベルは、 復元し<br />

て特権レベルが大き く な ら ない場合に限 り 復元される。 )<br />

• 呼び出し元のスタ ッ ク ・ フ レ ー ムが復元される。<br />

• リターンによって特権レベルが下がり、 かつPSR.lp が 1 の場合は、<br />

Lower-previlege Transfer ( 下位特権遷移 ) トラップが発生する。<br />

• ia: OS に よ っ てイ ン タ ー セプ ト さ れな く て も 、 無条件に分岐が発生す る。 こ の分岐<br />

によって、 (PSR.is を 1 にセッ ト する こ とによ り ) IA-32 命令セ ッ ト を呼び出して、<br />

BR b2{31:0} 内の仮想 リ ニア分岐先ア ド レ スか ら IA-32 命令の処理を開始す る。 修飾<br />

プレディケー トが PR 0 でない場合は、 無効操作フ ォ ル ト が発生す る。 命令セ ッ ト の<br />

移行がデ ィ スエ ー ブルに さ れてい る場合は (PSR.di が 1)、 命令セ ッ ト 移行無効フ ォ ル<br />

トが発生する。<br />

IA-32 におけ る分岐先の実効ア ド レ ス は、 現在の コ ー ド ・ セグ メ ン ト と 相対的に、 つ<br />

まり、 EIP{31:0}= BR b2 {31:0}- CSD.base として計算される。 PSR.di が 0 の場合は、<br />

任意の特権レ ベルで IA-32 命令セ ッ ト に移行で き る。 PSR.dfh が 1 の場合は、 分岐先<br />

の IA-32 命令で浮動小数点レ ジ ス タ無効フ ォ ル ト が発生す る。 命令セ ッ ト の移行中<br />

には、 レジスタ ・ バンクの切り換えも特権レベルの変更も生じない。<br />

ソ フ ト ウ ェ ア上では、 分岐を発行する前に、 必ず コ ー ド ・ セグ メ ン ト ・ デ ィ ス ク リ<br />

プタ (CSD) およびコード ・セグメント ・セレクタ (CS) がロー ド されるよ うにしなけ<br />

ればならない。 分岐先の EIP 値がコ ー ド ・ セグメン ト 制限を超えた り、 その値に<br />

コード ・セグメント特権違反があった場合は、 分岐先のIA-32 命令で<br />

IA-32_Exception (GPFault) が発生する。 16 ビッ トのIA-32 コードに移行する場合は、<br />

BR b2 が CSD.base の 64K バイ ト 以内でなければ、 分岐先命令で GPFault が発生する。<br />

EFLAG.rf は、 最初の IA-32 命令が正常に終了す る ま では変更 さ れない。 br.ia の実<br />

行が完了してか ら、 最初の IA-32 命令の実行が開始される ま での間に、 PSR.da、<br />

PSR.id、 PSR.dd、 PSR.ed は 0 にク リアされる。 EFLAG.rf は、 分岐先の IA-32 命令が<br />

正常に終了する ま では ク リ ア されない。<br />

IA-32 でのプロセッサによ る整合性のあるメモ リ参照と Itanium アーキテクチャでの<br />

順序付け られていない メ モ リ 参照 と の間で メ モ リ の順序付けが必要な場合は、 ソ フ<br />

トウェアによって分岐の前にmf 命令を発行しなければな ら ない。 プ ロ セ ッ サは、<br />

Itanium 命令セ ッ ト で生じ る命令ス ト リ ー ムへの書き込みが、 後続の IA-32 命令<br />

フェッチから検出できるかどうかは保証していない。 br.ia 命令では、 命令のシ リ<br />

アル化操作は行わない。 プロセッサは、 ( 同一命令グルー プ内で も ) 前に行われた<br />

GR や FR への書き込みが最初の IA-32 命令か ら検出で き る か ど う かは保証していな<br />

い。 br.ia 命令ではすべての AR を暗黙的に読み込む場合があ る ので、 br.ia 命令<br />

と同じ命令グループ内での AR への書き込みは許可されない。 AR への書き込みと<br />

br.ia 命令 と の間に無効な RAW の依存関係が存在する場合は、 最初の IA-32 命令の<br />

フ ェ ッ チ と 実行の段階では、 更新後の AR 値がわかる こ と もわからないこ と もある。<br />

IA-32 命令セ ッ ト を実行す る と 、 ALAT の内容は未定義の ま ま である。 ソ フ ト ウ ェ ア<br />

上では、 命令セッ ト の移行があった場合は、 ALAT の値が保持される も の と みなし<br />

てはならない。 現在のレジスタ ・ スタック ・ フレーム内に残されたすべてのレジス<br />

タ の状態は、 命令セ ッ ト の移行の前後では未定義であ る。 IA-32 コードに移行する<br />

と、 ALAT 内の既存エン ト リ は無視される。 レ ジス タ ・ ス タ ッ ク内にダー テ ィ なレ<br />

ジスタが存在する場合は、 br.ia 命令で無効操作フ ォ ル ト が発生す る。 現在の レ ジ<br />

スタ ・ スタック ・ フレームはゼロ ・ ク リアされる。 ダーティなレジスタのレジスタ ・<br />

3:18 第 3 巻 : 命令リファレンス<br />

br

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!