mult_f1?: ; o: r0=(r3*f(r0,r2))<<16 ; i: r0, r2, r3 cmp/hs r0, r2 bt loc_52D8 ; r2=r2-r0 mov.l r0, @-r15 sub r2, r0 ; r0=r0-r2 sts macl, r1 mul.l r3, r0 ; r0=r0*r3 sts macl, r0 lds r1, macl swap.w r0, r0 mov.l @r15+, r2 extu.w r0, r0 sub r0, r2 ; r2=r2-r0 rts mov r2, r0 loc_52D8: ; r2=r2-r0 sub r0, r2 sts macl, r1 mul.l r3, r2 sts macl, r2 ; r2=r2*r3 lds r1, macl swap.w r2, r2 extu.w r2, r2 rts add r2, r0