diff --git a/WEGA/contrib/lcc/lib/libc/u8k/crt/mul.s b/WEGA/contrib/lcc/lib/libc/u8k/crt/mul.s new file mode 100644 index 0000000..e18a93a --- /dev/null +++ b/WEGA/contrib/lcc/lib/libc/u8k/crt/mul.s @@ -0,0 +1,102 @@ +.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 + }