aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/s_cbrtf.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/s_cbrtf.S')
-rw-r--r--sysdeps/i386/fpu/s_cbrtf.S12
1 files changed, 8 insertions, 4 deletions
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