* intl/Makefile (tst-gettext[45].out): Pass also $(run-program-prefix)

as argument to the scripts.
	* intl/tst-gettext2.sh: Use mkdir -p instead of test -d + mkdir.
	* intl/tst-gettext4.sh: Likewise.  Use run_program_prefix argument.
	* intl/tst-gettext5.sh: Likewise.

	* intl/tst-translit.sh: Add mkdir -p.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Use
	.ifndef/.endif to allow use of this macro more than once per .S
	file.
	(LOAD_PIC_REG): New macro.
	* sysdeps/unix/sysv/linux/i386/makecontext.S: Add call frame
	information.
	* sysdeps/unix/sysv/linux/i386/getcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
	* sysdeps/i386/fpu/s_asinh.S: Use LOAD_PIC_REG macro.  Add call frame
	information.
	* sysdeps/i386/fpu/e_log10f.S: Likewise.
	* sysdeps/i386/fpu/s_expm1.S: Likewise.
	* sysdeps/i386/fpu/e_acoshf.S: Likewise.
	* sysdeps/i386/fpu/e_log2l.S: Likewise.
	* sysdeps/i386/fpu/s_log1pf.S: Likewise.
	* sysdeps/i386/fpu/s_lrint.S: Likewise.
	* sysdeps/i386/fpu/s_llrint.S: Likewise.
	* sysdeps/i386/fpu/s_ilogbf.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtl.S: Likewise.
	* sysdeps/i386/fpu/s_asinhf.S: Likewise.
	* sysdeps/i386/fpu/e_log.S: Likewise.
	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
	* sysdeps/i386/fpu/s_lrintl.S: Likewise.
	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
	* sysdeps/i386/fpu/e_scalb.S: Likewise.
	* sysdeps/i386/fpu/s_log1p.S: Likewise.
	* sysdeps/i386/fpu/s_nearbyintl.S: Likewise.
	* sysdeps/i386/fpu/s_frexpl.S: Likewise.
	* sysdeps/i386/fpu/s_log1pl.S: Likewise.
	* sysdeps/i386/fpu/s_nearbyintf.S: Likewise.
	* sysdeps/i386/fpu/s_cbrt.S: Likewise.
	* sysdeps/i386/fpu/s_expm1l.S: Likewise.
	* sysdeps/i386/fpu/s_lrintf.S: Likewise.
	* sysdeps/i386/fpu/e_acosh.S: Likewise.
	* sysdeps/i386/fpu/s_cexp.S: Likewise.
	* sysdeps/i386/fpu/s_ilogbl.S: Likewise.
	* sysdeps/i386/fpu/s_expm1f.S: Likewise.
	* sysdeps/i386/fpu/e_powl.S: Likewise.
	* sysdeps/i386/fpu/e_powf.S: Likewise.
	* sysdeps/i386/fpu/e_scalbf.S: Likewise.
	* sysdeps/i386/fpu/e_logl.S: Likewise.
	* sysdeps/i386/fpu/e_acoshl.S: Likewise.
	* sysdeps/i386/fpu/s_frexp.S: Likewise.
	* sysdeps/i386/fpu/e_pow.S: Likewise.
	* sysdeps/i386/fpu/e_logf.S: Likewise.
	* sysdeps/i386/fpu/e_log2.S: Likewise.
	* sysdeps/i386/fpu/s_frexpf.S: Likewise.
	* sysdeps/i386/fpu/s_cexpl.S: Likewise.
	* sysdeps/i386/fpu/s_llrintf.S: Likewise.
	* sysdeps/i386/fpu/s_ilogb.S: Likewise.
	* sysdeps/i386/fpu/e_scalbl.S: Likewise.
	* sysdeps/i386/fpu/e_atanh.S: Likewise.
	* sysdeps/i386/fpu/e_log10.S: Likewise.
	* sysdeps/i386/fpu/s_cbrtf.S: Likewise.
	* sysdeps/i386/fpu/s_cexpf.S: Likewise.
	* sysdeps/i386/fpu/s_llrintl.S: Likewise.
	* sysdeps/i386/fpu/e_log10l.S: Likewise.
	* sysdeps/i386/fpu/s_nearbyint.S: Likewise.
	* sysdeps/i386/fpu/s_asinhl.S: Likewise.
	* sysdeps/i386/fpu/e_log2f.S: Likewise.
	* sysdeps/i386/addmul_1.S: Various fixes to cfi handling.
	* sysdeps/i386/mul_1.S: Likewise.
	* sysdeps/i386/strtok.S: Likewise.
	* sysdeps/i386/sub_n.S: Likewise.
	* sysdeps/i386/submul_1.S: Likewise.
	* sysdeps/i386/i586/addmul_1.S: Likewise.
	* sysdeps/i386/i586/memcpy.S: Likewise.
	* sysdeps/i386/i586/mul_1.S: Likewise.
	* sysdeps/i386/i586/rshift.S: Likewise.
	* sysdeps/i386/i586/sub_n.S: Likewise.
	* sysdeps/i386/i586/submul_1.S: Likewise.
	* sysdeps/i386/i686/memcmp.S: Likewise.
	* sysdeps/i386/i686/memmove.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/setcontext.S: Likewise.
