替换x86 bswap汇编指令
现象描述
编译报错:Error: unknown mnemonic 'bswap' -- 'bswap x3'。
可能原因
bswap是x86的字节序反序指令,需替换为Arm64的rev指令。
处理步骤
x86指令实现的bswap如下:
inline uint32_t bswap(uint32_t val) { __asm__("bswap %0" : "=r" (val) : "0" (val)); retrun val; }
替换为Arm64指令后如下:
inline uint32_t bswap(uint32_t val) { __asm__("rev %w[dst], %w[src]" : [dst]"=r"(val) : [src]"r"(val)); }
父主题: 源码修改类案例