16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

sm<br />

rsm ─ システム・マスクのリセット (Reset System Mask)<br />

書式 : (qp) rsmimm 24 M44<br />

説明 : この命令は、 imm24 オペラ ン ド の補数 と シ ス テ ム ・ マス ク (PSR{23:0}) の AND( 論理積 )<br />

演算を実行し、 その結果をシステム ・ マス クに格納する。 第 2 巻、 第 1 部の 3.3.2 項 「プ<br />

ロセッサ ・ ステータス ・ レジスタ (PSR)」 を参照のこ と。<br />

PSR シ ス テ ム ・ マス ク は、 最高の特権レベル以外では書き込めない。<br />

現在の特権レ ベルが 0(PSR.cpl が 0) の場合、 マス ク が PSR.i を含む rsm 命令を発行す る<br />

と、 その rsm 命令の修飾プレデ ィ ケ ー ト が偽であ っ て も 、 一定の数の命令に対する外部<br />

割り込みがディスエーブルにされる ( 命令の数は、 プ ロ セ ッ サに依存す る )。 アーキテク<br />

チャ上では、 この外部割り込みディスエーブル 「ウィンドウ」 の範囲は、 次のように定<br />

義される。<br />

• rsm 命令の修飾プレデ ィ ケー ト の値に関係な く 、 rsm と同じ命令グループの命令に<br />

対する外部割 り 込みがデ ィ スエー ブルに さ れる。 こ れら の命令に は、 シ ー ケ ン シ ャ<br />

ルなプログラム順序内で rsm に先行する命令も含まれる。<br />

• rsm の修飾プレデ ィ ケー ト が真の場合は、 rsm 命令の直後の外部割 り 込みがデ ィ ス<br />

エーブルにされる。<br />

• rsm の修飾プレデ ィ ケー ト が偽の場合は、 rsm 命令に後続す る次のデー タ ・ シ リ ア<br />

ル化操作ま で、 外部割 り 込みがデ ィ スエー ブルに される。<br />

外部割 り 込みデ ィ スエ ー ブル ・ ウ ィ ン ド ウ は、 上の基準に よ っ て定義 さ れる範囲よ り 大<br />

き く なら ないこ と が保証されているが、 プロセ ッ サのモデルに よ っ ては、 上の基準の範<br />

囲よ り小さ くなる と きがある。<br />

現在の特権レ ベルが 0 でない (PSR.cpl が 0 でない ) 場合、 マス ク が PSR.i を含む rsm 命<br />

令を発行する と、 rsm 命令の修飾プレデ ィ ケー ト の値に関係な く 、 外部割り込みが短時<br />

間デ ィ スエーブルに される こ と がある。 ただし、 ( 例えば、 値が 0 の修飾プレデ ィ ケ ー ト<br />

を持つ rsm 命令の長いシ ー ケン スに よ っ て ) 非特権 コ ー ド が外部割 り 込みを無期限に禁<br />

止できない。 これは、 プロセ ッ サで保証される。<br />

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

if (PSR.cpl != 0)<br />

privileged_operation_fault(0);<br />

}<br />

if (is_reserved_field(PSR_TYPE, PSR_SM, imm 24 ))<br />

reserved_register_field_fault();<br />

if (imm 24 {1}) PSR{1} = 0;) // be<br />

if (imm 24 {2}) PSR{2} = 0;) // up<br />

if (imm 24{3}) PSR{3} = 0;) // ac<br />

if (imm 24 {4}) PSR{4} = 0;) // mfl<br />

if (imm 24 {5}) PSR{5} = 0;) // mfh<br />

if (imm 24{13}) PSR{13} = 0;) // ic<br />

if (imm 24 {14}) PSR{14} = 0;) // i<br />

if (imm 24 {15}) PSR{15} = 0;) // pk<br />

if (imm 24 {17}) PSR{17} = 0;) // dt<br />

if (imm 24 {18}) PSR{18} = 0;) // dfl<br />

if (imm 24 {19}) PSR{19} = 0;) // dfh<br />

if (imm 24 {20}) PSR{20} = 0;) // sp<br />

if (imm 24 {21}) PSR{21} = 0;) // pp<br />

if (imm 24 {22}) PSR{22} = 0;) // di<br />

if (imm 24 {23}) PSR{23} = 0;) // si<br />

第 3 巻 : 命令リファレンス 3:213

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!