現在、命令空間または ARMv7 プロセッサの再分割を研究しようとしています。ドキュメントはこちらにあります。現在、私を困惑させている詳細があります。これは、プロセッサがいくつかの命令のペア間で曖昧さを解消する方法です。
たとえば、次の 2 つの THUMB 命令を考えてみましょう。
A8.8.18 B : エンコーディング T3
+-+-+-+-+-+-+-------+-----------+-+-+--+-+--+---------------------+ |1|1|1|1|0|S| cond | imm6 |1|0|J1|0|J2| imm11 | +-+-+-+-+-+-+-------+-----------+-+-+--+-+--+---------------------+
A8.8.32 CLREX : T1 のエンコード
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+--+-+-+-+-+-+-+-+-+-+-+-+ |1|1|1|1|0|0|1|1|1|0|1|1|1|1|1|1|1|0|0 |0|1 |1|1|1|0|0|1|0|1|1|1|1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+--+-+-+-+-+-+-+-+-+-+-+-+
注意すべき 2 つの点は、両方の命令のすべての固定ビットが等しいことと、2 番目の命令の cond = 1110 が有効な条件コード (AL) であることです。命令セマンティクスによれば、S は符号ビットであり、J2:J1:imm6:imm11 は相対ジャンプ ターゲットであるため、任意の値を持つことができます。
このデコードはあいまいに見えますが、間違いなく間違っているに違いありません。ここで何が欠けていますか? これについての光は大歓迎です。