Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-block.git] / arch / sparc / lib / muldi3.S
CommitLineData
f8739b71 1/* SPDX-License-Identifier: GPL-2.0-or-later */
1da177e4
LT
2/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
3
4This file is part of GNU CC.
5
f8739b71 6 */
1da177e4 7
d3867f04 8#include <asm/export.h>
1da177e4
LT
9 .text
10 .align 4
11 .globl __muldi3
12__muldi3:
13 save %sp, -104, %sp
14 wr %g0, %i1, %y
15 sra %i3, 0x1f, %g2
16 and %i1, %g2, %g2
17 andcc %g0, 0, %g1
18 mulscc %g1, %i3, %g1
19 mulscc %g1, %i3, %g1
20 mulscc %g1, %i3, %g1
21 mulscc %g1, %i3, %g1
22 mulscc %g1, %i3, %g1
23 mulscc %g1, %i3, %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, 0, %g1
51 add %g1, %g2, %l2
52 rd %y, %o1
53 mov %o1, %l3
54 mov %i1, %o0
1da177e4 55 mov %i2, %o1
1b35a57b 56 umul %o0, %o1, %o0
1da177e4
LT
57 mov %o0, %l0
58 mov %i0, %o0
1da177e4 59 mov %i3, %o1
1b35a57b 60 umul %o0, %o1, %o0
1da177e4
LT
61 add %l0, %o0, %l0
62 mov %l2, %i0
63 add %l2, %l0, %i0
64 ret
65 restore %g0, %l3, %o1
d3867f04 66EXPORT_SYMBOL(__muldi3)