24531904_j
24531904_j 24531904_j
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
- Seite 181 und 182: movl movl ─ ロング型即値の
- Seite 183 und 184: mux 図 2-27. Mux2 の例 (16 ビ
- Seite 185 und 186: nop nop ─ ノー・オペレー
- Seite 187 und 188: pack pack ─ パック (Pack) 書
- Seite 189 und 190: padd padd ─ 並列加算 (Paralle
- 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: shladd shladd ─ 左シフトお
- Seite 235 und 236: srlz srlz ─ シリアル化 (Seri
- Seite 237 und 238: st st ─ ストア (Store) 書式
- Seite 239 und 240: stf stf ─ 浮動小数点スト
- Seite 241 und 242: sub sub ─ 減算 (Subtract) 書
- Seite 243 und 244: sxt sxt ─ 符号拡張 (Sign Exte
- Seite 245 und 246: tak tak ─ トランスレーシ
- Seite 247 und 248: tbit PR[p2 ] = 0; } break; case ‘
- Seite 249 und 250: tnat tnat ─ Test Nat テスト (T
- Seite 251 und 252: tpa tpa ─ 物理アドレスへ
- Seite 253 und 254: unpack unpack ─ アンパック (
- Seite 255 und 256: xchg xchg ─ 交換 (Exchange) 書
- Seite 257 und 258: xma xma ─ 固定小数点積和 (
- Seite 259 und 260: xmpy xmpy ─ 固定小数点乗算
- Seite 261 und 262: zxt zxt ─ ゼロ拡張 (Zero Exte
- Seite 263 und 264: 擬似コード関数 3 この章
- Seite 265 und 266: 表 3-1. 擬似コード関数 (
- Seite 267 und 268: 表 3-1. 擬似コード関数 (
- Seite 269 und 270: 表 3-1. 擬似コード関数 (
- Seite 271 und 272: 表 3-1. 擬似コード関数 (
- Seite 273 und 274: 表 3-1. 擬似コード関数 (
- Seite 275 und 276: 命令形式 4 個々の Itanium ®
- Seite 277 und 278: 使用 さ れていないメ ジ
- Seite 279 und 280: 表 4-4. 命令形式の要約 (
- Seite 281 und 282: 表 4-6. 命令フィールド名 (
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 ]