16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

tnat<br />

tnat ─ Test Nat テスト (Test NaT)<br />

書式 : (qp) tnat.trel.ctype p 1 , p 2 = r 3 I17<br />

説明 : GR r3 の Nat ビッ トが、 trel コンプリータに応じて補数を取られるかそのままで、 単一<br />

ビ ッ ト の結果を形成す る。 こ の結果は、 プ レ デ ィ ケ ー ト ・ レ ジ ス タ ・ デス テ ィ ネ ー シ ョ<br />

ン p1 およびp2 に書き込まれる。 結果がデスティネーションにどのように書き込まれる<br />

かは、 ctype で指定される比較タ イプに よ って決ま る。 Compare 命令 と 3:34 ページの表<br />

2-15 を 参照の こ と 。<br />

trel コンプリータの値.nz および .z は、 それぞれ、、 非ゼロ判定かゼロ判定かを示す。 通<br />

常タイプと unc タ イ プの比較では、 .z の値だけがハー ド ウ ェアに よ っ て直接サポ ー ト さ<br />

れている。 つま り、 .nz 値は、 実際には擬似オペコ ー ド である。 .nz 値では、 アセンブラ<br />

は単にプレディ ケー ト ・ ターゲッ ト指定子を切り換え、 サポー ト されている関係を利用<br />

する。 並列タイプは、 両方の関係がハー ド ウ ェアでサポー ト される。<br />

表 2-54. 通常および unc タイプの Nat 判定での関係<br />

trel 判定関係 擬似オペコード<br />

nz 選択されたビット == 1 z p1 ↔ p2 z 選択されたビット == 0<br />

表 2-55. 並列タイプの NaT 判定での関係<br />

trel 判定関係<br />

nz 選択されたビット == 1<br />

z 選択されたビット == 0<br />

2 つのプレデ ィ ケー ト レジスタ ・ デステ ィ ネーシ ョ ンが同じ (p 1 と p 2 が同一のプレデ ィ<br />

ケー ト ・ レジスタを指定) 場合は、 修飾プ レ デ ィ ケ ー ト がセ ッ ト さ れてい る か、 比較タ<br />

イプが unc であれば、 こ の命令は無効操作 (Illegal Operation) フォルトを発生する。<br />

操作 : if (PR[qp]) {<br />

if (p1 == p2)<br />

illegal_operation_fault();<br />

if (trel == ‘nz’) // ‘nz’ - test for 1<br />

tmp_rel = GR[r 3 ].nat;<br />

else // ‘z’ - test for 0<br />

tmp_rel = !GR[r 3 ].nat;<br />

switch (ctype) {<br />

case ‘and’: // and-type compare<br />

if (!tmp_rel) {<br />

PR[p 1 ] = 0;<br />

PR[p 2 ] = 0;<br />

}<br />

break;<br />

case ‘or’: // or-type compare<br />

if (tmp_rel) {<br />

PR[p 1 ] = 1;<br />

PR[p 2 ] = 1;<br />

}<br />

break;<br />

case ‘or.andcm’: // or.andcm-type compare<br />

if (tmp_rel) {<br />

PR[p 1] = 1;<br />

第 3 巻 : 命令リファレンス 3:237

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!