lshrdi3.S 604 B

123456789101112131415161718192021222324252627282930313233
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /* Copyright 1995, 1996, 1998, 1999, 2000, 2003, 2004, 2005
  3. Free Software Foundation, Inc.
  4. */
  5. #include <linux/linkage.h>
  6. #include <asm/assembler.h>
  7. #ifdef __ARMEB__
  8. #define al r1
  9. #define ah r0
  10. #else
  11. #define al r0
  12. #define ah r1
  13. #endif
  14. .pushsection .text.__lshldi3, "ax"
  15. ENTRY(__lshrdi3)
  16. ENTRY(__aeabi_llsr)
  17. subs r3, r2, #32
  18. rsb ip, r2, #32
  19. movmi al, al, lsr r2
  20. movpl al, ah, lsr r3
  21. ARM( orrmi al, al, ah, lsl ip )
  22. THUMB( lslmi r3, ah, ip )
  23. THUMB( orrmi al, al, r3 )
  24. mov ah, ah, lsr r2
  25. ret lr
  26. ENDPROC(__lshrdi3)
  27. ENDPROC(__aeabi_llsr)
  28. .popsection