AArch32中,包括了A32指令和T32指令,A32指令是可以条件执行指令,但是T32指令是不可以条件执行。
但在T32中,提供了IT指令,用来给之后的T32指令,指定执行条件。因此T32的指令,可以条件执行。
IT指令,可以最多给之后的4条指令,指定执行条件。
执行条件,存储在CPSR的IT block状态中。
在T32代码中,如果指令,写上条件。
使用arm的gcc工具,编译,会出现以下错误:
Error: Thumb does not support conditional execution
Warining: IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8
提示,thumb指令,不支持条件执行。
此时,需要加入IT指令,指定之后两条指令,条件执行的条件。
但是,编译,依然会报错。
此时,需要在 it指令的前面,加上 .syntax unified 关键字。
此时,编译成功。生成a32.o。
系列其他篇
原文首发于骏的世界博客
作者:卢骏.
更多Arm技术相关的文章请关注Arm技术博客极术专栏,每日更新。