Metropoli BBS
VIEWER: gnufuncs.s MODE: TEXT (ASCII)
/* History:105,12 */
/* gnu's CC1 library of math functions */

/*
**	12(%ebp) == b
**	8(%ebp) == a
*/

	.text

	.globl	___udivsi3
___udivsi3:
	pushl	%ebp
	movl	%esp,%ebp
	movl	8(%ebp),%eax
	movl	$0,%edx
	divl	12(%ebp)
	popl	%ebp
	ret

	.globl	___divsi3
___divsi3:
	pushl	%ebp
	movl	%esp,%ebp
	movl	8(%ebp),%eax
	cdq
	idivl	12(%ebp)
	popl	%ebp
	ret

	.globl	___fixdfsi
___fixdfsi:
	.globl	___fixunsdfsi
___fixunsdfsi:
	pushl	%ebp
	movl	%esp,%ebp
	sub	$12,%esp	/* -12 = old CW, -10 = new CW, -8 = result */
	fstcw	-12(%ebp)
	fwait
	movw	-12(%ebp),%ax
	orw	$0x0c00,%ax
	movw	%ax,-10(%ebp)
	fldcww	-10(%ebp)
	mov	8(%ebp),%eax	/* for debugging only */
	fwait
	fldl	8(%ebp)
	fwait
	fistpq	-8(%ebp)
	fwait
	fldcww	-12(%ebp)
	fwait
	mov	-8(%ebp),%eax
	movl	%ebp,%esp
	popl	%ebp
	ret

[ RETURN TO DIRECTORY ]