2017-11-17 48 views
-1

私は次のようなARMサム2命令ストリームがある場合:ARM Thumb2 "IT"命令のネストは明確に定義されていますか?

itt NZ 
mov r1,r2 
it MI 
mov r3,r4 

を最初にIT命令のITブロックがmovと第二itが含まれています。このシーケンスは許されていますか、それとも未定義の動作ですか?

+3

研究努力の欠如:[ARMのドキュメントは明らかです(http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html)*以下の手順ITブロックには許可されていません。*「IT」は最初のエントリです。これは私の最初のgoogleが 'arm itt 'のためにヒットしたようになりました。 –

+0

実装の少しの理解。 4制御レジスタのビットは、グローバルリソースがネストしないという強いヒットをもたらします。条件が同じ場合は、それらをマージするだけです。残念ながら、 'if x> 0は1を返します。 x == 0なら0を返し、そうでなければ-1を返します。これはThumb2ではなくARMでは問題ありません。 'itt nz'を' it nz'に変換するだけで、余分な演算コードを使っても問題ありません。 –

答えて

5

ITブロックに別のIT命令を含めることはできません。コードの結果は予測できません。

関連する問題