@ Sqrt routine by Dooby @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ .global Sqrt .arm .align 2 .section .iwram, "ax", %progbits @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ s32 Sqrt(s32 n) @ Sqrt: stmfd sp!, {v1, lr} mov lr, a1 @ Copy input somewhere. mov a2, #1 sqrt1: cmp a1, a2 movhi a1, a1, lsr #1 movhi a2, a2, lsl #1 bhi sqrt1 sqrt4: mov a1, lr @ Pull input back. mov v1, a2 mov a4, #0 mov a3, a2 sqrt2: cmp a3, a1, lsr #1 movls a3, a3, lsl #1 bcc sqrt2 sqrt3: cmp a1, a3 adc a4, a4, a4 subcs a1, a1, a3 teq a3, a2 movne a3, a3, lsr #1 bne sqrt3 add a2, a2, a4 movs a2, a2, lsr #1 cmp a2, v1 bcc sqrt4 mov a1, v1 ldmfd sp!, {v1, lr} bx lr .pool .end