12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
- This file is part of GNU CC.
- GNU CC is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
- GNU CC is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with GNU CC; see the file COPYING. If not, write to
- the Free Software Foundation, 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
- #include <asm/export.h>
- .text
- .align 4
- .globl __muldi3
- __muldi3:
- save %sp, -104, %sp
- wr %g0, %i1, %y
- sra %i3, 0x1f, %g2
- and %i1, %g2, %g2
- andcc %g0, 0, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, %i3, %g1
- mulscc %g1, 0, %g1
- add %g1, %g2, %l2
- rd %y, %o1
- mov %o1, %l3
- mov %i1, %o0
- mov %i2, %o1
- umul %o0, %o1, %o0
- mov %o0, %l0
- mov %i0, %o0
- mov %i3, %o1
- umul %o0, %o1, %o0
- add %l0, %o0, %l0
- mov %l2, %i0
- add %l2, %l0, %i0
- ret
- restore %g0, %l3, %o1
- EXPORT_SYMBOL(__muldi3)
|