/ C library-- versions of long *, /, % for floating point hardware / also *= , %=, /= .globl lmul, ldiv, lrem, almul, aldiv, alrem / / called: 2(sp): LHS 6(sp):RHS lmul: setl movif 2(sp),r0 movif 6(sp),r1 mulf r1,r0 movfi r0,-(sp) mov (sp)+,r0 mov (sp)+,r1 seti rts pc ldiv: setl movif 2(sp),r0 movif 6(sp),r1 divf r1,r0 movfi r0,-(sp) mov (sp)+,r0 mov (sp)+,r1 seti rts pc lrem: setl movif 2(sp),r0 movf r0,r2 movif 6(sp),r1 movf r1,r3 divf r1,r0 modf $40200,r0 mulf r3,r1 subf r1,r2 movfi r2,-(sp) mov (sp)+,r0 mov (sp)+,r1 seti rts pc / / called: 2(sp):ptr / called: 2(sp): ptr to LHS, 4(sp):RHS almul: setl mov 2(sp),r0 movif (r0),fr0 movif 4(sp),fr1 mulf fr1,fr0 movfi fr0,(r0) mov 2(r0),r1 mov (r0),r0 seti rts pc aldiv: setl mov 2(sp),r0 movif (r0),fr0 movif 4(sp),fr1 divf fr1,fr0 movfi fr0,(r0) mov 2(r0),r1 mov (r0),r0 seti rts pc alrem: setl mov 2(sp),r0 movif (r0),fr0 movif 4(sp),fr1 movf fr0,fr2 movf fr1,fr3 divf fr1,fr0 modf $40200,fr0 mulf fr3,fr1 subf fr1,fr2 movfi fr2,(r0) mov 2(r0),r1 mov (r0),r0 seti rts pc