24531904_j
24531904_j 24531904_j
操作 : if (PR[qp]) { if (p1 == p2) illegal_operation_fault(); tmp_nat = (register_form ? GR[r 2].nat : 0) || GR[r 3].nat; if (register_form) tmp_src = GR[r 2 ]; else if (imm8_form) tmp_src = sign_ext(imm 8 , 8); else // parallel_inequality_form tmp_src = 0; if (crel == ‘eq’) tmp_rel = tmp_src{31:0} == GR[r 3 ]{31:0}; else if (crel == ‘ne’) tmp_rel = tmp_src{31:0} != GR[r 3 ]{31:0}; else if (crel == ‘lt’) tmp_rel = lesser_signed(sign_ext(tmp_src, 32), sign_ext(GR[r 3 ], 32)); else if (crel == ‘le’) tmp_rel = lesser_equal_signed(sign_ext(tmp_src, 32), sign_ext(GR[r 3 ], 32)); else if (crel == ‘gt’) tmp_rel = greater_signed(sign_ext(tmp_src, 32), sign_ext(GR[r 3 ], 32)); else if (crel == ‘ge’) tmp_rel = greater_equal_signed(sign_ext(tmp_src, 32), sign_ext(GR[r 3 ], 32)); else if (crel == ‘ltu’) tmp_rel = lesser(zero_ext(tmp_src, 32), zero_ext(GR[r 3 ], 32)); else if (crel == ‘leu’) tmp_rel = lesser_equal(zero_ext(tmp_src, 32), zero_ext(GR[r 3 ], 32)); else if (crel == ‘gtu’) tmp_rel = greater(zero_ext(tmp_src, 32), zero_ext(GR[r 3 ], 32)); else // ‘geu’ tmp_rel = greater_equal(zero_ext(tmp_src, 32), zero_ext(GR[r 3 ], 32)); cmp4 switch (ctype) { case ‘and’: // and-type compare if (tmp_nat || !tmp_rel) { PR[p 1 ] = 0; PR[p 2 ] = 0; } break; case ‘or’: // or-type compare if (!tmp_nat && tmp_rel) { PR[p 1 ] = 1; PR[p 2 ] = 1; } break; case ‘or.andcm’: // or.andcm-type compare if (!tmp_nat && tmp_rel) { PR[p 1 ] = 1; PR[p 2 ] = 0; } break; case ‘unc’: // unc-type compare default: // normal compare if (tmp_nat) { 3:38 第 3 巻 : 命令リファレンス
cmp4 PR[p1 ] = 0; PR[p2] = 0; } else { PR[p1 ] = tmp_rel; PR[p2] = !tmp_rel; } break; } } else { if (ctype == ‘unc’) { if (p1 == p2) illegal_operation_fault(); PR[p1 ] = 0; PR[p2 ] = 0; } } 割り込み : 無効操作フ ォ ル ト 第 3 巻 : 命令リファレンス 3:39
- Seite 1 und 2: インテル ® Itanium ® アー
- Seite 3 und 4: 目次 第 I 部 : インテル ®
- Seite 5: 図 3.2 インテル ® アーキ
- Seite 8 und 9: 2-37 lftype のニーモニック
- Seite 10 und 11: 第 II 部 : IA-32 命令セット
- Seite 13 und 14: 本書について 1 インテル
- Seite 15 und 16: 第 9 章「IA-32 割 り 込みベ
- Seite 17 und 18: 1.4 用語の定義 以下の定義
- Seite 19 und 20: 改訂日付 改訂番号 内容 20
- Seite 21 und 22: 命令リファレンス 2 本章
- Seite 23 und 24: add add ─ 加算 (Add) 書式 : (
- Seite 25 und 26: alloc alloc ─ スタック・フ
- Seite 27 und 28: and and ─ 論理積 (Logical And)
- Seite 29 und 30: br ─ 分岐 (Branch) 書式 : (qp
- Seite 31 und 32: ファイルをフラッシュす
- Seite 33 und 34: 図 2-4. br.wtop および br.wexit
- Seite 35 und 36: CFM.sor = 0; CFM.rrb.gr = 0; CFM.rr
- Seite 37 und 38: eak break ─ ブレーク (Break)
- Seite 39 und 40: l 関係な く 、 無効操作フ
- Seite 41 und 42: p 操作 : tmp_tag = IP + sign_ext(
- Seite 43 und 44: chk chk ─ スペキュレーシ
- Seite 45 und 46: clrrrb clrrrb ─ RRB のクリア
- Seite 47 und 48: cmp る関係を利用する。 一
- Seite 49: cmp4 cmp4 ─ 4 バイト比較 (Co
- Seite 53 und 54: cmpxchg ldhint コ ンプ リ ー
- Seite 55 und 56: czx czx ─ ゼロ・インデッ
- Seite 57 und 58: dep dep ─ デポジット (Deposi
- Seite 59 und 60: epc epc ─ 特権コードへの
- Seite 61 und 62: fabs fabs ─ 浮動小数点絶対
- Seite 63 und 64: famax famax ─ 浮動小数点絶
- Seite 65 und 66: fand fand ─ 浮動小数点論理
- Seite 67 und 68: fc fc ─ キャッシュのフラ
- Seite 69 und 70: fclass fclass ─ 浮動小数点
- Seite 71 und 72: fclrf fclrf ─ 浮動小数点フ
- Seite 73 und 74: fcmp 操作 : if (PR[qp]) { if (p 1
- Seite 75 und 76: fcvt.fx fcvt.fx ─ 浮動小数点
- Seite 77 und 78: fcvt.xf fcvt.xf ─ 符号付き整
- Seite 79 und 80: fetchadd fetchadd ─ 即値のフ
- Seite 81 und 82: flushrs flushrs ─ レジスタ・
- Seite 83 und 84: fmax fmax ─ 浮動小数点最大
- Seite 85 und 86: fmerge 操作 : if (PR[qp]) { fp_ch
- Seite 87 und 88: fmix fmix ─ 浮動小数点ミッ
- Seite 89 und 90: fmpy fmpy ─ 浮動小数点乗算
- Seite 91 und 92: fneg fneg ─ 浮動小数点否定
- Seite 93 und 94: fnma fnma ─ 浮動小数点積和
- Seite 95 und 96: fnorm fnorm ─ 浮動小数点正
- Seite 97 und 98: fpabs fpabs ─ 浮動小数点並
- Seite 99 und 100: fpamax fpamax ─ 浮動小数点
cmp4<br />
PR[p1 ] = 0;<br />
PR[p2] = 0;<br />
} else {<br />
PR[p1 ] = tmp_rel;<br />
PR[p2] = !tmp_rel;<br />
}<br />
break;<br />
}<br />
} else {<br />
if (ctype == ‘unc’) {<br />
if (p1 == p2)<br />
illegal_operation_fault();<br />
PR[p1 ] = 0;<br />
PR[p2 ] = 0;<br />
}<br />
}<br />
割り込み : 無効操作フ ォ ル ト<br />
第 3 巻 : 命令リファレンス 3:39