24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

shladdp4 ─ ポインタの左シフトおよび加算 (Shift Left and Add Pointer) shladdp4 書式 : (qp) shladdp4 r 1 = r 2 , count 2 , r 3 A2 説明 : 第 1 ソース・オペランドが、 count 2 ビッ トだけ左にシフトされ、 次に、 第2ソース・オ ペラン ド に加算される。 結果の上位32 ビッ トがゼロにクリアされ、 次に、 GR r 3 のビッ ト {31:30} が結果のビ ッ ト {62:61} に コ ピ ー さ れる。 こ の結果が GR r 1 に格納される。 第 1 オペラン ド は、 1、 2、 3、 あるいは 4 ビッ トだけシフトできる。 図 2-43. ポインタの左シフトおよび加算 操作 : if (PR[qp]) { check_target_register(r 1 ); } GR r 2 : 割り込み : 無効操作フ ォ ル ト GR r 1 : tmp_res = (GR[r 2 ]

shr shr ─ 右シフト (Shift Right) 書式 : (qp) shrr1 = r3 , r2 signed_form I5 (qp) shr.ur1 = r3 , r2 unsigned_form I5 (qp) shrr1 = r3 , count6 (qp) extrr1 = r3 , count6 , 64–count6 の擬似オペコ ー ド (qp) shr.ur1 = r3 , count6 (qp) extr.ur1 = r3 , count6 , 64–count6 の擬似オペコ ー ド 説明 : GR r3 内の値が右にシ フ ト され、 GR r1 に格納される。 signed_form では、 空きになった ビッ ト位置にGR r3 のビッ ト 63 が埋め られ、 unsigned_form では、 空きになったビ ッ ト 位置にゼ ロ が埋め ら れる。 シ フ ト さ れる ビ ッ ト 数は、 GR r2 の値ま たは即値 count6 で指 定 される。 シ フ ト ・ カ ウ ン ト は符号なし数値 と して解釈 さ れる。 GR r2 の値が 63 より大 きい場合の結果は、 unsigned_form の場合あるいは GR r3 のビッ ト 63 が 0 の場合はすべ て 0 ビットに、 signed_form で GR r3 のビッ ト 63 が 1 の場合にはすべて 1 ビッ トになる。 .u コ ンプ リ ー タが指定された場合はシフ ト は符号なし ( 論理 ) シフ ト になり、 指定されな い場合は符号付き ( 算術 ) シフ トになる。 即値形式については、 3:48 ページの 「extr — 抽出 (Extract)」 を参照のこ と。 操作 : if (PR[qp]) { check_target_register(r 1); } 割り込み : 無効操作フ ォ ル ト if (signed_form) { count = (GR[r 2] > 63) ? 63 : GR[r 2]; GR[r 1 ] = shift_right_signed(GR[r 3 ], count); } else { count = GR[r 2]; GR[r 1 ] = (count > 63) ? 0 : shift_right_unsigned(GR[r 3 ], count); } GR[r 1 ].nat = GR[r 2 ].nat || GR[r 3 ].nat; 第 3 巻 : 命令リファレンス 3:221

shladdp4 ─ ポインタの左シフトおよび加算 (Shift Left and Add Pointer)<br />

shladdp4<br />

書式 : (qp) shladdp4 r 1 = r 2 , count 2 , r 3 A2<br />

説明 : 第 1 ソース・オペランドが、 count 2 ビッ トだけ左にシフトされ、 次に、 第2ソース・オ<br />

ペラン ド に加算される。 結果の上位32 ビッ トがゼロにクリアされ、 次に、 GR r 3 のビッ<br />

ト {31:30} が結果のビ ッ ト {62:61} に コ ピ ー さ れる。 こ の結果が GR r 1 に格納される。 第<br />

1 オペラン ド は、 1、 2、 3、 あるいは 4 ビッ トだけシフトできる。<br />

図 2-43. ポインタの左シフトおよび加算<br />

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

check_target_register(r 1 );<br />

}<br />

GR r 2 :<br />

割り込み : 無効操作フ ォ ル ト<br />

GR r 1 :<br />

tmp_res = (GR[r 2 ]

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!