/* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunPro, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== * * From: @(#)s_ceil.c 5.1 93/09/24 */ /* XXX: generated from src/lib/msun/src/s_ceill.c */ #include __FBSDID("$FreeBSD: ports/emulators/qemu/files/patch-libmath,v 1.3 2006/08/21 23:02:01 shaun Exp $") .file "s_ceill.c" .section .rodata.cst8,"aM",@progbits,8 .p2align 3 .LC0: .long 2281731484 .long 2117592124 .text .p2align 4,,15 .globl ceill .type ceill, @function ceill: .LFB17: pushq %rbp .LCFI0: pushq %rbx .LCFI1: fldt 24(%rsp) movq $0, -16(%rsp) fld %st(0) fstpt -40(%rsp) movl -32(%rsp), %edi movq -40(%rsp), %rsi movl %edi, -16(%rsp) movl -16(%rsp), %r11d movq %rsi, -24(%rsp) movl %r11d, %r10d andl $32767, %r10d leal -16383(%r10), %r8d cmpl $30, %r8d jg .L2 testl %r8d, %r8d js .L38 movl -20(%rsp), %r9d leal 1(%r8), %ecx mov -24(%rsp), %eax movl $4294967295, %ebp movq %rsi, -40(%rsp) movl %edi, -32(%rsp) shrq %cl, %rbp mov %r9d, %ebx movq %rbx, %rdx andq %rbp, %rdx orq %rax, %rdx fldt -40(%rsp) je .L42 ffreep %st(0) testb $-128, -15(%rsp) jne .L12 movl $31, %ecx movl $1, %eax subl %r8d, %ecx salq %cl, %rax addl %eax, %r9d mov %r9d, %eax cmpq %rbx, %rax jae .L32 leal 1(%r10), %edx movl %r11d, %eax orl $-2147483648, %r9d andw $-32768, %ax andw $32767, %dx orl %edx, %eax movw %ax, -16(%rsp) .L32: movl %r9d, -20(%rsp) .L12: faddl .LC0(%rip) fldz fxch %st(1) fucomip %st(1), %st fstp %st(0) jbe .L31 movl %ebp, %eax movl $0, -24(%rsp) notl %eax andl %eax, %r9d movl %r9d, -20(%rsp) .p2align 4,,7 .L31: movq -24(%rsp), %rsi movl -16(%rsp), %edi movq %rsi, -40(%rsp) movl %edi, -32(%rsp) fldt -40(%rsp) popq %rbx popq %rbp ret .p2align 4,,7 .L2: cmpl $62, %r8d jle .L45 .L44: ffreep %st(0) .L17: movq %rsi, -40(%rsp) movl %edi, -32(%rsp) fldt -40(%rsp) popq %rbx popq %rbp ret .p2align 4,,7 .L45: movl -24(%rsp), %edx leal 1(%r8), %ecx movq $-1, %rbx movq %rsi, -40(%rsp) movl %edi, -32(%rsp) shrq %cl, %rbx mov %edx, %r9d testq %rbx, %r9 fldt -40(%rsp) je .L42 ffreep %st(0) testb $-128, -15(%rsp) jne .L20 cmpl $31, %r8d je .L36 movl $63, %ecx movl $1, %eax subl %r8d, %ecx salq %cl, %rax leal (%rdx,%rax), %eax movl %eax, -24(%rsp) mov %eax, %eax cmpq %r9, %rax jae .L20 .L36: movl -20(%rsp), %eax leal 1(%rax), %ecx cmpl %eax, %ecx jae .L34 leal 1(%r10), %edx movl %r11d, %eax orl $-2147483648, %ecx andw $-32768, %ax andw $32767, %dx orl %edx, %eax movw %ax, -16(%rsp) .L34: movl %ecx, -20(%rsp) .p2align 4,,7 .L20: faddl .LC0(%rip) fldz fxch %st(1) fucomip %st(1), %st fstp %st(0) jbe .L31 movl %ebx, %eax notl %eax andl %eax, -24(%rsp) jmp .L31 .p2align 4,,7 .L42: fstp %st(1) popq %rbx popq %rbp ret .p2align 4,,7 .L38: fldl .LC0(%rip) faddp %st, %st(1) fldz fxch %st(1) fucomip %st(1), %st jbe .L44 testl %r10d, %r10d jle .L39 .L7: movabsq $-9223372036854775808, %rsi movl $16383, %edi testb $-128, -15(%rsp) movq %rsi, -40(%rsp) movl %edi, -32(%rsp) fldt -40(%rsp) fcmovne %st(1), %st fstp %st(1) fstpt -40(%rsp) movq -40(%rsp), %rsi movl -32(%rsp), %edi movq %rsi, -24(%rsp) movl %edi, -16(%rsp) jmp .L17 .L39: movl -24(%rsp), %eax orl -20(%rsp), %eax je .L44 jmp .L7 .LFE17: .size ceill, .-ceill .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "" .uleb128 0x1 .sleb128 -8 .byte 0x10 .byte 0xc .uleb128 0x7 .uleb128 0x8 .byte 0x90 .uleb128 0x1 .p2align 3 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .quad .LFB17 .quad .LFE17-.LFB17 .byte 0x4 .long .LCFI0-.LFB17 .byte 0xe .uleb128 0x10 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xe .uleb128 0x18 .byte 0x83 .uleb128 0x3 .byte 0x86 .uleb128 0x2 .p2align 3 .LEFDE1: .ident "GCC: (GNU) 3.4.4 [FreeBSD] 20050421"