lshrdi3.S 364 B

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