ThumbEEステート

読み:サム・イーイー・ステート
外語:ThumbEE state 英語
品詞:名詞

Thumb-2命令の機能に加えて、マネージド・ランタイムのコンパイル済みコードがよく使う操作を16ビット命令として提供する動作モード。

目次

ThumbEEは、次の例外を除き、Thumb命令と同じ。

  • 幾つかの命令は、ThumbEE状態からの遷移の影響で変化する。
  • 殆どの命令は、他の操作をする前にnullチェックをするが、それ以外はほぼ同じ。
  • 3つのThumb命令、BLX(イミディエイト)、16ビットLDM、16ビットSTMは、ThumbEE状態では削除される。オペコードは、BLX(イミディエイト)は未定義になり、16ビットLDM/STMは他の新命令に置き換えられている。
  • ENTERXとLEAVEXという新命令が、Thumb命令セットとThumbEE命令セットの双方に追加されている。

nullチェックをしながら動作し、一部の命令を廃止して別の命令に置き換えているため、T32(Thumbステート)とは別のモードとしている。

追加命令

  • ENTERX ‐ Thumbステート→ThumbEEステート
  • LEAVEX ‐ ThumbEEステート→Thumbステート
  • CHKA ‐ 配列チェック命令
  • HB、HBL ‐ ハンドラー分岐命令
  • HBLP ‐ リンクとパラメーター付きハンドラー分岐命令
  • HBP ‐ パラメーター付きハンドラー分岐命令
  • LDR (イミディエイト) ‐ レジスターロード
  • STR (イミディエイト) ‐ レジスターストア

命令の符号

ThumbEE命令は次の通り

15141312111009080706050403020100
1100opcode 

Thumb命令で16ビットLDM/STMだった機械語をThumbEE命令に置き換えている。

したがってこの2つの命令は使用できなくなる。

opcode命令または命令クラス
0000パラメーター付きハンドラー分岐(HBP)
0001UNDEFINED
001xハンドラー分岐、リンク付きハンドラー分岐(HB、HBL)
01xxリンクとパラメーター付きハンドラー分岐(HBLP)
100xフレームからレジスターロード(LDR (イミディエイト))
1010配列チェック(CHKA)
1011リテラルプールからレジスターロード(LDR (イミディエイト))
110xレジスターロード(配列操作) (LDR (イミディエイト))
111xフレームへのレジスターストア(STR (イミディエイト))

ENTERX/LEAVEX

ENTERXとLEAVEXは、T32(Thumbステート)でもThumbEEステートでも利用できる命令として、上のオペコードとは別に定義されている。

  • ENTERX 0xF3BF 0x8F0F
  • LEAVEX 0xF3BF 0x8F1F

変更命令

次の16ビットThumb命令はT32と動作が異なる。

  • LDR (レジスター)
  • LDRH (レジスター)
  • LDRSH (レジスター)
  • STR (レジスター)
  • STRH (レジスター)

いずれも1ビットまたは2ビットの左シフトが付いている。

用語の所属
ARMアーキテクチャ
関連する用語
T32
Thumb-2命令

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club