bswapsdi2.S 591 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <linux/linkage.h>
  2. #if __LINUX_ARM_ARCH__ >= 6
  3. ENTRY(__bswapsi2)
  4. rev r0, r0
  5. bx lr
  6. ENDPROC(__bswapsi2)
  7. ENTRY(__bswapdi2)
  8. rev r3, r0
  9. rev r0, r1
  10. mov r1, r3
  11. bx lr
  12. ENDPROC(__bswapdi2)
  13. #else
  14. ENTRY(__bswapsi2)
  15. eor r3, r0, r0, ror #16
  16. mov r3, r3, lsr #8
  17. bic r3, r3, #0xff00
  18. eor r0, r3, r0, ror #8
  19. mov pc, lr
  20. ENDPROC(__bswapsi2)
  21. ENTRY(__bswapdi2)
  22. mov ip, r1
  23. eor r3, ip, ip, ror #16
  24. eor r1, r0, r0, ror #16
  25. mov r1, r1, lsr #8
  26. mov r3, r3, lsr #8
  27. bic r3, r3, #0xff00
  28. bic r1, r1, #0xff00
  29. eor r1, r1, r0, ror #8
  30. eor r0, r3, ip, ror #8
  31. mov pc, lr
  32. ENDPROC(__bswapdi2)
  33. #endif