! ! arith.s Takes care of standard arithmetic routines. ! !********************************************************************** ! ! JCC mul (see appendice E) ! !********************************************************************** .seg "text" .global .mul .mul: mov %o0, %y andncc %o0, 0xfff, %g0 be mul.short andcc %g0, %g0, %o4 mulscc %o4, %o1, %o4 ! iteration 1 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 ! iteration 32 mulscc %o4, %g0, %o4 ! shifts only tst %o0 rd %y, %o0 bge mul.1 tst %o0 sub %o4, %o1, %o4 mul.1: bge mul.2 addcc %o4, %g0, %o1 retl subcc %o4, -1, %g0 mul.2: retl nop mul.short: 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 ! iteration 12 mulscc %o4, %g0, %o4 ! shifts only rd %y, %o5 sll %o4, 12, %o0 srl %o5, 20, %o5 orcc %o5, %o0, %o0 bge mul.3 sra %o4, 20, %o1 retl subcc %o1, -1, %g0 mul.3: retl addcc %o1, %g0, %g0 Ę5˜J˜J˜8J˜J˜J˜GJ˜J˜J˜J˜GJ˜J˜ J˜ ˜J˜ J˜J˜J˜J˜J˜$J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜$J˜#J˜J˜ J˜ J˜ J˜ J˜—˜J˜ J˜J˜J˜—˜J˜J˜J˜—˜ J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜J˜$J˜#J˜J˜ J˜J˜J˜J˜ J˜J˜J˜—˜J˜J˜—J˜—…—Žé