使用ARM GCC时判断THUMB-2指令可用的#define宏标志是什么
ARM GCC 下判断 THUMB-2 指令集可用的标准预定义宏为 __thumb2__,直接用该宏做条件编译即可实现你要的分支选择逻辑。
使用示例
#ifdef __thumb2__ /* 走THUMB-2优化分支,可插入对应THUMB-2汇编指令实现逻辑 */ #else /* 走通用未优化分支 */ #endif
补充说明
- 该宏仅在编译参数启用 THUMB-2 时才会被定义,对应配置一般为开启
-mthumb参数 + 目标架构指定为 armv7-a/armv7-m/armv7e-m 及以上支持 THUMB-2 的ARM架构 - 如果编译时使用ARM模式、或者目标架构仅支持原始16位THUMB指令集(如armv6-m),
__thumb2__宏不会被定义 - 若需兼容其他ARM工具链,可额外增加对
__ARM_FEATURE_THUMB2宏的判断,该宏在部分商用ARM编译器中作为THUMB-2支持的判断标识
内容的提问来源于stack exchange,提问作者Kenn Sebesta
相关产品推荐
相关产品推荐

