^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) This file is part of GNU CC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <asm/export.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) .text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) .align 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) .globl __muldi3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) __muldi3:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) save %sp, -104, %sp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) wr %g0, %i1, %y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) sra %i3, 0x1f, %g2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) and %i1, %g2, %g2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) andcc %g0, 0, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) mulscc %g1, %i3, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) mulscc %g1, 0, %g1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) add %g1, %g2, %l2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) rd %y, %o1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) mov %o1, %l3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) mov %i1, %o0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) mov %i2, %o1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) umul %o0, %o1, %o0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) mov %o0, %l0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) mov %i0, %o0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) mov %i3, %o1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) umul %o0, %o1, %o0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) add %l0, %o0, %l0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) mov %l2, %i0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) add %l2, %l0, %i0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) ret
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) restore %g0, %l3, %o1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) EXPORT_SYMBOL(__muldi3)