;	quadmath.mar
;
;	CALL SUBQUAD(A,B,C)
;
;	RETURNS: A - B -> C
;
	.ENTRY	SUBQUAD	^M<R2>
;
;
A=4
B=8
C=12
	MOVQ	@A(AP),R0
	MOVAQ	@B(AP),R2
	SUBL	(R2)+,R0
	SBWC	(R2),R1
	MOVQ	R0,@C(AP)
	RET
;
;
;
	.ENTRY	DIVQUAD	^M<R2>
;
;	CALL EDIV (A,B,C)
;	RETURNS A/B->C
;
	MOVQ	@A(AP),R0
	MOVAL	@B(AP),R2
	EDIV	(R2),R0,R0,R1
	MOVL	R0,@C(AP)
	RET
;
;
;	CALL ADDQUAD(A,B,C)
;
;	RETURNS: A + B -> C
;
	.ENTRY	ADDQUAD	^M<R2>
;
;
A=4
B=8
C=12
	MOVQ	@A(AP),R0
	MOVAQ	@B(AP),R2
	ADDL	(R2)+,R0
	ADWC	(R2),R1
	MOVQ	R0,@C(AP)
	RET
;
	.ENTRY	MULTQUAD ^M<R2,R3,R4,R5,R6,R7,R8,R9,R10,R11>
A=4
B=8
C=12
	MOVQ	@A(AP),R0
	MOVQ	@B(AP),R2
	EMUL	R0,R2,#0,R4
	MULL3	R1,R2,R8
	MULL3	R0,R3,R9
	ADDL	R9,R0
	TSTL	R0
	BGEQ	10$
	ADDL	R2,R0
10$:	TSTL	R2
	BGEQ	20$
	ADDL	R0,R8
20$:	ADDL	R8,R5
	MOVQ	R4,@C(AP)
	RET
	.END

