24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data オペコード 命令 説明 0F 68 /r PUNPCKHBW mm, mm/m64 mm および mm/m64 からの上位バイトを mm にインタ リーブする。 0F 69 /r PUNPCKHWD mm, mm/m64 mm および mm/m64 からの上位ワードを mm にインタ リーブする。 0F 6A /r PUNPCKHDQ mm, mm/m64 mm および mm/m64 からの上位ダブルワードを mm にイ ンタリーブする。 説明 デステ ィ ネーシ ョ ン ・ オペラン ド ( 第 1 オペラン ド ) とソース・オペランド ( 第 2 オペラ ンド ) の上位デー タ要素 ( バイ ト、 ワー ド、 またはダブルワー ド ) をデステ ィ ネーシ ョ ン・オペランドにアンパックしてインタリーブする( 図 2-22 を参照 )。 下位データ要素 は無視される。 デスティネーション・オペランドは、 MMX テクノロジ ・ レジスタでな ければならない。 ソ ース ・ オペラン ド には、 MMX テクノロジ ・ レジスタまたは 64 ビッ トのメモリ ・ ロケーションを使用できる。 ソース ・データがメモリ ・ オペランドからで ある と きは、 64 ビッ トのオペランドすべてがメモリからアクセスされるが、 命令は上位 32 ビ ッ ト だけ を使用す る。 図 2-22. PUNPCKHBW 命令での上位バイトのアンパックとインタリーブ PUNPCKHBW mm, mm/m64 mm/m64 27 26 25 24 23 22 21 20 17 16 15 14 13 12 11 10 27 17 26 16 25 15 24 14 mm 3006031 PUNPCKHBW 命令は、 ソ ー ス ・ オペラ ン ド の 4 上位バイ ト と デス テ ィ ネ ー シ ョ ン ・ オペ ランドの 4 上位バイ ト を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に書き込む。 PUNPCKHWD 命令は、 ソ ー ス ・ オペラ ン ド の 2 上位ワ ー ド と デス テ ィ ネ ー シ ョ ン ・ オペ ランドの 2 上位ワ ー ド を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に書き込む。 PUNPCKHDQ 命令は、 ソース ・ オペランドの上位ダブルワー ド とデスティネーション ・ オペランドの上位ダブルワードをインタリ ーブして、 それらをデスティネーション ・ オ ペラン ド に書き込む。 ソ ー ス ・ オペラ ン ド がすべてゼ ロ である場合、 ( デステ ィ ネーシ ョ ン ・ オペラン ド にス ト アされる ) 結果は、 デステ ィ ネ ー シ ョ ン ・ オペラン ド の元の値の上位デー タ要素がゼロ 拡張 さ れた も のにな る。 PUNPCKHBW 命令では、 上位バイ ト がゼ ロ拡張され ( すなわ ち、 符号なしワー ド にアンパッ ク される )、 PUNPCKHWD 命令では、 上位ワ ー ド がゼ ロ 拡張 さ れる ( 符号なしダブルワ ー ド にアンパ ッ ク さ れる )。 3:838 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス mm

PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data ( 続き ) 操作 IF instruction is PUNPCKHBW THEN DEST(7..0) ← DEST(39..32); DEST(15..8) ← SRC(39..32); DEST(23..16) ← DEST(47..40); DEST(31..24) ← SRC(47..40); DEST(39..32) ← DEST(55..48); DEST(47..40) ← SRC(55..48); DEST(55..48) ← DEST(63..56); DEST(63..56) ← SRC(63..56); ELSE IF instruction is PUNPCKHW THEN DEST(15..0) ← DEST(47..32); DEST(31..16) ← SRC(47..32); DEST(47..32) ← DEST(63..48); DEST(63..48) ← SRC(63..48); ELSE (* instruction is PUNPCKHDQ *) DEST(31..0) ← DEST(63..32) DEST(63..32) ← SRC(63..32); FI; 影響を受けるフラグ なし。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、 NaT レ ジ ス タ参照アボ ー ト 。 VHPT データ ・ フォル ト、 ネス ト された TLB フォルト、 データ TLB フォルト、 代替データTLB フォルト、 デー タ・ページ不在フォルト、 データNaT ページ参照アボー ト、 データ・キー・ ミス・フォルト、 データ・キー許可 フォルト、 データ・アクセス権フォルト、 データ・アクセ ス・ビット ・フォルト、 データ・ダーティ ・ビット ・フォ ルト。 保護モード例外 #GP(0) メモリ ・ オペランドの実効アドレスが CS、 DS、 ES、 FS、 または GS セグ メ ン ト の範囲外の場合。 #SS(0) メモリ ・ オペランドの実効アドレスが SS セグメン ト の範 囲外の場合。 #UD CR0 の EM がセッ ト された場合。 #NM CR0 の TS がセ ッ ト さ れた場合。 #MF 未処理の FPU 例外がある場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス 3:839

PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed Data<br />

オペコード 命令 説明<br />

0F 68 /r PUNPCKHBW mm, mm/m64 mm および mm/m64 からの上位バイトを mm にインタ<br />

リーブする。<br />

0F 69 /r PUNPCKHWD mm, mm/m64 mm および mm/m64 からの上位ワードを mm にインタ<br />

リーブする。<br />

0F 6A /r PUNPCKHDQ mm, mm/m64 mm および mm/m64 からの上位ダブルワードを mm にイ<br />

ンタリーブする。<br />

説明<br />

デステ ィ ネーシ ョ ン ・ オペラン ド ( 第 1 オペラン ド ) とソース・オペランド ( 第 2 オペラ<br />

ンド ) の上位デー タ要素 ( バイ ト、 ワー ド、 またはダブルワー ド ) をデステ ィ ネーシ ョ<br />

ン・オペランドにアンパックしてインタリーブする( 図 2-22 を参照 )。 下位データ要素<br />

は無視される。 デスティネーション・オペランドは、 MMX テクノロジ ・ レジスタでな<br />

ければならない。 ソ ース ・ オペラン ド には、 MMX テクノロジ ・ レジスタまたは 64 ビッ<br />

トのメモリ ・ ロケーションを使用できる。 ソース ・データがメモリ ・ オペランドからで<br />

ある と きは、 64 ビッ トのオペランドすべてがメモリからアクセスされるが、 命令は上位<br />

32 ビ ッ ト だけ を使用す る。<br />

図 2-22. PUNPCKHBW 命令での上位バイトのアンパックとインタリーブ<br />

PUNPCKHBW mm, mm/m64<br />

mm/m64<br />

27 26 25 24 23 22 21 20 17 16 15 14<br />

13 12 11 10<br />

27 17 26 16 25 15 24 14<br />

mm<br />

3006031<br />

PUNPCKHBW 命令は、 ソ ー ス ・ オペラ ン ド の 4 上位バイ ト と デス テ ィ ネ ー シ ョ ン ・ オペ<br />

ランドの 4 上位バイ ト を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド<br />

に書き込む。<br />

PUNPCKHWD 命令は、 ソ ー ス ・ オペラ ン ド の 2 上位ワ ー ド と デス テ ィ ネ ー シ ョ ン ・ オペ<br />

ランドの 2 上位ワ ー ド を イ ン タ リ ー ブして、 それら をデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド<br />

に書き込む。<br />

PUNPCKHDQ 命令は、 ソース ・ オペランドの上位ダブルワー ド とデスティネーション ・<br />

オペランドの上位ダブルワードをインタリ ーブして、 それらをデスティネーション ・ オ<br />

ペラン ド に書き込む。<br />

ソ ー ス ・ オペラ ン ド がすべてゼ ロ である場合、 ( デステ ィ ネーシ ョ ン ・ オペラン ド にス ト<br />

アされる ) 結果は、 デステ ィ ネ ー シ ョ ン ・ オペラン ド の元の値の上位デー タ要素がゼロ<br />

拡張 さ れた も のにな る。 PUNPCKHBW 命令では、 上位バイ ト がゼ ロ拡張され ( すなわ<br />

ち、 符号なしワー ド にアンパッ ク される )、 PUNPCKHWD 命令では、 上位ワ ー ド がゼ ロ<br />

拡張 さ れる ( 符号なしダブルワ ー ド にアンパ ッ ク さ れる )。<br />

3:838 第 3 巻 : IA-32 MMX ® テクノロジ命令リファレンス<br />

mm

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!