鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

替换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));  
}