diff options
Diffstat (limited to 'sysdeps/i386/fpu')
51 files changed, 199 insertions, 161 deletions
diff --git a/sysdeps/i386/fpu/e_acosh.S b/sysdeps/i386/fpu/e_acosh.S index 981425ec7a..62a232471f 100644 --- a/sysdeps/i386/fpu/e_acosh.S +++ b/sysdeps/i386/fpu/e_acosh.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -50,9 +50,7 @@ ENTRY(__ieee754_acosh) cmpl $0x41b00000, %ecx ja 3f // x > 2^28 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x40000000, %ecx ja 4f // x > 2 diff --git a/sysdeps/i386/fpu/e_acoshf.S b/sysdeps/i386/fpu/e_acoshf.S index 17be69d575..1906c60578 100644 --- a/sysdeps/i386/fpu/e_acoshf.S +++ b/sysdeps/i386/fpu/e_acoshf.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -50,9 +50,7 @@ ENTRY(__ieee754_acoshf) cmpl $0x47000000, %ecx ja 3f // x > 2^14 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x40000000, %ecx ja 4f // x > 2 diff --git a/sysdeps/i386/fpu/e_acoshl.S b/sysdeps/i386/fpu/e_acoshl.S index 7b6885da18..c7b548d25a 100644 --- a/sysdeps/i386/fpu/e_acoshl.S +++ b/sysdeps/i386/fpu/e_acoshl.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -57,9 +57,7 @@ ENTRY(__ieee754_acoshl) cmpl $0x4020, %ecx ja 3f // x > 2^34 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x4000, %ecx ja 4f // x > 2 diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S index 6fb53a4acc..3566ec6eff 100644 --- a/sysdeps/i386/fpu/e_atanh.S +++ b/sysdeps/i386/fpu/e_atanh.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arctanh function. - Copyright (C) 1996, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1999, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -58,7 +58,9 @@ ENTRY(__ieee754_atanh) #ifdef PIC call 1f + cfi_adjust_cfa_offset (4) 1: popl %edx + cfi_adjust_cfa_offset (-4) addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx #endif diff --git a/sysdeps/i386/fpu/e_atanhf.S b/sysdeps/i386/fpu/e_atanhf.S index a517929f2a..10ce6aed9e 100644 --- a/sysdeps/i386/fpu/e_atanhf.S +++ b/sysdeps/i386/fpu/e_atanhf.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arctanh function. - Copyright (C) 1996, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1999, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -57,9 +57,7 @@ ENTRY(__ieee754_atanhf) ja 5f #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif andl $0x80000000, %ecx // ECX == 0 iff X >= 0 diff --git a/sysdeps/i386/fpu/e_atanhl.S b/sysdeps/i386/fpu/e_atanhl.S index 6fda9bef89..8618c3fb35 100644 --- a/sysdeps/i386/fpu/e_atanhl.S +++ b/sysdeps/i386/fpu/e_atanhl.S @@ -64,9 +64,7 @@ ENTRY(__ieee754_atanhl) 7: #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif andl $0x8000, %ecx // ECX == 0 iff X >= 0 diff --git a/sysdeps/i386/fpu/e_log.S b/sysdeps/i386/fpu/e_log.S index c7cacdfb0a..5604e638f5 100644 --- a/sysdeps/i386/fpu/e_log.S +++ b/sysdeps/i386/fpu/e_log.S @@ -37,9 +37,7 @@ ENTRY(__ieee754_log) fldln2 // log(2) fldl 4(%esp) // x : log(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fld %st // x : x : log(2) fsubl MO(one) // x-1 : x : log(2) diff --git a/sysdeps/i386/fpu/e_log10.S b/sysdeps/i386/fpu/e_log10.S index e93184c219..525f08c96d 100644 --- a/sysdeps/i386/fpu/e_log10.S +++ b/sysdeps/i386/fpu/e_log10.S @@ -37,9 +37,7 @@ ENTRY(__ieee754_log10) fldlg2 // log10(2) fldl 4(%esp) // x : log10(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam fnstsw diff --git a/sysdeps/i386/fpu/e_log10f.S b/sysdeps/i386/fpu/e_log10f.S index 0a89f54784..da5069d583 100644 --- a/sysdeps/i386/fpu/e_log10f.S +++ b/sysdeps/i386/fpu/e_log10f.S @@ -38,9 +38,7 @@ ENTRY(__ieee754_log10f) fldlg2 // log10(2) flds 4(%esp) // x : log10(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam fnstsw diff --git a/sysdeps/i386/fpu/e_log10l.S b/sysdeps/i386/fpu/e_log10l.S index 25d3501663..3811516be5 100644 --- a/sysdeps/i386/fpu/e_log10l.S +++ b/sysdeps/i386/fpu/e_log10l.S @@ -39,9 +39,7 @@ ENTRY(__ieee754_log10l) fldlg2 // log10(2) fldt 4(%esp) // x : log10(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam fnstsw diff --git a/sysdeps/i386/fpu/e_log2.S b/sysdeps/i386/fpu/e_log2.S index 4f7f0d57d9..d80bf80239 100644 --- a/sysdeps/i386/fpu/e_log2.S +++ b/sysdeps/i386/fpu/e_log2.S @@ -34,9 +34,7 @@ limit: .double 0.29 .text ENTRY(__ieee754_log2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fldl MO(one) fldl 4(%esp) // x : 1 diff --git a/sysdeps/i386/fpu/e_log2f.S b/sysdeps/i386/fpu/e_log2f.S index 88f28b423c..9eb7b2a826 100644 --- a/sysdeps/i386/fpu/e_log2f.S +++ b/sysdeps/i386/fpu/e_log2f.S @@ -34,9 +34,7 @@ limit: .double 0.29 .text ENTRY(__ieee754_log2f) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fldl MO(one) flds 4(%esp) // x : 1 diff --git a/sysdeps/i386/fpu/e_log2l.S b/sysdeps/i386/fpu/e_log2l.S index f5c661a2d1..9de08f5de1 100644 --- a/sysdeps/i386/fpu/e_log2l.S +++ b/sysdeps/i386/fpu/e_log2l.S @@ -34,9 +34,7 @@ limit: .double 0.29 .text ENTRY(__ieee754_log2l) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fldl MO(one) fldt 4(%esp) // x : 1 diff --git a/sysdeps/i386/fpu/e_logf.S b/sysdeps/i386/fpu/e_logf.S index bdba1d3225..128bb2754c 100644 --- a/sysdeps/i386/fpu/e_logf.S +++ b/sysdeps/i386/fpu/e_logf.S @@ -38,9 +38,7 @@ ENTRY(__ieee754_logf) fldln2 // log(2) flds 4(%esp) // x : log(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fld %st // x : x : log(2) fsubl MO(one) // x-1 : x : log(2) diff --git a/sysdeps/i386/fpu/e_logl.S b/sysdeps/i386/fpu/e_logl.S index bda3ea508e..5023d3012f 100644 --- a/sysdeps/i386/fpu/e_logl.S +++ b/sysdeps/i386/fpu/e_logl.S @@ -38,9 +38,7 @@ ENTRY(__ieee754_logl) fldln2 // log(2) fldt 4(%esp) // x : log(2) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fld %st // x : x : log(2) fsubl MO(one) // x-1 : x : log(2) diff --git a/sysdeps/i386/fpu/e_pow.S b/sysdeps/i386/fpu/e_pow.S index d100c0ac57..c554ca4ecb 100644 --- a/sysdeps/i386/fpu/e_pow.S +++ b/sysdeps/i386/fpu/e_pow.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of pow function. - Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004 + Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -67,9 +67,7 @@ ENTRY(__ieee754_pow) fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw @@ -87,6 +85,7 @@ ENTRY(__ieee754_pow) fldl 4(%esp) // x : y subl $8,%esp + cfi_adjust_cfa_offset (8) fxam fnstsw @@ -120,7 +119,9 @@ ENTRY(__ieee754_pow) /* OK, we have an integer value for y. */ popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) orl $0, %edx fstp %st(0) // x jns 4f // y >= 0, jump @@ -155,6 +156,7 @@ ENTRY(__ieee754_pow) 31: fstp %st(1) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 2: /* y is a real number. */ fxch // x : y @@ -181,6 +183,7 @@ ENTRY(__ieee754_pow) faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x)) fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x)) addl $8, %esp + cfi_adjust_cfa_offset (-8) fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x)) ret @@ -219,6 +222,7 @@ ENTRY(__ieee754_pow) 13: fldl 4(%esp) // load x == NaN ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±inf 15: fstp %st(0) // y @@ -237,7 +241,9 @@ ENTRY(__ieee754_pow) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 18f // jump if not odd movl %edx, %eax @@ -251,22 +257,27 @@ ENTRY(__ieee754_pow) fldl MOX(minf_mzero, %edx, 8) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 16: fcompl MO(zero) addl $8, %esp + cfi_adjust_cfa_offset (-8) fnstsw shrl $5, %eax andl $8, %eax fldl MOX(inf_zero, %eax, 1) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 17: shll $30, %edx // sign bit for y in right position addl $8, %esp + cfi_adjust_cfa_offset (-8) 18: shrl $31, %edx fldl MOX(inf_zero, %edx, 8) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±0 20: fstp %st(0) // y @@ -288,7 +299,9 @@ ENTRY(__ieee754_pow) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 27f // jump if not odd cmpl $0xffe00000, %edx @@ -300,13 +313,16 @@ ENTRY(__ieee754_pow) fchs ret + cfi_adjust_cfa_offset (8) 25: fstp %st(0) 26: addl $8, %esp + cfi_adjust_cfa_offset (-8) 27: // Raise divide-by-zero exception and get infinity value. fldl MO(one) fdivl MO(zero) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±0 and y is > 0. We must find out whether y is an odd integer. 21: testb $2, %dh @@ -323,7 +339,9 @@ ENTRY(__ieee754_pow) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 24f // jump if not odd cmpl $0xffe00000, %edx @@ -332,8 +350,10 @@ ENTRY(__ieee754_pow) fldl MO(mzero) ret + cfi_adjust_cfa_offset (8) 22: fstp %st(0) 23: addl $8, %esp // Don't use 2 x pop + cfi_adjust_cfa_offset (-8) 24: fldl MO(zero) ret diff --git a/sysdeps/i386/fpu/e_powf.S b/sysdeps/i386/fpu/e_powf.S index b3fa624f4d..c835b978b9 100644 --- a/sysdeps/i386/fpu/e_powf.S +++ b/sysdeps/i386/fpu/e_powf.S @@ -1,5 +1,6 @@ /* ix87 specific implementation of pow function. - Copyright (C) 1996, 1997, 1999, 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2001, 2004, 2005 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -66,9 +67,7 @@ ENTRY(__ieee754_powf) fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw @@ -86,6 +85,7 @@ ENTRY(__ieee754_powf) flds 4(%esp) // x : y subl $4, %esp + cfi_adjust_cfa_offset (4) fxam fnstsw @@ -119,6 +119,7 @@ ENTRY(__ieee754_powf) /* OK, we have an integer value for y. */ popl %edx + cfi_adjust_cfa_offset (-4) orl $0, %edx fstp %st(0) // x jns 4f // y >= 0, jump @@ -149,6 +150,7 @@ ENTRY(__ieee754_powf) 31: fstp %st(1) ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) 2: /* y is a real number. */ fxch // x : y @@ -175,6 +177,7 @@ ENTRY(__ieee754_powf) faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x)) fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x)) addl $4, %esp + cfi_adjust_cfa_offset (-4) fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x)) ret @@ -213,6 +216,7 @@ ENTRY(__ieee754_powf) 13: flds 4(%esp) // load x == NaN ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) // x is ±inf 15: fstp %st(0) // y @@ -231,6 +235,7 @@ ENTRY(__ieee754_powf) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %edx + cfi_adjust_cfa_offset (-4) testb $1, %dl jz 18f // jump if not odd movl %edx, %eax @@ -244,22 +249,27 @@ ENTRY(__ieee754_powf) fldl MOX(minf_mzero, %edx, 8) ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) 16: fcompl MO(zero) addl $4, %esp + cfi_adjust_cfa_offset (-4) fnstsw shrl $5, %eax andl $8, %eax fldl MOX(inf_zero, %eax, 1) ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) 17: shll $30, %edx // sign bit for y in right position addl $4, %esp + cfi_adjust_cfa_offset (-4) 18: shrl $31, %edx fldl MOX(inf_zero, %edx, 8) ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) // x is ±0 20: fstp %st(0) // y @@ -281,6 +291,7 @@ ENTRY(__ieee754_powf) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %edx + cfi_adjust_cfa_offset (-4) testb $1, %dl jz 27f // jump if not odd cmpl $0xff000000, %edx @@ -292,13 +303,16 @@ ENTRY(__ieee754_powf) fchs ret + cfi_adjust_cfa_offset (4) 25: fstp %st(0) 26: addl $4, %esp + cfi_adjust_cfa_offset (-4) 27: // Raise divide-by-zero exception and get infinity value. fldl MO(one) fdivl MO(zero) ret + cfi_adjust_cfa_offset (4) .align ALIGNARG(4) // x is ±0 and y is > 0. We must find out whether y is an odd integer. 21: testb $2, %dh @@ -315,6 +329,7 @@ ENTRY(__ieee754_powf) // OK, the value is an integer, but is the number of bits small // enough so that all are coming from the mantissa? popl %edx + cfi_adjust_cfa_offset (-4) testb $1, %dl jz 24f // jump if not odd cmpl $0xff000000, %edx @@ -323,8 +338,10 @@ ENTRY(__ieee754_powf) fldl MO(mzero) ret + cfi_adjust_cfa_offset (4) 22: fstp %st(0) 23: addl $4, %esp // Don't use pop. + cfi_adjust_cfa_offset (-4) 24: fldl MO(zero) ret diff --git a/sysdeps/i386/fpu/e_powl.S b/sysdeps/i386/fpu/e_powl.S index 080764b84a..74f422816a 100644 --- a/sysdeps/i386/fpu/e_powl.S +++ b/sysdeps/i386/fpu/e_powl.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of pow function. - Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004 + Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -67,9 +67,7 @@ ENTRY(__ieee754_powl) fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw @@ -87,6 +85,7 @@ ENTRY(__ieee754_powl) fldt 4(%esp) // x : y subl $8,%esp + cfi_adjust_cfa_offset (8) fxam fnstsw @@ -120,7 +119,9 @@ ENTRY(__ieee754_powl) /* OK, we have an integer value for y. */ popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) orl $0, %edx fstp %st(0) // x jns 4f // y >= 0, jump @@ -155,6 +156,7 @@ ENTRY(__ieee754_powl) 31: fstp %st(1) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 2: /* y is a real number. */ fxch // x : y @@ -186,13 +188,16 @@ ENTRY(__ieee754_powl) faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x)) fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x)) addl $8, %esp + cfi_adjust_cfa_offset (-8) fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x)) ret + cfi_adjust_cfa_offset (8) 28: fstp %st(1) // y*log2(x) fldl MO(one) // 1 : y*log2(x) fscale // 2^(y*log2(x)) : y*log2(x) addl $8, %esp + cfi_adjust_cfa_offset (-8) fstp %st(1) // 2^(y*log2(x)) ret @@ -230,6 +235,7 @@ ENTRY(__ieee754_powl) 13: fldt 4(%esp) // load x == NaN ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±inf 15: fstp %st(0) // y @@ -247,7 +253,9 @@ ENTRY(__ieee754_powl) // OK, the value is an integer, but is it odd? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 18f // jump if not odd // It's an odd integer. @@ -255,22 +263,27 @@ ENTRY(__ieee754_powl) fldl MOX(minf_mzero, %edx, 8) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 16: fcompl MO(zero) addl $8, %esp + cfi_adjust_cfa_offset (-8) fnstsw shrl $5, %eax andl $8, %eax fldl MOX(inf_zero, %eax, 1) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) 17: shll $30, %edx // sign bit for y in right position addl $8, %esp + cfi_adjust_cfa_offset (-8) 18: shrl $31, %edx fldl MOX(inf_zero, %edx, 8) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±0 20: fstp %st(0) // y @@ -291,7 +304,9 @@ ENTRY(__ieee754_powl) // OK, the value is an integer, but is it odd? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 27f // jump if not odd // It's an odd integer. @@ -301,13 +316,16 @@ ENTRY(__ieee754_powl) fchs ret + cfi_adjust_cfa_offset (8) 25: fstp %st(0) 26: addl $8, %esp + cfi_adjust_cfa_offset (-8) 27: // Raise divide-by-zero exception and get infinity value. fldl MO(one) fdivl MO(zero) ret + cfi_adjust_cfa_offset (8) .align ALIGNARG(4) // x is ±0 and y is > 0. We must find out whether y is an odd integer. 21: testb $2, %dh @@ -323,15 +341,19 @@ ENTRY(__ieee754_powl) // OK, the value is an integer, but is it odd? popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) andb $1, %al jz 24f // jump if not odd // It's an odd integer. fldl MO(mzero) ret + cfi_adjust_cfa_offset (8) 22: fstp %st(0) 23: addl $8, %esp // Don't use 2 x pop + cfi_adjust_cfa_offset (-8) 24: fldl MO(zero) ret diff --git a/sysdeps/i386/fpu/e_scalb.S b/sysdeps/i386/fpu/e_scalb.S index 1596f6a700..7e334a3611 100644 --- a/sysdeps/i386/fpu/e_scalb.S +++ b/sysdeps/i386/fpu/e_scalb.S @@ -64,9 +64,7 @@ ENTRY(__ieee754_scalb) /* y is -inf */ 1: fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw movl 8(%esp), %edx @@ -86,9 +84,7 @@ ENTRY(__ieee754_scalb) 2: fstp %st fstp %st #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fldl MO(nan) ret diff --git a/sysdeps/i386/fpu/e_scalbf.S b/sysdeps/i386/fpu/e_scalbf.S index d41c29327d..e99ee92cb0 100644 --- a/sysdeps/i386/fpu/e_scalbf.S +++ b/sysdeps/i386/fpu/e_scalbf.S @@ -66,9 +66,7 @@ ENTRY(__ieee754_scalbf) /* y is -inf */ 1: fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw movl 4(%esp), %edx @@ -88,9 +86,7 @@ ENTRY(__ieee754_scalbf) 2: fstp %st fstp %st #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fldl MO(nan) ret diff --git a/sysdeps/i386/fpu/e_scalbl.S b/sysdeps/i386/fpu/e_scalbl.S index 65644f8f0e..3f67d0befb 100644 --- a/sysdeps/i386/fpu/e_scalbl.S +++ b/sysdeps/i386/fpu/e_scalbl.S @@ -66,9 +66,7 @@ ENTRY(__ieee754_scalbl) /* y is -inf */ 1: fxam #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fnstsw movl 12(%esp), %edx @@ -88,9 +86,7 @@ ENTRY(__ieee754_scalbl) 2: fstp %st fstp %st #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif fldl MO(nan) ret diff --git a/sysdeps/i386/fpu/s_asinh.S b/sysdeps/i386/fpu/s_asinh.S index 6c99d3b6f6..ca042b414b 100644 --- a/sysdeps/i386/fpu/s_asinh.S +++ b/sysdeps/i386/fpu/s_asinh.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -62,9 +62,7 @@ ENTRY(__asinh) fxch // |x| : log(2) ja 3f // |x| > 2^28 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x40000000, %eax ja 5f // |x| > 2 @@ -100,9 +98,7 @@ ENTRY(__asinh) .align ALIGNARG(4) 2: #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif jecxz 4f fchs // x diff --git a/sysdeps/i386/fpu/s_asinhf.S b/sysdeps/i386/fpu/s_asinhf.S index 32e6fd6071..d0ce6afc22 100644 --- a/sysdeps/i386/fpu/s_asinhf.S +++ b/sysdeps/i386/fpu/s_asinhf.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -62,9 +62,7 @@ ENTRY(__asinhf) fxch // |x| : log(2) ja 3f // |x| > 2^14 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x40000000, %eax ja 5f // |x| > 2 @@ -100,9 +98,7 @@ ENTRY(__asinhf) .align ALIGNARG(4) 2: #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif jecxz 4f fchs // x diff --git a/sysdeps/i386/fpu/s_asinhl.S b/sysdeps/i386/fpu/s_asinhl.S index 5933460f64..1040eead1c 100644 --- a/sysdeps/i386/fpu/s_asinhl.S +++ b/sysdeps/i386/fpu/s_asinhl.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -69,9 +69,7 @@ ENTRY(__asinhl) fxch // |x| : log(2) ja 3f // |x| > 2^34 #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpl $0x4000, %eax ja 5f // |x| > 2 @@ -107,9 +105,7 @@ ENTRY(__asinhl) .align ALIGNARG(4) 2: #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif jecxz 4f fchs // x diff --git a/sysdeps/i386/fpu/s_cbrt.S b/sysdeps/i386/fpu/s_cbrt.S index c69958bb57..e180b15466 100644 --- a/sysdeps/i386/fpu/s_cbrt.S +++ b/sysdeps/i386/fpu/s_cbrt.S @@ -1,5 +1,5 @@ /* Compute cubic root of double value. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Dirk Alboth <dirka@uni-paderborn.de> and Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -89,9 +89,9 @@ ENTRY(__cbrt) #ifdef PIC pushl %ebx - call 3f -3: popl %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx + cfi_adjust_cfa_offset (4) + cfi_rel_offset (ebx, 0) + LOAD_PIC_REG (bx) #endif cmpl $0x00100000, %eax @@ -178,13 +178,17 @@ ENTRY(__cbrt) fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */ fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */ pushl %eax + cfi_adjust_cfa_offset (4) fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */ fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */ fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */ popl %edx + cfi_adjust_cfa_offset (-4) #ifdef PIC movl 12(%esp), %eax popl %ebx + cfi_adjust_cfa_offset (-4) + cfi_restore (ebx) #else movl 8(%esp), %eax #endif diff --git a/sysdeps/i386/fpu/s_cbrtf.S b/sysdeps/i386/fpu/s_cbrtf.S index 03d5770efa..2ff4f6e088 100644 --- a/sysdeps/i386/fpu/s_cbrtf.S +++ b/sysdeps/i386/fpu/s_cbrtf.S @@ -1,5 +1,5 @@ /* Compute cubic root of float value. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Dirk Alboth <dirka@uni-paderborn.de> and Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -76,9 +76,9 @@ ENTRY(__cbrtf) #ifdef PIC pushl %ebx - call 3f -3: popl %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx + cfi_adjust_cfa_offset (4) + cfi_rel_offset (ebx, 0) + LOAD_PIC_REG (bx) #endif cmpl $0x00800000, %eax @@ -155,13 +155,17 @@ ENTRY(__cbrtf) fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */ fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */ pushl %eax + cfi_adjust_cfa_offset (4) fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */ fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */ fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */ popl %edx + cfi_adjust_cfa_offset (-4) #ifdef PIC movl 8(%esp), %eax popl %ebx + cfi_adjust_cfa_offset (-4) + cfi_restore (ebx) #else movl 4(%esp), %eax #endif diff --git a/sysdeps/i386/fpu/s_cbrtl.S b/sysdeps/i386/fpu/s_cbrtl.S index f9dac170e0..637ad729c1 100644 --- a/sysdeps/i386/fpu/s_cbrtl.S +++ b/sysdeps/i386/fpu/s_cbrtl.S @@ -1,5 +1,5 @@ /* Compute cubic root of long double value. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Dirk Alboth <dirka@uni-paderborn.de> and Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -108,9 +108,9 @@ ENTRY(__cbrtl) #ifdef PIC pushl %ebx - call 3f -3: popl %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx + cfi_adjust_cfa_offset (4) + cfi_rel_offset (ebx, 0) + LOAD_PIC_REG (bx) #endif cmpl $0, %eax @@ -206,13 +206,17 @@ ENTRY(__cbrtl) fldt MOX(32+factor,%ecx) fmulp /* u*(t2+2*xm)/(2*t2+xm)*FACT */ pushl %eax + cfi_adjust_cfa_offset (4) fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */ fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */ fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */ popl %edx + cfi_adjust_cfa_offset (-4) #ifdef PIC movl 16(%esp), %eax popl %ebx + cfi_adjust_cfa_offset (-4) + cfi_restore (ebx) #else movl 12(%esp), %eax #endif diff --git a/sysdeps/i386/fpu/s_cexp.S b/sysdeps/i386/fpu/s_cexp.S index 50d17aea11..47e3eb66a6 100644 --- a/sysdeps/i386/fpu/s_cexp.S +++ b/sysdeps/i386/fpu/s_cexp.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of complex exponential function for double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -71,9 +71,7 @@ ENTRY(__cexp) fnstsw fldl 16(%esp) /* y : x */ #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif movb %ah, %dh andb $0x45, %ah diff --git a/sysdeps/i386/fpu/s_cexpf.S b/sysdeps/i386/fpu/s_cexpf.S index 396e056135..f116854096 100644 --- a/sysdeps/i386/fpu/s_cexpf.S +++ b/sysdeps/i386/fpu/s_cexpf.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of complex exponential function for double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -71,9 +71,7 @@ ENTRY(__cexpf) fnstsw flds 8(%esp) /* y : x */ #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif movb %ah, %dh andb $0x45, %ah @@ -114,10 +112,13 @@ ENTRY(__cexpf) fmulp %st, %st(3) /* sin(y) : e^x : e^x * cos(y) */ fmulp %st, %st(1) /* e^x * sin(y) : e^x * cos(y) */ subl $8, %esp + cfi_adjust_cfa_offset (8) fstps 4(%esp) fstps (%esp) popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) ret /* We have to reduce the argument to fsincos. */ @@ -133,10 +134,13 @@ ENTRY(__cexpf) fmulp %st, %st(3) fmulp %st, %st(1) subl $8, %esp + cfi_adjust_cfa_offset (8) fstps 4(%esp) fstps (%esp) popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) ret /* The real part is +-inf. We must make further differences. */ @@ -210,12 +214,14 @@ ENTRY(__cexpf) +-Inf+-0i. */ .align ALIGNARG(4) 4: subl $4, %esp + cfi_adjust_cfa_offset (4) fstps (%esp) shrl $6, %edx fstp %st(0) andl $8, %edx movl MOX(huge_nan_null_null,%edx,1), %eax popl %edx + cfi_adjust_cfa_offset (-4) ret /* The real part is +-Inf, the imaginary is also is not finite. */ diff --git a/sysdeps/i386/fpu/s_cexpl.S b/sysdeps/i386/fpu/s_cexpl.S index cbc7c99f0e..8bb0680bce 100644 --- a/sysdeps/i386/fpu/s_cexpl.S +++ b/sysdeps/i386/fpu/s_cexpl.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of complex exponential function for double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -71,9 +71,7 @@ ENTRY(__cexpl) fnstsw fldt 20(%esp) /* y : x */ #ifdef PIC - call 1f -1: popl %ecx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx + LOAD_PIC_REG (cx) #endif movb %ah, %dh andb $0x45, %ah diff --git a/sysdeps/i386/fpu/s_expm1.S b/sysdeps/i386/fpu/s_expm1.S index 35e1ff6693..e761183639 100644 --- a/sysdeps/i386/fpu/s_expm1.S +++ b/sysdeps/i386/fpu/s_expm1.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of exp(x)-1. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>. @@ -56,9 +56,7 @@ ENTRY(__expm1) cmpb $0x40, %ch je 3f // If +-0, jump. #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpb $0x05, %ch je 2f // If +-Inf, jump. diff --git a/sysdeps/i386/fpu/s_expm1f.S b/sysdeps/i386/fpu/s_expm1f.S index c2c64f0748..88adb75b86 100644 --- a/sysdeps/i386/fpu/s_expm1f.S +++ b/sysdeps/i386/fpu/s_expm1f.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of exp(x)-1. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>. @@ -56,9 +56,7 @@ ENTRY(__expm1f) cmpb $0x40, %ch je 3f // If +-0, jump. #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpb $0x05, %ch je 2f // If +-Inf, jump. diff --git a/sysdeps/i386/fpu/s_expm1l.S b/sysdeps/i386/fpu/s_expm1l.S index 4d491c02f8..2dc379b790 100644 --- a/sysdeps/i386/fpu/s_expm1l.S +++ b/sysdeps/i386/fpu/s_expm1l.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of exp(x)-1. - Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2002, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>. @@ -56,9 +56,7 @@ ENTRY(__expm1l) cmpb $0x40, %ch je 3f // If +-0, jump. #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif cmpb $0x05, %ch je 2f // If +-Inf, jump. diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S index 563105a917..cfc822106e 100644 --- a/sysdeps/i386/fpu/s_frexp.S +++ b/sysdeps/i386/fpu/s_frexp.S @@ -1,5 +1,5 @@ /* ix87 specific frexp implementation for double. - Copyright (C) 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -63,9 +63,7 @@ ENTRY (BP_SYM (__frexp)) fldl VAL0(%esp) #ifdef PIC - call 3f -3: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx + LOAD_PIC_REG (dx) #endif fmull MO(two54) movl $-54, %ecx diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S index 00c4ab5b8e..8640bbc223 100644 --- a/sysdeps/i386/fpu/s_frexpf.S +++ b/sysdeps/i386/fpu/s_frexpf.S @@ -1,5 +1,5 @@ /* ix87 specific frexp implementation for float. - Copyright (C) 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -60,9 +60,7 @@ ENTRY (BP_SYM (__frexpf)) flds VAL(%esp) #ifdef PIC - call 3f -3: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx + LOAD_PIC_REG (dx) #endif fmuls MO(two25) movl $-25, %ecx diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S index 1417507ded..60ae57ee3e 100644 --- a/sysdeps/i386/fpu/s_frexpl.S +++ b/sysdeps/i386/fpu/s_frexpl.S @@ -1,5 +1,5 @@ /* ix87 specific frexp implementation for long double. - Copyright (C) 1997, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997, 2000, 2001, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -65,9 +65,7 @@ ENTRY (BP_SYM (__frexpl)) fldt VAL0(%esp) #ifdef PIC - call 3f -3: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx + LOAD_PIC_REG (dx) #endif fmull MO(two64) /* It's not necessary to use a 80bit factor */ diff --git a/sysdeps/i386/fpu/s_ilogb.S b/sysdeps/i386/fpu/s_ilogb.S index 68d9c1a680..0cf1ad7419 100644 --- a/sysdeps/i386/fpu/s_ilogb.S +++ b/sysdeps/i386/fpu/s_ilogb.S @@ -21,11 +21,13 @@ ENTRY(__ilogb) fxtract pushl %eax + cfi_adjust_cfa_offset (4) fstp %st fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret diff --git a/sysdeps/i386/fpu/s_ilogbf.S b/sysdeps/i386/fpu/s_ilogbf.S index 521afe2b60..99e53edd75 100644 --- a/sysdeps/i386/fpu/s_ilogbf.S +++ b/sysdeps/i386/fpu/s_ilogbf.S @@ -21,11 +21,13 @@ ENTRY(__ilogbf) fxtract pushl %eax + cfi_adjust_cfa_offset (4) fstp %st fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret diff --git a/sysdeps/i386/fpu/s_ilogbl.S b/sysdeps/i386/fpu/s_ilogbl.S index ed547bdc8b..1f559b311e 100644 --- a/sysdeps/i386/fpu/s_ilogbl.S +++ b/sysdeps/i386/fpu/s_ilogbl.S @@ -22,11 +22,13 @@ ENTRY(__ilogbl) fxtract pushl %eax + cfi_adjust_cfa_offset (4) fstp %st fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret diff --git a/sysdeps/i386/fpu/s_llrint.S b/sysdeps/i386/fpu/s_llrint.S index e8e5ecee09..23bbec6024 100644 --- a/sysdeps/i386/fpu/s_llrint.S +++ b/sysdeps/i386/fpu/s_llrint.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,10 +25,13 @@ ENTRY(__llrint) fldl 4(%esp) subl $8, %esp + cfi_adjust_cfa_offset (8) fistpll (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) ret END(__llrint) weak_alias (__llrint, llrint) diff --git a/sysdeps/i386/fpu/s_llrintf.S b/sysdeps/i386/fpu/s_llrintf.S index 1deabc4f54..3de73f6661 100644 --- a/sysdeps/i386/fpu/s_llrintf.S +++ b/sysdeps/i386/fpu/s_llrintf.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,10 +25,13 @@ ENTRY(__llrintf) flds 4(%esp) subl $8, %esp + cfi_adjust_cfa_offset (8) fistpll (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) ret END(__llrintf) weak_alias (__llrintf, llrintf) diff --git a/sysdeps/i386/fpu/s_llrintl.S b/sysdeps/i386/fpu/s_llrintl.S index b34d79a5d8..f6545e9fcd 100644 --- a/sysdeps/i386/fpu/s_llrintl.S +++ b/sysdeps/i386/fpu/s_llrintl.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,10 +25,13 @@ ENTRY(__llrintl) fldt 4(%esp) subl $8, %esp + cfi_adjust_cfa_offset (8) fistpll (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) popl %edx + cfi_adjust_cfa_offset (-4) ret END(__llrintl) weak_alias (__llrintl, llrintl) diff --git a/sysdeps/i386/fpu/s_log1p.S b/sysdeps/i386/fpu/s_log1p.S index d3bc3d7251..ec777fdf93 100644 --- a/sysdeps/i386/fpu/s_log1p.S +++ b/sysdeps/i386/fpu/s_log1p.S @@ -31,9 +31,7 @@ ENTRY(__log1p) fldl 4(%esp) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam diff --git a/sysdeps/i386/fpu/s_log1pf.S b/sysdeps/i386/fpu/s_log1pf.S index d5283fcfee..6919ac902e 100644 --- a/sysdeps/i386/fpu/s_log1pf.S +++ b/sysdeps/i386/fpu/s_log1pf.S @@ -31,9 +31,7 @@ ENTRY(__log1pf) flds 4(%esp) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam diff --git a/sysdeps/i386/fpu/s_log1pl.S b/sysdeps/i386/fpu/s_log1pl.S index 26c407b606..4bca67d6b0 100644 --- a/sysdeps/i386/fpu/s_log1pl.S +++ b/sysdeps/i386/fpu/s_log1pl.S @@ -36,9 +36,7 @@ ENTRY(__log1pl) fldt 4(%esp) #ifdef PIC - call 1f -1: popl %edx - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif fxam diff --git a/sysdeps/i386/fpu/s_lrint.S b/sysdeps/i386/fpu/s_lrint.S index a15f54f1da..799875b335 100644 --- a/sysdeps/i386/fpu/s_lrint.S +++ b/sysdeps/i386/fpu/s_lrint.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,9 +25,11 @@ ENTRY(__lrint) fldl 4(%esp) subl $4, %esp + cfi_adjust_cfa_offset (4) fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret END(__lrint) weak_alias (__lrint, lrint) diff --git a/sysdeps/i386/fpu/s_lrintf.S b/sysdeps/i386/fpu/s_lrintf.S index 0f15e64de2..2aa1a4e83d 100644 --- a/sysdeps/i386/fpu/s_lrintf.S +++ b/sysdeps/i386/fpu/s_lrintf.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,9 +25,11 @@ ENTRY(__lrintf) flds 4(%esp) subl $4, %esp + cfi_adjust_cfa_offset (4) fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret END(__lrintf) weak_alias (__lrintf, lrintf) diff --git a/sysdeps/i386/fpu/s_lrintl.S b/sysdeps/i386/fpu/s_lrintl.S index 90313d612c..c0211c11da 100644 --- a/sysdeps/i386/fpu/s_lrintl.S +++ b/sysdeps/i386/fpu/s_lrintl.S @@ -1,6 +1,6 @@ /* Round argument to nearest integral value according to current rounding direction. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -25,9 +25,11 @@ ENTRY(__lrintl) fldt 4(%esp) subl $4, %esp + cfi_adjust_cfa_offset (4) fistpl (%esp) fwait popl %eax + cfi_adjust_cfa_offset (-4) ret END(__lrintl) weak_alias (__lrintl, lrintl) diff --git a/sysdeps/i386/fpu/s_nearbyint.S b/sysdeps/i386/fpu/s_nearbyint.S index d8bb382d9e..52909139a9 100644 --- a/sysdeps/i386/fpu/s_nearbyint.S +++ b/sysdeps/i386/fpu/s_nearbyint.S @@ -9,7 +9,9 @@ ENTRY(__nearbyint) fldl 4(%esp) pushl %eax + cfi_adjust_cfa_offset (4) pushl %ecx + cfi_adjust_cfa_offset (4) fnstcw (%esp) movl (%esp), %eax orl $0x20, %eax @@ -19,7 +21,9 @@ ENTRY(__nearbyint) fclex fldcw (%esp) popl %ecx + cfi_adjust_cfa_offset (-4) popl %eax + cfi_adjust_cfa_offset (-4) ret END (__nearbyint) weak_alias (__nearbyint, nearbyint) diff --git a/sysdeps/i386/fpu/s_nearbyintf.S b/sysdeps/i386/fpu/s_nearbyintf.S index 21858650e2..6a6b1d6c2b 100644 --- a/sysdeps/i386/fpu/s_nearbyintf.S +++ b/sysdeps/i386/fpu/s_nearbyintf.S @@ -9,7 +9,9 @@ ENTRY(__nearbyintf) flds 4(%esp) pushl %eax + cfi_adjust_cfa_offset (4) pushl %ecx + cfi_adjust_cfa_offset (4) fnstcw (%esp) movl (%esp), %eax orl $0x20, %eax @@ -19,7 +21,9 @@ ENTRY(__nearbyintf) fclex fldcw (%esp) popl %ecx + cfi_adjust_cfa_offset (-4) popl %eax + cfi_adjust_cfa_offset (-4) ret END (__nearbyintf) weak_alias (__nearbyintf, nearbyintf) diff --git a/sysdeps/i386/fpu/s_nearbyintl.S b/sysdeps/i386/fpu/s_nearbyintl.S index d74dacb990..819af63a8d 100644 --- a/sysdeps/i386/fpu/s_nearbyintl.S +++ b/sysdeps/i386/fpu/s_nearbyintl.S @@ -9,7 +9,9 @@ ENTRY(__nearbyintl) fldt 4(%esp) pushl %eax + cfi_adjust_cfa_offset (4) pushl %ecx + cfi_adjust_cfa_offset (4) fnstcw (%esp) movl (%esp), %eax orl $0x20, %eax @@ -19,7 +21,9 @@ ENTRY(__nearbyintl) fclex fldcw (%esp) popl %ecx + cfi_adjust_cfa_offset (-4) popl %eax + cfi_adjust_cfa_offset (-4) ret END (__nearbyintl) weak_alias (__nearbyintl, nearbyintl) |