ashrdi3.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: ashrdi3.S,v 1.4 1999/11/19 04:11:49 davem Exp $
  2.  * ashrdi3.S: The filesystem code creates all kinds of references to
  3.  *              this little routine on the sparc with gcc.
  4.  *
  5.  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  6.  */
  7. #include <asm/cprefix.h>
  8. .text
  9. .align 4
  10. .globl C_LABEL(__ashrdi3)
  11. C_LABEL(__ashrdi3):
  12. tst %o2
  13. be 3f
  14.  or %g0, 32, %g2
  15. sub %g2, %o2, %g2
  16. tst %g2
  17. bg 1f
  18.  sra %o0, %o2, %o4
  19. sra %o0, 31, %o4
  20. sub %g0, %g2, %g2
  21. ba 2f
  22.  sra %o0, %g2, %o5
  23. 1:
  24. sll %o0, %g2, %g3
  25. srl %o1, %o2, %g2
  26. or %g2, %g3, %o5
  27. 2:
  28. or %g0, %o4, %o0
  29. or %g0, %o5, %o1
  30. 3:
  31. jmpl %o7 + 8, %g0
  32.  nop