24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

mux ─ 置換 (Mux) 書式 : (qp) mux1r 1 = r 2 , mbtype 4 one_byte_form I3 (qp) mux2r 1 = r 2 , mhtype 8 two_byte_form I4 説明 : 1 つのソース ・ レジスタ GR r 2 内のパ ッ ク形式の要素に対して置換が行われ、 その結果が GR r 1 に格納される。 8 ビ ッ ト 要素に対しては、 可能なすべての置換タ イ プのなかの一部 しか指定できない。 5 つの可能な置換と それらの図解を、 それぞれ表 2-41 と 図 2-26 に示 す。 表 2-41. 8 ビット要素に対する Mux による置換 mbtype4 機能 @rev バイトの順序を逆にする。 @mix GR r2 の両半分に対してミックス操作を実行する。 @shuf GR r2 の両半分に対してシャッフル操作を実行する。 @alt GR r2 の両半分に対して交互操作を実行する。 @brcst GR r2 の最下位バイトに対してブロードキャスト操作を実行する。 図 2-26. Mux1 の操作 (8 ビット要素 ) GR r 2 : GR r 1 : GR r 2 : GR r 1 : mux1 r 1 = r 2 , @rev mux1 r 1 = r 2 , @shuf GR r 2 : GR r 1 : 16 ビ ッ ト 要素に対しては、 反復の有無にかかわ ら ず、 可能なすべての置換タ イ プを指定 できる。 これらの置換は、 4 つの 16 ビッ ト ・データ要素のインデックスをエンコーディ ングしたものである 8 ビッ トのmhtype 8 フ ィ ールドで表現される。 インデッ クスされた GR r 2 の 16 ビッ ト要素が、 ターゲッ ト ・レジスタGR r 1 の対応する 16 ビット位置にコ ピーされる。 インデックスはリ トル・エンディアン型の順序でエンコードされる。 (mhtype 8 の 8 ビッ ト [7:0] がビ ッ ト 対のグル ー プに分け ら れ、 操作の項では、 mhtype 8 [3]、 mhtype 8 [2]、 mhtype 8 [1]、 mhtype 8 [0] と命名されている。 ) 3:170 第 3 巻 : 命令リファレンス GR r 2 : GR r 1 : GR r 2 : GR r 1 : mux1 r 1 = r 2 , @brcst mux1 r 1 = r 2 , @mix mux1 r 1 = r 2 , @alt mux

mux 図 2-27. Mux2 の例 (16 ビット要素 ) GR r 2 : GR r 1 : GR r 2 : GR r 1 : mux2 r1 = r2, 0x8d( シャトル 10 00 11 01) mux2 r 1 = r 2 , 0xd8( オルタネート 11 01 10 00) 操作 : if (PR[qp]) { check_target_register(r 1 ); if (one_byte_form) { x[0] = GR[r 2 ]{7:0}; x[1] = GR[r 2]{15:8}; x[2] = GR[r 2 ]{23:16}; x[3] = GR[r 2 ]{31:24}; x[4] = GR[r 2]{39:32}; x[5] = GR[r 2 ]{47:40}; x[6] = GR[r 2 ]{55:48}; x[7] = GR[r 2]{63:56}; switch (mbtype) { case ‘@rev’: GR[r 1 ] = concatenate8(x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]); break; case ‘@mix’: GR[r 1] = concatenate8(x[7], x[3], x[5], x[1], x[6], x[2], x[4], x[0]); break; case ‘@shuf’: GR[r 1 ] = concatenate8(x[7], x[3], x[6], x[2], x[5], x[1], x[4], x[0]); break; case ‘@alt’: GR[r 1 ] = concatenate8(x[7], x[5], x[3], x[1], x[6], x[4], x[2], x[0]); break; case ‘@brcst’: GR[r1] = concatenate8(x[0], x[0], x[0], x[0], x[0], x[0], x[0], x[0]); break; } } else { // two_byte_form 第 3 巻 : 命令リファレンス 3:171 GR r 2 : GR r 1 : GR r 2 GR r 1 : mux2 r 1 = r 2 , 0x1b ( リバース 00 01 10 11) mux2 r 1 = r 2 , 0xaa ( ブロードキャスト 10 10 10 10)

mux ─ 置換 (Mux)<br />

書式 : (qp) mux1r 1 = r 2 , mbtype 4 one_byte_form I3<br />

(qp) mux2r 1 = r 2 , mhtype 8 two_byte_form I4<br />

説明 : 1 つのソース ・ レジスタ GR r 2 内のパ ッ ク形式の要素に対して置換が行われ、 その結果が<br />

GR r 1 に格納される。 8 ビ ッ ト 要素に対しては、 可能なすべての置換タ イ プのなかの一部<br />

しか指定できない。 5 つの可能な置換と それらの図解を、 それぞれ表 2-41 と 図 2-26 に示<br />

す。<br />

表 2-41. 8 ビット要素に対する Mux による置換<br />

mbtype4 機能<br />

@rev バイトの順序を逆にする。<br />

@mix GR r2 の両半分に対してミックス操作を実行する。<br />

@shuf GR r2 の両半分に対してシャッフル操作を実行する。<br />

@alt GR r2 の両半分に対して交互操作を実行する。<br />

@brcst GR r2 の最下位バイトに対してブロードキャスト操作を実行する。<br />

図 2-26. Mux1 の操作 (8 ビット要素 )<br />

GR r 2 :<br />

GR r 1 :<br />

GR r 2 :<br />

GR r 1 :<br />

mux1 r 1 = r 2 , @rev<br />

mux1 r 1 = r 2 , @shuf<br />

GR r 2 :<br />

GR r 1 :<br />

16 ビ ッ ト 要素に対しては、 反復の有無にかかわ ら ず、 可能なすべての置換タ イ プを指定<br />

できる。 これらの置換は、 4 つの 16 ビッ ト ・データ要素のインデックスをエンコーディ<br />

ングしたものである 8 ビッ トのmhtype 8 フ ィ ールドで表現される。 インデッ クスされた<br />

GR r 2 の 16 ビッ ト要素が、 ターゲッ ト ・レジスタGR r 1 の対応する 16 ビット位置にコ<br />

ピーされる。 インデックスはリ トル・エンディアン型の順序でエンコードされる。<br />

(mhtype 8 の 8 ビッ ト [7:0] がビ ッ ト 対のグル ー プに分け ら れ、 操作の項では、 mhtype 8 [3]、<br />

mhtype 8 [2]、 mhtype 8 [1]、 mhtype 8 [0] と命名されている。 )<br />

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

GR r 2 :<br />

GR r 1 :<br />

GR r 2 :<br />

GR r 1 :<br />

mux1 r 1 = r 2 , @brcst<br />

mux1 r 1 = r 2 , @mix<br />

mux1 r 1 = r 2 , @alt<br />

mux

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!