mirror of git://sourceware.org/git/glibc.git
* 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:
parent
1ad9da69c6
commit
fee732e531
88
ChangeLog
88
ChangeLog
|
@ -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>
|
2005-05-03 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* sysdeps/i386/add_n.S: Add call frame information.
|
* sysdeps/i386/add_n.S: Add call frame information.
|
||||||
|
|
|
@ -87,9 +87,9 @@ $(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset
|
||||||
$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
|
$(objpfx)tst-gettext3.out: tst-gettext3.sh $(objpfx)tst-gettext3
|
||||||
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
|
||||||
$(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
|
$(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
|
$(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
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Test of gettext functions.
|
# 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.
|
# This file is part of the GNU C Library.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ LC_ALL=C
|
||||||
export LC_ALL
|
export LC_ALL
|
||||||
|
|
||||||
# Generate the test data.
|
# Generate the test data.
|
||||||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
|
mkdir -p ${objpfx}domaindir
|
||||||
# Create the locale directories.
|
# Create the locale directories.
|
||||||
test -d ${objpfx}domaindir/lang1 || {
|
test -d ${objpfx}domaindir/lang1 || {
|
||||||
mkdir ${objpfx}domaindir/lang1
|
mkdir ${objpfx}domaindir/lang1
|
||||||
|
|
|
@ -21,18 +21,15 @@
|
||||||
# 02111-1307 USA.
|
# 02111-1307 USA.
|
||||||
|
|
||||||
common_objpfx=$1
|
common_objpfx=$1
|
||||||
objpfx=$2
|
run_program_prefix=$2
|
||||||
|
objpfx=$3
|
||||||
|
|
||||||
LC_ALL=C
|
LC_ALL=C
|
||||||
export LC_ALL
|
export LC_ALL
|
||||||
|
|
||||||
# Generate the test data.
|
|
||||||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
|
|
||||||
# Create the domain directories.
|
# Create the domain directories.
|
||||||
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
|
mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
|
||||||
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
|
mkdir -p ${objpfx}domaindir/fr_FR/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
|
|
||||||
# Populate them.
|
# Populate them.
|
||||||
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/multithread.mo tst-gettext4-de.po
|
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
|
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
|
LOCPATH=${common_objpfx}localedata
|
||||||
export LOCPATH
|
export LOCPATH
|
||||||
|
|
||||||
${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
${run_program_prefix} ${objpfx}tst-gettext4 > ${objpfx}tst-gettext4.out
|
||||||
${objpfx}tst-gettext4 > ${objpfx}tst-gettext4.out
|
|
||||||
|
|
||||||
exit $?
|
exit $?
|
||||||
|
|
|
@ -22,16 +22,14 @@
|
||||||
# 02111-1307 USA.
|
# 02111-1307 USA.
|
||||||
|
|
||||||
common_objpfx=$1
|
common_objpfx=$1
|
||||||
objpfx=$2
|
run_program_prefix=$2
|
||||||
|
objpfx=$3
|
||||||
|
|
||||||
LC_ALL=C
|
LC_ALL=C
|
||||||
export LC_ALL
|
export LC_ALL
|
||||||
|
|
||||||
# Generate the test data.
|
|
||||||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir
|
|
||||||
# Create the domain directories.
|
# Create the domain directories.
|
||||||
test -d ${objpfx}domaindir/de_DE || mkdir ${objpfx}domaindir/de_DE
|
mkdir -p ${objpfx}domaindir/de_DE/LC_MESSAGES
|
||||||
test -d ${objpfx}domaindir/de_DE/LC_MESSAGES || mkdir ${objpfx}domaindir/de_DE/LC_MESSAGES
|
|
||||||
# Populate them.
|
# Populate them.
|
||||||
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
|
msgfmt -o ${objpfx}domaindir/de_DE/LC_MESSAGES/codeset.mo tstcodeset.po
|
||||||
|
|
||||||
|
@ -40,7 +38,6 @@ export GCONV_PATH
|
||||||
LOCPATH=${common_objpfx}localedata
|
LOCPATH=${common_objpfx}localedata
|
||||||
export LOCPATH
|
export LOCPATH
|
||||||
|
|
||||||
${common_objpfx}elf/ld.so --library-path $common_objpfx \
|
${run_program_prefix} ${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
|
||||||
${objpfx}tst-gettext5 > ${objpfx}tst-gettext5.out
|
|
||||||
|
|
||||||
exit $?
|
exit $?
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Test of transliteration in gettext functions.
|
# 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.
|
# This file is part of the GNU C Library.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -25,6 +25,9 @@ objpfx=$2
|
||||||
LC_ALL=C
|
LC_ALL=C
|
||||||
export LC_ALL
|
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 \
|
msgfmt -o ${objpfx}domaindir/existing-locale/LC_MESSAGES/translit.mo \
|
||||||
translit.po
|
translit.po
|
||||||
|
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
ENTRY (BP_SYM (__mpn_addmul_1))
|
ENTRY (BP_SYM (__mpn_addmul_1))
|
||||||
ENTER
|
ENTER
|
||||||
|
|
||||||
pushl %edi
|
pushl %res_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %esi
|
pushl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %s2_limb
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl RES(%esp), %res_ptr
|
movl RES(%esp), %res_ptr
|
||||||
|
@ -79,18 +79,18 @@ L(oop):
|
||||||
jnz L(oop)
|
jnz L(oop)
|
||||||
movl %ebp, %eax
|
movl %ebp, %eax
|
||||||
|
|
||||||
popl %ebx
|
popl %s2_limb
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebx)
|
cfi_restore (s2_limb)
|
||||||
popl %ebp
|
popl %ebp
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebp)
|
cfi_restore (ebp)
|
||||||
popl %esi
|
popl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (esi)
|
cfi_restore (s1_ptr)
|
||||||
popl %edi
|
popl %res_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (edi)
|
cfi_restore (res_ptr)
|
||||||
|
|
||||||
LEAVE
|
LEAVE
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -50,9 +50,7 @@ ENTRY(__ieee754_acosh)
|
||||||
cmpl $0x41b00000, %ecx
|
cmpl $0x41b00000, %ecx
|
||||||
ja 3f // x > 2^28
|
ja 3f // x > 2^28
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x40000000, %ecx
|
cmpl $0x40000000, %ecx
|
||||||
ja 4f // x > 2
|
ja 4f // x > 2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -50,9 +50,7 @@ ENTRY(__ieee754_acoshf)
|
||||||
cmpl $0x47000000, %ecx
|
cmpl $0x47000000, %ecx
|
||||||
ja 3f // x > 2^14
|
ja 3f // x > 2^14
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x40000000, %ecx
|
cmpl $0x40000000, %ecx
|
||||||
ja 4f // x > 2
|
ja 4f // x > 2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -57,9 +57,7 @@ ENTRY(__ieee754_acoshl)
|
||||||
cmpl $0x4020, %ecx
|
cmpl $0x4020, %ecx
|
||||||
ja 3f // x > 2^34
|
ja 3f // x > 2^34
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x4000, %ecx
|
cmpl $0x4000, %ecx
|
||||||
ja 4f // x > 2
|
ja 4f // x > 2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arctanh function.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -58,7 +58,9 @@ ENTRY(__ieee754_atanh)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
call 1f
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
1: popl %edx
|
1: popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arctanh function.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -57,9 +57,7 @@ ENTRY(__ieee754_atanhf)
|
||||||
ja 5f
|
ja 5f
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
andl $0x80000000, %ecx // ECX == 0 iff X >= 0
|
andl $0x80000000, %ecx // ECX == 0 iff X >= 0
|
||||||
|
|
|
@ -64,9 +64,7 @@ ENTRY(__ieee754_atanhl)
|
||||||
7:
|
7:
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
andl $0x8000, %ecx // ECX == 0 iff X >= 0
|
andl $0x8000, %ecx // ECX == 0 iff X >= 0
|
||||||
|
|
|
@ -37,9 +37,7 @@ ENTRY(__ieee754_log)
|
||||||
fldln2 // log(2)
|
fldln2 // log(2)
|
||||||
fldl 4(%esp) // x : log(2)
|
fldl 4(%esp) // x : log(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fld %st // x : x : log(2)
|
fld %st // x : x : log(2)
|
||||||
fsubl MO(one) // x-1 : x : log(2)
|
fsubl MO(one) // x-1 : x : log(2)
|
||||||
|
|
|
@ -37,9 +37,7 @@ ENTRY(__ieee754_log10)
|
||||||
fldlg2 // log10(2)
|
fldlg2 // log10(2)
|
||||||
fldl 4(%esp) // x : log10(2)
|
fldl 4(%esp) // x : log10(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
|
|
@ -38,9 +38,7 @@ ENTRY(__ieee754_log10f)
|
||||||
fldlg2 // log10(2)
|
fldlg2 // log10(2)
|
||||||
flds 4(%esp) // x : log10(2)
|
flds 4(%esp) // x : log10(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
|
|
@ -39,9 +39,7 @@ ENTRY(__ieee754_log10l)
|
||||||
fldlg2 // log10(2)
|
fldlg2 // log10(2)
|
||||||
fldt 4(%esp) // x : log10(2)
|
fldt 4(%esp) // x : log10(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
|
|
@ -34,9 +34,7 @@ limit: .double 0.29
|
||||||
.text
|
.text
|
||||||
ENTRY(__ieee754_log2)
|
ENTRY(__ieee754_log2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
fldl 4(%esp) // x : 1
|
fldl 4(%esp) // x : 1
|
||||||
|
|
|
@ -34,9 +34,7 @@ limit: .double 0.29
|
||||||
.text
|
.text
|
||||||
ENTRY(__ieee754_log2f)
|
ENTRY(__ieee754_log2f)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
flds 4(%esp) // x : 1
|
flds 4(%esp) // x : 1
|
||||||
|
|
|
@ -34,9 +34,7 @@ limit: .double 0.29
|
||||||
.text
|
.text
|
||||||
ENTRY(__ieee754_log2l)
|
ENTRY(__ieee754_log2l)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
fldt 4(%esp) // x : 1
|
fldt 4(%esp) // x : 1
|
||||||
|
|
|
@ -38,9 +38,7 @@ ENTRY(__ieee754_logf)
|
||||||
fldln2 // log(2)
|
fldln2 // log(2)
|
||||||
flds 4(%esp) // x : log(2)
|
flds 4(%esp) // x : log(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fld %st // x : x : log(2)
|
fld %st // x : x : log(2)
|
||||||
fsubl MO(one) // x-1 : x : log(2)
|
fsubl MO(one) // x-1 : x : log(2)
|
||||||
|
|
|
@ -38,9 +38,7 @@ ENTRY(__ieee754_logl)
|
||||||
fldln2 // log(2)
|
fldln2 // log(2)
|
||||||
fldt 4(%esp) // x : log(2)
|
fldt 4(%esp) // x : log(2)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fld %st // x : x : log(2)
|
fld %st // x : x : log(2)
|
||||||
fsubl MO(one) // x-1 : x : log(2)
|
fsubl MO(one) // x-1 : x : log(2)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of pow function.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
@ -67,9 +67,7 @@ ENTRY(__ieee754_pow)
|
||||||
fxam
|
fxam
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -87,6 +85,7 @@ ENTRY(__ieee754_pow)
|
||||||
fldl 4(%esp) // x : y
|
fldl 4(%esp) // x : y
|
||||||
|
|
||||||
subl $8,%esp
|
subl $8,%esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -120,7 +119,9 @@ ENTRY(__ieee754_pow)
|
||||||
|
|
||||||
/* OK, we have an integer value for y. */
|
/* OK, we have an integer value for y. */
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
orl $0, %edx
|
orl $0, %edx
|
||||||
fstp %st(0) // x
|
fstp %st(0) // x
|
||||||
jns 4f // y >= 0, jump
|
jns 4f // y >= 0, jump
|
||||||
|
@ -155,6 +156,7 @@ ENTRY(__ieee754_pow)
|
||||||
31: fstp %st(1)
|
31: fstp %st(1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2: /* y is a real number. */
|
2: /* y is a real number. */
|
||||||
fxch // x : y
|
fxch // x : y
|
||||||
|
@ -181,6 +183,7 @@ ENTRY(__ieee754_pow)
|
||||||
faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x))
|
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))
|
fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x))
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -219,6 +222,7 @@ ENTRY(__ieee754_pow)
|
||||||
13: fldl 4(%esp) // load x == NaN
|
13: fldl 4(%esp) // load x == NaN
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±inf
|
// x is ±inf
|
||||||
15: fstp %st(0) // y
|
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
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 18f // jump if not odd
|
jz 18f // jump if not odd
|
||||||
movl %edx, %eax
|
movl %edx, %eax
|
||||||
|
@ -251,22 +257,27 @@ ENTRY(__ieee754_pow)
|
||||||
fldl MOX(minf_mzero, %edx, 8)
|
fldl MOX(minf_mzero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
16: fcompl MO(zero)
|
16: fcompl MO(zero)
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
fnstsw
|
fnstsw
|
||||||
shrl $5, %eax
|
shrl $5, %eax
|
||||||
andl $8, %eax
|
andl $8, %eax
|
||||||
fldl MOX(inf_zero, %eax, 1)
|
fldl MOX(inf_zero, %eax, 1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
17: shll $30, %edx // sign bit for y in right position
|
17: shll $30, %edx // sign bit for y in right position
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
18: shrl $31, %edx
|
18: shrl $31, %edx
|
||||||
fldl MOX(inf_zero, %edx, 8)
|
fldl MOX(inf_zero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0
|
// x is ±0
|
||||||
20: fstp %st(0) // y
|
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
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 27f // jump if not odd
|
jz 27f // jump if not odd
|
||||||
cmpl $0xffe00000, %edx
|
cmpl $0xffe00000, %edx
|
||||||
|
@ -300,13 +313,16 @@ ENTRY(__ieee754_pow)
|
||||||
fchs
|
fchs
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
25: fstp %st(0)
|
25: fstp %st(0)
|
||||||
26: addl $8, %esp
|
26: addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
27: // Raise divide-by-zero exception and get infinity value.
|
27: // Raise divide-by-zero exception and get infinity value.
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
fdivl MO(zero)
|
fdivl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
||||||
21: testb $2, %dh
|
21: testb $2, %dh
|
||||||
|
@ -323,7 +339,9 @@ ENTRY(__ieee754_pow)
|
||||||
// OK, the value is an integer, but is the number of bits small
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 24f // jump if not odd
|
jz 24f // jump if not odd
|
||||||
cmpl $0xffe00000, %edx
|
cmpl $0xffe00000, %edx
|
||||||
|
@ -332,8 +350,10 @@ ENTRY(__ieee754_pow)
|
||||||
fldl MO(mzero)
|
fldl MO(mzero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
22: fstp %st(0)
|
22: fstp %st(0)
|
||||||
23: addl $8, %esp // Don't use 2 x pop
|
23: addl $8, %esp // Don't use 2 x pop
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
24: fldl MO(zero)
|
24: fldl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* ix87 specific implementation of pow function.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -66,9 +67,7 @@ ENTRY(__ieee754_powf)
|
||||||
fxam
|
fxam
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -86,6 +85,7 @@ ENTRY(__ieee754_powf)
|
||||||
flds 4(%esp) // x : y
|
flds 4(%esp) // x : y
|
||||||
|
|
||||||
subl $4, %esp
|
subl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -119,6 +119,7 @@ ENTRY(__ieee754_powf)
|
||||||
|
|
||||||
/* OK, we have an integer value for y. */
|
/* OK, we have an integer value for y. */
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
orl $0, %edx
|
orl $0, %edx
|
||||||
fstp %st(0) // x
|
fstp %st(0) // x
|
||||||
jns 4f // y >= 0, jump
|
jns 4f // y >= 0, jump
|
||||||
|
@ -149,6 +150,7 @@ ENTRY(__ieee754_powf)
|
||||||
31: fstp %st(1)
|
31: fstp %st(1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2: /* y is a real number. */
|
2: /* y is a real number. */
|
||||||
fxch // x : y
|
fxch // x : y
|
||||||
|
@ -175,6 +177,7 @@ ENTRY(__ieee754_powf)
|
||||||
faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x))
|
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))
|
fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x))
|
||||||
addl $4, %esp
|
addl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -213,6 +216,7 @@ ENTRY(__ieee754_powf)
|
||||||
13: flds 4(%esp) // load x == NaN
|
13: flds 4(%esp) // load x == NaN
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±inf
|
// x is ±inf
|
||||||
15: fstp %st(0) // y
|
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
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
testb $1, %dl
|
testb $1, %dl
|
||||||
jz 18f // jump if not odd
|
jz 18f // jump if not odd
|
||||||
movl %edx, %eax
|
movl %edx, %eax
|
||||||
|
@ -244,22 +249,27 @@ ENTRY(__ieee754_powf)
|
||||||
fldl MOX(minf_mzero, %edx, 8)
|
fldl MOX(minf_mzero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
16: fcompl MO(zero)
|
16: fcompl MO(zero)
|
||||||
addl $4, %esp
|
addl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
fnstsw
|
fnstsw
|
||||||
shrl $5, %eax
|
shrl $5, %eax
|
||||||
andl $8, %eax
|
andl $8, %eax
|
||||||
fldl MOX(inf_zero, %eax, 1)
|
fldl MOX(inf_zero, %eax, 1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
17: shll $30, %edx // sign bit for y in right position
|
17: shll $30, %edx // sign bit for y in right position
|
||||||
addl $4, %esp
|
addl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
18: shrl $31, %edx
|
18: shrl $31, %edx
|
||||||
fldl MOX(inf_zero, %edx, 8)
|
fldl MOX(inf_zero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0
|
// x is ±0
|
||||||
20: fstp %st(0) // y
|
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
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
testb $1, %dl
|
testb $1, %dl
|
||||||
jz 27f // jump if not odd
|
jz 27f // jump if not odd
|
||||||
cmpl $0xff000000, %edx
|
cmpl $0xff000000, %edx
|
||||||
|
@ -292,13 +303,16 @@ ENTRY(__ieee754_powf)
|
||||||
fchs
|
fchs
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
25: fstp %st(0)
|
25: fstp %st(0)
|
||||||
26: addl $4, %esp
|
26: addl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
27: // Raise divide-by-zero exception and get infinity value.
|
27: // Raise divide-by-zero exception and get infinity value.
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
fdivl MO(zero)
|
fdivl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
||||||
21: testb $2, %dh
|
21: testb $2, %dh
|
||||||
|
@ -315,6 +329,7 @@ ENTRY(__ieee754_powf)
|
||||||
// OK, the value is an integer, but is the number of bits small
|
// OK, the value is an integer, but is the number of bits small
|
||||||
// enough so that all are coming from the mantissa?
|
// enough so that all are coming from the mantissa?
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
testb $1, %dl
|
testb $1, %dl
|
||||||
jz 24f // jump if not odd
|
jz 24f // jump if not odd
|
||||||
cmpl $0xff000000, %edx
|
cmpl $0xff000000, %edx
|
||||||
|
@ -323,8 +338,10 @@ ENTRY(__ieee754_powf)
|
||||||
fldl MO(mzero)
|
fldl MO(mzero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
22: fstp %st(0)
|
22: fstp %st(0)
|
||||||
23: addl $4, %esp // Don't use pop.
|
23: addl $4, %esp // Don't use pop.
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
24: fldl MO(zero)
|
24: fldl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of pow function.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
@ -67,9 +67,7 @@ ENTRY(__ieee754_powl)
|
||||||
fxam
|
fxam
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -87,6 +85,7 @@ ENTRY(__ieee754_powl)
|
||||||
fldt 4(%esp) // x : y
|
fldt 4(%esp) // x : y
|
||||||
|
|
||||||
subl $8,%esp
|
subl $8,%esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
fnstsw
|
fnstsw
|
||||||
|
@ -120,7 +119,9 @@ ENTRY(__ieee754_powl)
|
||||||
|
|
||||||
/* OK, we have an integer value for y. */
|
/* OK, we have an integer value for y. */
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
orl $0, %edx
|
orl $0, %edx
|
||||||
fstp %st(0) // x
|
fstp %st(0) // x
|
||||||
jns 4f // y >= 0, jump
|
jns 4f // y >= 0, jump
|
||||||
|
@ -155,6 +156,7 @@ ENTRY(__ieee754_powl)
|
||||||
31: fstp %st(1)
|
31: fstp %st(1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2: /* y is a real number. */
|
2: /* y is a real number. */
|
||||||
fxch // x : y
|
fxch // x : y
|
||||||
|
@ -186,13 +188,16 @@ ENTRY(__ieee754_powl)
|
||||||
faddl MO(one) // 2^fract(y*log2(x)) : int(y*log2(x))
|
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))
|
fscale // 2^fract(y*log2(x))*2^int(y*log2(x)) : int(y*log2(x))
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
fstp %st(1) // 2^fract(y*log2(x))*2^int(y*log2(x))
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
28: fstp %st(1) // y*log2(x)
|
28: fstp %st(1) // y*log2(x)
|
||||||
fldl MO(one) // 1 : y*log2(x)
|
fldl MO(one) // 1 : y*log2(x)
|
||||||
fscale // 2^(y*log2(x)) : y*log2(x)
|
fscale // 2^(y*log2(x)) : y*log2(x)
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
fstp %st(1) // 2^(y*log2(x))
|
fstp %st(1) // 2^(y*log2(x))
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -230,6 +235,7 @@ ENTRY(__ieee754_powl)
|
||||||
13: fldt 4(%esp) // load x == NaN
|
13: fldt 4(%esp) // load x == NaN
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±inf
|
// x is ±inf
|
||||||
15: fstp %st(0) // y
|
15: fstp %st(0) // y
|
||||||
|
@ -247,7 +253,9 @@ ENTRY(__ieee754_powl)
|
||||||
|
|
||||||
// OK, the value is an integer, but is it odd?
|
// OK, the value is an integer, but is it odd?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 18f // jump if not odd
|
jz 18f // jump if not odd
|
||||||
// It's an odd integer.
|
// It's an odd integer.
|
||||||
|
@ -255,22 +263,27 @@ ENTRY(__ieee754_powl)
|
||||||
fldl MOX(minf_mzero, %edx, 8)
|
fldl MOX(minf_mzero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
16: fcompl MO(zero)
|
16: fcompl MO(zero)
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
fnstsw
|
fnstsw
|
||||||
shrl $5, %eax
|
shrl $5, %eax
|
||||||
andl $8, %eax
|
andl $8, %eax
|
||||||
fldl MOX(inf_zero, %eax, 1)
|
fldl MOX(inf_zero, %eax, 1)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
17: shll $30, %edx // sign bit for y in right position
|
17: shll $30, %edx // sign bit for y in right position
|
||||||
addl $8, %esp
|
addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
18: shrl $31, %edx
|
18: shrl $31, %edx
|
||||||
fldl MOX(inf_zero, %edx, 8)
|
fldl MOX(inf_zero, %edx, 8)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0
|
// x is ±0
|
||||||
20: fstp %st(0) // y
|
20: fstp %st(0) // y
|
||||||
|
@ -291,7 +304,9 @@ ENTRY(__ieee754_powl)
|
||||||
|
|
||||||
// OK, the value is an integer, but is it odd?
|
// OK, the value is an integer, but is it odd?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 27f // jump if not odd
|
jz 27f // jump if not odd
|
||||||
// It's an odd integer.
|
// It's an odd integer.
|
||||||
|
@ -301,13 +316,16 @@ ENTRY(__ieee754_powl)
|
||||||
fchs
|
fchs
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
25: fstp %st(0)
|
25: fstp %st(0)
|
||||||
26: addl $8, %esp
|
26: addl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
27: // Raise divide-by-zero exception and get infinity value.
|
27: // Raise divide-by-zero exception and get infinity value.
|
||||||
fldl MO(one)
|
fldl MO(one)
|
||||||
fdivl MO(zero)
|
fdivl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
// x is ±0 and y is > 0. We must find out whether y is an odd integer.
|
||||||
21: testb $2, %dh
|
21: testb $2, %dh
|
||||||
|
@ -323,15 +341,19 @@ ENTRY(__ieee754_powl)
|
||||||
|
|
||||||
// OK, the value is an integer, but is it odd?
|
// OK, the value is an integer, but is it odd?
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
andb $1, %al
|
andb $1, %al
|
||||||
jz 24f // jump if not odd
|
jz 24f // jump if not odd
|
||||||
// It's an odd integer.
|
// It's an odd integer.
|
||||||
fldl MO(mzero)
|
fldl MO(mzero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
22: fstp %st(0)
|
22: fstp %st(0)
|
||||||
23: addl $8, %esp // Don't use 2 x pop
|
23: addl $8, %esp // Don't use 2 x pop
|
||||||
|
cfi_adjust_cfa_offset (-8)
|
||||||
24: fldl MO(zero)
|
24: fldl MO(zero)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,7 @@ ENTRY(__ieee754_scalb)
|
||||||
/* y is -inf */
|
/* y is -inf */
|
||||||
1: fxam
|
1: fxam
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fnstsw
|
fnstsw
|
||||||
movl 8(%esp), %edx
|
movl 8(%esp), %edx
|
||||||
|
@ -86,9 +84,7 @@ ENTRY(__ieee754_scalb)
|
||||||
2: fstp %st
|
2: fstp %st
|
||||||
fstp %st
|
fstp %st
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(nan)
|
fldl MO(nan)
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -66,9 +66,7 @@ ENTRY(__ieee754_scalbf)
|
||||||
/* y is -inf */
|
/* y is -inf */
|
||||||
1: fxam
|
1: fxam
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fnstsw
|
fnstsw
|
||||||
movl 4(%esp), %edx
|
movl 4(%esp), %edx
|
||||||
|
@ -88,9 +86,7 @@ ENTRY(__ieee754_scalbf)
|
||||||
2: fstp %st
|
2: fstp %st
|
||||||
fstp %st
|
fstp %st
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(nan)
|
fldl MO(nan)
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -66,9 +66,7 @@ ENTRY(__ieee754_scalbl)
|
||||||
/* y is -inf */
|
/* y is -inf */
|
||||||
1: fxam
|
1: fxam
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fnstsw
|
fnstsw
|
||||||
movl 12(%esp), %edx
|
movl 12(%esp), %edx
|
||||||
|
@ -88,9 +86,7 @@ ENTRY(__ieee754_scalbl)
|
||||||
2: fstp %st
|
2: fstp %st
|
||||||
fstp %st
|
fstp %st
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
fldl MO(nan)
|
fldl MO(nan)
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -62,9 +62,7 @@ ENTRY(__asinh)
|
||||||
fxch // |x| : log(2)
|
fxch // |x| : log(2)
|
||||||
ja 3f // |x| > 2^28
|
ja 3f // |x| > 2^28
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x40000000, %eax
|
cmpl $0x40000000, %eax
|
||||||
ja 5f // |x| > 2
|
ja 5f // |x| > 2
|
||||||
|
@ -100,9 +98,7 @@ ENTRY(__asinh)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2:
|
2:
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
jecxz 4f
|
jecxz 4f
|
||||||
fchs // x
|
fchs // x
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -62,9 +62,7 @@ ENTRY(__asinhf)
|
||||||
fxch // |x| : log(2)
|
fxch // |x| : log(2)
|
||||||
ja 3f // |x| > 2^14
|
ja 3f // |x| > 2^14
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x40000000, %eax
|
cmpl $0x40000000, %eax
|
||||||
ja 5f // |x| > 2
|
ja 5f // |x| > 2
|
||||||
|
@ -100,9 +98,7 @@ ENTRY(__asinhf)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2:
|
2:
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
jecxz 4f
|
jecxz 4f
|
||||||
fchs // x
|
fchs // x
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of arcsinh.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
|
@ -69,9 +69,7 @@ ENTRY(__asinhl)
|
||||||
fxch // |x| : log(2)
|
fxch // |x| : log(2)
|
||||||
ja 3f // |x| > 2^34
|
ja 3f // |x| > 2^34
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpl $0x4000, %eax
|
cmpl $0x4000, %eax
|
||||||
ja 5f // |x| > 2
|
ja 5f // |x| > 2
|
||||||
|
@ -107,9 +105,7 @@ ENTRY(__asinhl)
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
2:
|
2:
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
jecxz 4f
|
jecxz 4f
|
||||||
fchs // x
|
fchs // x
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Compute cubic root of double value.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
||||||
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
@ -89,9 +89,9 @@ ENTRY(__cbrt)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call 3f
|
cfi_adjust_cfa_offset (4)
|
||||||
3: popl %ebx
|
cfi_rel_offset (ebx, 0)
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx
|
LOAD_PIC_REG (bx)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmpl $0x00100000, %eax
|
cmpl $0x00100000, %eax
|
||||||
|
@ -178,13 +178,17 @@ ENTRY(__cbrt)
|
||||||
fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */
|
fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */
|
||||||
fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
||||||
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
movl 12(%esp), %eax
|
movl 12(%esp), %eax
|
||||||
popl %ebx
|
popl %ebx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
cfi_restore (ebx)
|
||||||
#else
|
#else
|
||||||
movl 8(%esp), %eax
|
movl 8(%esp), %eax
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Compute cubic root of float value.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
||||||
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
@ -76,9 +76,9 @@ ENTRY(__cbrtf)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call 3f
|
cfi_adjust_cfa_offset (4)
|
||||||
3: popl %ebx
|
cfi_rel_offset (ebx, 0)
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx
|
LOAD_PIC_REG (bx)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmpl $0x00800000, %eax
|
cmpl $0x00800000, %eax
|
||||||
|
@ -155,13 +155,17 @@ ENTRY(__cbrtf)
|
||||||
fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */
|
fdivp %st, %st(1) /* u*(t2+2*xm)/(2*t2+xm) */
|
||||||
fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fmull MOX(16+factor,%ecx) /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
||||||
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
movl 8(%esp), %eax
|
movl 8(%esp), %eax
|
||||||
popl %ebx
|
popl %ebx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
cfi_restore (ebx)
|
||||||
#else
|
#else
|
||||||
movl 4(%esp), %eax
|
movl 4(%esp), %eax
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Compute cubic root of long double value.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
|
||||||
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
@ -108,9 +108,9 @@ ENTRY(__cbrtl)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
call 3f
|
cfi_adjust_cfa_offset (4)
|
||||||
3: popl %ebx
|
cfi_rel_offset (ebx, 0)
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %ebx
|
LOAD_PIC_REG (bx)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmpl $0, %eax
|
cmpl $0, %eax
|
||||||
|
@ -206,13 +206,17 @@ ENTRY(__cbrtl)
|
||||||
fldt MOX(32+factor,%ecx)
|
fldt MOX(32+factor,%ecx)
|
||||||
fmulp /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fmulp /* u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
fildl (%esp) /* xe/3 : u*(t2+2*xm)/(2*t2+xm)*FACT */
|
||||||
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
fxch /* u*(t2+2*xm)/(2*t2+xm)*FACT : xe/3 */
|
||||||
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
fscale /* u*(t2+2*xm)/(2*t2+xm)*FACT*2^xe/3 */
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
movl 16(%esp), %eax
|
movl 16(%esp), %eax
|
||||||
popl %ebx
|
popl %ebx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
cfi_restore (ebx)
|
||||||
#else
|
#else
|
||||||
movl 12(%esp), %eax
|
movl 12(%esp), %eax
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of complex exponential function for double.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -71,9 +71,7 @@ ENTRY(__cexp)
|
||||||
fnstsw
|
fnstsw
|
||||||
fldl 16(%esp) /* y : x */
|
fldl 16(%esp) /* y : x */
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
movb %ah, %dh
|
movb %ah, %dh
|
||||||
andb $0x45, %ah
|
andb $0x45, %ah
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of complex exponential function for double.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -71,9 +71,7 @@ ENTRY(__cexpf)
|
||||||
fnstsw
|
fnstsw
|
||||||
flds 8(%esp) /* y : x */
|
flds 8(%esp) /* y : x */
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
movb %ah, %dh
|
movb %ah, %dh
|
||||||
andb $0x45, %ah
|
andb $0x45, %ah
|
||||||
|
@ -114,10 +112,13 @@ ENTRY(__cexpf)
|
||||||
fmulp %st, %st(3) /* sin(y) : e^x : e^x * cos(y) */
|
fmulp %st, %st(3) /* sin(y) : e^x : e^x * cos(y) */
|
||||||
fmulp %st, %st(1) /* e^x * sin(y) : e^x * cos(y) */
|
fmulp %st, %st(1) /* e^x * sin(y) : e^x * cos(y) */
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
fstps 4(%esp)
|
fstps 4(%esp)
|
||||||
fstps (%esp)
|
fstps (%esp)
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
/* We have to reduce the argument to fsincos. */
|
/* We have to reduce the argument to fsincos. */
|
||||||
|
@ -133,10 +134,13 @@ ENTRY(__cexpf)
|
||||||
fmulp %st, %st(3)
|
fmulp %st, %st(3)
|
||||||
fmulp %st, %st(1)
|
fmulp %st, %st(1)
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
fstps 4(%esp)
|
fstps 4(%esp)
|
||||||
fstps (%esp)
|
fstps (%esp)
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
/* The real part is +-inf. We must make further differences. */
|
/* The real part is +-inf. We must make further differences. */
|
||||||
|
@ -210,12 +214,14 @@ ENTRY(__cexpf)
|
||||||
+-Inf+-0i. */
|
+-Inf+-0i. */
|
||||||
.align ALIGNARG(4)
|
.align ALIGNARG(4)
|
||||||
4: subl $4, %esp
|
4: subl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fstps (%esp)
|
fstps (%esp)
|
||||||
shrl $6, %edx
|
shrl $6, %edx
|
||||||
fstp %st(0)
|
fstp %st(0)
|
||||||
andl $8, %edx
|
andl $8, %edx
|
||||||
movl MOX(huge_nan_null_null,%edx,1), %eax
|
movl MOX(huge_nan_null_null,%edx,1), %eax
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
/* The real part is +-Inf, the imaginary is also is not finite. */
|
/* The real part is +-Inf, the imaginary is also is not finite. */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of complex exponential function for double.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -71,9 +71,7 @@ ENTRY(__cexpl)
|
||||||
fnstsw
|
fnstsw
|
||||||
fldt 20(%esp) /* y : x */
|
fldt 20(%esp) /* y : x */
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (cx)
|
||||||
1: popl %ecx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx
|
|
||||||
#endif
|
#endif
|
||||||
movb %ah, %dh
|
movb %ah, %dh
|
||||||
andb $0x45, %ah
|
andb $0x45, %ah
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of exp(x)-1.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
||||||
|
@ -56,9 +56,7 @@ ENTRY(__expm1)
|
||||||
cmpb $0x40, %ch
|
cmpb $0x40, %ch
|
||||||
je 3f // If +-0, jump.
|
je 3f // If +-0, jump.
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpb $0x05, %ch
|
cmpb $0x05, %ch
|
||||||
je 2f // If +-Inf, jump.
|
je 2f // If +-Inf, jump.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of exp(x)-1.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
||||||
|
@ -56,9 +56,7 @@ ENTRY(__expm1f)
|
||||||
cmpb $0x40, %ch
|
cmpb $0x40, %ch
|
||||||
je 3f // If +-0, jump.
|
je 3f // If +-0, jump.
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpb $0x05, %ch
|
cmpb $0x05, %ch
|
||||||
je 2f // If +-Inf, jump.
|
je 2f // If +-Inf, jump.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific implementation of exp(x)-1.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
Based on code by John C. Bowman <bowman@ipp-garching.mpg.de>.
|
||||||
|
@ -56,9 +56,7 @@ ENTRY(__expm1l)
|
||||||
cmpb $0x40, %ch
|
cmpb $0x40, %ch
|
||||||
je 3f // If +-0, jump.
|
je 3f // If +-0, jump.
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
cmpb $0x05, %ch
|
cmpb $0x05, %ch
|
||||||
je 2f // If +-Inf, jump.
|
je 2f // If +-Inf, jump.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific frexp implementation for double.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -63,9 +63,7 @@ ENTRY (BP_SYM (__frexp))
|
||||||
|
|
||||||
fldl VAL0(%esp)
|
fldl VAL0(%esp)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 3f
|
LOAD_PIC_REG (dx)
|
||||||
3: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fmull MO(two54)
|
fmull MO(two54)
|
||||||
movl $-54, %ecx
|
movl $-54, %ecx
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific frexp implementation for float.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -60,9 +60,7 @@ ENTRY (BP_SYM (__frexpf))
|
||||||
|
|
||||||
flds VAL(%esp)
|
flds VAL(%esp)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 3f
|
LOAD_PIC_REG (dx)
|
||||||
3: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
fmuls MO(two25)
|
fmuls MO(two25)
|
||||||
movl $-25, %ecx
|
movl $-25, %ecx
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* ix87 specific frexp implementation for long double.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -65,9 +65,7 @@ ENTRY (BP_SYM (__frexpl))
|
||||||
|
|
||||||
fldt VAL0(%esp)
|
fldt VAL0(%esp)
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 3f
|
LOAD_PIC_REG (dx)
|
||||||
3: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-3b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fmull MO(two64) /* It's not necessary to use a 80bit factor */
|
fmull MO(two64) /* It's not necessary to use a 80bit factor */
|
||||||
|
|
|
@ -21,11 +21,13 @@ ENTRY(__ilogb)
|
||||||
|
|
||||||
fxtract
|
fxtract
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fstp %st
|
fstp %st
|
||||||
|
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -21,11 +21,13 @@ ENTRY(__ilogbf)
|
||||||
|
|
||||||
fxtract
|
fxtract
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fstp %st
|
fstp %st
|
||||||
|
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,13 @@ ENTRY(__ilogbl)
|
||||||
|
|
||||||
fxtract
|
fxtract
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fstp %st
|
fstp %st
|
||||||
|
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,10 +25,13 @@
|
||||||
ENTRY(__llrint)
|
ENTRY(__llrint)
|
||||||
fldl 4(%esp)
|
fldl 4(%esp)
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
fistpll (%esp)
|
fistpll (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__llrint)
|
END(__llrint)
|
||||||
weak_alias (__llrint, llrint)
|
weak_alias (__llrint, llrint)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,10 +25,13 @@
|
||||||
ENTRY(__llrintf)
|
ENTRY(__llrintf)
|
||||||
flds 4(%esp)
|
flds 4(%esp)
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
fistpll (%esp)
|
fistpll (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__llrintf)
|
END(__llrintf)
|
||||||
weak_alias (__llrintf, llrintf)
|
weak_alias (__llrintf, llrintf)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,10 +25,13 @@
|
||||||
ENTRY(__llrintl)
|
ENTRY(__llrintl)
|
||||||
fldt 4(%esp)
|
fldt 4(%esp)
|
||||||
subl $8, %esp
|
subl $8, %esp
|
||||||
|
cfi_adjust_cfa_offset (8)
|
||||||
fistpll (%esp)
|
fistpll (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %edx
|
popl %edx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__llrintl)
|
END(__llrintl)
|
||||||
weak_alias (__llrintl, llrintl)
|
weak_alias (__llrintl, llrintl)
|
||||||
|
|
|
@ -31,9 +31,7 @@ ENTRY(__log1p)
|
||||||
fldl 4(%esp)
|
fldl 4(%esp)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
|
|
|
@ -31,9 +31,7 @@ ENTRY(__log1pf)
|
||||||
flds 4(%esp)
|
flds 4(%esp)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
|
|
|
@ -36,9 +36,7 @@ ENTRY(__log1pl)
|
||||||
fldt 4(%esp)
|
fldt 4(%esp)
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
LOAD_PIC_REG (dx)
|
||||||
1: popl %edx
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fxam
|
fxam
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,9 +25,11 @@
|
||||||
ENTRY(__lrint)
|
ENTRY(__lrint)
|
||||||
fldl 4(%esp)
|
fldl 4(%esp)
|
||||||
subl $4, %esp
|
subl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__lrint)
|
END(__lrint)
|
||||||
weak_alias (__lrint, lrint)
|
weak_alias (__lrint, lrint)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,9 +25,11 @@
|
||||||
ENTRY(__lrintf)
|
ENTRY(__lrintf)
|
||||||
flds 4(%esp)
|
flds 4(%esp)
|
||||||
subl $4, %esp
|
subl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__lrintf)
|
END(__lrintf)
|
||||||
weak_alias (__lrintf, lrintf)
|
weak_alias (__lrintf, lrintf)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Round argument to nearest integral value according to current rounding
|
/* Round argument to nearest integral value according to current rounding
|
||||||
direction.
|
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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -25,9 +25,11 @@
|
||||||
ENTRY(__lrintl)
|
ENTRY(__lrintl)
|
||||||
fldt 4(%esp)
|
fldt 4(%esp)
|
||||||
subl $4, %esp
|
subl $4, %esp
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fistpl (%esp)
|
fistpl (%esp)
|
||||||
fwait
|
fwait
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END(__lrintl)
|
END(__lrintl)
|
||||||
weak_alias (__lrintl, lrintl)
|
weak_alias (__lrintl, lrintl)
|
||||||
|
|
|
@ -9,7 +9,9 @@
|
||||||
ENTRY(__nearbyint)
|
ENTRY(__nearbyint)
|
||||||
fldl 4(%esp)
|
fldl 4(%esp)
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fnstcw (%esp)
|
fnstcw (%esp)
|
||||||
movl (%esp), %eax
|
movl (%esp), %eax
|
||||||
orl $0x20, %eax
|
orl $0x20, %eax
|
||||||
|
@ -19,7 +21,9 @@ ENTRY(__nearbyint)
|
||||||
fclex
|
fclex
|
||||||
fldcw (%esp)
|
fldcw (%esp)
|
||||||
popl %ecx
|
popl %ecx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END (__nearbyint)
|
END (__nearbyint)
|
||||||
weak_alias (__nearbyint, nearbyint)
|
weak_alias (__nearbyint, nearbyint)
|
||||||
|
|
|
@ -9,7 +9,9 @@
|
||||||
ENTRY(__nearbyintf)
|
ENTRY(__nearbyintf)
|
||||||
flds 4(%esp)
|
flds 4(%esp)
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fnstcw (%esp)
|
fnstcw (%esp)
|
||||||
movl (%esp), %eax
|
movl (%esp), %eax
|
||||||
orl $0x20, %eax
|
orl $0x20, %eax
|
||||||
|
@ -19,7 +21,9 @@ ENTRY(__nearbyintf)
|
||||||
fclex
|
fclex
|
||||||
fldcw (%esp)
|
fldcw (%esp)
|
||||||
popl %ecx
|
popl %ecx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END (__nearbyintf)
|
END (__nearbyintf)
|
||||||
weak_alias (__nearbyintf, nearbyintf)
|
weak_alias (__nearbyintf, nearbyintf)
|
||||||
|
|
|
@ -9,7 +9,9 @@
|
||||||
ENTRY(__nearbyintl)
|
ENTRY(__nearbyintl)
|
||||||
fldt 4(%esp)
|
fldt 4(%esp)
|
||||||
pushl %eax
|
pushl %eax
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
fnstcw (%esp)
|
fnstcw (%esp)
|
||||||
movl (%esp), %eax
|
movl (%esp), %eax
|
||||||
orl $0x20, %eax
|
orl $0x20, %eax
|
||||||
|
@ -19,7 +21,9 @@ ENTRY(__nearbyintl)
|
||||||
fclex
|
fclex
|
||||||
fldcw (%esp)
|
fldcw (%esp)
|
||||||
popl %ecx
|
popl %ecx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
popl %eax
|
popl %eax
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
ret
|
ret
|
||||||
END (__nearbyintl)
|
END (__nearbyintl)
|
||||||
weak_alias (__nearbyintl, nearbyintl)
|
weak_alias (__nearbyintl, nearbyintl)
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
ENTRY (BP_SYM (__mpn_addmul_1))
|
ENTRY (BP_SYM (__mpn_addmul_1))
|
||||||
ENTER
|
ENTER
|
||||||
|
|
||||||
pushl %edi
|
pushl %res_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %esi
|
pushl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %s2_limb
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl RES(%esp), %res_ptr
|
movl RES(%esp), %res_ptr
|
||||||
|
@ -86,18 +86,18 @@ L(oop): adcl $0, %ebp
|
||||||
|
|
||||||
adcl $0, %ebp
|
adcl $0, %ebp
|
||||||
movl %ebp, %eax
|
movl %ebp, %eax
|
||||||
popl %ebx
|
popl %s2_limb
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebx)
|
cfi_restore (s2_limb)
|
||||||
popl %ebp
|
popl %ebp
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebp)
|
cfi_restore (ebp)
|
||||||
popl %esi
|
popl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (esi)
|
cfi_restore (s1_ptr)
|
||||||
popl %edi
|
popl %res_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (edi)
|
cfi_restore (res_ptr)
|
||||||
|
|
||||||
LEAVE
|
LEAVE
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -46,7 +46,7 @@ ENTRY (BP_SYM (memcpy))
|
||||||
movl DEST(%esp), %edi
|
movl DEST(%esp), %edi
|
||||||
cfi_rel_offset (edi, 4)
|
cfi_rel_offset (edi, 4)
|
||||||
movl SRC(%esp), %esi
|
movl SRC(%esp), %esi
|
||||||
cfi_rel_offset (esi, 4)
|
cfi_rel_offset (esi, 0)
|
||||||
movl LEN(%esp), %ecx
|
movl LEN(%esp), %ecx
|
||||||
CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
|
CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
|
||||||
CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
|
CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
ENTRY (BP_SYM (__mpn_mul_1))
|
ENTRY (BP_SYM (__mpn_mul_1))
|
||||||
ENTER
|
ENTER
|
||||||
|
|
||||||
pushl %edi
|
pushl %res_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %esi
|
pushl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %s2_limb
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl RES(%esp), %res_ptr
|
movl RES(%esp), %res_ptr
|
||||||
|
@ -82,18 +82,18 @@ L(oop): adcl $0, %ebp
|
||||||
|
|
||||||
adcl $0, %ebp
|
adcl $0, %ebp
|
||||||
movl %ebp, %eax
|
movl %ebp, %eax
|
||||||
popl %ebx
|
popl %s2_limb
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebx)
|
cfi_restore (s2_limb)
|
||||||
popl %ebp
|
popl %ebp
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebp)
|
cfi_restore (ebp)
|
||||||
popl %esi
|
popl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (esi)
|
cfi_restore (s1_ptr)
|
||||||
popl %edi
|
popl %res_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (edi)
|
cfi_restore (res_ptr)
|
||||||
|
|
||||||
LEAVE
|
LEAVE
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -165,7 +165,7 @@ L(end2):
|
||||||
cfi_rel_offset (edi, 12)
|
cfi_rel_offset (edi, 12)
|
||||||
cfi_rel_offset (esi, 8)
|
cfi_rel_offset (esi, 8)
|
||||||
cfi_rel_offset (ebp, 4)
|
cfi_rel_offset (ebp, 4)
|
||||||
cfi_rel_offset (ebx, 3)
|
cfi_rel_offset (ebx, 0)
|
||||||
L(special):
|
L(special):
|
||||||
leal -4(%edi,%ebx,4),%edi
|
leal -4(%edi,%ebx,4),%edi
|
||||||
leal -4(%esi,%ebx,4),%esi
|
leal -4(%esi,%ebx,4),%esi
|
||||||
|
|
|
@ -56,8 +56,8 @@ ENTRY (BP_SYM (__mpn_sub_n))
|
||||||
CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
|
CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
|
||||||
shrl $2, %ecx
|
shrl $2, %ecx
|
||||||
#endif
|
#endif
|
||||||
cfi_rel_offset (ebp, 4)
|
|
||||||
movl (%ebx),%ebp
|
movl (%ebx),%ebp
|
||||||
|
cfi_rel_offset (ebp, 4)
|
||||||
|
|
||||||
decl %ecx
|
decl %ecx
|
||||||
movl %ecx,%edx
|
movl %ecx,%edx
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
ENTRY (BP_SYM (__mpn_submul_1))
|
ENTRY (BP_SYM (__mpn_submul_1))
|
||||||
ENTER
|
ENTER
|
||||||
|
|
||||||
pushl %edi
|
pushl %res_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %esi
|
pushl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %s2_limb
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl RES(%esp), %res_ptr
|
movl RES(%esp), %res_ptr
|
||||||
|
@ -86,18 +86,18 @@ L(oop): adcl $0, %ebp
|
||||||
|
|
||||||
adcl $0, %ebp
|
adcl $0, %ebp
|
||||||
movl %ebp, %eax
|
movl %ebp, %eax
|
||||||
popl %ebx
|
popl %s2_limb
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebx)
|
cfi_restore (s2_limb)
|
||||||
popl %ebp
|
popl %ebp
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebp)
|
cfi_restore (ebp)
|
||||||
popl %esi
|
popl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (esi)
|
cfi_restore (s1_ptr)
|
||||||
popl %edi
|
popl %res_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (edi)
|
cfi_restore (res_ptr)
|
||||||
|
|
||||||
LEAVE
|
LEAVE
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
#define ENTRANCE pushl %ebx; cfi_adjust_cfa_offset (4); \
|
#define ENTRANCE pushl %ebx; cfi_adjust_cfa_offset (4); \
|
||||||
cfi_rel_offset (ebx, 0); ENTER
|
cfi_rel_offset (ebx, 0); ENTER
|
||||||
#define RETURN popl %ebx; cfi_adjust_cfa_offset (-4); \
|
#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
|
/* Load an entry in a jump table into EBX. TABLE is a jump table
|
||||||
with relative offsets. INDEX is a register contains the index
|
with relative offsets. INDEX is a register contains the index
|
||||||
|
@ -79,6 +80,8 @@ L(neq):
|
||||||
sbbl $-1, %eax
|
sbbl $-1, %eax
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
|
cfi_rel_offset (ebx, 0)
|
||||||
L(not_1):
|
L(not_1):
|
||||||
jl L(bye) /* LEN == 0 */
|
jl L(bye) /* LEN == 0 */
|
||||||
|
|
||||||
|
@ -137,8 +140,9 @@ L(0bytes):
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (8)
|
||||||
cfi_rel_offset (esi, 0)
|
cfi_rel_offset (esi, 0)
|
||||||
|
cfi_rel_offset (ebx, 4)
|
||||||
L(29bytes):
|
L(29bytes):
|
||||||
movl -29(%esi), %eax
|
movl -29(%esi), %eax
|
||||||
movl -29(%edx), %ecx
|
movl -29(%edx), %ecx
|
||||||
|
@ -184,8 +188,9 @@ L(1bytes):
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (8)
|
||||||
cfi_rel_offset (esi, 0)
|
cfi_rel_offset (esi, 0)
|
||||||
|
cfi_rel_offset (ebx, 4)
|
||||||
L(30bytes):
|
L(30bytes):
|
||||||
movl -30(%esi), %eax
|
movl -30(%esi), %eax
|
||||||
movl -30(%edx), %ecx
|
movl -30(%edx), %ecx
|
||||||
|
@ -234,8 +239,9 @@ L(2bytes):
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (8)
|
||||||
cfi_rel_offset (esi, 0)
|
cfi_rel_offset (esi, 0)
|
||||||
|
cfi_rel_offset (ebx, 4)
|
||||||
L(31bytes):
|
L(31bytes):
|
||||||
movl -31(%esi), %eax
|
movl -31(%esi), %eax
|
||||||
movl -31(%edx), %ecx
|
movl -31(%edx), %ecx
|
||||||
|
@ -287,8 +293,9 @@ L(3bytes):
|
||||||
xorl %eax, %eax
|
xorl %eax, %eax
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (8)
|
||||||
cfi_rel_offset (esi, 0)
|
cfi_rel_offset (esi, 0)
|
||||||
|
cfi_rel_offset (ebx, 4)
|
||||||
ALIGN (4)
|
ALIGN (4)
|
||||||
/* ECX >= 32. */
|
/* ECX >= 32. */
|
||||||
L(32bytesormore):
|
L(32bytesormore):
|
||||||
|
|
|
@ -79,6 +79,10 @@ ENTRY (BP_SYM (memmove))
|
||||||
LEAVE
|
LEAVE
|
||||||
RET_PTR
|
RET_PTR
|
||||||
|
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
|
cfi_rel_offset (edi, 0)
|
||||||
|
cfi_register (esi, edx)
|
||||||
|
|
||||||
/* Backward copying. */
|
/* Backward copying. */
|
||||||
3: std
|
3: std
|
||||||
leal -1(%edi, %ecx), %edi
|
leal -1(%edi, %ecx), %edi
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
ENTRY (BP_SYM (__mpn_mul_1))
|
ENTRY (BP_SYM (__mpn_mul_1))
|
||||||
ENTER
|
ENTER
|
||||||
|
|
||||||
pushl %edi
|
pushl %res_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %esi
|
pushl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebp
|
pushl %ebp
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %s2_limb
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl RES(%esp), %res_ptr
|
movl RES(%esp), %res_ptr
|
||||||
|
@ -78,18 +78,18 @@ L(oop):
|
||||||
jnz L(oop)
|
jnz L(oop)
|
||||||
movl %ebp, %eax
|
movl %ebp, %eax
|
||||||
|
|
||||||
popl %ebx
|
popl %s2_limb
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebx)
|
cfi_restore (s2_limb)
|
||||||
popl %ebp
|
popl %ebp
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (ebp)
|
cfi_restore (ebp)
|
||||||
popl %esi
|
popl %s1_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (esi)
|
cfi_restore (s1_ptr)
|
||||||
popl %edi
|
popl %res_ptr
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
cfi_restore (edi)
|
cfi_restore (res_ptr)
|
||||||
|
|
||||||
LEAVE
|
LEAVE
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -81,7 +81,7 @@ ENTRY (BP_SYM (FUNCTION))
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
call L(here)
|
call L(here)
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
cfi_rel_offset (ebx, 4)
|
cfi_rel_offset (ebx, 0)
|
||||||
L(here):
|
L(here):
|
||||||
popl %ebx
|
popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
|
|
@ -67,10 +67,12 @@ ENTRY (BP_SYM (__mpn_sub_n))
|
||||||
/* Calculate start address in loop for PIC. Due to limitations in some
|
/* Calculate start address in loop for PIC. Due to limitations in some
|
||||||
assemblers, Loop-L0-3 cannot be put into the leal */
|
assemblers, Loop-L0-3 cannot be put into the leal */
|
||||||
call L(0)
|
call L(0)
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
L(0): leal (%eax,%eax,8),%eax
|
L(0): leal (%eax,%eax,8),%eax
|
||||||
addl (%esp),%eax
|
addl (%esp),%eax
|
||||||
addl $(L(oop)-L(0)-3),%eax
|
addl $(L(oop)-L(0)-3),%eax
|
||||||
addl $4,%esp
|
addl $4,%esp
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
#else
|
#else
|
||||||
/* Calculate start address in loop for non-PIC. */
|
/* Calculate start address in loop for non-PIC. */
|
||||||
leal (L(oop) - 3)(%eax,%eax,8),%eax
|
leal (L(oop) - 3)(%eax,%eax,8),%eax
|
||||||
|
|
|
@ -46,14 +46,15 @@ ENTRY (BP_SYM (__mpn_submul_1))
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
cfi_adjust_cfa_offset (4)
|
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
|
movl RES(%esp), %res_ptr
|
||||||
cfi_rel_offset (res_ptr, 12)
|
|
||||||
movl S1(%esp), %s1_ptr
|
movl S1(%esp), %s1_ptr
|
||||||
cfi_rel_offset (s1_ptr, 8)
|
|
||||||
movl SIZE(%esp), %sizeP
|
movl SIZE(%esp), %sizeP
|
||||||
movl S2LIMB(%esp), %s2_limb
|
movl S2LIMB(%esp), %s2_limb
|
||||||
cfi_rel_offset (s2_limb, 0)
|
|
||||||
#if __BOUNDED_POINTERS__
|
#if __BOUNDED_POINTERS__
|
||||||
shll $2, %sizeP /* convert limbs to bytes */
|
shll $2, %sizeP /* convert limbs to bytes */
|
||||||
CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
|
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
|
leal (%s1_ptr,%sizeP,4), %s1_ptr
|
||||||
negl %sizeP
|
negl %sizeP
|
||||||
xorl %ebp, %ebp
|
xorl %ebp, %ebp
|
||||||
cfi_rel_offset (ebp, 4)
|
|
||||||
ALIGN (3)
|
ALIGN (3)
|
||||||
L(oop):
|
L(oop):
|
||||||
movl (%s1_ptr,%sizeP,4), %eax
|
movl (%s1_ptr,%sizeP,4), %eax
|
||||||
|
|
|
@ -88,6 +88,7 @@ ENTRY (BP_SYM (__clone))
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
pushl %edi
|
pushl %edi
|
||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
movl TLS+12(%esp),%esi
|
movl TLS+12(%esp),%esi
|
||||||
cfi_rel_offset (esi, 4)
|
cfi_rel_offset (esi, 4)
|
||||||
movl PTID+12(%esp),%edx
|
movl PTID+12(%esp),%edx
|
||||||
|
@ -102,16 +103,14 @@ ENTRY (BP_SYM (__clone))
|
||||||
movl %ebx, (%ecx)
|
movl %ebx, (%ecx)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* End FDE now, because in the child the unwind info will be
|
||||||
|
wrong. */
|
||||||
|
cfi_endproc
|
||||||
|
|
||||||
int $0x80
|
int $0x80
|
||||||
popl %edi
|
popl %edi
|
||||||
cfi_adjust_cfa_offset (-4)
|
|
||||||
cfi_restore (edi)
|
|
||||||
popl %esi
|
popl %esi
|
||||||
cfi_adjust_cfa_offset (-4)
|
|
||||||
cfi_restore (esi)
|
|
||||||
popl %ebx
|
popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
|
||||||
cfi_restore (ebx)
|
|
||||||
|
|
||||||
test %eax,%eax
|
test %eax,%eax
|
||||||
jl SYSCALL_ERROR_LABEL
|
jl SYSCALL_ERROR_LABEL
|
||||||
|
@ -131,10 +130,8 @@ L(haspid):
|
||||||
call *%ebx
|
call *%ebx
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call L(here)
|
call L(here)
|
||||||
cfi_adjust_cfa_offset (4)
|
|
||||||
L(here):
|
L(here):
|
||||||
popl %ebx
|
popl %ebx
|
||||||
cfi_adjust_cfa_offset (-4)
|
|
||||||
addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
|
addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
|
||||||
#endif
|
#endif
|
||||||
movl %eax, %ebx
|
movl %eax, %ebx
|
||||||
|
@ -156,6 +153,7 @@ L(nomoregetpid):
|
||||||
.previous
|
.previous
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
cfi_startproc
|
||||||
PSEUDO_END (BP_SYM (__clone))
|
PSEUDO_END (BP_SYM (__clone))
|
||||||
|
|
||||||
weak_alias (BP_SYM (__clone), BP_SYM (clone))
|
weak_alias (BP_SYM (__clone), BP_SYM (clone))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Save current context.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
|
||||||
|
|
||||||
|
@ -63,12 +63,16 @@ ENTRY(__getcontext)
|
||||||
|
|
||||||
/* Save the current signal mask. */
|
/* Save the current signal mask. */
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
|
cfi_rel_offset (ebx, 0)
|
||||||
leal oSIGMASK(%eax), %edx
|
leal oSIGMASK(%eax), %edx
|
||||||
xorl %ecx, %ecx
|
xorl %ecx, %ecx
|
||||||
movl $SIG_BLOCK, %ebx
|
movl $SIG_BLOCK, %ebx
|
||||||
movl $__NR_sigprocmask, %eax
|
movl $__NR_sigprocmask, %eax
|
||||||
ENTER_KERNEL
|
ENTER_KERNEL
|
||||||
popl %ebx
|
popl %ebx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
cfi_restore (ebx)
|
||||||
cmpl $-4095, %eax /* Check %eax for error. */
|
cmpl $-4095, %eax /* Check %eax for error. */
|
||||||
jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
|
jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Create new context.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
|
||||||
|
|
||||||
|
@ -68,7 +68,9 @@ ENTRY(__makecontext)
|
||||||
below). */
|
below). */
|
||||||
#ifdef PIC
|
#ifdef PIC
|
||||||
call 1f
|
call 1f
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
1: popl %ecx
|
1: popl %ecx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
addl $L(exitcode)-1b, %ecx
|
addl $L(exitcode)-1b, %ecx
|
||||||
movl %ecx, (%edx)
|
movl %ecx, (%edx)
|
||||||
#else
|
#else
|
||||||
|
@ -83,6 +85,7 @@ ENTRY(__makecontext)
|
||||||
the context 'makecontext' manipulated at the time of the
|
the context 'makecontext' manipulated at the time of the
|
||||||
'makecontext' call. If the pointer is NULL the process must
|
'makecontext' call. If the pointer is NULL the process must
|
||||||
terminate. */
|
terminate. */
|
||||||
|
cfi_endproc
|
||||||
L(exitcode):
|
L(exitcode):
|
||||||
/* This removes the parameters passed to the function given to
|
/* This removes the parameters passed to the function given to
|
||||||
'makecontext' from the stack. EBX contains the number of
|
'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 'exit' call should never return. In case it does cause
|
||||||
the process to terminate. */
|
the process to terminate. */
|
||||||
hlt
|
hlt
|
||||||
|
cfi_startproc
|
||||||
END(__makecontext)
|
END(__makecontext)
|
||||||
|
|
||||||
weak_alias(__makecontext, makecontext)
|
weak_alias(__makecontext, makecontext)
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
ENTRY (__mmap)
|
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. */
|
is available. Only use it when we are sure the syscall exists. */
|
||||||
#ifdef __ASSUME_MMAP2_SYSCALL
|
#ifdef __ASSUME_MMAP2_SYSCALL
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ L(skip):
|
||||||
|
|
||||||
/* Save registers. */
|
/* Save registers. */
|
||||||
movl %ebx, %edx
|
movl %ebx, %edx
|
||||||
|
cfi_register (ebx, edx)
|
||||||
|
|
||||||
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
|
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
|
||||||
|
|
||||||
|
@ -88,6 +89,7 @@ L(skip):
|
||||||
|
|
||||||
/* Restore registers. */
|
/* Restore registers. */
|
||||||
movl %edx, %ebx
|
movl %edx, %ebx
|
||||||
|
cfi_restore (ebx)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,7 @@ L(einval):
|
||||||
3:
|
3:
|
||||||
/* Save registers. */
|
/* Save registers. */
|
||||||
movl %ebx, %edx
|
movl %ebx, %edx
|
||||||
|
cfi_register (ebx, edx)
|
||||||
|
|
||||||
cmpl $0, OFFHI-SVRSP(%esp)
|
cmpl $0, OFFHI-SVRSP(%esp)
|
||||||
jne L(einval2)
|
jne L(einval2)
|
||||||
|
@ -143,6 +144,7 @@ L(einval):
|
||||||
|
|
||||||
/* Restore registers. */
|
/* Restore registers. */
|
||||||
movl %edx, %ebx
|
movl %edx, %ebx
|
||||||
|
cfi_restore (ebx)
|
||||||
|
|
||||||
/* If 0 > %eax > -4096 there was an error. */
|
/* If 0 > %eax > -4096 there was an error. */
|
||||||
cmpl $-4096, %eax
|
cmpl $-4096, %eax
|
||||||
|
@ -154,8 +156,10 @@ L(pseudo_end):
|
||||||
#endif
|
#endif
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
cfi_register (ebx, edx)
|
||||||
L(einval2):
|
L(einval2):
|
||||||
movl %edx, %ebx
|
movl %edx, %ebx
|
||||||
|
cfi_restore (ebx)
|
||||||
movl $-EINVAL, %eax
|
movl $-EINVAL, %eax
|
||||||
jmp SYSCALL_ERROR_LABEL
|
jmp SYSCALL_ERROR_LABEL
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -61,6 +61,13 @@ ENTRY(__setcontext)
|
||||||
movl oEIP(%eax), %ecx
|
movl oEIP(%eax), %ecx
|
||||||
|
|
||||||
/* Load the new stack pointer. */
|
/* 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
|
movl oESP(%eax), %esp
|
||||||
|
|
||||||
/* Push the return address on the new stack so we can return there. */
|
/* Push the return address on the new stack so we can return there. */
|
||||||
|
@ -76,6 +83,10 @@ ENTRY(__setcontext)
|
||||||
movl oECX(%eax), %ecx
|
movl oECX(%eax), %ecx
|
||||||
movl oEAX(%eax), %eax
|
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
|
/* The following 'ret' will pop the address of the code and jump
|
||||||
to it. */
|
to it. */
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,7 @@
|
||||||
.previous
|
.previous
|
||||||
# else
|
# else
|
||||||
# define SETUP_PIC_REG(reg) \
|
# define SETUP_PIC_REG(reg) \
|
||||||
|
.ifndef __i686.get_pc_thunk.reg; \
|
||||||
.section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax",@progbits; \
|
.section .gnu.linkonce.t.__i686.get_pc_thunk.reg,"ax",@progbits; \
|
||||||
.globl __i686.get_pc_thunk.reg; \
|
.globl __i686.get_pc_thunk.reg; \
|
||||||
.hidden __i686.get_pc_thunk.reg; \
|
.hidden __i686.get_pc_thunk.reg; \
|
||||||
|
@ -127,9 +128,13 @@ __i686.get_pc_thunk.reg: \
|
||||||
ret; \
|
ret; \
|
||||||
.size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg; \
|
.size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg; \
|
||||||
.previous; \
|
.previous; \
|
||||||
|
.endif; \
|
||||||
call __i686.get_pc_thunk.reg
|
call __i686.get_pc_thunk.reg
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# define LOAD_PIC_REG(reg) \
|
||||||
|
SETUP_PIC_REG(reg); addl $_GLOBAL_OFFSET_TABLE_, %e##reg
|
||||||
|
|
||||||
# if RTLD_PRIVATE_ERRNO
|
# if RTLD_PRIVATE_ERRNO
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
0:SETUP_PIC_REG(cx); \
|
0:SETUP_PIC_REG(cx); \
|
||||||
|
|
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Andreas Schwab <schwab@gnu.org>.
|
Contributed by Andreas Schwab <schwab@gnu.org>.
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ ENTRY (__vfork)
|
||||||
|
|
||||||
/* Pop the return PC value into ECX. */
|
/* Pop the return PC value into ECX. */
|
||||||
popl %ecx
|
popl %ecx
|
||||||
|
cfi_adjust_cfa_offset (-4)
|
||||||
|
|
||||||
#ifdef SAVE_PID
|
#ifdef SAVE_PID
|
||||||
SAVE_PID
|
SAVE_PID
|
||||||
|
@ -46,6 +47,7 @@ ENTRY (__vfork)
|
||||||
disturbs the branch target cache. Instead push the return
|
disturbs the branch target cache. Instead push the return
|
||||||
address back on the stack. */
|
address back on the stack. */
|
||||||
pushl %ecx
|
pushl %ecx
|
||||||
|
cfi_adjust_cfa_offset (4)
|
||||||
|
|
||||||
#ifdef RESTORE_PID
|
#ifdef RESTORE_PID
|
||||||
RESTORE_PID
|
RESTORE_PID
|
||||||
|
|
Loading…
Reference in New Issue