From 79b195b55af84a9044dfb26ebdc49d9f308829af Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 15 Oct 2011 22:21:53 -0400 Subject: No need for boundary case handling in x86-32 __ieee_log --- sysdeps/i386/i686/fpu/e_log.S | 53 +------------------------------------------ 1 file changed, 1 insertion(+), 52 deletions(-) (limited to 'sysdeps/i386/i686/fpu/e_log.S') diff --git a/sysdeps/i386/i686/fpu/e_log.S b/sysdeps/i386/i686/fpu/e_log.S index c6524b1854..73060b088c 100644 --- a/sysdeps/i386/i686/fpu/e_log.S +++ b/sysdeps/i386/i686/fpu/e_log.S @@ -2,34 +2,11 @@ * Written by J.T. Conklin . * Public domain. * - * Changed to use fyl2xp1 for values near 1, . * Adapted for i686 instructions. */ #include -#ifdef __ELF__ - .section .rodata.cst8,"aM",@progbits,8 -#else - .text -#endif - .p2align 3 - ASM_TYPE_DIRECTIVE(one,@object) -one: .double 1.0 - ASM_SIZE_DIRECTIVE(one) - /* It is not important that this constant is precise. It is only - a value which is known to be on the safe side for using the - fyl2xp1 instruction. */ - ASM_TYPE_DIRECTIVE(limit,@object) -limit: .double 0.29 - ASM_SIZE_DIRECTIVE(limit) - - -#ifdef PIC -# define MO(op) op##@GOTOFF(%edx) -#else -# define MO(op) op -#endif .text ENTRY(__ieee754_log) @@ -37,22 +14,6 @@ ENTRY(__ieee754_log) fldl 4(%esp) // x : log(2) fucomi %st jp 3f -#ifdef PIC - LOAD_PIC_REG (dx) -#endif - fld %st // x : x : log(2) - fsubl MO(one) // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fld MO(limit) // 0.29 : |x-1| : x-1 : x : log(2) - fcomip %st(1) // |x-1| : x-1 : x : log(2) - fstp %st(0) // x-1 : x : log(2) - jc 2f - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) - ret - -2: fstp %st(0) // x : log(2) fyl2x // log(x) ret @@ -63,18 +24,6 @@ END (__ieee754_log) ENTRY(__log_finite) fldln2 // log(2) fldl 4(%esp) // x : log(2) -#ifdef PIC - LOAD_PIC_REG (dx) -#endif - fld %st // x : x : log(2) - fsubl MO(one) // x-1 : x : log(2) - fld %st // x-1 : x-1 : x : log(2) - fabs // |x-1| : x-1 : x : log(2) - fld MO(limit) // 0.29 : |x-1| : x-1 : x : log(2) - fcomip %st(1) // |x-1| : x-1 : x : log(2) - fstp %st(0) // x-1 : x : log(2) - jc 2b - fstp %st(1) // x-1 : log(2) - fyl2xp1 // log(x) + fyl2x // log(x) ret END(__log_finite) -- cgit 1.4.1