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

嵌入式Linux

开发平台:

Unix_Linux

  1. /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
  2. This file is part of GNU CC.
  3. GNU CC is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 2, or (at your option)
  6. any later version.
  7. GNU CC is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with GNU CC; see the file COPYING.  If not, write to
  13. the Free Software Foundation, 59 Temple Place - Suite 330,
  14. Boston, MA 02111-1307, USA.  */
  15. .text
  16. .align 4
  17. .globl __muldi3
  18. __muldi3:
  19. save  %sp, -104, %sp
  20. wr  %g0, %i1, %y
  21. sra  %i3, 0x1f, %g2
  22. and  %i1, %g2, %g2
  23. andcc  %g0, 0, %g1
  24. mulscc  %g1, %i3, %g1
  25. mulscc  %g1, %i3, %g1
  26. mulscc  %g1, %i3, %g1
  27. mulscc  %g1, %i3, %g1
  28. mulscc  %g1, %i3, %g1
  29. mulscc  %g1, %i3, %g1
  30. mulscc  %g1, %i3, %g1
  31. mulscc  %g1, %i3, %g1
  32. mulscc  %g1, %i3, %g1
  33. mulscc  %g1, %i3, %g1
  34. mulscc  %g1, %i3, %g1
  35. mulscc  %g1, %i3, %g1
  36. mulscc  %g1, %i3, %g1
  37. mulscc  %g1, %i3, %g1
  38. mulscc  %g1, %i3, %g1
  39. mulscc  %g1, %i3, %g1
  40. mulscc  %g1, %i3, %g1
  41. mulscc  %g1, %i3, %g1
  42. mulscc  %g1, %i3, %g1
  43. mulscc  %g1, %i3, %g1
  44. mulscc  %g1, %i3, %g1
  45. mulscc  %g1, %i3, %g1
  46. mulscc  %g1, %i3, %g1
  47. mulscc  %g1, %i3, %g1
  48. mulscc  %g1, %i3, %g1
  49. mulscc  %g1, %i3, %g1
  50. mulscc  %g1, %i3, %g1
  51. mulscc  %g1, %i3, %g1
  52. mulscc  %g1, %i3, %g1
  53. mulscc  %g1, %i3, %g1
  54. mulscc  %g1, %i3, %g1
  55. mulscc  %g1, %i3, %g1
  56. mulscc  %g1, 0, %g1
  57. add  %g1, %g2, %l2
  58. rd  %y, %o1
  59. mov  %o1, %l3
  60. mov  %i1, %o0
  61. call  .umul
  62. mov  %i2, %o1
  63. mov  %o0, %l0
  64. mov  %i0, %o0
  65. call  .umul
  66. mov  %i3, %o1
  67. add  %l0, %o0, %l0
  68. mov  %l2, %i0
  69. add  %l2, %l0, %i0
  70. ret 
  71. restore  %g0, %l3, %o1