@----------------------------------------------------------------------------
@
@\Source: /usr/local/cvsroot/gccsdk/unixlib/source/sys/_umod.s,v $
@\Date: 2002/09/24 2102:38 $
@\Revision: 1.4 $
@\State: Exp $
@\Author: admin $
@
@----------------------------------------------------------------------------

	.include	"clib/unixlib/asm_dec.s"



	.global	__rt_urem
	.global	x$uremainder
	.global	_kernel_urem
	NAME	__rt_urem
_kernel_urem:
x$uremainder:
__rt_urem:
        MOVS    a3,r0
	@ just return for divide by zero
	return	EQ, pc, lr

        CMP     a3, r1, LSR #16
        MOVLS   a3, a3, LSL #16
        CMP     a3, r1,LSR #8
        MOVLS   a3, a3, LSL #8
        CMP     a3, r1,LSR #4
        MOVLS   a3, a3, LSL #4
        CMP     a3, r1,LSR #2
        MOVLS   a3, a3, LSL #2
        CMP     a3, r1,LSR #1
        MOVLS   a3, a3, LSL #1

divloop:
	CMP     r1,a3
        SUBCS   r1,r1,a3
        MOV     a3, a3, LSR #1
        CMP     a3, r0
        BCS     divloop
	MOV	a1, r1
	return	AL, pc, lr

