1
2
3
4
5
6
7
8 #include <asm/export.h>
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
55 mov %i2, %o1
56 umul %o0, %o1, %o0
57 mov %o0, %l0
58 mov %i0, %o0
59 mov %i3, %o1
60 umul %o0, %o1, %o0
61 add %l0, %o0, %l0
62 mov %l2, %i0
63 add %l2, %l0, %i0
64 ret
65 restore %g0, %l3, %o1
66 EXPORT_SYMBOL(__muldi3)