ARM GCC是否具有用于程序集的内置功能';修订版';指示

ARM GCC是否具有用于程序集的内置功能';修订版';指示,gcc,arm,Gcc,Arm,编译器为处理器功能内置内部函数是很常见的,但我很难找到它们。在ARM中是否有一个可以获取“REV”(字的反向字节顺序)指令 在哪里可以找到内置函数列表 在ARM中是否有一个可以获取“REV”(字的反向字节顺序)指令 有一种更“可移植”的形式可用于所有体系结构。它是内置的bswap32。比如, 给予 foo(unsigned int): rev r0, r0 bx lr 这比内置版本要好,因为它只在某些ARM目标上可用(当然也只在ARM CPU上

编译器为处理器功能内置内部函数是很常见的,但我很难找到它们。在ARM中是否有一个可以获取“REV”(字的反向字节顺序)指令

在哪里可以找到内置函数列表

在ARM中是否有一个可以获取“REV”(字的反向字节顺序)指令

有一种更“可移植”的形式可用于所有体系结构。它是内置的bswap32。比如,

给予

foo(unsigned int):
        rev     r0, r0
        bx      lr

这比内置版本要好,因为它只在某些ARM目标上可用(当然也只在ARM CPU上可用)。即使在PowerPC、x86等设备上,您也可以使用
\uuuuuuuu内置bswap32

还有
\uuuuuuuu内置bswap16
交换16位整数(编译为rev16 arm指令)以获得完整性,还有;)其中是_builtin*?@joe的列表,您需要添加一个“-mcpu=”行以获取rev指令。如果没有它,gcc将使用最低的通用CPU指令,而rev则不存在。您也可以尝试“cortex-a5”,如果您添加-march=armv7-mthumb,那么您可以让GCC ARM生成版本r0,r0。没有它,你会得到4条指令。ARM64工作正常,因为所有受支持的CPU都内置了rev
foo(unsigned int):
        rev     r0, r0
        bx      lr