ashldi3.S
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* $Id: ashldi3.S,v 1.2 1999/11/19 04:11:46 davem Exp $
  2.  * ashldi3.S: GCC emits these for certain drivers playing
  3.  * with long longs.
  4.  *
  5.  * Copyright (C) 1999 David S. Miller (davem@redhat.com)
  6.  */
  7. #include <asm/cprefix.h>
  8. .text
  9. .align 4
  10. .globl C_LABEL(__ashldi3)
  11. C_LABEL(__ashldi3):
  12. cmp %o2, 0
  13. be 9f
  14.  mov 0x20, %g2
  15. sub %g2, %o2, %g2
  16. cmp %g2, 0
  17. bg 7f
  18.  sll %o0, %o2, %g3
  19. neg %g2
  20. clr %o5
  21. b 8f
  22.  sll %o1, %g2, %o4
  23. 7:
  24. srl %o1, %g2, %g2
  25. sll %o1, %o2, %o5
  26. or %g3, %g2, %o4
  27. 8:
  28. mov %o4, %o0
  29. mov %o5, %o1
  30. 9:
  31. retl
  32.  nop