This commit is contained in:
Ulrich Drepper 2005-05-04 17:58:13 +00:00
parent 1ad9da69c6
commit fee732e531
78 changed files with 417 additions and 252 deletions

View File

@ -1,3 +1,91 @@
2005-05-04 Jakub Jelinek <jakub@redhat.com>
* intl/Makefile (tst-gettext[45].out): Pass also $(run-program-prefix)
as argument to the scripts.
* intl/tst-gettext2.sh: Use mkdir -p instead of test -d + mkdir.
* intl/tst-gettext4.sh: Likewise. Use run_program_prefix argument.
* intl/tst-gettext5.sh: Likewise.
* intl/tst-translit.sh: Add mkdir -p.
* sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Use
.ifndef/.endif to allow use of this macro more than once per .S
file.
(LOAD_PIC_REG): New macro.
* sysdeps/unix/sysv/linux/i386/makecontext.S: Add call frame
information.
* sysdeps/unix/sysv/linux/i386/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
* sysdeps/i386/fpu/s_asinh.S: Use LOAD_PIC_REG macro. Add call frame
information.
* sysdeps/i386/fpu/e_log10f.S: Likewise.
* sysdeps/i386/fpu/s_expm1.S: Likewise.
* sysdeps/i386/fpu/e_acoshf.S: Likewise.
* sysdeps/i386/fpu/e_log2l.S: Likewise.
* sysdeps/i386/fpu/s_log1pf.S: Likewise.
* sysdeps/i386/fpu/s_lrint.S: Likewise.
* sysdeps/i386/fpu/s_llrint.S: Likewise.
* sysdeps/i386/fpu/s_ilogbf.S: Likewise.
* sysdeps/i386/fpu/s_cbrtl.S: Likewise.
* sysdeps/i386/fpu/s_asinhf.S: Likewise.
* sysdeps/i386/fpu/e_log.S: Likewise.
* sysdeps/i386/fpu/e_atanhf.S: Likewise.
* sysdeps/i386/fpu/s_lrintl.S: Likewise.
* sysdeps/i386/fpu/e_atanhl.S: Likewise.
* sysdeps/i386/fpu/e_scalb.S: Likewise.
* sysdeps/i386/fpu/s_log1p.S: Likewise.
* sysdeps/i386/fpu/s_nearbyintl.S: Likewise.
* sysdeps/i386/fpu/s_frexpl.S: Likewise.
* sysdeps/i386/fpu/s_log1pl.S: Likewise.
* sysdeps/i386/fpu/s_nearbyintf.S: Likewise.
* sysdeps/i386/fpu/s_cbrt.S: Likewise.
* sysdeps/i386/fpu/s_expm1l.S: Likewise.
* sysdeps/i386/fpu/s_lrintf.S: Likewise.
* sysdeps/i386/fpu/e_acosh.S: Likewise.
* sysdeps/i386/fpu/s_cexp.S: Likewise.
* sysdeps/i386/fpu/s_ilogbl.S: Likewise.
* sysdeps/i386/fpu/s_expm1f.S: Likewise.
* sysdeps/i386/fpu/e_powl.S: Likewise.
* sysdeps/i386/fpu/e_powf.S: Likewise.
* sysdeps/i386/fpu/e_scalbf.S: Likewise.
* sysdeps/i386/fpu/e_logl.S: Likewise.
* sysdeps/i386/fpu/e_acoshl.S: Likewise.
* sysdeps/i386/fpu/s_frexp.S: Likewise.
* sysdeps/i386/fpu/e_pow.S: Likewise.
* sysdeps/i386/fpu/e_logf.S: Likewise.
* sysdeps/i386/fpu/e_log2.S: Likewise.
* sysdeps/i386/fpu/s_frexpf.S: Likewise.
* sysdeps/i386/fpu/s_cexpl.S: Likewise.
* sysdeps/i386/fpu/s_llrintf.S: Likewise.
* sysdeps/i386/fpu/s_ilogb.S: Likewise.
* sysdeps/i386/fpu/e_scalbl.S: Likewise.
* sysdeps/i386/fpu/e_atanh.S: Likewise.
* sysdeps/i386/fpu/e_log10.S: Likewise.
* sysdeps/i386/fpu/s_cbrtf.S: Likewise.
* sysdeps/i386/fpu/s_cexpf.S: Likewise.
* sysdeps/i386/fpu/s_llrintl.S: Likewise.
* sysdeps/i386/fpu/e_log10l.S: Likewise.
* sysdeps/i386/fpu/s_nearbyint.S: Likewise.
* sysdeps/i386/fpu/s_asinhl.S: Likewise.
* sysdeps/i386/fpu/e_log2f.S: Likewise.
* sysdeps/i386/addmul_1.S: Various fixes to cfi handling.
* sysdeps/i386/mul_1.S: Likewise.
* sysdeps/i386/strtok.S: Likewise.
* sysdeps/i386/sub_n.S: Likewise.
* sysdeps/i386/submul_1.S: Likewise.
* sysdeps/i386/i586/addmul_1.S: Likewise.
* sysdeps/i386/i586/memcpy.S: Likewise.
* sysdeps/i386/i586/mul_1.S: Likewise.
* sysdeps/i386/i586/rshift.S: Likewise.
* sysdeps/i386/i586/sub_n.S: Likewise.
* sysdeps/i386/i586/submul_1.S: Likewise.
* sysdeps/i386/i686/memcmp.S: Likewise.
* sysdeps/i386/i686/memmove.S: Likewise.
* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise.
* sysdeps/unix/sysv/linux/i386/setcontext.S: Likewise.
2005-05-03 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/add_n.S: Add call frame information.

View File

@ -87,9 +87,9 @@ $(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset
$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
$(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/
$(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
$(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/
endif
endif

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Test of gettext functions.
# Copyright (C) 2000, 2003 Free Software Foundation, Inc.
# Copyright (C) 2000, 2003, 2005 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
@ -26,7 +26,7 @@ LC_ALL=C
export LC_ALL
# Generate the test data.
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
mkdir -p ${objpfx}domaindir
# Create the locale directories.
test -d ${objpfx}domaindir/lang1 || {
mkdir ${objpfx}domaindir/lang1

View File

@ -21,18 +21,15 @@
# 02111-1307 USA.
common_objpfx=$1
objpfx=$2
run_program_prefix=$2
objpfx=$3
LC_ALL=C
export LC_ALL
# Generate the test data.
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
# Create the domain directories.
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
test -d ${objpfx}domaindir/fr_FR || mkdir ${objpfx}domaindir/fr_FR
test -d ${objpfx}domaindir/fr_FR/LC_MESSAGES || mkdir ${objpfx}domaindir/fr_FR/LC_MESSAGES
mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
mkdir -p ${objpfx}domaindir/fr_FR/LC_MESSAGES
# Populate them.
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/multithread.mo tst-gettext4-de.po
msgfmt -o ${objpfx}domaindir/fr_FR/LC_MESSAGES/multithread.mo tst-gettext4-fr.po
@ -42,7 +39,6 @@ export GCONV_PATH
LOCPATH=${common_objpfx}localedata
export LOCPATH
${common_objpfx}elf/ld.so --library-path $common_objpfx \
${objpfx}tst-gettext4 > ${objpfx}tst-gettext4.out
${run_program_prefix} ${objpfx}tst-gettext4 > ${objpfx}tst-gettext4.out
exit $?

View File

@ -22,16 +22,14 @@
# 02111-1307 USA.
common_objpfx=$1
objpfx=$2
run_program_prefix=$2
objpfx=$3
LC_ALL=C
export LC_ALL
# Generate the test data.
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
# Create the domain directories.
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
# Populate them.
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
@ -40,7 +38,6 @@ export GCONV_PATH
LOCPATH=${common_objpfx}localedata
export LOCPATH
${common_objpfx}elf/ld.so --library-path $common_objpfx \
${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
${run_program_prefix} ${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
exit $?

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Test of transliteration in gettext functions.
# Copyright (C) 2000, 2002 Free Software Foundation, Inc.
# Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
@ -25,6 +25,9 @@ objpfx=$2
LC_ALL=C
export LC_ALL
# Create the locale directories.
mkdir -p ${objpfx}localedir/existing-locale/LC_MESSAGES
msgfmt -o ${objpfx}domaindir/existing-locale/LC_MESSAGES/translit.mo \
translit.po

View File

@ -38,13 +38,13 @@
ENTRY (BP_SYM (__mpn_addmul_1))
ENTER
pushl %edi
pushl %res_ptr
cfi_adjust_cfa_offset (4)
pushl %esi
pushl %s1_ptr
cfi_adjust_cfa_offset (4)
pushl %ebp
cfi_adjust_cfa_offset (4)
pushl %ebx
pushl %s2_limb
cfi_adjust_cfa_offset (4)
movl RES(%esp), %res_ptr
@ -79,18 +79,18 @@ L(oop):
jnz L(oop)
movl %ebp, %eax
popl %ebx
popl %s2_limb
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cfi_restore (s2_limb)
popl %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
popl %esi
popl %s1_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_restore (s1_ptr)
popl %res_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
cfi_restore (res_ptr)
LEAVE
ret

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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. */

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -38,13 +38,13 @@
ENTRY (BP_SYM (__mpn_addmul_1))
ENTER
pushl %edi
pushl %res_ptr
cfi_adjust_cfa_offset (4)
pushl %esi
pushl %s1_ptr
cfi_adjust_cfa_offset (4)
pushl %ebp
cfi_adjust_cfa_offset (4)
pushl %ebx
pushl %s2_limb
cfi_adjust_cfa_offset (4)
movl RES(%esp), %res_ptr
@ -86,18 +86,18 @@ L(oop): adcl $0, %ebp
adcl $0, %ebp
movl %ebp, %eax
popl %ebx
popl %s2_limb
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cfi_restore (s2_limb)
popl %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
popl %esi
popl %s1_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_restore (s1_ptr)
popl %res_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
cfi_restore (res_ptr)
LEAVE
ret

View File

@ -46,7 +46,7 @@ ENTRY (BP_SYM (memcpy))
movl DEST(%esp), %edi
cfi_rel_offset (edi, 4)
movl SRC(%esp), %esi
cfi_rel_offset (esi, 4)
cfi_rel_offset (esi, 0)
movl LEN(%esp), %ecx
CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)

View File

@ -38,13 +38,13 @@
ENTRY (BP_SYM (__mpn_mul_1))
ENTER
pushl %edi
pushl %res_ptr
cfi_adjust_cfa_offset (4)
pushl %esi
pushl %s1_ptr
cfi_adjust_cfa_offset (4)
pushl %ebp
cfi_adjust_cfa_offset (4)
pushl %ebx
pushl %s2_limb
cfi_adjust_cfa_offset (4)
movl RES(%esp), %res_ptr
@ -82,18 +82,18 @@ L(oop): adcl $0, %ebp
adcl $0, %ebp
movl %ebp, %eax
popl %ebx
popl %s2_limb
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cfi_restore (s2_limb)
popl %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
popl %esi
popl %s1_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_restore (s1_ptr)
popl %res_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
cfi_restore (res_ptr)
LEAVE
ret

View File

@ -165,7 +165,7 @@ L(end2):
cfi_rel_offset (edi, 12)
cfi_rel_offset (esi, 8)
cfi_rel_offset (ebp, 4)
cfi_rel_offset (ebx, 3)
cfi_rel_offset (ebx, 0)
L(special):
leal -4(%edi,%ebx,4),%edi
leal -4(%esi,%ebx,4),%esi

View File

@ -56,8 +56,8 @@ ENTRY (BP_SYM (__mpn_sub_n))
CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
shrl $2, %ecx
#endif
cfi_rel_offset (ebp, 4)
movl (%ebx),%ebp
cfi_rel_offset (ebp, 4)
decl %ecx
movl %ecx,%edx

View File

@ -38,13 +38,13 @@
ENTRY (BP_SYM (__mpn_submul_1))
ENTER
pushl %edi
pushl %res_ptr
cfi_adjust_cfa_offset (4)
pushl %esi
pushl %s1_ptr
cfi_adjust_cfa_offset (4)
pushl %ebp
cfi_adjust_cfa_offset (4)
pushl %ebx
pushl %s2_limb
cfi_adjust_cfa_offset (4)
movl RES(%esp), %res_ptr
@ -86,18 +86,18 @@ L(oop): adcl $0, %ebp
adcl $0, %ebp
movl %ebp, %eax
popl %ebx
popl %s2_limb
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cfi_restore (s2_limb)
popl %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
popl %esi
popl %s1_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_restore (s1_ptr)
popl %res_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
cfi_restore (res_ptr)
LEAVE
ret

View File

@ -29,7 +29,8 @@
#define ENTRANCE pushl %ebx; cfi_adjust_cfa_offset (4); \
cfi_rel_offset (ebx, 0); ENTER
#define RETURN popl %ebx; cfi_adjust_cfa_offset (-4); \
cfi_restore (ebx); LEAVE; ret
cfi_restore (ebx); LEAVE; ret; \
cfi_adjust_cfa_offset (4); cfi_rel_offset (ebx, 0);
/* Load an entry in a jump table into EBX. TABLE is a jump table
with relative offsets. INDEX is a register contains the index
@ -79,6 +80,8 @@ L(neq):
sbbl $-1, %eax
RETURN
cfi_adjust_cfa_offset (4)
cfi_rel_offset (ebx, 0)
L(not_1):
jl L(bye) /* LEN == 0 */
@ -137,8 +140,9 @@ L(0bytes):
xorl %eax, %eax
RETURN
cfi_adjust_cfa_offset (4)
cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
cfi_rel_offset (ebx, 4)
L(29bytes):
movl -29(%esi), %eax
movl -29(%edx), %ecx
@ -184,8 +188,9 @@ L(1bytes):
xorl %eax, %eax
RETURN
cfi_adjust_cfa_offset (4)
cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
cfi_rel_offset (ebx, 4)
L(30bytes):
movl -30(%esi), %eax
movl -30(%edx), %ecx
@ -234,8 +239,9 @@ L(2bytes):
xorl %eax, %eax
RETURN
cfi_adjust_cfa_offset (4)
cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
cfi_rel_offset (ebx, 4)
L(31bytes):
movl -31(%esi), %eax
movl -31(%edx), %ecx
@ -287,8 +293,9 @@ L(3bytes):
xorl %eax, %eax
RETURN
cfi_adjust_cfa_offset (4)
cfi_adjust_cfa_offset (8)
cfi_rel_offset (esi, 0)
cfi_rel_offset (ebx, 4)
ALIGN (4)
/* ECX >= 32. */
L(32bytesormore):

View File

@ -79,6 +79,10 @@ ENTRY (BP_SYM (memmove))
LEAVE
RET_PTR
cfi_adjust_cfa_offset (4)
cfi_rel_offset (edi, 0)
cfi_register (esi, edx)
/* Backward copying. */
3: std
leal -1(%edi, %ecx), %edi

View File

@ -38,13 +38,13 @@
ENTRY (BP_SYM (__mpn_mul_1))
ENTER
pushl %edi
pushl %res_ptr
cfi_adjust_cfa_offset (4)
pushl %esi
pushl %s1_ptr
cfi_adjust_cfa_offset (4)
pushl %ebp
cfi_adjust_cfa_offset (4)
pushl %ebx
pushl %s2_limb
cfi_adjust_cfa_offset (4)
movl RES(%esp), %res_ptr
@ -78,18 +78,18 @@ L(oop):
jnz L(oop)
movl %ebp, %eax
popl %ebx
popl %s2_limb
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cfi_restore (s2_limb)
popl %ebp
cfi_adjust_cfa_offset (-4)
cfi_restore (ebp)
popl %esi
popl %s1_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %edi
cfi_restore (s1_ptr)
popl %res_ptr
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
cfi_restore (res_ptr)
LEAVE
ret

View File

@ -81,7 +81,7 @@ ENTRY (BP_SYM (FUNCTION))
cfi_adjust_cfa_offset (4)
call L(here)
cfi_adjust_cfa_offset (4)
cfi_rel_offset (ebx, 4)
cfi_rel_offset (ebx, 0)
L(here):
popl %ebx
cfi_adjust_cfa_offset (-4)

View File

@ -67,10 +67,12 @@ ENTRY (BP_SYM (__mpn_sub_n))
/* Calculate start address in loop for PIC. Due to limitations in some
assemblers, Loop-L0-3 cannot be put into the leal */
call L(0)
cfi_adjust_cfa_offset (4)
L(0): leal (%eax,%eax,8),%eax
addl (%esp),%eax
addl $(L(oop)-L(0)-3),%eax
addl $4,%esp
cfi_adjust_cfa_offset (-4)
#else
/* Calculate start address in loop for non-PIC. */
leal (L(oop) - 3)(%eax,%eax,8),%eax

View File

@ -46,14 +46,15 @@ ENTRY (BP_SYM (__mpn_submul_1))
cfi_adjust_cfa_offset (4)
pushl %ebx
cfi_adjust_cfa_offset (4)
cfi_rel_offset (edi, 12)
cfi_rel_offset (esi, 8)
cfi_rel_offset (ebp, 4)
cfi_rel_offset (ebx, 0)
movl RES(%esp), %res_ptr
cfi_rel_offset (res_ptr, 12)
movl S1(%esp), %s1_ptr
cfi_rel_offset (s1_ptr, 8)
movl SIZE(%esp), %sizeP
movl S2LIMB(%esp), %s2_limb
cfi_rel_offset (s2_limb, 0)
#if __BOUNDED_POINTERS__
shll $2, %sizeP /* convert limbs to bytes */
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
@ -64,7 +65,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
leal (%s1_ptr,%sizeP,4), %s1_ptr
negl %sizeP
xorl %ebp, %ebp
cfi_rel_offset (ebp, 4)
ALIGN (3)
L(oop):
movl (%s1_ptr,%sizeP,4), %eax

View File

@ -88,6 +88,7 @@ ENTRY (BP_SYM (__clone))
cfi_adjust_cfa_offset (4)
pushl %edi
cfi_adjust_cfa_offset (4)
movl TLS+12(%esp),%esi
cfi_rel_offset (esi, 4)
movl PTID+12(%esp),%edx
@ -102,16 +103,14 @@ ENTRY (BP_SYM (__clone))
movl %ebx, (%ecx)
#endif
/* End FDE now, because in the child the unwind info will be
wrong. */
cfi_endproc
int $0x80
popl %edi
cfi_adjust_cfa_offset (-4)
cfi_restore (edi)
popl %esi
cfi_adjust_cfa_offset (-4)
cfi_restore (esi)
popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
test %eax,%eax
jl SYSCALL_ERROR_LABEL
@ -131,10 +130,8 @@ L(haspid):
call *%ebx
#ifdef PIC
call L(here)
cfi_adjust_cfa_offset (4)
L(here):
popl %ebx
cfi_adjust_cfa_offset (-4)
addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
#endif
movl %eax, %ebx
@ -156,6 +153,7 @@ L(nomoregetpid):
.previous
#endif
cfi_startproc
PSEUDO_END (BP_SYM (__clone))
weak_alias (BP_SYM (__clone), BP_SYM (clone))

View File

@ -1,5 +1,5 @@
/* Save current context.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@ -63,12 +63,16 @@ ENTRY(__getcontext)
/* Save the current signal mask. */
pushl %ebx
cfi_adjust_cfa_offset (4)
cfi_rel_offset (ebx, 0)
leal oSIGMASK(%eax), %edx
xorl %ecx, %ecx
movl $SIG_BLOCK, %ebx
movl $__NR_sigprocmask, %eax
ENTER_KERNEL
popl %ebx
cfi_adjust_cfa_offset (-4)
cfi_restore (ebx)
cmpl $-4095, %eax /* Check %eax for error. */
jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */

View File

@ -1,5 +1,5 @@
/* Create new context.
Copyright (C) 2001,02 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
@ -68,7 +68,9 @@ ENTRY(__makecontext)
below). */
#ifdef PIC
call 1f
cfi_adjust_cfa_offset (4)
1: popl %ecx
cfi_adjust_cfa_offset (-4)
addl $L(exitcode)-1b, %ecx
movl %ecx, (%edx)
#else
@ -83,6 +85,7 @@ ENTRY(__makecontext)
the context 'makecontext' manipulated at the time of the
'makecontext' call. If the pointer is NULL the process must
terminate. */
cfi_endproc
L(exitcode):
/* This removes the parameters passed to the function given to
'makecontext' from the stack. EBX contains the number of
@ -108,6 +111,7 @@ L(exitcode):
/* The 'exit' call should never return. In case it does cause
the process to terminate. */
hlt
cfi_startproc
END(__makecontext)
weak_alias(__makecontext, makecontext)

View File

@ -26,7 +26,7 @@
ENTRY (__mmap)
/* I don't think it is worthwhile trzing to use mmap2 whenever it
/* I don't think it is worthwhile trying to use mmap2 whenever it
is available. Only use it when we are sure the syscall exists. */
#ifdef __ASSUME_MMAP2_SYSCALL
@ -78,6 +78,7 @@ L(skip):
/* Save registers. */
movl %ebx, %edx
cfi_register (ebx, edx)
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
@ -88,6 +89,7 @@ L(skip):
/* Restore registers. */
movl %edx, %ebx
cfi_restore (ebx)
#endif

View File

@ -130,6 +130,7 @@ L(einval):
3:
/* Save registers. */
movl %ebx, %edx
cfi_register (ebx, edx)
cmpl $0, OFFHI-SVRSP(%esp)
jne L(einval2)
@ -143,6 +144,7 @@ L(einval):
/* Restore registers. */
movl %edx, %ebx
cfi_restore (ebx)
/* If 0 > %eax > -4096 there was an error. */
cmpl $-4096, %eax
@ -154,8 +156,10 @@ L(pseudo_end):
#endif
ret
cfi_register (ebx, edx)
L(einval2):
movl %edx, %ebx
cfi_restore (ebx)
movl $-EINVAL, %eax
jmp SYSCALL_ERROR_LABEL
#endif

View File

@ -61,6 +61,13 @@ ENTRY(__setcontext)
movl oEIP(%eax), %ecx
/* Load the new stack pointer. */
cfi_def_cfa (eax, 0)
cfi_offset (edi, oEDI)
cfi_offset (esi, oESI)
cfi_offset (ebp, oEBP)
cfi_offset (ebx, oEBX)
cfi_offset (edx, oEDX)
cfi_offset (ecx, oECX)
movl oESP(%eax), %esp
/* Push the return address on the new stack so we can return there. */
@ -76,6 +83,10 @@ ENTRY(__setcontext)
movl oECX(%eax), %ecx
movl oEAX(%eax), %eax
/* End FDE here, we fall into another context. */
cfi_endproc
cfi_startproc
/* The following 'ret' will pop the address of the code and jump
to it. */

View File

@ -118,6 +118,7 @@
.previous
# else
# define SETUP_PIC_REG(reg) \
.ifndef __i686.get_pc_thunk.reg; \
.section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax",@progbits; \
.globl __i686.get_pc_thunk.reg; \
.hidden __i686.get_pc_thunk.reg; \
@ -127,9 +128,13 @@ __i686.get_pc_thunk.reg: \
ret; \
.size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg; \
.previous; \
.endif; \
call __i686.get_pc_thunk.reg
# endif
# define LOAD_PIC_REG(reg) \
SETUP_PIC_REG(reg); addl $_GLOBAL_OFFSET_TABLE_, %e##reg
# if RTLD_PRIVATE_ERRNO
# define SYSCALL_ERROR_HANDLER \
0:SETUP_PIC_REG(cx); \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Andreas Schwab <schwab@gnu.org>.
@ -33,6 +33,7 @@ ENTRY (__vfork)
/* Pop the return PC value into ECX. */
popl %ecx
cfi_adjust_cfa_offset (-4)
#ifdef SAVE_PID
SAVE_PID
@ -46,6 +47,7 @@ ENTRY (__vfork)
disturbs the branch target cache. Instead push the return
address back on the stack. */
pushl %ecx
cfi_adjust_cfa_offset (4)
#ifdef RESTORE_PID
RESTORE_PID