lshrdi3.S 315 B

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