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