mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-12 14:21:18 +08:00
Updated to fedora-glibc-20050523T1354
This commit is contained in:
parent
cbeae26ce7
commit
9ebafd4bb2
65
ChangeLog
65
ChangeLog
@ -1,9 +1,74 @@
|
||||
2005-05-22 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* elf/rtld.c: Include <dl-osinfo.h>.
|
||||
|
||||
2005-05-17 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_RET): Don't use
|
||||
JUMPTARGET. Instead append @local to __syscall_error.
|
||||
* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Delete all occurrences
|
||||
of JUMPTARGET. Instead append @local to labels.
|
||||
* sysdeps/powerpc/powerpc32/bsd-setjmp.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/ppc-mcount.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
|
||||
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Use float constants.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_floor.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_rint.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_lround.S: Likewise. Use one GOT
|
||||
slot to access both constants.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_round.S: Likewise.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Likewise.
|
||||
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_ceil.S (TWO52.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_ceilf.S (TWO23.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_floor.S (TWO52.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_floorf.S (TWO23.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_lround.S: Comment typo.
|
||||
(NEGZERO.0, POINTFIVE.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_rint.S (TWO52.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_rintf.S (TWO23.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_round.S (__round): Code in .text.
|
||||
(TWO52.0, POINTFIVE.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_roundf.S (__roundf): Code in .text.
|
||||
(TWO23.0, POINTFIVE.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_trunc.S (__trunc): Code in .text.
|
||||
(TWO52.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/fpu/s_truncf.S (__truncf): Code in .text.
|
||||
(TWO23.0): Delete.
|
||||
* sysdeps/powerpc/powerpc32/memset.S (memset): Formatting.
|
||||
|
||||
2005-05-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/unix/clock_gettime.c (clock_gettime): Fix typo around
|
||||
CLOCK_REALTIME.
|
||||
|
||||
* sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq,
|
||||
__arch_compare_and_exchange_bool_64_acq,
|
||||
__arch_compare_and_exchange_val_32_acq,
|
||||
__arch_compare_and_exchange_val_64_acq, atomic_exchange_and_add):
|
||||
Use __sync builtin without _si or _di suffix.
|
||||
|
||||
2005-05-19 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
[BZ #955]
|
||||
* iconvdata/ibm939.c (BODY): Avoid segfaults with input characters
|
||||
<UFFFF> and above.
|
||||
|
||||
2005-05-17 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
|
||||
(clock_getcpuclockid): Always return a defined value.
|
||||
|
||||
2005-05-17 Neal H. Walfield <neal@gnu.org>
|
||||
|
||||
* sysdeps/posix/getaddrinfo.c (gaih_local): Check [_HAVE_SA_LEN]
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "dl-librecon.h"
|
||||
#include <unsecvars.h>
|
||||
#include <dl-cache.h>
|
||||
#include <dl-osinfo.h>
|
||||
#include <dl-procinfo.h>
|
||||
#include <tls.h>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# This file is updated automatically by Makefile.
|
||||
glibc-branch := fedora
|
||||
glibc-base := HEAD
|
||||
fedora-sync-date := 2005-05-20 09:19 UTC
|
||||
fedora-sync-tag := fedora-glibc-20050520T0919
|
||||
fedora-sync-date := 2005-05-23 13:54 UTC
|
||||
fedora-sync-tag := fedora-glibc-20050523T1354
|
||||
|
@ -1,3 +1,15 @@
|
||||
2005-05-17 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
|
||||
all occurrences of JUMPTARGET. Instead append @local to labels.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
|
||||
|
||||
2005-05-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Use
|
||||
__sync_val_compare_and_swap, not explicit _si variant.
|
||||
(__pthread_spin_trylock): Likewise.
|
||||
|
||||
2005-05-05 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
|
||||
|
@ -31,7 +31,7 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
|
||||
{
|
||||
int *p = (int *) lock;
|
||||
|
||||
while (__builtin_expect (__sync_val_compare_and_swap_si (p, 0, 1), 0))
|
||||
while (__builtin_expect (__sync_val_compare_and_swap (p, 0, 1), 0))
|
||||
{
|
||||
/* Spin without using the atomic instruction. */
|
||||
do
|
||||
@ -46,7 +46,7 @@ weak_alias (__pthread_spin_lock, pthread_spin_lock)
|
||||
int
|
||||
__pthread_spin_trylock (pthread_spinlock_t *lock)
|
||||
{
|
||||
return __sync_val_compare_and_swap_si ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
|
||||
return __sync_val_compare_and_swap ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
|
||||
}
|
||||
weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
|
||||
|
||||
|
@ -76,14 +76,14 @@
|
||||
# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5
|
||||
|
||||
# ifdef IS_IN_libpthread
|
||||
# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel)
|
||||
# define CENABLE bl __pthread_enable_asynccancel@local
|
||||
# define CDISABLE bl __pthread_disable_asynccancel@local
|
||||
# elif !defined NOT_IN_libc
|
||||
# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel)
|
||||
# define CENABLE bl __libc_enable_asynccancel@local
|
||||
# define CDISABLE bl __libc_disable_asynccancel@local
|
||||
# else
|
||||
# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel)
|
||||
# define CENABLE bl __librt_enable_asynccancel@local
|
||||
# define CDISABLE bl __librt_disable_asynccancel@local
|
||||
# endif
|
||||
|
||||
# ifdef HAVE_TLS_SUPPORT
|
||||
|
@ -69,7 +69,7 @@ ENTRY (__vfork)
|
||||
bnslr+
|
||||
|
||||
.Lsyscall_error:
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
#endif
|
||||
|
||||
PSEUDO_END (__vfork)
|
||||
|
@ -1,3 +1,7 @@
|
||||
2005-05-22 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* locales/mn_MN: Update. Patch by Sanlig Badral <s_badral@yahoo.com>.
|
||||
|
||||
2005-04-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* SUPPORTED: Add UTF-8 locales where UTF-8 was not already supported.
|
||||
|
@ -1,25 +1,27 @@
|
||||
comment_char %
|
||||
escape_char /
|
||||
comment_char %
|
||||
% Mongolian language (cyrillic) locale for Mongolia
|
||||
% Sanlig Badral <badral@chinggis.com>
|
||||
% Revision: 0.9 (2003-2-27)
|
||||
% Revision: 1.0 (2005-5-21)
|
||||
% Charsets: UTF-8
|
||||
% Distribution and use is free, also
|
||||
% for commercial purposes.
|
||||
|
||||
LC_IDENTIFICATION
|
||||
title "Mongolian locale for Mongolia"
|
||||
source "OPENMN"
|
||||
source "Sanlig Badral"
|
||||
address ""
|
||||
contact ""
|
||||
email "bug-glibc-locales@gnu.org"
|
||||
email "badral@chinggis.com"
|
||||
tel ""
|
||||
fax ""
|
||||
language "Mongolian"
|
||||
territory "Mongolia"
|
||||
revision "0.9"
|
||||
date "2003-02-27"
|
||||
|
||||
revision "1.0"
|
||||
date "2005-05-21"
|
||||
audience "general"
|
||||
application "GNU locale"
|
||||
%
|
||||
category "mn_MN:2000";LC_IDENTIFICATION
|
||||
category "mn_MN:2000";LC_CTYPE
|
||||
category "mn_MN:2000";LC_COLLATE
|
||||
@ -64,6 +66,82 @@ END LC_COLLATE
|
||||
|
||||
LC_CTYPE
|
||||
copy "i18n"
|
||||
translit_start
|
||||
include "translit_combining";""
|
||||
% cyrillic -> latin for mongolian
|
||||
% CYRILLIC CAPITAL LETTERS IN ALPHABETICAL ORDER.
|
||||
<U0410> "<U0041>"
|
||||
<U0411> "<U0042>"
|
||||
<U0412> "<U0056>"
|
||||
<U0413> "<U0047>"
|
||||
<U0414> "<U0044>"
|
||||
<U0415> "<U0059><U0065>" % Ye
|
||||
<U0401> "<U0059><U006F>" % Yo
|
||||
<U0416> "<U004A>"
|
||||
<U0417> "<U005A>"
|
||||
<U0418> "<U0049>"
|
||||
<U0419> "<U0049>"
|
||||
<U041A> "<U004B>"
|
||||
<U041B> "<U004C>"
|
||||
<U041C> "<U004D>"
|
||||
<U041D> "<U004E>"
|
||||
<U041E> "<U004F>"
|
||||
<U04E8> "<U004F><U0065>" % Oe
|
||||
<U041F> "<U0050>"
|
||||
<U0420> "<U0052>"
|
||||
<U0421> "<U0053>"
|
||||
<U0422> "<U0054>"
|
||||
<U0423> "<U0055>"
|
||||
<U04AE> "<U0055><U0065>" % Ue
|
||||
<U0424> "<U0046>"
|
||||
<U0425> "<U0048>"
|
||||
<U0426> "<U0043>"
|
||||
<U0427> "<U0043><U0068>" % Ch
|
||||
<U0428> "<U0053><U0068>" % Sh
|
||||
<U0429> "<U0053><U0068>" % Sh
|
||||
<U042A> "<U0022>" % "
|
||||
<U042B> "<U0059>"
|
||||
<U042C> "<U0027>" % '
|
||||
<U042D> "<U0045>"
|
||||
<U042E> "<U0059><U0075>" % Yu
|
||||
<U042F> "<U0059><U0061>" % Ya
|
||||
% CYRILLIC SMALL LETTERS IN ALPHABETICAL ORDER.
|
||||
<U0430> "<U0061>"
|
||||
<U0431> "<U0062>"
|
||||
<U0432> "<U0076>"
|
||||
<U0433> "<U0067>"
|
||||
<U0434> "<U0064>"
|
||||
<U0435> "<U0079><U0065>" %ye
|
||||
<U0451> "<U0079><U006F>" %yo
|
||||
<U0436> "<U006A>"
|
||||
<U0437> "<U007A>"
|
||||
<U0438> "<U0069>"
|
||||
<U0439> "<U0069>"
|
||||
<U043A> "<U006B>"
|
||||
<U043B> "<U006C>"
|
||||
<U043C> "<U006D>"
|
||||
<U043D> "<U006E>"
|
||||
<U043E> "<U006F>"
|
||||
<U04E9> "<U006F><U0065>" % oe
|
||||
<U043F> "<U0070>"
|
||||
<U0440> "<U0072>"
|
||||
<U0441> "<U0073>"
|
||||
<U0442> "<U0074>"
|
||||
<U0443> "<U0075>"
|
||||
<U04AF> "<U0075><U0065>" % ue
|
||||
<U0444> "<U0066>"
|
||||
<U0445> "<U0068>"
|
||||
<U0446> "<U0043>"
|
||||
<U0447> "<U0063><U0068>" % ch
|
||||
<U0448> "<U0073><U0068>" % sh
|
||||
<U0449> "<U0073><U0068>" % sh
|
||||
<U044A> "<U0022>" % "
|
||||
<U044B> "<U0079>"
|
||||
<U044C> "<U0027>" % '
|
||||
<U044D> "<U0065>"
|
||||
<U044E> "<U0079><U0075>" % yu
|
||||
<U044F> "<U0079><U0061>" % ya
|
||||
translit_end
|
||||
END LC_CTYPE
|
||||
|
||||
LC_MONETARY
|
||||
@ -106,28 +184,28 @@ day "<U041D><U044F><U043C>";/
|
||||
"<U0411><U0430><U0430><U0441><U0430><U043D>";/
|
||||
"<U0411><U044F><U043C><U0431><U0430>"
|
||||
% Abbreviated month names (%b)
|
||||
abmon "<U0031><U002D><U0440>";"<U0032><U002D><U0440>";/
|
||||
"<U0033><U002D><U0440>";"<U0034><U002D><U0440>";/
|
||||
"<U0035><U002D><U0440>";"<U0036><U002D><U0440>";/
|
||||
"<U0037><U002D><U0440>";"<U0038><U002D><U0440>";/
|
||||
"<U0039><U002D><U0440>";"<U0031><U0030><U002D><U0440>";/
|
||||
"<U0031><U0031><U002D><U0440>";"<U0031><U0032><U002D><U0440>"
|
||||
abmon "<U0425><U0443><U043B>";"<U04AE><U0445><U044D>";/
|
||||
"<U0411><U0430><U0440>";"<U0422><U0443><U0443>";/
|
||||
"<U041B><U0443><U0443>";"<U041C><U043E><U0433>";/
|
||||
"<U041C><U043E><U0440>";"<U0425><U043E><U043D>";/
|
||||
"<U0411><U0438><U0447>";"<U0422><U0430><U0445>";/
|
||||
"<U041D><U043E><U0445>";"<U0413><U0430><U0445>"
|
||||
% Full month names (%B)
|
||||
mon "<U041D><U044D><U0433><U0434><U04AF><U0433><U044D><U044D><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0425><U043E><U0451><U0440><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0413><U0443><U0440><U0430><U0432><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0414><U04E9><U0440><U04E9><U0432><U0434><U04AF><U0433><U044D><U044D><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0422><U0430><U0432><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0417><U0443><U0440><U0433><U0430><U0430><U0434><U0443><U0433><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0414><U043E><U043B><U043E><U043E><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U041D><U0430><U0439><U043C><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0415><U0441><U0434><U04AF><U0433><U044D><U044D><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0410><U0440><U0430><U0432><U0434><U0443><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0410><U0440><U0432><U0430><U043D><U043D><U044D><U0433><U0434><U04AF><U0433><U044D><U044D><U0440><U0020><U0441><U0430><U0440>";/
|
||||
"<U0410><U0440><U0432><U0430><U043D><U0445><U043E><U0451><U0440><U0434><U0433><U0430><U0430><U0440><U0020><U0441><U0430><U0440>"
|
||||
mon "<U0425><U0443><U043B><U0433><U0430><U043D><U0430><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U04AE><U0445><U044D><U0440><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0411><U0430><U0440><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0422><U0443><U0443><U043B><U0430><U0439><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U041B><U0443><U0443><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U041C><U043E><U0433><U043E><U0439><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U041C><U043E><U0440><U044C><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0425><U043E><U043D><U044C><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0411><U0438><U0447><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0422><U0430><U0445><U0438><U0430><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U041D><U043E><U0445><U043E><U0439><U0020><U0441><U0430><U0440><U044B><U043D>";/
|
||||
"<U0413><U0430><U0445><U0430><U0439><U0020><U0441><U0430><U0440><U044B><U043D>"
|
||||
% Appropriate date and time representation
|
||||
% "%a %d %b %Y %T %Z"
|
||||
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
|
||||
% "%Y %b %d, %a %T"
|
||||
d_t_fmt "<U0025><U0059><U0020><U0025><U0062><U0020><U0025><U0064><U002C><U0020><U0025><U0061><U0020><U0025><U0054>"
|
||||
|
||||
% Appropriate date representation
|
||||
% "%Y.%m.%d"
|
||||
@ -139,8 +217,9 @@ t_fmt "<U0025><U0054>"
|
||||
am_pm "";""
|
||||
t_fmt_ampm ""
|
||||
% Full date and time representation
|
||||
% "%a %b %e %H:%M:%S %Z %Y"
|
||||
date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
|
||||
% "%Z %Y ony %B %e, %a %H:%M:%S"
|
||||
date_fmt "<U0025><U005A><U0020><U0025><U0059><U0020><U043E><U043D><U044B><U0020><U0025><U0042><U0020>";/
|
||||
"<U0025><U0065><U002C><U0020><U0025><U0061><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
|
||||
END LC_TIME
|
||||
|
||||
LC_MESSAGES
|
||||
@ -157,7 +236,6 @@ END LC_PAPER
|
||||
LC_NAME
|
||||
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
|
||||
<U0025><U006D><U0025><U0074><U0025><U0066>"
|
||||
|
||||
name_miss "<U0425><U0430><U0442><U0430><U0433><U0442><U0430><U0439>"
|
||||
name_mr "<U041D><U043E><U0451><U043D>"
|
||||
name_mrs "<U0425><U0430><U0442><U0430><U0433><U0442><U0430><U0439>"
|
||||
@ -170,7 +248,6 @@ postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
|
||||
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
|
||||
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
|
||||
<U004E><U0025><U0063><U0025><U004E>"
|
||||
|
||||
country_name "<U004D><U006F><U006E><U0067><U006F><U006C><U0069><U0061>"
|
||||
country_post "<U004D><U004E>"
|
||||
country_ab2 "<U004D><U004E>"
|
||||
|
@ -1,3 +1,8 @@
|
||||
2005-05-17 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
|
||||
all occurrences of JUMPTARGET. Instead append @local to labels.
|
||||
|
||||
2005-05-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
|
||||
@ -9,6 +14,12 @@
|
||||
* sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
|
||||
Likewise.
|
||||
|
||||
2005-05-19 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
|
||||
__sync_val_compare_and_swap, not explicit _si variant.
|
||||
* sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
|
||||
|
||||
2005-05-03 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #915]
|
||||
|
@ -25,7 +25,7 @@ pthread_spin_lock (lock)
|
||||
{
|
||||
int *p = (int *) lock;
|
||||
|
||||
while (__builtin_expect (__sync_val_compare_and_swap_si (p, 0, 1), 0))
|
||||
while (__builtin_expect (__sync_val_compare_and_swap (p, 0, 1), 0))
|
||||
{
|
||||
/* Spin without using the atomic instruction. */
|
||||
do
|
||||
|
@ -24,5 +24,5 @@ int
|
||||
pthread_spin_trylock (lock)
|
||||
pthread_spinlock_t *lock;
|
||||
{
|
||||
return __sync_val_compare_and_swap_si ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
|
||||
return __sync_val_compare_and_swap ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
|
||||
}
|
||||
|
@ -85,14 +85,14 @@
|
||||
# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5
|
||||
|
||||
# ifdef IS_IN_libpthread
|
||||
# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel)
|
||||
# define CENABLE bl __pthread_enable_asynccancel@local
|
||||
# define CDISABLE bl __pthread_disable_asynccancel@local
|
||||
# elif !defined NOT_IN_libc
|
||||
# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel)
|
||||
# define CENABLE bl __libc_enable_asynccancel@local
|
||||
# define CDISABLE bl __libc_disable_asynccancel@local
|
||||
# elif defined IS_IN_librt
|
||||
# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel)
|
||||
# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel)
|
||||
# define CENABLE bl __librt_enable_asynccancel@local
|
||||
# define CDISABLE bl __librt_disable_asynccancel@local
|
||||
# else
|
||||
# error Unsupported library
|
||||
# endif
|
||||
|
@ -52,12 +52,12 @@ typedef uintmax_t uatomic_max_t;
|
||||
(abort (), 0)
|
||||
|
||||
#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
|
||||
(!__sync_bool_compare_and_swap_si ((void *) (mem), (int) (long) (oldval), \
|
||||
(int) (long) (newval)))
|
||||
(!__sync_bool_compare_and_swap ((mem), (int) (long) (oldval), \
|
||||
(int) (long) (newval)))
|
||||
|
||||
#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
|
||||
(!__sync_bool_compare_and_swap_di ((void *) (mem), (long) (oldval), \
|
||||
(long) (newval)))
|
||||
(!__sync_bool_compare_and_swap ((mem), (long) (oldval), \
|
||||
(long) (newval)))
|
||||
|
||||
#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
|
||||
(abort (), (__typeof (*mem)) 0)
|
||||
@ -66,12 +66,11 @@ typedef uintmax_t uatomic_max_t;
|
||||
(abort (), (__typeof (*mem)) 0)
|
||||
|
||||
#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
|
||||
__sync_val_compare_and_swap_si ((void *) (mem), (int) (long) (oldval), \
|
||||
(int) (long) (newval))
|
||||
__sync_val_compare_and_swap ((mem), (int) (long) (oldval), \
|
||||
(int) (long) (newval))
|
||||
|
||||
#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
|
||||
__sync_val_compare_and_swap_di ((void *) (mem), (long) (oldval), \
|
||||
(long) (newval))
|
||||
__sync_val_compare_and_swap ((mem), (long) (oldval), (long) (newval))
|
||||
|
||||
/* Atomically store newval and return the old value. */
|
||||
#define atomic_exchange_acq(mem, value) \
|
||||
@ -80,15 +79,9 @@ typedef uintmax_t uatomic_max_t;
|
||||
#define atomic_exchange_rel(mem, value) \
|
||||
(__sync_synchronize (), __sync_lock_test_and_set (mem, value))
|
||||
|
||||
|
||||
#define atomic_exchange_and_add(mem, value) \
|
||||
({ __typeof (*mem) __result; \
|
||||
if (sizeof (*mem) == 4) \
|
||||
__result = __sync_fetch_and_add_si ((void *) (mem), (int) (value)); \
|
||||
else if (sizeof (*mem) == 8) \
|
||||
__result = __sync_fetch_and_add_di ((void *) (mem), (long) (value)); \
|
||||
else \
|
||||
abort (); \
|
||||
__result = __sync_fetch_and_add ((mem), (int) (value)); \
|
||||
__result; })
|
||||
|
||||
#define atomic_decrement_if_positive(mem) \
|
||||
|
@ -26,7 +26,7 @@
|
||||
/* Build a non-versioned object for rtld-*. */
|
||||
ENTRY (BP_SYM (_setjmp))
|
||||
li r4,0 /* Set second argument to 0. */
|
||||
b JUMPTARGET(BP_SYM (__sigsetjmp))
|
||||
b BP_SYM (__sigsetjmp@local)
|
||||
END (BP_SYM (_setjmp))
|
||||
libc_hidden_def (_setjmp)
|
||||
#else
|
||||
@ -37,7 +37,7 @@ symbol_version (__novmx_setjmp,_setjmp,GLIBC_2.0);
|
||||
|
||||
ENTRY (BP_SYM (__novmx_setjmp))
|
||||
li r4,0 /* Set second argument to 0. */
|
||||
b JUMPTARGET(BP_SYM (__novmx__sigsetjmp))
|
||||
b BP_SYM (__novmx__sigsetjmp@local)
|
||||
END (BP_SYM (__novmx_setjmp))
|
||||
libc_hidden_def (__novmx_setjmp)
|
||||
# endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) */
|
||||
@ -48,12 +48,12 @@ default_symbol_version (__vmx_setjmp,_setjmp,GLIBC_2.3.4)
|
||||
if HAVE_CLEANUP_JMP_BUF is defined */
|
||||
ENTRY (BP_SYM (__GI__setjmp))
|
||||
li r4,0 /* Set second argument to 0. */
|
||||
b JUMPTARGET(BP_SYM (__vmx__sigsetjmp))
|
||||
b BP_SYM (__vmx__sigsetjmp@local)
|
||||
END (BP_SYM (__GI__setjmp))
|
||||
|
||||
ENTRY (BP_SYM (__vmx_setjmp))
|
||||
li r4,0 /* Set second argument to 0. */
|
||||
b JUMPTARGET(BP_SYM (__vmx__sigsetjmp))
|
||||
b BP_SYM (__vmx__sigsetjmp@local)
|
||||
END (BP_SYM (__vmx_setjmp))
|
||||
libc_hidden_def (__vmx_setjmp)
|
||||
#endif /* !NOT_IN_libc */
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
ENTRY (__novmxsetjmp)
|
||||
li r4,1 /* Set second argument to 1. */
|
||||
b JUMPTARGET (__novmx__sigsetjmp)
|
||||
b __novmx__sigsetjmp@local
|
||||
END (__novmxsetjmp)
|
||||
strong_alias (__novmxsetjmp, __novmx__setjmp)
|
||||
symbol_version (__novmxsetjmp, setjmp, GLIBC_2.0)
|
||||
@ -34,7 +34,7 @@ symbol_version (__novmxsetjmp, setjmp, GLIBC_2.0)
|
||||
|
||||
ENTRY (__vmxsetjmp)
|
||||
li r4,1 /* Set second argument to 1. */
|
||||
b JUMPTARGET (__vmx__sigsetjmp)
|
||||
b __vmx__sigsetjmp@local
|
||||
END (__vmxsetjmp)
|
||||
strong_alias (__vmxsetjmp, __vmx__setjmp)
|
||||
strong_alias (__vmx__setjmp, __setjmp)
|
||||
|
@ -19,19 +19,10 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type TWO52.0,@object
|
||||
.size TWO52.0,8
|
||||
TWO52.0:
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**52 */
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.long 0x59800000
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__ceil)
|
||||
@ -42,10 +33,10 @@ ENTRY (__ceil)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp13,0(r9)
|
||||
lfs fp13,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp13,.LC0@l(r9)
|
||||
lfs fp13,.LC0@l(r9)
|
||||
#endif
|
||||
fabs fp0,fp1
|
||||
fsub fp12,fp13,fp13 /* generate 0.0 */
|
||||
|
@ -19,13 +19,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
.type TWO23.0,@object
|
||||
.size TWO23.0,4
|
||||
TWO23.0:
|
||||
.long 0x4b000000
|
||||
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**23 */
|
||||
|
@ -19,19 +19,10 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type TWO52.0,@object
|
||||
.size TWO52.0,8
|
||||
TWO52.0:
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**52 */
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.long 0x59800000
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__floor)
|
||||
@ -42,10 +33,10 @@ ENTRY (__floor)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp13,0(r9)
|
||||
lfs fp13,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp13,.LC0@l(r9)
|
||||
lfs fp13,.LC0@l(r9)
|
||||
#endif
|
||||
fabs fp0,fp1
|
||||
fsub fp12,fp13,fp13 /* generate 0.0 */
|
||||
|
@ -19,13 +19,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
.type TWO23.0,@object
|
||||
.size TWO23.0,4
|
||||
TWO23.0:
|
||||
.long 0x4b000000
|
||||
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**23 */
|
||||
|
@ -19,27 +19,12 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type NEGZERO.0,@object
|
||||
.size NEGZERO.0,8
|
||||
NEGZERO.0:
|
||||
.long 0x00000000
|
||||
.long 0
|
||||
.type POINTFIVE.0,@object
|
||||
.size POINTFIVE.0,8
|
||||
POINTFIVE.0:
|
||||
.long 0x3fe00000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.align 2
|
||||
.LC0: /* 0.0 */
|
||||
.long 0x00000000
|
||||
.long 0
|
||||
.LC1: /* 0.5 */
|
||||
.long 0x3fe00000
|
||||
.long 0
|
||||
.long 0x3f000000
|
||||
|
||||
.section ".text"
|
||||
|
||||
@ -60,17 +45,16 @@ ENTRY (__lround)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp12,0(r9)
|
||||
lfs fp12,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp12,.LC0@l(r9)
|
||||
lfs fp12,.LC0@l(r9)
|
||||
#endif
|
||||
#ifdef SHARED
|
||||
lwz r9,.LC1@got(10)
|
||||
lfd fp10,0(r9)
|
||||
lfs fp10,.LC1-.LC0(r9)
|
||||
#else
|
||||
lis r9,.LC1@ha
|
||||
lfd fp10,.LC1@l(r9)
|
||||
lfs fp10,.LC1@l(r9)
|
||||
#endif
|
||||
fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
|
||||
ble- cr6,.L4
|
||||
@ -78,8 +62,8 @@ ENTRY (__lround)
|
||||
.L9:
|
||||
fctiwz fp2,fp1 /* Convert To Integer DW lround toward 0. */
|
||||
stfd fp2,-8(r1)
|
||||
nop /* Insure the following load is in a different dispatch group */
|
||||
nop /* to avoid pipe stall on POWER4&5. */
|
||||
nop /* Ensure the following load is in a different dispatch */
|
||||
nop /* group to avoid pipe stall on POWER4&5. */
|
||||
nop
|
||||
lwz r3,-4(r1)
|
||||
blr
|
||||
|
@ -22,19 +22,10 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type TWO52.0,@object
|
||||
.size TWO52.0,8
|
||||
TWO52.0:
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**52 */
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.long 0x59800000
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__rint)
|
||||
@ -44,10 +35,10 @@ ENTRY (__rint)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp13,0(r9)
|
||||
lfs fp13,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp13,.LC0@l(r9)
|
||||
lfs fp13,.LC0@l(r9)
|
||||
#endif
|
||||
fabs fp0,fp1
|
||||
fsub fp12,fp13,fp13 /* generate 0.0 */
|
||||
|
@ -19,14 +19,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
.type TWO23.0,@object
|
||||
.size TWO23.0,4
|
||||
TWO23.0:
|
||||
.long 0x4b000000
|
||||
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**23 */
|
||||
|
@ -19,27 +19,12 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type TWO52.0,@object
|
||||
.size TWO52.0,8
|
||||
TWO52.0:
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.type POINTFIVE.0,@object
|
||||
.size POINTFIVE.0,8
|
||||
POINTFIVE.0:
|
||||
.long 0x3fe00000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.align 2
|
||||
.LC0: /* 2**52 */
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.long 0x59800000
|
||||
.LC1: /* 0.5 */
|
||||
.long 0x3fe00000
|
||||
.long 0
|
||||
.long 0x3f000000
|
||||
|
||||
/* double [fp1] round (double x [fp1])
|
||||
IEEE 1003.1 round function. IEEE specifies "round to the nearest
|
||||
@ -51,6 +36,7 @@ POINTFIVE.0:
|
||||
"Round toward Zero" mode and round by adding +-0.5 before rounding
|
||||
to the integer value. */
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__round)
|
||||
mffs fp11 /* Save current FPU rounding mode. */
|
||||
#ifdef SHARED
|
||||
@ -59,10 +45,10 @@ ENTRY (__round)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp13,0(r9)
|
||||
lfs fp13,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp13,.LC0@l(r9)
|
||||
lfs fp13,.LC0@l(r9)
|
||||
#endif
|
||||
fabs fp0,fp1
|
||||
fsub fp12,fp13,fp13 /* generate 0.0 */
|
||||
@ -71,11 +57,10 @@ ENTRY (__round)
|
||||
bnllr- cr7
|
||||
mtfsfi 7,1 /* Set rounding mode toward 0. */
|
||||
#ifdef SHARED
|
||||
lwz r9,.LC1@got(10)
|
||||
lfd fp10,0(r9)
|
||||
lfs fp10,.LC1-.LC0(r9)
|
||||
#else
|
||||
lis r9,.LC1@ha
|
||||
lfd fp10,.LC1@l(r9)
|
||||
lfs fp10,.LC1@l(r9)
|
||||
#endif
|
||||
ble- cr6,.L4
|
||||
fadd fp1,fp1,fp10 /* x+= 0.5; */
|
||||
|
@ -19,19 +19,8 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
.type TWO23.0,@object
|
||||
.size TWO23.0,4
|
||||
TWO23.0:
|
||||
.long 0x4b000000
|
||||
.type POINTFIVE.0,@object
|
||||
.size POINTFIVE.0,4
|
||||
POINTFIVE.0:
|
||||
.long 0x3f000000
|
||||
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 2
|
||||
.LC0: /* 2**23 */
|
||||
.long 0x4b000000
|
||||
.LC1: /* 0.5 */
|
||||
@ -47,6 +36,7 @@ POINTFIVE.0:
|
||||
"Round toward Zero" mode and round by adding +-0.5 before rounding
|
||||
to the integer value. */
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__roundf )
|
||||
mffs fp11 /* Save current FPU rounding mode. */
|
||||
#ifdef SHARED
|
||||
@ -67,8 +57,7 @@ ENTRY (__roundf )
|
||||
bnllr- cr7
|
||||
mtfsfi 7,1 /* Set rounding mode toward 0. */
|
||||
#ifdef SHARED
|
||||
lwz r9,.LC1@got(10)
|
||||
lfs fp10,0(r9)
|
||||
lfs fp10,.LC1-.LC0(r9)
|
||||
#else
|
||||
lis r9,.LC1@ha
|
||||
lfs fp10,.LC1@l(r9)
|
||||
|
@ -19,19 +19,10 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 3
|
||||
.type TWO52.0,@object
|
||||
.size TWO52.0,8
|
||||
TWO52.0:
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
|
||||
.section .rodata.cst8,"aM",@progbits,8
|
||||
.align 3
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**52 */
|
||||
.long 0x43300000
|
||||
.long 0
|
||||
.long 0x59800000
|
||||
|
||||
/* double [fp1] trunc (double x [fp1])
|
||||
IEEE 1003.1 trunc function. IEEE specifies "trunc to the integer
|
||||
@ -40,6 +31,7 @@ TWO52.0:
|
||||
We set "round toward Zero" mode and trunc by adding +-2**52 then
|
||||
subtracting +-2**52. */
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__trunc)
|
||||
mffs fp11 /* Save current FPU rounding mode. */
|
||||
#ifdef SHARED
|
||||
@ -48,10 +40,10 @@ ENTRY (__trunc)
|
||||
mflr r10
|
||||
lwz r9,.LC0@got(10)
|
||||
mtlr r11
|
||||
lfd fp13,0(r9)
|
||||
lfs fp13,0(r9)
|
||||
#else
|
||||
lis r9,.LC0@ha
|
||||
lfd fp13,.LC0@l(r9)
|
||||
lfs fp13,.LC0@l(r9)
|
||||
#endif
|
||||
fabs fp0,fp1
|
||||
fsub fp12,fp13,fp13 /* generate 0.0 */
|
||||
|
@ -19,13 +19,6 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
.type TWO23.0,@object
|
||||
.size TWO23.0,2
|
||||
TWO23.0:
|
||||
.long 0x4b000000
|
||||
|
||||
.section .rodata.cst4,"aM",@progbits,4
|
||||
.align 2
|
||||
.LC0: /* 2**23 */
|
||||
@ -38,6 +31,7 @@ TWO23.0:
|
||||
We set "round toward Zero" mode and trunc by adding +-2**23 then
|
||||
subtracting +-2**23. */
|
||||
|
||||
.section ".text"
|
||||
ENTRY (__truncf)
|
||||
mffs fp11 /* Save current FPU rounding mode. */
|
||||
#ifdef SHARED
|
||||
|
@ -164,5 +164,5 @@ L(aligned_save_vmx):
|
||||
stvx 31,0,r6
|
||||
L(no_vmx):
|
||||
#endif
|
||||
b JUMPTARGET (BP_SYM (__sigjmp_save))
|
||||
b BP_SYM (__sigjmp_save@local)
|
||||
END (BP_SYM (__sigsetjmp))
|
||||
|
@ -140,7 +140,7 @@ L(nondcbz):
|
||||
|
||||
/* We can't use dcbz here as we don't know the cache line size. We can
|
||||
use "data cache block touch for store", which is safe. */
|
||||
L(c3): dcbtst rNEG64, rMEMP
|
||||
L(c3): dcbtst rNEG64, rMEMP
|
||||
stw rCHR, -4(rMEMP)
|
||||
stw rCHR, -8(rMEMP)
|
||||
stw rCHR, -12(rMEMP)
|
||||
@ -166,7 +166,7 @@ L(cloopdone):
|
||||
add rMEMP, rMEMP, rALIGN
|
||||
b L(medium_tail2) /* 72nd instruction from .align */
|
||||
|
||||
.align 5
|
||||
.align 5
|
||||
nop
|
||||
/* Clear cache lines of memory in 128-byte chunks.
|
||||
This code is optimized for processors with 32-byte cache lines.
|
||||
@ -200,7 +200,7 @@ L(zloop):
|
||||
beqlr cr5
|
||||
b L(medium_tail2)
|
||||
|
||||
.align 5
|
||||
.align 5
|
||||
L(small):
|
||||
/* Memset of 4 bytes or less. */
|
||||
cmplwi cr5, rLEN, 1
|
||||
@ -218,7 +218,7 @@ L(small):
|
||||
blr
|
||||
|
||||
/* Memset of 0-31 bytes. */
|
||||
.align 5
|
||||
.align 5
|
||||
L(medium):
|
||||
cmplwi cr1, rLEN, 16
|
||||
L(medium_tail2):
|
||||
@ -258,70 +258,70 @@ L(medium_28t):
|
||||
|
||||
L(checklinesize):
|
||||
#ifdef SHARED
|
||||
mflr rTMP
|
||||
mflr rTMP
|
||||
/* If the remaining length is less the 32 bytes then don't bother getting
|
||||
the cache line size. */
|
||||
the cache line size. */
|
||||
beq L(medium)
|
||||
/* Establishes GOT addressability so we can load __cache_line_size
|
||||
from static. This value was set from the aux vector during startup. */
|
||||
bl _GLOBAL_OFFSET_TABLE_@local-4
|
||||
mflr rGOT
|
||||
lwz rGOT,__cache_line_size@got(rGOT)
|
||||
lwz rCLS,0(rGOT)
|
||||
mtlr rTMP
|
||||
bl _GLOBAL_OFFSET_TABLE_@local-4
|
||||
mflr rGOT
|
||||
lwz rGOT,__cache_line_size@got(rGOT)
|
||||
lwz rCLS,0(rGOT)
|
||||
mtlr rTMP
|
||||
#else
|
||||
/* Load __cache_line_size from static. This value was set from the
|
||||
aux vector during startup. */
|
||||
lis rCLS,__cache_line_size@ha
|
||||
lis rCLS,__cache_line_size@ha
|
||||
/* If the remaining length is less the 32 bytes then don't bother getting
|
||||
the cache line size. */
|
||||
the cache line size. */
|
||||
beq L(medium)
|
||||
lwz rCLS,__cache_line_size@l(rCLS)
|
||||
lwz rCLS,__cache_line_size@l(rCLS)
|
||||
#endif
|
||||
|
||||
/*If the cache line size was not set then goto to L(nondcbz), which is
|
||||
safe for any cache line size. */
|
||||
cmplwi cr1,rCLS,0
|
||||
/* If the cache line size was not set then goto to L(nondcbz), which is
|
||||
safe for any cache line size. */
|
||||
cmplwi cr1,rCLS,0
|
||||
beq cr1,L(nondcbz)
|
||||
|
||||
/* If the cache line size is 32 bytes then goto to L(zloopstart),
|
||||
which is coded specificly for 32-byte lines (and 601). */
|
||||
cmplwi cr1,rCLS,32
|
||||
which is coded specificly for 32-byte lines (and 601). */
|
||||
cmplwi cr1,rCLS,32
|
||||
beq cr1,L(zloopstart)
|
||||
|
||||
/* Now we know the cache line size and it is not 32-bytes. However
|
||||
we may not yet be aligned to the cache line and may have a partial
|
||||
line to fill. Touch it 1st to fetch the cache line. */
|
||||
dcbtst 0,rMEMP
|
||||
we may not yet be aligned to the cache line and may have a partial
|
||||
line to fill. Touch it 1st to fetch the cache line. */
|
||||
dcbtst 0,rMEMP
|
||||
|
||||
addi rCLM,rCLS,-1
|
||||
addi rCLM,rCLS,-1
|
||||
L(getCacheAligned):
|
||||
cmplwi cr1,rLEN,32
|
||||
and. rTMP,rCLM,rMEMP
|
||||
blt cr1,L(handletail32)
|
||||
beq L(cacheAligned)
|
||||
cmplwi cr1,rLEN,32
|
||||
and. rTMP,rCLM,rMEMP
|
||||
blt cr1,L(handletail32)
|
||||
beq L(cacheAligned)
|
||||
/* We are not aligned to start of a cache line yet. Store 32-byte
|
||||
of data and test again. */
|
||||
addi rMEMP,rMEMP,32
|
||||
addi rLEN,rLEN,-32
|
||||
stw rCHR,-32(rMEMP)
|
||||
stw rCHR,-28(rMEMP)
|
||||
stw rCHR,-24(rMEMP)
|
||||
stw rCHR,-20(rMEMP)
|
||||
stw rCHR,-16(rMEMP)
|
||||
stw rCHR,-12(rMEMP)
|
||||
stw rCHR,-8(rMEMP)
|
||||
stw rCHR,-4(rMEMP)
|
||||
b L(getCacheAligned)
|
||||
addi rMEMP,rMEMP,32
|
||||
addi rLEN,rLEN,-32
|
||||
stw rCHR,-32(rMEMP)
|
||||
stw rCHR,-28(rMEMP)
|
||||
stw rCHR,-24(rMEMP)
|
||||
stw rCHR,-20(rMEMP)
|
||||
stw rCHR,-16(rMEMP)
|
||||
stw rCHR,-12(rMEMP)
|
||||
stw rCHR,-8(rMEMP)
|
||||
stw rCHR,-4(rMEMP)
|
||||
b L(getCacheAligned)
|
||||
|
||||
/* Now we are aligned to the cache line and can use dcbz. */
|
||||
L(cacheAligned):
|
||||
cmplw cr1,rLEN,rCLS
|
||||
blt cr1,L(handletail32)
|
||||
dcbz 0,rMEMP
|
||||
subf rLEN,rCLS,rLEN
|
||||
add rMEMP,rMEMP,rCLS
|
||||
b L(cacheAligned)
|
||||
cmplw cr1,rLEN,rCLS
|
||||
blt cr1,L(handletail32)
|
||||
dcbz 0,rMEMP
|
||||
subf rLEN,rCLS,rLEN
|
||||
add rMEMP,rMEMP,rCLS
|
||||
b L(cacheAligned)
|
||||
|
||||
/* We are here because; the cache line size was set, it was not
|
||||
32-bytes, and the remainder (rLEN) is now less than the actual cache
|
||||
@ -329,7 +329,7 @@ L(cacheAligned):
|
||||
store the remaining bytes. */
|
||||
L(handletail32):
|
||||
clrrwi. rALIGN, rLEN, 5
|
||||
b L(nondcbz)
|
||||
b L(nondcbz)
|
||||
|
||||
END (BP_SYM (memset))
|
||||
libc_hidden_builtin_def (memset)
|
||||
|
@ -62,7 +62,7 @@ ENTRY(_mcount)
|
||||
stw r10,40(r1)
|
||||
stw r4, 44(r1)
|
||||
stw r5, 8(r1)
|
||||
bl JUMPTARGET(__mcount_internal)
|
||||
bl __mcount_internal@local
|
||||
nop
|
||||
/* Restore the registers... */
|
||||
lwz r6, 8(r1)
|
||||
|
@ -55,5 +55,5 @@ ENTRY (BP_SYM (__sigsetjmp))
|
||||
stw r29,((JB_GPRS+15)*4)(3)
|
||||
stw r30,((JB_GPRS+16)*4)(3)
|
||||
stw r31,((JB_GPRS+17)*4)(3)
|
||||
b JUMPTARGET (BP_SYM (__sigjmp_save))
|
||||
b BP_SYM (__sigjmp_save@local)
|
||||
END (BP_SYM (__sigsetjmp))
|
||||
|
@ -124,7 +124,7 @@
|
||||
|
||||
#define PSEUDO_RET \
|
||||
bnslr+; \
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
#define ret PSEUDO_RET
|
||||
|
||||
#undef PSEUDO_END
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version.
|
||||
Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999-2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -100,7 +100,7 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
|
||||
SYSDEP_GETTIME;
|
||||
#endif
|
||||
|
||||
#ifndef HANDLED_REALTIME
|
||||
#ifdef HANDLED_REALTIME
|
||||
case CLOCK_REALTIME:
|
||||
HANDLE_REALTIME;
|
||||
break;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux version.
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -38,11 +38,11 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
|
||||
|
||||
# if !(__ASSUME_POSIX_CPU_TIMERS > 0)
|
||||
extern int __libc_missing_posix_cpu_timers attribute_hidden;
|
||||
# if !(__ASSUME_POSIX_TIMERS > 0)
|
||||
# if !(__ASSUME_POSIX_TIMERS > 0)
|
||||
extern int __libc_missing_posix_timers attribute_hidden;
|
||||
if (__libc_missing_posix_timers && !__libc_missing_posix_cpu_timers)
|
||||
__libc_missing_posix_cpu_timers = 1;
|
||||
# endif
|
||||
# endif
|
||||
if (!__libc_missing_posix_cpu_timers)
|
||||
# endif
|
||||
{
|
||||
@ -82,7 +82,7 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
|
||||
else
|
||||
return INTERNAL_SYSCALL_ERRNO (r, err);
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* We don't allow any process ID but our own. */
|
||||
if (pid != 0 && pid != getpid ())
|
||||
@ -96,8 +96,8 @@ clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#endif
|
||||
|
||||
/* We don't have a timer for that. */
|
||||
return ENOENT;
|
||||
#endif
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ ENTRY (BP_SYM (__brk))
|
||||
li r3,0
|
||||
blelr+
|
||||
li r3,ENOMEM
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (BP_SYM (__brk))
|
||||
|
||||
weak_alias (BP_SYM (__brk), BP_SYM (brk))
|
||||
|
@ -132,11 +132,11 @@ L(parent):
|
||||
#endif
|
||||
addi r1,r1,32
|
||||
bnslr+
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
|
||||
L(badargs):
|
||||
li r3,EINVAL
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (BP_SYM (__clone))
|
||||
|
||||
weak_alias (BP_SYM (__clone), BP_SYM (clone))
|
||||
|
@ -251,7 +251,7 @@ L(no_vec):
|
||||
stw r3,_UC_REGS_PTR(r12)
|
||||
addi r5,r12,_UC_SIGMASK
|
||||
li r3,SIG_BLOCK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
|
||||
lwz r0,_FRAME_LR_SAVE+16(r1)
|
||||
addi r1,r1,16
|
||||
@ -363,7 +363,7 @@ ENTRY(__novec_getcontext)
|
||||
addi r5,r3,_UC_SIGMASK - _UC_REG_SPACE
|
||||
li r4,0
|
||||
li r3,SIG_BLOCK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
|
||||
lwz r0,20(r1)
|
||||
addi r1,r1,16
|
||||
@ -384,7 +384,7 @@ compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
|
||||
compat_text_section
|
||||
ENTRY (__getcontext_stub)
|
||||
li r3,ENOSYS
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (__getcontext_stub)
|
||||
.previous
|
||||
|
||||
|
@ -101,7 +101,7 @@ ENTRY(__makecontext)
|
||||
L(exitcode):
|
||||
mr. r3,r31
|
||||
beq 4f
|
||||
bl JUMPTARGET(__setcontext)
|
||||
bl __setcontext@local
|
||||
4: bl HIDDEN_JUMPTARGET(exit)
|
||||
b 4b
|
||||
|
||||
@ -188,7 +188,7 @@ ENTRY(__novec_makecontext)
|
||||
L(novec_exitcode):
|
||||
mr. r3,r31
|
||||
beq 4f
|
||||
bl JUMPTARGET(__novec_setcontext)
|
||||
bl __novec_setcontext@local
|
||||
4: bl HIDDEN_JUMPTARGET(exit)
|
||||
b 4b
|
||||
|
||||
@ -206,7 +206,7 @@ compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
|
||||
compat_text_section
|
||||
ENTRY (__makecontext_stub)
|
||||
li r3,ENOSYS
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (__makecontext_stub)
|
||||
.previous
|
||||
|
||||
|
@ -52,7 +52,7 @@ ENTRY(__setcontext)
|
||||
li r5,0
|
||||
addi r4,r3,_UC_SIGMASK
|
||||
li r3,SIG_SETMASK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
cmpwi r3,0
|
||||
bne L(error_exit)
|
||||
|
||||
@ -295,7 +295,7 @@ ENTRY(__novec_setcontext)
|
||||
li r5,0
|
||||
addi r4,r3,_UC_SIGMASK
|
||||
li r3,SIG_SETMASK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
cmpwi r3,0
|
||||
bne L(novec_error_exit)
|
||||
|
||||
@ -405,7 +405,7 @@ compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
|
||||
compat_text_section
|
||||
ENTRY (__setcontext_stub)
|
||||
li r3,ENOSYS
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (__setcontext_stub)
|
||||
.previous
|
||||
|
||||
|
@ -249,7 +249,7 @@ L(no_vec):
|
||||
stw r3,_UC_REGS_PTR(r12)
|
||||
addi r5,r12,_UC_SIGMASK
|
||||
li r3,SIG_SETMASK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
cmpwi r3,0
|
||||
bne L(error_exit)
|
||||
|
||||
@ -579,7 +579,7 @@ ENTRY(__novec_swapcontext)
|
||||
addi r5,r3,_UC_SIGMASK - _UC_REG_SPACE
|
||||
addi r4,r4,_UC_SIGMASK
|
||||
li r3,SIG_SETMASK
|
||||
bl JUMPTARGET(__sigprocmask)
|
||||
bl __sigprocmask@local
|
||||
cmpwi r3,0
|
||||
bne L(novec_error_exit)
|
||||
|
||||
@ -706,7 +706,7 @@ compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
|
||||
compat_text_section
|
||||
ENTRY (__swapcontext_stub)
|
||||
li r3,ENOSYS
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
END (__swapcontext_stub)
|
||||
.previous
|
||||
|
||||
|
@ -50,7 +50,7 @@ ENTRY (__vfork)
|
||||
bnslr+
|
||||
|
||||
.Lsyscall_error:
|
||||
b JUMPTARGET(__syscall_error)
|
||||
b __syscall_error@local
|
||||
#endif
|
||||
|
||||
PSEUDO_END (__vfork)
|
||||
|
Loading…
x
Reference in New Issue
Block a user