149 lines
2.6 KiB
ArmAsm
149 lines
2.6 KiB
ArmAsm
.global mli4
|
|
.global mlu4
|
|
|
|
mli4:
|
|
mov %o0, %y
|
|
andncc %o0, 0xfff, %g0
|
|
bn mul_shortway1
|
|
nop
|
|
andcc %g0, %g0, %o4
|
|
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %g0, %o4
|
|
|
|
tst %o0
|
|
rd %y, %o0
|
|
bge 1f
|
|
tst %o0
|
|
sub %o4, %o1, %o4
|
|
1: retl
|
|
mov %o4, %o1
|
|
|
|
mul_shortway1:
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %g0, %o4
|
|
|
|
rd %y, %o5
|
|
sll %o4, 12, %o0
|
|
srl %o5, 20, %o5
|
|
|
|
or %o5, %o4, %o0
|
|
retl
|
|
mov %o4, %o1
|
|
|
|
mlu4:
|
|
or %o0, %o1, %o4
|
|
mov %o0, %y
|
|
andncc %o4, 0xfff, %o5
|
|
bn mul_shortway2
|
|
andcc %g0, %g0, %o4
|
|
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %g0, %o4
|
|
|
|
tst %o0
|
|
bge 1f
|
|
nop
|
|
add %o4, %o0, %o4
|
|
1:
|
|
rd %y, %o0
|
|
retl
|
|
addcc %o4, %g0, %o1
|
|
|
|
mul_shortway2:
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %o1, %o4
|
|
mulscc %o4, %g0, %o4
|
|
|
|
rd %y, %o5
|
|
sll %o4, 12, %o0
|
|
srl %o5, 20, %o5
|
|
|
|
or %o5, %o4, %o0
|
|
retl
|
|
addcc %g0, %g0, %o1
|
|
|