T32的IT指令

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。

系列其他篇

  • ARMv8的CPSR
  • A64的寄存器

原文首发于骏的世界博客
作者:卢骏.
更多Arm技术相关的文章请关注Arm技术博客极术专栏,每日更新。