1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun#include <linux/linkage.h> 3*4882a593Smuzhiyun#include <asm/assembler.h> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun#if __LINUX_ARM_ARCH__ >= 6 6*4882a593SmuzhiyunENTRY(__bswapsi2) 7*4882a593Smuzhiyun rev r0, r0 8*4882a593Smuzhiyun bx lr 9*4882a593SmuzhiyunENDPROC(__bswapsi2) 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunENTRY(__bswapdi2) 12*4882a593Smuzhiyun rev r3, r0 13*4882a593Smuzhiyun rev r0, r1 14*4882a593Smuzhiyun mov r1, r3 15*4882a593Smuzhiyun bx lr 16*4882a593SmuzhiyunENDPROC(__bswapdi2) 17*4882a593Smuzhiyun#else 18*4882a593SmuzhiyunENTRY(__bswapsi2) 19*4882a593Smuzhiyun eor r3, r0, r0, ror #16 20*4882a593Smuzhiyun mov r3, r3, lsr #8 21*4882a593Smuzhiyun bic r3, r3, #0xff00 22*4882a593Smuzhiyun eor r0, r3, r0, ror #8 23*4882a593Smuzhiyun ret lr 24*4882a593SmuzhiyunENDPROC(__bswapsi2) 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunENTRY(__bswapdi2) 27*4882a593Smuzhiyun mov ip, r1 28*4882a593Smuzhiyun eor r3, ip, ip, ror #16 29*4882a593Smuzhiyun eor r1, r0, r0, ror #16 30*4882a593Smuzhiyun mov r1, r1, lsr #8 31*4882a593Smuzhiyun mov r3, r3, lsr #8 32*4882a593Smuzhiyun bic r3, r3, #0xff00 33*4882a593Smuzhiyun bic r1, r1, #0xff00 34*4882a593Smuzhiyun eor r1, r1, r0, ror #8 35*4882a593Smuzhiyun eor r0, r3, ip, ror #8 36*4882a593Smuzhiyun ret lr 37*4882a593SmuzhiyunENDPROC(__bswapdi2) 38*4882a593Smuzhiyun#endif 39