📄 ec_arm_linux.c
字号:
uint32 cq_ntohl(uint32 value){ uint32 tmp; asm volatile ("EOR %1, %0, %0, ROR #16\n" "BIC %1, %1, #0xff0000\n" "MOV %0, %0, ROR #8\n" "EOR %0, %0, %1, LSR #8\n" : "=r" (value), "=r" (tmp) : "0" (value), "1" (tmp)); return value;}void cq_ntohl_array(uint32* arr, uint32 num){ uint32 tmp; uint32 value; asm volatile ("" "next:\n" "ldr %2, [%0]\n" "EOR %3, %2, %2, ROR #16\n" "BIC %3, %3, #0xff0000\n" "MOV %2, %2, ROR #8\n" "EOR %2, %2, %3, LSR #8\n" "str %2, [%0], #4\n" "subs %1, %1, #1\n" "bne next\n" : "=r" (arr), "=r" (num), "=r" (value), "=r" (tmp) : "0" (arr), "1" (num), "2" (value), "3" (tmp));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -