xref: /plan9-contrib/sys/src/libmp/amd64/mpdigdiv.s (revision 272efad760864ee41cfe633b56aea9b4f5cf3ae7)
1TEXT	mpdigdiv(SB),$0
2
3/*	MOVL	dividend+0(FP),BX */
4	MOVL	0(RARG),AX
5	MOVL	4(RARG),DX
6	MOVL	divisor+8(FP),BX
7	MOVQ	quotient+16(FP),DI
8	XORL	CX,CX
9	CMPL	DX,BX		/* dividend >= 2^32 * divisor */
10	JHS	_divovfl
11	CMPL	BX,CX		/* divisor == 0 */
12	JE	_divovfl
13	DIVL	BX		/* AX = DX:AX/BX */
14	MOVL	AX,0(DI)
15	RET
16
17	/* return all 1's */
18_divovfl:
19	NOTL	CX
20	MOVL	CX,0(DI)
21	RET
22