The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
	.file	"floor.c"
	.version	"01.01"
gcc2_compiled.:
/* Caution, order of operands is reversed from usual Intel syntax */
.text
	.align 16
.globl ceil
ceil:
	pushl %ebp
	movl %esp,%ebp
	pushl 12(%ebp)
	pushl 8(%ebp)
	call floor
	fcoml 8(%ebp)
	fnstsw %ax
	andb $69,%ah
	cmpb $1,%ah
	jne .L252
	fld1
	faddp %st,%st(1)
	.align 4
.L252:
	fldz
	fucom %st(1)
	fnstsw %ax
	andb $68,%ah
	xorb $64,%ah
	jne .L255
	fcompl 8(%ebp)
	fnstsw %ax
	andb $69,%ah
	jne .L253
	fstp %st(0)
	fldl NEGZERO
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L255:
	fstp %st(0)
.L253:
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe1:
	.size	ceil,.Lfe1-ceil

	.align 16
.globl floor
floor:
	pushl %ebp
	movl %esp,%ebp
	subl $4,%esp
	fstcw -4(%ebp)
	fwait
	movw -4(%ebp),%ax
	andw $0xf3ff,%ax
	orw $0x400,%ax
	movw %ax,-2(%ebp)
	fldcw -2(%ebp)
	fldl 8(%ebp)
	frndint
	fldcw -4(%ebp)
	leave
	ret
.Lfe2:
	.size	floor,.Lfe2-floor


	.align 16
.globl frexp
frexp:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	pushl %ebx
	fldl 8(%ebp)
	movl 16(%ebp),%ebx
	fldz
	fucomp %st(1)
	fnstsw %ax
	andb $68,%ah
	xorb $64,%ah
	jne .L19
	movl $0,(%ebx)
	jmp .L27
	.align 4
.L19:
	fstpl -8(%ebp)
	leal -2(%ebp),%ecx
	movw -2(%ebp),%ax
	sarw $4,%ax
	movl %eax,%edx
	andl $2047,%edx
	jne .L21
	.align 4
.L23:
	fldl -8(%ebp)
	fadd %st(0),%st
	fstpl -8(%ebp)
	decl %edx
	movw (%ecx),%ax
	sarw $4,%ax
	andl $2047,%eax
	je .L23
	addl %eax,%edx
	.align 4
.L21:
	addl $-1022,%edx
	movl %edx,(%ebx)
	andw $32783,(%ecx)
	orw $16352,(%ecx)
	fldl -8(%ebp)
.L27:
	movl -12(%ebp),%ebx
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe3:
	.size	frexp,.Lfe3-frexp
	.data
	.align 4
.LC1:
	.long 0x0,0x3fe00000
	.text
	.align 16
.globl ldexp
ldexp:
	pushl %ebp
	movl %esp,%ebp
	subl $8,%esp
	fldl 8(%ebp)
	movl 16(%ebp),%edx
	fldz
	fucomp %st(1)
	fnstsw %ax
	andb $68,%ah
	xorb $64,%ah
	jne .L29
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L53:
	fstp %st(1)
	fstp %st(1)
	fstp %st(1)
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L29:
	fstl -8(%ebp)
	leal -2(%ebp),%ecx
	fld1
	testw $32752,-2(%ebp)
	jne .L51
	fldl .LC1
	.align 4
.L32:
	testl %edx,%edx
	jle .L33
	fxch %st(1)
	fadd %st(0),%st
	fxch %st(1)
	decl %edx
	.align 4
.L33:
	testl %edx,%edx
	jge .L34
	cmpl $-53,%edx
	jl .L52
	fmul %st,%st(1)
	incl %edx
.L34:
	fld %st(2)
	fmul %st(2),%st
	fstl -8(%ebp)
	testl %edx,%edx
	je .L53
	fstp %st(0)
	testw $32752,(%ecx)
	je .L32
	fstp %st(0)
	.align 4
.L51:
	fstp %st(0)
	fstp %st(0)
	movw (%ecx),%ax
	andw $32752,%ax
	sarw $4,%ax
	cwtl
	addl %edx,%eax
	cmpl $2046,%eax
	jle .L38
	fldl MAXNUM
	fadd %st(0),%st
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L38:
	testl %eax,%eax
	jg .L39
	cmpl $-53,%eax
	jge .L40
	jmp .L49
	.align 4
.L52:
	fstp %st(0)
	fstp %st(0)
	fstp %st(0)
.L49:
	fldz
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L40:
	andw $32783,(%ecx)
	orb $16,(%ecx)
	leal -1(%eax),%eax
	pushl %eax
/*	pushl $1073741824 */
	pushl $1072693248
	pushl $0
	call ldexp
	fmull (%ecx)
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L39:
	andw $32783,(%ecx)
	andb $7,%ah
	salw $4,%ax
	orw %ax,(%ecx)
	fldl -8(%ebp)
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe4:
	.size	ldexp,.Lfe4-ldexp
	.align 16
.globl signbit
signbit:
	pushl %ebp
	movl %esp,%ebp
	movl 12(%ebp),%eax
	shrl $31,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe5:
	.size	signbit,.Lfe5-signbit

	.align 16
.globl isnan
isnan:
	pushl %ebp
	movl %esp,%ebp
	pushl %ebx
	movl 8(%ebp),%ecx
	movl 12(%ebp),%ebx
	movl %ebx,%edx
	andl $2146435072,%edx
	cmpl $2146435072,%edx
	jne .L62
	testl $1048575,%ebx
	jne .L63
	testl %ecx,%ecx
	je .L62
.L63:
	movl $1,%eax
	jmp .L67
	.align 4
.L62:
	xorl %eax,%eax
.L67:
	movl -4(%ebp),%ebx
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe6:
	.size	isnan,.Lfe6-isnan

	.align 16
.globl isfinite
isfinite:
	pushl %ebp
	movl %esp,%ebp
	movl 12(%ebp),%eax
	andl $2146435072,%eax
	cmpl $2146435072,%eax
	jne .L70
	xorl %eax,%eax
	movl %ebp,%esp
	popl %ebp
	ret
	.align 4
.L70:
	movl $1,%eax
	movl %ebp,%esp
	popl %ebp
	ret
.Lfe7:
	.size	isfinite,.Lfe7-isfinite

	.align	16
	.globl	fmod
fmod:
	fldl	4(%esp)
	ftst
	fnstsw	%ax
	sahf
	jz	.L82
	fldl	12(%esp)
	ftst
	fnstsw	%ax
	sahf
	jz	.L81
	fxch	%st(1)
.L80:
	fprem
	fnstsw	%ax
	sahf
	jpe	.L80
.L81:
	fstp	%st(1)
.L82:
	ret
.Lfe8:
	.size	fmod,.Lfe8-fmod