16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

addp4 ─ ポインタの加算 (Add Pointer)<br />

addp4<br />

書式 : (qp) addp4 r 1 = r 2 , r 3 register_form A1<br />

(qp) addp4 r 1 = imm 14 , r 3 imm14_form A4<br />

説明 : 2 つのソース ・ オペラン ド が加算され、 その結果の上位 32 ビットがゼロ・ クリアされ、<br />

次に GR r 3 のビッ ト [31:30] が結果のビ ッ ト [62:61] にコピーされる。 この結果は GR r 1<br />

に格納される。 register_form では、 第 1 オペラン ド は GR r 2 であり、 imm14_form では、<br />

第 1 オペラ ン ド は符号拡張 さ れた imm 14 エンコーディ ング ・ フ ィ ール ド で与えられる。<br />

図 2-1. ポインタの加算<br />

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

check_target_register(r 1);<br />

}<br />

GR r 2:<br />

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

32<br />

GR r 1 :<br />

tmp_src = (register_form ? GR[r 2 ] : sign_ext(imm 14 , 14));<br />

tmp_nat = (register_form ? GR[r 2].nat : 0);<br />

tmp_res = tmp_src + GR[r 3 ];<br />

tmp_res = zero_ext(tmp_res{31:0}, 32);<br />

tmp_res{62:61} = GR[r 3 ]{31:30};<br />

GR[r 1 ] = tmp_res;<br />

GR[r 1].nat = tmp_nat || GR[r 3].nat;<br />

0<br />

63 61<br />

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

0<br />

0<br />

GR r 3 :<br />

32<br />

+<br />

0<br />

32 30<br />

0

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!