24531904_j
24531904_j 24531904_j
操作 : if (PR[qp]) { check_target_register(r 1); } 割り込み : 無効操作フ ォ ル ト 3:176 第 3 巻 : 命令リファレンス pack if (two_byte_form) { if (signed_saturation_form) { max = sign_ext(0x7f, 8); min = sign_ext(0x80, 8); } else { // unsigned_saturation_form max = 0xff; min = 0x00; } temp[0] = sign_ext(GR[r 2 ]{15:0}, 16); temp[1] = sign_ext(GR[r 2 ]{31:16}, 16); temp[2] = sign_ext(GR[r 2 ]{47:32}, 16); temp[3] = sign_ext(GR[r 2 ]{63:48}, 16); temp[4] = sign_ext(GR[r 3 ]{15:0}, 16); temp[5] = sign_ext(GR[r 3 ]{31:16}, 16); temp[6] = sign_ext(GR[r 3 ]{47:32}, 16); temp[7] = sign_ext(GR[r 3 ]{63:48}, 16); for (i = 0; i < 8; i++) { if (temp[i] > max) temp[i] = max; } if (temp[i] < min) temp[i] = min; GR[r 1 ] = concatenate8(temp[7], temp[6], temp[5], temp[4], temp[3], temp[2], temp[1], temp[0]); } else { // four_byte_form max = sign_ext(0x7fff, 16); // signed_saturation_form min = sign_ext(0x8000, 16); temp[0] = sign_ext(GR[r 2 ]{31:0}, 32); temp[1] = sign_ext(GR[r 2 ]{63:32}, 32); temp[2] = sign_ext(GR[r 3]{31:0}, 32); temp[3] = sign_ext(GR[r 3 ]{63:32}, 32); for (i = 0; i < 4; i++) { if (temp[i] > max) temp[i] = max; } if (temp[i] < min) temp[i] = min; GR[r1 ] = concatenate4(temp[3], temp[2], temp[1], temp[0]); } GR[r1 ].nat = GR[r2 ].nat || GR[r3 ].nat;
padd padd ─ 並列加算 (Parallel Add) 書式 : (qp) padd1r 1 = r 2 , r 3 one_byte_form, modulo_form A9 (qp) padd1.sss r 1 = r 2 , r 3 one_byte_form, sss_saturation_form A9 (qp) padd1.uus r 1 = r 2 , r 3 one_byte_form, uus_saturation_form A9 (qp) padd1.uuu r 1 = r 2 , r 3 one_byte_form, uuu_saturation_form A9 (qp) padd2r 1 = r 2 , r 3 two_byte_form, modulo_form A9 (qp) padd2.sss r 1 = r 2 , r 3 two_byte_form, sss_saturation_form A9 (qp) padd2.uus r 1 = r 2 , r 3 two_byte_form, uus_saturation_form A9 (qp) padd2.uuu r 1 = r 2 , r 3 two_byte_form, uuu_saturation_form A9 (qp) padd4r 1 = r 2 , r 3 four_byte_form, modulo_form A9 説明 : 2 つのソース ・ オペラン ド の要素セッ ト が加え合わされ、 その結果が GR r1 に格納され る。 2 つの要素の和が結果要素 と して表現で き ず、 飽和 コ ン プ リ ー タ が指定 さ れてい る場合 は、 飽和に よ る ク リ ッ ピングが行われる。 飽和は、 表 2-43 に示す よ う に、 符号付き、 符 号なしのいずれの場合も 指定でき る。 要素が上限値よ り大きい場合は、 結果は上限値に な る。 要素が下限値 よ り 小さ い場合は、 結果は下限値にな る。 飽和の上下限値を表 2-44 に示す。 表 2-43. 並列加算の飽和コンプリータ コンプリータ 結果 r1 の処理 ソース r2 の処理 ソース r3 の処理 sss 符号付き 符号付き 符号付き uus 符号なし 符号なし 符号付き uuu 符号なし 符号なし 符号なし 表 2-44. 並列加算における飽和の制限 図 2-29. 並列加算の例 サイズ 要素幅 符号付きの結果 r1 上限値 下限値 符号なしの結果 r1 上限値 下限値 1 8 ビット 0x7f 0x80 0xff 0x00 2 16 ビット 0x7fff 0x8000 0xffff 0x0000 GR r 3 : GR r 2 : GR r 1 : + + + + + + + + 第 3 巻 : 命令リファレンス 3:177 GR r 3 : GR r 2 : GR r 1 : padd1 padd2 + + + +
- Seite 137 und 138: fxor fxor ─ 浮動小数点排他
- Seite 139 und 140: getf } GR[r 1 ] = FR[f 2 ].signific
- Seite 141 und 142: invala invala ─ ALAT の無効化
- Seite 143 und 144: itc 割り込み : マシン ・
- Seite 145 und 146: itr シリアル化 : instruction_f
- Seite 147 und 148: ld 表 2-33. ロード・タイプ(
- Seite 149 und 150: ld if (check && alat_cmp(GENERAL, r
- Seite 151 und 152: ldf ldf ─ 浮動小数点ロー
- Seite 153 und 154: ldf ldfe でのみ発生する。
- Seite 155 und 156: ldfp ldfp ─ 浮動小数点ペア
- Seite 157 und 158: ldfp } } if (base_update_form) { //
- Seite 159 und 160: lfetch 表 2-38. lfhint のニー
- Seite 161 und 162: loadrs loadrs ─ レジスタ・
- Seite 163 und 164: mix mix ─ ミックス (Mix) 書
- Seite 165 und 166: mix 操作 : if (PR[qp]) { check_ta
- Seite 167 und 168: mov ar 操作 : if (PR[qp]) { tmp_t
- Seite 169 und 170: mov cr mov ─ コントロール
- Seite 171 und 172: mov fr mov ─ 浮動小数点レ
- Seite 173 und 174: mov imm mov ─ 即値の移動 (Mo
- Seite 175 und 176: mov indirect 操作 : if (PR[qp]) {
- Seite 177 und 178: mov ip mov ─ 命令ポインタ
- Seite 179 und 180: mov psr mov ─ プロセッサ・
- Seite 181 und 182: movl movl ─ ロング型即値の
- Seite 183 und 184: mux 図 2-27. Mux2 の例 (16 ビ
- Seite 185 und 186: nop nop ─ ノー・オペレー
- Seite 187: pack pack ─ パック (Pack) 書
- Seite 191 und 192: padd } 割り込み : 無効操作
- Seite 193 und 194: pavg 図 2-31. 並列平均での
- Seite 195 und 196: pavgsub pavgsub ─ 並列平均減
- Seite 197 und 198: pcmp pcmp ─ 並列比較 (Paralle
- Seite 199 und 200: pmax pmax ─ 並列最大値 (Para
- Seite 201 und 202: pmpy pmpy ─ 並列乗算 (Paralle
- Seite 203 und 204: pmpyshr 操作 : if (PR[qp]) { chec
- Seite 205 und 206: probe probe ─ アクセスのプ
- Seite 207 und 208: psad psad ─ 並列絶対差累計
- Seite 209 und 210: pshladd pshladd ─ 並列左シフ
- Seite 211 und 212: pshr } 割り込み : 無効操作
- Seite 213 und 214: psub psub ─ 並列減算 (Paralle
- Seite 215 und 216: psub } 割り込み : 無効操作
- Seite 217 und 218: ptc.g, ptc.ga ptc.g, ptc.ga ─ グ
- Seite 219 und 220: ptc.l ptc.l ─ ローカル・ト
- Seite 221 und 222: ptr 割り込み : 特権操作フ
- Seite 223 und 224: fi この命令を発行する前
- Seite 225 und 226: sm rsm ─ システム・マスク
- Seite 227 und 228: um rum ─ ユーザ・マスクの
- Seite 229 und 230: setf 操作 : if (PR[qp]) { fp_chec
- Seite 231 und 232: shladd shladd ─ 左シフトお
- Seite 233 und 234: shr shr ─ 右シフト (Shift Rig
- Seite 235 und 236: srlz srlz ─ シリアル化 (Seri
- Seite 237 und 238: st st ─ ストア (Store) 書式
padd<br />
padd ─ 並列加算 (Parallel Add)<br />
書式 : (qp) padd1r 1 = r 2 , r 3 one_byte_form, modulo_form A9<br />
(qp) padd1.sss r 1 = r 2 , r 3 one_byte_form, sss_saturation_form A9<br />
(qp) padd1.uus r 1 = r 2 , r 3 one_byte_form, uus_saturation_form A9<br />
(qp) padd1.uuu r 1 = r 2 , r 3 one_byte_form, uuu_saturation_form A9<br />
(qp) padd2r 1 = r 2 , r 3 two_byte_form, modulo_form A9<br />
(qp) padd2.sss r 1 = r 2 , r 3 two_byte_form, sss_saturation_form A9<br />
(qp) padd2.uus r 1 = r 2 , r 3 two_byte_form, uus_saturation_form A9<br />
(qp) padd2.uuu r 1 = r 2 , r 3 two_byte_form, uuu_saturation_form A9<br />
(qp) padd4r 1 = r 2 , r 3 four_byte_form, modulo_form A9<br />
説明 : 2 つのソース ・ オペラン ド の要素セッ ト が加え合わされ、 その結果が GR r1 に格納され<br />
る。<br />
2 つの要素の和が結果要素 と して表現で き ず、 飽和 コ ン プ リ ー タ が指定 さ れてい る場合<br />
は、 飽和に よ る ク リ ッ ピングが行われる。 飽和は、 表 2-43 に示す よ う に、 符号付き、 符<br />
号なしのいずれの場合も 指定でき る。 要素が上限値よ り大きい場合は、 結果は上限値に<br />
な る。 要素が下限値 よ り 小さ い場合は、 結果は下限値にな る。 飽和の上下限値を表 2-44<br />
に示す。<br />
表 2-43. 並列加算の飽和コンプリータ<br />
コンプリータ 結果 r1 の処理 ソース r2 の処理 ソース r3 の処理<br />
sss 符号付き 符号付き 符号付き<br />
uus 符号なし 符号なし 符号付き<br />
uuu 符号なし 符号なし 符号なし<br />
表 2-44. 並列加算における飽和の制限<br />
図 2-29. 並列加算の例<br />
サイズ 要素幅<br />
符号付きの結果 r1 上限値 下限値<br />
符号なしの結果 r1 上限値 下限値<br />
1 8 ビット 0x7f 0x80 0xff 0x00<br />
2 16 ビット 0x7fff 0x8000 0xffff 0x0000<br />
GR r 3 :<br />
GR r 2 :<br />
GR r 1 :<br />
+ +<br />
+ + + + + +<br />
第 3 巻 : 命令リファレンス 3:177<br />
GR r 3 :<br />
GR r 2 :<br />
GR r 1 :<br />
padd1 padd2<br />
+<br />
+<br />
+<br />
+