P8000/WEGA/contrib/lcc/lib/libc/u8k/crt/mul.s

103 lines
1.9 KiB
ArmAsm

.line 1 ""
.seg
fp := r13
FP := rr12
sp := r15
SP := rr14
.psec data
.data
.psec
.code
mul_hwt::
dec sp,#12
ldm @SP,r8,#6
ld fp,sp
inc fp,#8
sub sp,#~L2-12
ldl rr2,#%80000000
ldl _stkseg+%ffe4(fp),rr2
ldl rr2,_stkseg+%8(fp)
sral rr2,#%10
ldl _stkseg+%fff4(fp),rr2
ldl rr2,#%ffff
and r2,_stkseg+%8(fp)
and r3,_stkseg+%a(fp)
ldl _stkseg+%fff0(fp),rr2
ldl rr2,_stkseg+%c(fp)
sral rr2,#%10
ldl _stkseg+%ffec(fp),rr2
ldl rr2,#%ffff
and r2,_stkseg+%c(fp)
and r3,_stkseg+%e(fp)
ldl _stkseg+%ffe8(fp),rr2
ldl rr2,_stkseg+%ffe8(fp)
ldl rr6,rr2
multl rq4,_stkseg+%fff0(fp)
ldl rr2,rr6
ldl _stkseg+%ffd4(fp),rr2
xor r3,r3
ld r2,r3
ldl _stkseg+%ffe0(fp),rr2
ldl rr2,_stkseg+%fff0(fp)
ldl rr6,rr2
multl rq4,_stkseg+%ffec(fp)
ldl rr2,rr6
ldl _stkseg+%ffdc(fp),rr2
ldl rr2,#%ffff
and r2,_stkseg+%ffdc(fp)
and r3,_stkseg+%ffde(fp)
slal rr2,#%10
ldl _stkseg+%ffd8(fp),rr2
ldl rr2,_stkseg+%ffdc(fp)
sral rr2,#%10
ldl _stkseg+%ffdc(fp),rr2
ldl rr2,_stkseg+%ffd8(fp)
addl rr2,_stkseg+%ffd4(fp)
ldl _stkseg+%ffd8(fp),rr2
callr carry
ld _stkseg+%ffd2(fp),r2
ld r3,_stkseg+%ffd2(fp)
exts rr2
addl rr2,_stkseg+%ffdc(fp)
addl rr2,_stkseg+%ffe0(fp)
ldl _stkseg+%ffdc(fp),rr2
ldl rr2,_stkseg+%ffe8(fp)
ldl rr6,rr2
multl rq4,_stkseg+%fff4(fp)
ldl rr2,rr6
ldl _stkseg+%ffe0(fp),rr2
ldl rr2,#%ffff
and r2,_stkseg+%ffe0(fp)
and r3,_stkseg+%ffe2(fp)
slal rr2,#%10
ldl _stkseg+%ffd4(fp),rr2
ldl rr2,_stkseg+%ffe0(fp)
sral rr2,#%10
ldl _stkseg+%ffe0(fp),rr2
ldl rr2,_stkseg+%ffd8(fp)
addl rr2,_stkseg+%ffd4(fp)
ldl _stkseg+%ffd8(fp),rr2
callr carry
ld _stkseg+%ffd2(fp),r2
ld r3,_stkseg+%ffd2(fp)
exts rr2
addl rr2,_stkseg+%ffdc(fp)
addl rr2,_stkseg+%ffe0(fp)
ldl _stkseg+%ffdc(fp),rr2
ldl rr2,_stkseg+%fff4(fp)
ldl rr6,rr2
multl rq4,_stkseg+%ffec(fp)
ldl rr2,rr6
addl rr2,_stkseg+%ffdc(fp)
ldl _stkseg+%ffdc(fp),rr2
ldl rr2,FP(#%ffdc)
jpr L22
L22:
ld sp,fp
ldm r8,_stkseg-8(sp),#6
inc sp,#4
ret
~L1 := 46
~L2 := 50
}