-
marxin authored
Using current macros, one get for: static inline int BSWAP32(int x) { return ((x << 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) | (x >> 24)); } int main(int argc, char **argv) { return BSWAP32(argc); } main: .LFB1: .cfi_startproc movl %edi, %eax movl %edi, %edx sarl $24, %edx sall $24, %eax orl %edx, %eax movl %edi, %edx sarl $8, %edi sall $8, %edx andl $65280, %edi andl $16711680, %edx orl %edx, %eax orl %edi, %eax ret while using: int main(int argc, char **argv) { return __builtin_bswap32(argc); } one gets: main: .LFB0: .cfi_startproc movl %edi, %eax bswap %eax ret
64bce5a2