lshrdi3.S 403 B

12345678910111213141516171819202122232425262728293031
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <linux/linkage.h>
  3. #include <asm/export.h>
  4. ENTRY(__lshrdi3)
  5. cmp %o2, 0
  6. be 3f
  7. mov 0x20, %g2
  8. sub %g2, %o2, %g2
  9. cmp %g2, 0
  10. bg 1f
  11. srl %o0, %o2, %o4
  12. clr %o4
  13. neg %g2
  14. b 2f
  15. srl %o0, %g2, %o5
  16. 1:
  17. sll %o0, %g2, %g3
  18. srl %o1, %o2, %g2
  19. or %g2, %g3, %o5
  20. 2:
  21. mov %o4, %o0
  22. mov %o5, %o1
  23. 3:
  24. retl
  25. nop
  26. ENDPROC(__lshrdi3)
  27. EXPORT_SYMBOL(__lshrdi3)