0
编译器对于处理器功能具有内置的内部函数是很常见的,但我无法找到它们。是否有人需要了解ARM中的'REV'(反转字节顺序)指令?ARM GCC是否具有汇编'REV'指令的内置函数?
我在哪里可以找到内建函数列表?
编译器对于处理器功能具有内置的内部函数是很常见的,但我无法找到它们。是否有人需要了解ARM中的'REV'(反转字节顺序)指令?ARM GCC是否具有汇编'REV'指令的内置函数?
我在哪里可以找到内建函数列表?
是否有人需要获取ARM中的'REV'(反转字节顺序)指令?
还有一种更便于使用的“便携式”形式,适用于所有架构。它是__builtin_bswap32
。例如,compiler explorer有,
unsigned int foo(unsigned int a)
{
return __builtin_bswap32(a);
}
给予,
foo(unsigned int):
rev r0, r0
bx lr
这比__builtin_rev
更好的方式是,因为它只能适用于特定ARM目标(当然仅限ARM的CPU)。你甚至可以在PowerPC,x86等上使用__builtin_bswap32
。
还有'__builtin_bswap16'换成一个16位整数(编译成rev16 arm指令) – nos
为了完整性,还有[关于窥视孔优化器-O2和更高](https://goo.gl/MNbb1K);) – Notlikethat
__builtin_ *的列表在哪里? – joeforker