advent-of-sh/common/div32_16.s

19 lines
227 B
ArmAsm

.global _div32_16
.align 4
_div32_16:
/* r1 (32 bits) ÷ r0 (16 bits) */
shll16 r0
cmp/hs r0,r1
bt over_div
div0u
.rept 16
div1 r0,r1
.endr
rotcl r1
rts
extu.w r1,r1
over_div:
bra over_div
nop
/* r1 = quotient */