0001
0002
0003
0004
0005
0006
0007
0008 #include <asm/export.h>
0009 .text
0010 .align 4
0011 .globl __muldi3
0012 __muldi3:
0013 save %sp, -104, %sp
0014 wr %g0, %i1, %y
0015 sra %i3, 0x1f, %g2
0016 and %i1, %g2, %g2
0017 andcc %g0, 0, %g1
0018 mulscc %g1, %i3, %g1
0019 mulscc %g1, %i3, %g1
0020 mulscc %g1, %i3, %g1
0021 mulscc %g1, %i3, %g1
0022 mulscc %g1, %i3, %g1
0023 mulscc %g1, %i3, %g1
0024 mulscc %g1, %i3, %g1
0025 mulscc %g1, %i3, %g1
0026 mulscc %g1, %i3, %g1
0027 mulscc %g1, %i3, %g1
0028 mulscc %g1, %i3, %g1
0029 mulscc %g1, %i3, %g1
0030 mulscc %g1, %i3, %g1
0031 mulscc %g1, %i3, %g1
0032 mulscc %g1, %i3, %g1
0033 mulscc %g1, %i3, %g1
0034 mulscc %g1, %i3, %g1
0035 mulscc %g1, %i3, %g1
0036 mulscc %g1, %i3, %g1
0037 mulscc %g1, %i3, %g1
0038 mulscc %g1, %i3, %g1
0039 mulscc %g1, %i3, %g1
0040 mulscc %g1, %i3, %g1
0041 mulscc %g1, %i3, %g1
0042 mulscc %g1, %i3, %g1
0043 mulscc %g1, %i3, %g1
0044 mulscc %g1, %i3, %g1
0045 mulscc %g1, %i3, %g1
0046 mulscc %g1, %i3, %g1
0047 mulscc %g1, %i3, %g1
0048 mulscc %g1, %i3, %g1
0049 mulscc %g1, %i3, %g1
0050 mulscc %g1, 0, %g1
0051 add %g1, %g2, %l2
0052 rd %y, %o1
0053 mov %o1, %l3
0054 mov %i1, %o0
0055 mov %i2, %o1
0056 umul %o0, %o1, %o0
0057 mov %o0, %l0
0058 mov %i0, %o0
0059 mov %i3, %o1
0060 umul %o0, %o1, %o0
0061 add %l0, %o0, %l0
0062 mov %l2, %i0
0063 add %l2, %l0, %i0
0064 ret
0065 restore %g0, %l3, %o1
0066 EXPORT_SYMBOL(__muldi3)