.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