Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #include <linux/linkage.h>
0003 #include <asm/assembler.h>
0004 
0005 #if __LINUX_ARM_ARCH__ >= 6
0006 ENTRY(__bswapsi2)
0007     rev r0, r0
0008     bx lr
0009 ENDPROC(__bswapsi2)
0010 
0011 ENTRY(__bswapdi2)
0012     rev r3, r0
0013     rev r0, r1
0014     mov r1, r3
0015     bx lr
0016 ENDPROC(__bswapdi2)
0017 #else
0018 ENTRY(__bswapsi2)
0019     eor r3, r0, r0, ror #16
0020     mov r3, r3, lsr #8
0021     bic r3, r3, #0xff00
0022     eor r0, r3, r0, ror #8
0023     ret lr
0024 ENDPROC(__bswapsi2)
0025 
0026 ENTRY(__bswapdi2)
0027     mov ip, r1
0028     eor r3, ip, ip, ror #16
0029     eor r1, r0, r0, ror #16
0030     mov r1, r1, lsr #8
0031     mov r3, r3, lsr #8
0032     bic r3, r3, #0xff00
0033     bic r1, r1, #0xff00
0034     eor r1, r1, r0, ror #8
0035     eor r0, r3, ip, ror #8
0036     ret lr
0037 ENDPROC(__bswapdi2)
0038 #endif