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