mirror of git://sourceware.org/git/glibc.git
Updated to fedora-glibc-20080828T1623
This commit is contained in:
parent
2fb513c600
commit
315a43aa94
160
ChangeLog
160
ChangeLog
|
|
@ -1,3 +1,161 @@
|
|||
2008-08-26 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
[BZ #6860]
|
||||
* hurd/hurd/signal.h (HURD_MSGPORT_RPC): Fix a typo.
|
||||
|
||||
2008-07-18 Daniel Jacobowitz <dan@codesourcery.com>
|
||||
|
||||
* Makefile (check-data): Check data directory in add-ons.
|
||||
* elf/Makefile (check-data): Likewise.
|
||||
|
||||
2008-08-18 Roland McGrath <roland@redhat.com>
|
||||
|
||||
* configure.in (--with-cpu): Check compiler support for -march/-mcpu.
|
||||
* configure: Regenerated.
|
||||
* config.make.in (cflags-cpu): New substituted variable.
|
||||
(with-cpu): Variable removed.
|
||||
* Makeconfig (+cflags): Use $(cflags-cpu), not $(with-cpu).
|
||||
|
||||
2008-08-14 Ryan S. Arnold <rsa@us.ibm.com>
|
||||
|
||||
[BZ #6845]
|
||||
* sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new
|
||||
__signbitl definition and __LONG_DOUBLE_128__ guard from:
|
||||
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as
|
||||
redundant. Functions which call floating point assembler operations
|
||||
should go into a sysdeps powerpc/fpu directory.
|
||||
|
||||
2008-08-15 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_STACK.
|
||||
* sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
|
||||
|
||||
2008-08-14 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/x86_64/memset.S: Reduce size of tables for PIC.
|
||||
|
||||
* sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Undo all
|
||||
change related to AT_EXECFN. We cannot use that string.
|
||||
* sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove
|
||||
_dl_execfn member.
|
||||
* elf/dl-support.c: Remove _dl_execfn variable.
|
||||
(_dl_aux_init): Remove handling of AT_EXECFN.
|
||||
* elf/dl-sysdep.c (_dl_sysdep_start): Remove handling of AT_EXECFN.
|
||||
* elf/rtld.c (process_envvars): Remove use of __ASSUME_AT_EXECFN.
|
||||
|
||||
2008-08-13 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #6544]
|
||||
* libio/fmemopen.c: Implement binary mode. In this mode no NUL
|
||||
byte gets added to writes and seeks from the end use the length of
|
||||
the buffer and not the currently terminating NUL byte.
|
||||
|
||||
[BZ #6634]
|
||||
* login/utmp_file.c (getutent_r_file): Take additional parameter.
|
||||
Set to true if locking failed.
|
||||
(getutid_r_file): Adjust caller.
|
||||
(pututline_file): Likewise. Return NULL in this case.
|
||||
Patch mostly by halesh.s@gmail.com.
|
||||
|
||||
2008-08-12 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #6589]
|
||||
* sysdeps/unix/sysv/linux/ifaddrs.c (struct sockaddr_ll_max):
|
||||
Define.
|
||||
(struct ifaddrs_storage): Use it instead of sockaddr_ll.
|
||||
|
||||
2008-08-12 Ryan S. Arnold <rsa@us.ibm.com>
|
||||
|
||||
[BZ #6839]
|
||||
* sysdeps/powerpc/powerpc32/dl-machine.c (CHECK_STATIC_TLS): Remove
|
||||
macro since it is now available in elf/dynamic-link.h.
|
||||
|
||||
2008-08-12 Roland McGrath <roland@frob.com>
|
||||
|
||||
* hurd/hurd/signal.h (HURD_MSGPORT_RPC): Avoid -Wparenthesis triggers,
|
||||
in case used outside of libc.
|
||||
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
|
||||
2008-08-11 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* resolv/res_mkquery.c (res_nmkquery): Call ns_name_compress
|
||||
directly instead of going through dn_comp.
|
||||
|
||||
2008-08-11 Aurelien Jarno <aurel32@debian.org>
|
||||
|
||||
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock):
|
||||
Fix asm constraints.
|
||||
|
||||
2008-08-07 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #6790]
|
||||
* sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_PROBE): Define.
|
||||
(IPV6_PMTUDISC_PROBE): Likewise.
|
||||
|
||||
2008-08-07 Pete Eberlein <eberlein@us.ibm.com>
|
||||
|
||||
[BZ #6791]
|
||||
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h (PROT_SAO): Define.
|
||||
|
||||
2008-08-01 Steven Munroe <sjmunroe@us.ibm.com>
|
||||
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
|
||||
|
||||
[BZ #6817]
|
||||
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags):
|
||||
Added the members 'vsx' and 'arch_2_06'.
|
||||
(_dl_powerpc_platforms): Add the member 'power7'.
|
||||
* sysdeps/powerpc/dl-procinfo.h: Modify _DL_HWCAP_FIRST
|
||||
to reflect the changes required by VSX and ISA 2.06.
|
||||
Modify _DL_PLATFORMS_COUNT to reflect the addition of
|
||||
'power7'.
|
||||
Defined PPC_PLATFORM_POWER7.
|
||||
(_dl_string_platform): Add support for POWER7.
|
||||
* sysdeps/powerpc/sysdep.h: Define bit masks for VSX
|
||||
capability and ISA 2.06.
|
||||
|
||||
2008-08-07 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
[BZ #6824]
|
||||
* sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Use correct
|
||||
macro to detect use of 128 bit long double.
|
||||
Patch by Ryan S. Arnold <rsa@us.ibm.com>.
|
||||
|
||||
2008-08-05 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* scripts/gen-as-const.awk: Use 32-bit values on 32-bit platforms.
|
||||
|
||||
[BZ #5794]
|
||||
* sysdeps/i386/fpu/s_expm1l.S: Simply use exp implementation for large
|
||||
parameters.
|
||||
* sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
|
||||
Patch by Denys Vlasenko <dvlasenk@redhat.com>.
|
||||
|
||||
2008-08-03 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* nscd/connections.c (main_loop_poll): Pass a buffer which is
|
||||
guaranteed to be large enough to read inotify event. Ignore
|
||||
EAGAIN error. Better error message. Add branch predicition.
|
||||
(main_loop_epoll): Likewise.
|
||||
|
||||
2008-08-02 Roland McGrath <roland@frob.com>
|
||||
|
||||
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock):
|
||||
Add memory clobbers.
|
||||
|
||||
2008-08-02 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* manual/arith.texi: Avoid @strong{Note:}.
|
||||
* manual/creature.texi: Likewise.
|
||||
* manual/filesys.texi: Likewise.
|
||||
* manual/math.texi: Likewise.
|
||||
* manual/memory.texi: Likewise.
|
||||
* manual/resource.texi: Likewise.
|
||||
* manual/syslog.texi: Likewise.
|
||||
* manual/time.texi: Likewise.
|
||||
|
||||
* sysdeps/posix/clock_getres.c (hp_timing_getres): Remove inline
|
||||
to prevent warning.
|
||||
|
||||
2008-08-01 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/Versions: Fix changes due to old patch for
|
||||
|
|
@ -57,7 +215,7 @@
|
|||
* sysdeps/posix/getaddrinfo.c (gaih_inet): Raise size of initial
|
||||
buffer passed to NSS functions.
|
||||
|
||||
* nscd/connections.c (nscd_init): Type if preprocessor directive.
|
||||
* nscd/connections.c (nscd_init): Typo in preprocessor directive.
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PACCEPT):
|
||||
Define.
|
||||
|
|
|
|||
|
|
@ -643,7 +643,7 @@ ifeq "$(strip $(+cflags))" ""
|
|||
+cflags := $(default_cflags)
|
||||
endif # $(+cflags) == ""
|
||||
|
||||
+cflags += $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn) $(+merge-constants)
|
||||
+cflags += $(cflags-cpu) $(+gccwarn) $(+merge-constants)
|
||||
+gcc-nowarn := -w
|
||||
|
||||
# Don't duplicate options if we inherited variables from the parent.
|
||||
|
|
|
|||
4
Makefile
4
Makefile
|
|
@ -247,8 +247,8 @@ tests-clean:
|
|||
tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
|
||||
ifneq ($(CXX),no)
|
||||
check-data := $(firstword $(wildcard \
|
||||
$(foreach D,$(add-ons) scripts/data,\
|
||||
$(patsubst %,$D/c++-types-%.data,\
|
||||
$(foreach D,$(add-ons) scripts,\
|
||||
$(patsubst %,$D/data/c++-types-%.data,\
|
||||
$(abi-name) \
|
||||
$(addsuffix -$(config-os),\
|
||||
$(config-machine) \
|
||||
|
|
|
|||
10
NEWS
10
NEWS
|
|
@ -1,4 +1,4 @@
|
|||
GNU C Library NEWS -- history of user-visible changes. 2008-8-1
|
||||
GNU C Library NEWS -- history of user-visible changes. 2008-8-2
|
||||
Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
|
||||
See the end for copying conditions.
|
||||
|
||||
|
|
@ -28,8 +28,16 @@ Version 2.9
|
|||
* Implement "e" option for popen to open file descriptor with the
|
||||
close-on-exec flag set. Implemented by Ulrich Drepper.
|
||||
|
||||
* Implement "b" mode for fmemopen. In this mode writes writes don't
|
||||
implicitly add a NUL byte and seeks from the end of the buffer really
|
||||
use the buffer end, not the string length as the basis.
|
||||
Implemented by Ulrich Drepper.
|
||||
|
||||
* Many functions, exported and internal, now atomically set the close-on-exec
|
||||
flag when run on a sufficiently new kernel. Implemented by Ulrich Drepper.
|
||||
|
||||
* Sorting rules for some Indian languages (Kannada, Gurumukhi, Telugu)
|
||||
Implemented by Pravin Satpute.
|
||||
|
||||
Version 2.8
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ base-machine = @base_machine@
|
|||
config-vendor = @host_vendor@
|
||||
config-os = @host_os@
|
||||
config-sysdirs = @sysnames@
|
||||
with-cpu = @submachine@
|
||||
cflags-cpu = @libc_cv_cc_submachine@
|
||||
|
||||
defines = @DEFINES@
|
||||
sysincludes = @SYSINCLUDES@
|
||||
|
|
|
|||
|
|
@ -730,6 +730,7 @@ libc_cv_gnu89_inline
|
|||
libc_cv_have_initfini
|
||||
no_whole_archive
|
||||
exceptions
|
||||
libc_cv_cc_submachine
|
||||
LIBGD
|
||||
have_libaudit
|
||||
have_libcap
|
||||
|
|
@ -2329,7 +2330,6 @@ echo "$as_me: error: --with-cpu requires an argument" >&2;}
|
|||
fi
|
||||
|
||||
|
||||
|
||||
# An add-on can set this when it wants to disable the sanity check below.
|
||||
libc_config_ok=no
|
||||
|
||||
|
|
@ -7097,6 +7097,35 @@ _ACEOF
|
|||
fi
|
||||
fi
|
||||
|
||||
if test -n "$submachine"; then
|
||||
{ echo "$as_me:$LINENO: checking for compiler option for CPU variant" >&5
|
||||
echo $ECHO_N "checking for compiler option for CPU variant... $ECHO_C" >&6; }
|
||||
if test "${libc_cv_cc_submachine+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
libc_cv_cc_submachine=no
|
||||
for opt in "-march=$submachine" "-mcpu=$submachine"; do
|
||||
if { ac_try='${CC-cc} $opt -xc /dev/null -S -o /dev/null'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
libc_cv_cc_submachine="$opt"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
{ echo "$as_me:$LINENO: result: $libc_cv_cc_submachine" >&5
|
||||
echo "${ECHO_T}$libc_cv_cc_submachine" >&6; }
|
||||
if test "x$libc_cv_cc_submachine" = xno; then
|
||||
{ { echo "$as_me:$LINENO: error: ${CC-cc} does not support $submachine" >&5
|
||||
echo "$as_me: error: ${CC-cc} does not support $submachine" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
{ echo "$as_me:$LINENO: checking for libgd" >&5
|
||||
echo $ECHO_N "checking for libgd... $ECHO_C" >&6; }
|
||||
if test "$with_gd" != "no"; then
|
||||
|
|
@ -9264,6 +9293,7 @@ libc_cv_gnu89_inline!$libc_cv_gnu89_inline$ac_delim
|
|||
libc_cv_have_initfini!$libc_cv_have_initfini$ac_delim
|
||||
no_whole_archive!$no_whole_archive$ac_delim
|
||||
exceptions!$exceptions$ac_delim
|
||||
libc_cv_cc_submachine!$libc_cv_cc_submachine$ac_delim
|
||||
LIBGD!$LIBGD$ac_delim
|
||||
have_libaudit!$have_libaudit$ac_delim
|
||||
have_libcap!$have_libcap$ac_delim
|
||||
|
|
@ -9301,7 +9331,7 @@ LIBOBJS!$LIBOBJS$ac_delim
|
|||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 52; then
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 53; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||
|
|
|
|||
17
configure.in
17
configure.in
|
|
@ -326,7 +326,6 @@ AC_ARG_WITH([cpu],
|
|||
esac
|
||||
])
|
||||
|
||||
|
||||
# An add-on can set this when it wants to disable the sanity check below.
|
||||
libc_config_ok=no
|
||||
|
||||
|
|
@ -1973,6 +1972,22 @@ EOF
|
|||
fi
|
||||
fi
|
||||
|
||||
if test -n "$submachine"; then
|
||||
AC_CACHE_CHECK([for compiler option for CPU variant],
|
||||
libc_cv_cc_submachine, [dnl
|
||||
libc_cv_cc_submachine=no
|
||||
for opt in "-march=$submachine" "-mcpu=$submachine"; do
|
||||
if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then
|
||||
libc_cv_cc_submachine="$opt"
|
||||
break
|
||||
fi
|
||||
done])
|
||||
if test "x$libc_cv_cc_submachine" = xno; then
|
||||
AC_MSG_ERROR([${CC-cc} does not support $submachine])
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(libc_cv_cc_submachine)
|
||||
|
||||
dnl Check whether we have the gd library available.
|
||||
AC_MSG_CHECKING(for libgd)
|
||||
if test "$with_gd" != "no"; then
|
||||
|
|
|
|||
|
|
@ -841,8 +841,8 @@ $(objpfx)tst-dlmodcount: $(libdl)
|
|||
$(objpfx)tst-dlmodcount.out: $(test-modules)
|
||||
|
||||
check-data := $(firstword $(wildcard \
|
||||
$(foreach D,$(add-ons) scripts/data,\
|
||||
$(patsubst %,$(..)$D/localplt-%.data,\
|
||||
$(foreach D,$(add-ons) scripts,\
|
||||
$(patsubst %,$(..)$D/data/localplt-%.data,\
|
||||
$(abi-name) \
|
||||
$(addsuffix -$(config-os),\
|
||||
$(config-machine) \
|
||||
|
|
|
|||
|
|
@ -62,12 +62,8 @@ struct link_map *_dl_profile_map;
|
|||
/* This is the address of the last stack address ever used. */
|
||||
void *__libc_stack_end;
|
||||
|
||||
#ifndef __ASSUME_AT_EXECFN
|
||||
/* Path where the binary is found. */
|
||||
const char *_dl_origin_path;
|
||||
#endif
|
||||
/* File Name of the executable. */
|
||||
const char *_dl_execfn;
|
||||
|
||||
/* Nonzero if runtime lookup should not update the .got/.plt. */
|
||||
int _dl_bind_not;
|
||||
|
|
@ -220,9 +216,6 @@ _dl_aux_init (ElfW(auxv_t) *av)
|
|||
__libc_enable_secure = av->a_un.a_val;
|
||||
__libc_enable_secure_decided = 1;
|
||||
break;
|
||||
case AT_EXECFN:
|
||||
GLRO(dl_execfn) = (void *) av->a_un.a_val;
|
||||
break;
|
||||
# ifdef DL_PLATFORM_AUXV
|
||||
DL_PLATFORM_AUXV
|
||||
# endif
|
||||
|
|
|
|||
|
|
@ -173,9 +173,6 @@ _dl_sysdep_start (void **start_argptr,
|
|||
GLRO(dl_sysinfo_dso) = (void *) av->a_un.a_val;
|
||||
break;
|
||||
#endif
|
||||
case AT_EXECFN:
|
||||
GLRO(dl_execfn) = (void *) av->a_un.a_val;
|
||||
break;
|
||||
#ifdef DL_PLATFORM_AUXV
|
||||
DL_PLATFORM_AUXV
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2579,12 +2579,10 @@ process_envvars (enum mode *modep)
|
|||
break;
|
||||
|
||||
case 11:
|
||||
#ifndef __ASSUME_AT_EXECFN
|
||||
/* Path where the binary is found. */
|
||||
if (!INTUSE(__libc_enable_secure)
|
||||
&& memcmp (envline, "ORIGIN_PATH", 11) == 0)
|
||||
GLRO(dl_origin_path) = &envline[12];
|
||||
#endif
|
||||
break;
|
||||
|
||||
case 12:
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ glibc-branch := fedora
|
|||
glibc-base := HEAD
|
||||
DIST_BRANCH := devel
|
||||
COLLECTION := dist-f8
|
||||
fedora-sync-date := 2008-08-02 08:09 UTC
|
||||
fedora-sync-tag := fedora-glibc-20080802T0809
|
||||
fedora-sync-date := 2008-08-28 16:23 UTC
|
||||
fedora-sync-tag := fedora-glibc-20080828T1623
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: @glibcversion@
|
||||
Release: 11
|
||||
Release: 12
|
||||
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
||||
# Things that are linked directly into dynamically linked programs
|
||||
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
||||
|
|
@ -976,6 +976,15 @@ rm -f *.filelist*
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Aug 29 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-12
|
||||
- update from trunk
|
||||
- revert origin changes (#457849)
|
||||
- use MAP_STACK for thread stacks
|
||||
- misc fixes (BZ#6845, BZ#6544, BZ#6634, BZ#6589, BZ#6790, BZ#6791,
|
||||
BZ#6824)
|
||||
- power7 bits (BZ#6817)
|
||||
- fix expm1 on i?86/x86_64 (#43354, BZ#5794)
|
||||
|
||||
* Sat Aug 2 2008 Jakub Jelinek <jakub@redhat.com> 2.8.90-11
|
||||
- update from trunk
|
||||
- fix non-absolute $ORIGIN handling (#457560)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* Implementing POSIX.1 signals under the Hurd.
|
||||
Copyright (C) 1993,94,95,96,98,99,2002,2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993,94,95,96,98,99,2002,2007,2008
|
||||
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
|
||||
|
|
@ -342,10 +343,12 @@ extern mach_msg_timeout_t _hurd_interrupted_rpc_timeout;
|
|||
do \
|
||||
{ \
|
||||
/* Get the message port. */ \
|
||||
if (__err = (fetch_msgport_expr)) \
|
||||
__err = (fetch_msgport_expr); \
|
||||
if (__err) \
|
||||
break; \
|
||||
/* Get the reference port. */ \
|
||||
if (__err = (fetch_refport_expr)) \
|
||||
__err = (fetch_refport_expr); \
|
||||
if (__err) \
|
||||
{ \
|
||||
/* Couldn't get it; deallocate MSGPORT and fail. */ \
|
||||
__mach_port_deallocate (__mach_task_self (), msgport); \
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/* Fmemopen implementation.
|
||||
Copyright (C) 2000, 2002, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2002, 2005, 2006, 2008 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Hanno Mueller, kontakt@hanno.de, 2000.
|
||||
Contributed by Hanno Mueller, kontakt@hanno.de, 2000.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
|
|
@ -82,6 +82,7 @@ struct fmemopen_cookie_struct
|
|||
{
|
||||
char *buffer;
|
||||
int mybuffer;
|
||||
int binmode;
|
||||
size_t size;
|
||||
_IO_off64_t pos;
|
||||
size_t maxpos;
|
||||
|
|
@ -120,7 +121,7 @@ fmemopen_write (void *cookie, const char *b, size_t s)
|
|||
|
||||
c = (fmemopen_cookie_t *) cookie;
|
||||
|
||||
addnullc = s == 0 || b[s - 1] != '\0';
|
||||
addnullc = c->binmode == 0 && (s == 0 || b[s - 1] != '\0');
|
||||
|
||||
if (c->pos + s + addnullc > c->size)
|
||||
{
|
||||
|
|
@ -165,7 +166,7 @@ fmemopen_seek (void *cookie, _IO_off64_t *p, int w)
|
|||
break;
|
||||
|
||||
case SEEK_END:
|
||||
np = c->maxpos - *p;
|
||||
np = (c->binmode ? c->size : c->maxpos) - *p;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -248,6 +249,8 @@ fmemopen (void *buf, size_t len, const char *mode)
|
|||
else
|
||||
c->pos = 0;
|
||||
|
||||
c->binmode = mode[0] != '\0' && mode[1] == 'b';
|
||||
|
||||
iof.read = fmemopen_read;
|
||||
iof.write = fmemopen_write;
|
||||
iof.seek = fmemopen_seek;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
|
@ -244,12 +245,16 @@ getutent_r_file (struct utmp *buffer, struct utmp **result)
|
|||
|
||||
|
||||
static int
|
||||
internal_getut_r (const struct utmp *id, struct utmp *buffer)
|
||||
internal_getut_r (const struct utmp *id, struct utmp *buffer,
|
||||
bool *lock_failed)
|
||||
{
|
||||
int result = -1;
|
||||
|
||||
LOCK_FILE (file_fd, F_RDLCK)
|
||||
LOCKING_FAILED ();
|
||||
{
|
||||
*lock_failed = true;
|
||||
LOCKING_FAILED ();
|
||||
}
|
||||
|
||||
#if _HAVE_UT_TYPE - 0
|
||||
if (id->ut_type == RUN_LVL || id->ut_type == BOOT_TIME
|
||||
|
|
@ -320,7 +325,10 @@ getutid_r_file (const struct utmp *id, struct utmp *buffer,
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (internal_getut_r (id, &last_entry) < 0)
|
||||
/* We don't have to distinguish whether we can lock the file or
|
||||
whether there is no entry. */
|
||||
bool lock_failed = false;
|
||||
if (internal_getut_r (id, &last_entry, &lock_failed) < 0)
|
||||
{
|
||||
*result = NULL;
|
||||
return -1;
|
||||
|
|
@ -410,7 +418,16 @@ pututline_file (const struct utmp *data)
|
|||
__utmp_equal (&last_entry, data)))
|
||||
found = 1;
|
||||
else
|
||||
found = internal_getut_r (data, &buffer);
|
||||
{
|
||||
bool lock_failed = false;
|
||||
found = internal_getut_r (data, &buffer, &lock_failed);
|
||||
|
||||
if (__builtin_expect (lock_failed, false))
|
||||
{
|
||||
__set_errno (EAGAIN);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
LOCK_FILE (file_fd, F_WRLCK)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -418,7 +418,7 @@ This function returns @code{-1} if @var{x} represents negative infinity,
|
|||
This function returns a nonzero value if @var{x} is a ``not a number''
|
||||
value, and zero otherwise.
|
||||
|
||||
@strong{Note:} The @code{isnan} macro defined by @w{ISO C99} overrides
|
||||
@strong{NB:} The @code{isnan} macro defined by @w{ISO C99} overrides
|
||||
the BSD function. This is normally not a problem, because the two
|
||||
routines behave identically. However, if you really need to get the BSD
|
||||
function for some reason, you can write
|
||||
|
|
@ -968,7 +968,7 @@ decide whether traps will occur for each of the exceptions, by setting
|
|||
bits in the @dfn{control word}. In C, traps result in the program
|
||||
receiving the @code{SIGFPE} signal; see @ref{Signal Handling}.
|
||||
|
||||
@strong{Note:} @w{IEEE 754} says that trap handlers are given details of
|
||||
@strong{NB:} @w{IEEE 754} says that trap handlers are given details of
|
||||
the exceptional situation, and can set the result value. C signals do
|
||||
not provide any mechanism to pass this information back and forth.
|
||||
Trapping exceptions in C is therefore not very useful.
|
||||
|
|
@ -1721,7 +1721,7 @@ Not all machines provide hardware support for these operations. On
|
|||
machines that don't, the macros can be very slow. Therefore, you should
|
||||
not use these functions when NaN is not a concern.
|
||||
|
||||
@strong{Note:} There are no macros @code{isequal} or @code{isunequal}.
|
||||
@strong{NB:} There are no macros @code{isequal} or @code{isunequal}.
|
||||
They are unnecessary, because the @code{==} and @code{!=} operators do
|
||||
@emph{not} throw an exception if one or both of the operands are NaN.
|
||||
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ sequence of definitions:
|
|||
|
||||
Note that if you do this, you must link your program with the BSD
|
||||
compatibility library by passing the @samp{-lbsd-compat} option to the
|
||||
compiler or linker. @strong{Note:} If you forget to do this, you may
|
||||
compiler or linker. @strong{NB:} If you forget to do this, you may
|
||||
get very strange errors at run time.
|
||||
@end defvr
|
||||
|
||||
|
|
|
|||
|
|
@ -3239,7 +3239,7 @@ are replaced with six characters which make the whole string a unique
|
|||
file name. Usually the template string is something like
|
||||
@samp{/tmp/@var{prefix}XXXXXX}, and each program uses a unique @var{prefix}.
|
||||
|
||||
@strong{Note:} Because @code{mktemp} and @code{mkstemp} modify the
|
||||
@strong{NB:} Because @code{mktemp} and @code{mkstemp} modify the
|
||||
template string, you @emph{must not} pass string constants to them.
|
||||
String constants are normally in read-only storage, so your program
|
||||
would crash when @code{mktemp} or @code{mkstemp} tried to modify the
|
||||
|
|
|
|||
|
|
@ -1366,7 +1366,7 @@ The prototypes for these functions are in @file{stdlib.h}.
|
|||
This function returns the next pseudo-random number in the sequence.
|
||||
The value returned ranges from @code{0} to @code{RAND_MAX}.
|
||||
|
||||
@strong{Note:} Temporarily this function was defined to return a
|
||||
@strong{NB:} Temporarily this function was defined to return a
|
||||
@code{int32_t} value to indicate that the return value always contains
|
||||
32 bits even if @code{long int} is wider. The standard demands it
|
||||
differently. Users must always be aware of the 32-bit limitation,
|
||||
|
|
|
|||
|
|
@ -2326,7 +2326,7 @@ additional block on each iteration. This is impossible with
|
|||
variable-sized arrays.
|
||||
@end itemize
|
||||
|
||||
@strong{Note:} If you mix use of @code{alloca} and variable-sized arrays
|
||||
@strong{NB:} If you mix use of @code{alloca} and variable-sized arrays
|
||||
within one function, exiting a scope in which a variable-sized array was
|
||||
declared frees all blocks allocated with @code{alloca} during the
|
||||
execution of that scope.
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ ready to execute instructions right now. When a process blocks to wait
|
|||
for something like I/O, its absolute priority is irrelevant.
|
||||
|
||||
@cindex runnable process
|
||||
@strong{Note:} The term ``runnable'' is a synonym for ``ready to run.''
|
||||
@strong{NB:} The term ``runnable'' is a synonym for ``ready to run.''
|
||||
|
||||
When two processes are running or ready to run and both have the same
|
||||
absolute priority, it's more interesting. In that case, who gets the
|
||||
|
|
@ -663,7 +663,7 @@ privileged process constantly monitors the process' CPU usage and raises
|
|||
its absolute priority when the process isn't getting its entitled share
|
||||
and lowers it when the process is exceeding it.
|
||||
|
||||
@strong{Note:} The absolute priority is sometimes called the ``static
|
||||
@strong{NB:} The absolute priority is sometimes called the ``static
|
||||
priority.'' We don't use that term in this manual because it misses the
|
||||
most important feature of the absolute priority: its absoluteness.
|
||||
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ Locally defined
|
|||
|
||||
Results are undefined if the facility code is anything else.
|
||||
|
||||
@strong{note:} @code{syslog} recognizes one other facility code: that of
|
||||
@strong{NB:} @code{syslog} recognizes one other facility code: that of
|
||||
the kernel. But you can't specify that facility code with these
|
||||
functions. If you try, it looks the same to @code{syslog} as if you are
|
||||
requesting the default facility. But you wouldn't want to anyway,
|
||||
|
|
|
|||
|
|
@ -1652,7 +1652,7 @@ The seconds as a decimal number (range @code{0} through @code{60}).
|
|||
|
||||
Leading zeroes are permitted but not required.
|
||||
|
||||
@strong{Note:} The Unix specification says the upper bound on this value
|
||||
@strong{NB:} The Unix specification says the upper bound on this value
|
||||
is @code{61}, a result of a decision to allow double leap seconds. You
|
||||
will not see the value @code{61} because no minute has more than one
|
||||
leap second, but the myth persists.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
2008-08-15 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
|
||||
ARCH_RETRY_MMAP definitions.
|
||||
* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
|
||||
Define MAP_STACK when not defined.
|
||||
(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
|
||||
handling of ARCH_RETRY_MMAP.
|
||||
|
||||
2008-07-30 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* tst-align2.c (f): Print message that f is reached.
|
||||
|
|
|
|||
|
|
@ -84,10 +84,10 @@
|
|||
#endif
|
||||
|
||||
|
||||
/* Let the architecture add some flags to the mmap() call used to
|
||||
allocate stacks. */
|
||||
#ifndef ARCH_MAP_FLAGS
|
||||
# define ARCH_MAP_FLAGS 0
|
||||
/* Newer kernels have the MAP_STACK flag to indicate a mapping is used for
|
||||
a stack. Use it when possible. */
|
||||
#ifndef MAP_STACK
|
||||
# define MAP_STACK 0
|
||||
#endif
|
||||
|
||||
/* This yields the pointer that TLS support code calls the thread pointer. */
|
||||
|
|
@ -454,20 +454,14 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
|
|||
#endif
|
||||
|
||||
mem = mmap (NULL, size, prot,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
|
||||
|
||||
if (__builtin_expect (mem == MAP_FAILED, 0))
|
||||
{
|
||||
#ifdef ARCH_RETRY_MMAP
|
||||
mem = ARCH_RETRY_MMAP (size, prot);
|
||||
if (__builtin_expect (mem == MAP_FAILED, 0))
|
||||
#endif
|
||||
{
|
||||
if (errno == ENOMEM)
|
||||
errno = EAGAIN;
|
||||
if (errno == ENOMEM)
|
||||
__set_errno (EAGAIN);
|
||||
|
||||
return errno;
|
||||
}
|
||||
return errno;
|
||||
}
|
||||
|
||||
/* SIZE is guaranteed to be greater than zero.
|
||||
|
|
|
|||
|
|
@ -36,16 +36,6 @@
|
|||
({ char *frame; asm ("movq %%rsp, %0" : "=r" (frame)); frame; })
|
||||
|
||||
|
||||
/* We prefer to have the stack allocated in the low 4GB since this
|
||||
allows faster context switches. */
|
||||
#define ARCH_MAP_FLAGS MAP_32BIT
|
||||
|
||||
/* If it is not possible to allocate memory there retry without that
|
||||
flag. */
|
||||
#define ARCH_RETRY_MMAP(size, prot) \
|
||||
mmap (NULL, size, prot, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)
|
||||
|
||||
|
||||
/* XXX Until we have a better place keep the definitions here. */
|
||||
|
||||
/* While there is no such syscall. */
|
||||
|
|
|
|||
|
|
@ -1868,8 +1868,11 @@ main_loop_poll (void)
|
|||
bool to_clear[lastdb] = { false, };
|
||||
union
|
||||
{
|
||||
# ifndef PATH_MAX
|
||||
# define PATH_MAX 1024
|
||||
# endif
|
||||
struct inotify_event i;
|
||||
char buf[100];
|
||||
char buf[sizeof (struct inotify_event) + PATH_MAX];
|
||||
} inev;
|
||||
|
||||
while (1)
|
||||
|
|
@ -1878,17 +1881,20 @@ main_loop_poll (void)
|
|||
sizeof (inev)));
|
||||
if (nb < (ssize_t) sizeof (struct inotify_event))
|
||||
{
|
||||
if (nb == -1)
|
||||
if (__builtin_expect (nb == -1 && errno != EAGAIN,
|
||||
0))
|
||||
{
|
||||
/* Something went wrong when reading the inotify
|
||||
data. Better disable inotify. */
|
||||
dbg_log (_("\
|
||||
disabled inotify after read error %d"),
|
||||
errno);
|
||||
conns[1].fd = -1;
|
||||
firstfree = 1;
|
||||
if (nused == 2)
|
||||
nused = 1;
|
||||
close (inotify_fd);
|
||||
inotify_fd = -1;
|
||||
dbg_log (_("disabled inotify after read error"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -2047,7 +2053,7 @@ main_loop_epoll (int efd)
|
|||
union
|
||||
{
|
||||
struct inotify_event i;
|
||||
char buf[100];
|
||||
char buf[sizeof (struct inotify_event) + PATH_MAX];
|
||||
} inev;
|
||||
|
||||
while (1)
|
||||
|
|
@ -2056,15 +2062,16 @@ main_loop_epoll (int efd)
|
|||
sizeof (inev)));
|
||||
if (nb < (ssize_t) sizeof (struct inotify_event))
|
||||
{
|
||||
if (nb == -1)
|
||||
if (__builtin_expect (nb == -1 && errno != EAGAIN, 0))
|
||||
{
|
||||
/* Something went wrong when reading the inotify
|
||||
data. Better disable inotify. */
|
||||
dbg_log (_("disabled inotify after read error %d"),
|
||||
errno);
|
||||
(void) epoll_ctl (efd, EPOLL_CTL_DEL, inotify_fd,
|
||||
NULL);
|
||||
close (inotify_fd);
|
||||
inotify_fd = -1;
|
||||
dbg_log (_("disabled inotify after read error"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,7 +160,10 @@ res_nmkquery(res_state statp,
|
|||
if ((buflen -= QFIXEDSZ) < 0)
|
||||
return (-1);
|
||||
compose:
|
||||
if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
|
||||
n = ns_name_compress(dname, cp, buflen,
|
||||
(const u_char **) dnptrs,
|
||||
(const u_char **) lastdnptr);
|
||||
if (n < 0)
|
||||
return (-1);
|
||||
cp += n;
|
||||
buflen -= n;
|
||||
|
|
@ -172,7 +175,9 @@ res_nmkquery(res_state statp,
|
|||
/*
|
||||
* Make an additional record for completion domain.
|
||||
*/
|
||||
n = dn_comp((char *)data, cp, buflen, dnptrs, lastdnptr);
|
||||
n = ns_name_compress((char *)data, cp, buflen,
|
||||
(const u_char **) dnptrs,
|
||||
(const u_char **) lastdnptr);
|
||||
if (__builtin_expect (n < 0, 0))
|
||||
return (-1);
|
||||
cp += n;
|
||||
|
|
|
|||
|
|
@ -16,12 +16,20 @@ NF >= 1 && !started {
|
|||
if (test) {
|
||||
print "\n#include <inttypes.h>";
|
||||
print "\n#include <stdio.h>";
|
||||
print "\n#if __WORDSIZE__ == 64";
|
||||
print "\ntypedef uint64_t c_t;";
|
||||
print "\n#define U(n) UINT64_C (n)";
|
||||
print "\n#define PRI PRId64";
|
||||
print "\n#else";
|
||||
print "\ntypedef uint32_t c_t;";
|
||||
print "\n#define U(n) UINT32_C (n)";
|
||||
print "\n#define PRI PRId32";
|
||||
print "\n#endif";
|
||||
print "\nstatic int do_test (void)\n{\n int bad = 0, good = 0;\n";
|
||||
print "#define TEST(name, source, expr) \\\n" \
|
||||
" if (U (asconst_##name) != (uint64_t) (expr)) { ++bad;" \
|
||||
" fprintf (stderr, \"%s: %s is %\" PRId64 \" but %s is %\"PRId64 \"\\n\"," \
|
||||
" source, #name, U (asconst_##name), #expr, (uint64_t) (expr));" \
|
||||
" if (U (asconst_##name) != (c_t) (expr)) { ++bad;" \
|
||||
" fprintf (stderr, \"%s: %s is %\" PRI \" but %s is %\"PRI \"\\n\"," \
|
||||
" source, #name, U (asconst_##name), #expr, (c_t) (expr));" \
|
||||
" } else ++good;\n";
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -593,13 +593,8 @@ struct rtld_global_ro
|
|||
/* Names of shared object for which the RPATH should be ignored. */
|
||||
EXTERN const char *_dl_inhibit_rpath;
|
||||
|
||||
#ifndef __ASSUME_AT_EXECFN
|
||||
/* Location of the binary. */
|
||||
EXTERN const char *_dl_origin_path;
|
||||
#endif
|
||||
|
||||
/* If set, points to the file name of the executable. */
|
||||
EXTERN const char *_dl_execfn;
|
||||
|
||||
/* -1 if the dynamic linker should honor library load bias,
|
||||
0 if not, -2 use the default (honor biases for normal
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* ix87 specific implementation of exp(x)-1.
|
||||
Copyright (C) 1996, 1997, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2002, 2005, 2008 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>.
|
||||
|
|
@ -48,6 +48,11 @@ l2e: .tfloat 1.442695040888963407359924681002
|
|||
|
||||
.text
|
||||
ENTRY(__expm1l)
|
||||
movzwl 4+8(%esp), %eax // load sign bit and 15-bit exponent
|
||||
xorb $0x80, %ah // invert sign bit (now 1 is "positive")
|
||||
cmpl $0xc006, %eax // is num positive and exp >= 6 (number is >= 128.0)?
|
||||
jae __ieee754_expl // (if num is denormal, it is at least >= 64.0)
|
||||
|
||||
fldt 4(%esp) // x
|
||||
fxam // Is NaN or +-Inf?
|
||||
fstsw %ax
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* Machine-specific definition for spin locks. i386 version.
|
||||
Copyright (C) 1994, 1997, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994,1997,2007,2008 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
|
||||
|
|
@ -40,7 +40,8 @@ __spin_unlock (__spin_lock_t *__lock)
|
|||
{
|
||||
register int __unlocked;
|
||||
__asm__ __volatile ("xchgl %0, %1"
|
||||
: "=&r" (__unlocked), "=m" (*__lock) : "0" (0));
|
||||
: "=&r" (__unlocked), "=m" (*__lock) : "0" (0)
|
||||
: "memory");
|
||||
}
|
||||
|
||||
/* Try to lock LOCK; return nonzero if we locked it, zero if another has. */
|
||||
|
|
@ -50,7 +51,8 @@ __spin_try_lock (__spin_lock_t *__lock)
|
|||
{
|
||||
register int __locked;
|
||||
__asm__ __volatile ("xchgl %0, %1"
|
||||
: "=&r" (__locked), "=m" (*__lock) : "0" (1));
|
||||
: "=&r" (__locked), "=m" (*__lock) : "0" (1)
|
||||
: "memory");
|
||||
return !__locked;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* clock_getres -- Get the resolution of a POSIX clockid_t.
|
||||
Copyright (C) 1999, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999,2000,2001,2003,2004,2008 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
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
#if HP_TIMING_AVAIL
|
||||
static long int nsec; /* Clock frequency of the processor. */
|
||||
|
||||
static inline int
|
||||
static int
|
||||
hp_timing_getres (struct timespec *res)
|
||||
{
|
||||
if (__builtin_expect (nsec == 0, 0))
|
||||
|
|
|
|||
|
|
@ -46,11 +46,12 @@
|
|||
#if !defined PROCINFO_DECL && defined SHARED
|
||||
._dl_powerpc_cap_flags
|
||||
#else
|
||||
PROCINFO_CLASS const char _dl_powerpc_cap_flags[23][10]
|
||||
PROCINFO_CLASS const char _dl_powerpc_cap_flags[25][10]
|
||||
#endif
|
||||
#ifndef PROCINFO_DECL
|
||||
= {
|
||||
"power6x", "dfp", "pa6t",
|
||||
"vsx",
|
||||
"arch_2_06", "power6x", "dfp", "pa6t",
|
||||
"arch_2_05", "ic_snoop", "smt", "booke",
|
||||
"cellbe", "power5+", "power5", "power4",
|
||||
"notb", "efpdouble", "efpsingle", "spe",
|
||||
|
|
@ -67,7 +68,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[23][10]
|
|||
#if !defined PROCINFO_DECL && defined SHARED
|
||||
._dl_powerpc_platforms
|
||||
#else
|
||||
PROCINFO_CLASS const char _dl_powerpc_platforms[7][12]
|
||||
PROCINFO_CLASS const char _dl_powerpc_platforms[8][12]
|
||||
#endif
|
||||
#ifndef PROCINFO_DECL
|
||||
= {
|
||||
|
|
@ -77,7 +78,8 @@ PROCINFO_CLASS const char _dl_powerpc_platforms[7][12]
|
|||
[PPC_PLATFORM_POWER5_PLUS] = "power5+",
|
||||
[PPC_PLATFORM_POWER6] = "power6",
|
||||
[PPC_PLATFORM_CELL_BE] = "ppc-cell-be",
|
||||
[PPC_PLATFORM_POWER6X] = "power6x"
|
||||
[PPC_PLATFORM_POWER6X] = "power6x",
|
||||
[PPC_PLATFORM_POWER7] = "power7"
|
||||
}
|
||||
#endif
|
||||
#if !defined SHARED || defined PROCINFO_DECL
|
||||
|
|
|
|||
|
|
@ -23,15 +23,15 @@
|
|||
#include <ldsodefs.h>
|
||||
#include <sysdep.h> /* This defines the PPC_FEATURE_* macros. */
|
||||
|
||||
/* There are 20 bits used, but they are bits 12..31. */
|
||||
#define _DL_HWCAP_FIRST 9
|
||||
/* There are 25 bits used, but they are bits 7..31. */
|
||||
#define _DL_HWCAP_FIRST 7
|
||||
#define _DL_HWCAP_COUNT 32
|
||||
|
||||
/* These bits influence library search. */
|
||||
#define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \
|
||||
+ PPC_FEATURE_HAS_DFP)
|
||||
|
||||
#define _DL_PLATFORMS_COUNT 7
|
||||
#define _DL_PLATFORMS_COUNT 8
|
||||
|
||||
#define _DL_FIRST_PLATFORM 32
|
||||
/* Mask to filter out platforms. */
|
||||
|
|
@ -46,6 +46,7 @@
|
|||
#define PPC_PLATFORM_POWER6 4
|
||||
#define PPC_PLATFORM_CELL_BE 5
|
||||
#define PPC_PLATFORM_POWER6X 6
|
||||
#define PPC_PLATFORM_POWER7 7
|
||||
|
||||
static inline const char *
|
||||
__attribute__ ((unused))
|
||||
|
|
@ -103,6 +104,9 @@ _dl_string_platform (const char *str)
|
|||
++str;
|
||||
}
|
||||
break;
|
||||
case '7':
|
||||
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* Inline math functions for powerpc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2004, 2006, 2007
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2004, 2006, 2007, 2008
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
|
|
@ -72,6 +72,14 @@ __NTH (__signbit (double __x))
|
|||
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
|
||||
return __u.__i[0] < 0;
|
||||
}
|
||||
# ifdef __LONG_DOUBLE_128__
|
||||
__MATH_INLINE int
|
||||
__NTH (__signbitl (long double __x))
|
||||
{
|
||||
__extension__ union { long double __d; int __i[4]; } __u = { __d: __x };
|
||||
return __u.__i[0] < 0;
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
#endif /* __USE_ISOC99 */
|
||||
|
||||
|
|
|
|||
|
|
@ -557,11 +557,6 @@ __process_machine_rela (struct link_map *map,
|
|||
}
|
||||
break;
|
||||
|
||||
#define CHECK_STATIC_TLS(map, sym_map) \
|
||||
do { \
|
||||
if (__builtin_expect ((sym_map)->l_tls_offset == NO_TLS_OFFSET, 0)) \
|
||||
_dl_allocate_static_tls (sym_map); \
|
||||
} while (0)
|
||||
#define DO_TLS_RELOC(suffix) \
|
||||
case R_PPC_DTPREL##suffix: \
|
||||
/* During relocation all TLS symbols are defined and used. \
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@
|
|||
#define PPC_FEATURE_PA6T 0x00000800 /* PA Semi 6T Core */
|
||||
#define PPC_FEATURE_HAS_DFP 0x00000400 /* Decimal FP Unit */
|
||||
#define PPC_FEATURE_POWER6_EXT 0x00000200 /* P6 + mffgpr/mftgpr */
|
||||
#define PPC_FEATURE_HAS_VSX 0x00000100 /* P7 Vector Extension. */
|
||||
#define PPC_FEATURE_ARCH_2_06 0x00000080 /* ISA 2.06 */
|
||||
#define PPC_FEATURE_970 (PPC_FEATURE_POWER4 + PPC_FEATURE_HAS_ALTIVEC)
|
||||
|
||||
#ifdef __ASSEMBLER__
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@
|
|||
#define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
|
||||
#define IP_PMTUDISC_WANT 1 /* Use per route hints. */
|
||||
#define IP_PMTUDISC_DO 2 /* Always DF. */
|
||||
#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
|
||||
|
||||
/* To select the IP level. */
|
||||
#define SOL_IP 0
|
||||
|
|
@ -162,6 +163,7 @@ struct in_pktinfo
|
|||
#define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
|
||||
#define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
|
||||
#define IPV6_PMTUDISC_DO 2 /* Always DF. */
|
||||
#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
|
||||
|
||||
/* Socket level values for IPv6. */
|
||||
#define SOL_IPV6 41
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* clock_getres -- Get the resolution of a POSIX clockid_t. Linux version.
|
||||
Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003,2004,2005,2006, 2008 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
|
||||
|
|
@ -121,7 +121,7 @@ maybe_syscall_getres_cpu (clockid_t clock_id, struct timespec *res)
|
|||
return 0;
|
||||
|
||||
e = INTERNAL_SYSCALL_ERRNO (r, err);
|
||||
# ifndef __ASSUME_POSIX_TIMERS
|
||||
# ifndef __ASSUME_POSIX_TIMERS
|
||||
if (e == ENOSYS)
|
||||
{
|
||||
__libc_missing_posix_timers = 1;
|
||||
|
|
@ -129,7 +129,7 @@ maybe_syscall_getres_cpu (clockid_t clock_id, struct timespec *res)
|
|||
e = EINVAL;
|
||||
}
|
||||
else
|
||||
# endif
|
||||
# endif
|
||||
{
|
||||
if (e == EINVAL)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* Find path of executable.
|
||||
Copyright (C) 1998-2000, 2002, 2004, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
|
||||
|
|
@ -36,28 +36,29 @@ const char *
|
|||
_dl_get_origin (void)
|
||||
{
|
||||
char linkval[PATH_MAX];
|
||||
const char *str;
|
||||
char *result = (char *) -1l;
|
||||
char *result;
|
||||
int len;
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
|
||||
str = GLRO(dl_execfn);
|
||||
if (str == NULL || str[0] != '/')
|
||||
len = INTERNAL_SYSCALL (readlink, err, 3, "/proc/self/exe", linkval,
|
||||
sizeof (linkval));
|
||||
if (! INTERNAL_SYSCALL_ERROR_P (len, err) && len > 0 && linkval[0] != '[')
|
||||
{
|
||||
INTERNAL_SYSCALL_DECL (err);
|
||||
|
||||
len = INTERNAL_SYSCALL (readlink, err, 3, "/proc/self/exe", linkval,
|
||||
sizeof (linkval));
|
||||
if (! INTERNAL_SYSCALL_ERROR_P (len, err)
|
||||
&& len > 0 && linkval[0] != '[')
|
||||
str = linkval;
|
||||
/* We can use this value. */
|
||||
assert (linkval[0] == '/');
|
||||
while (len > 1 && linkval[len - 1] != '/')
|
||||
--len;
|
||||
result = (char *) malloc (len + 1);
|
||||
if (result == NULL)
|
||||
result = (char *) -1;
|
||||
else if (len == 1)
|
||||
memcpy (result, "/", 2);
|
||||
else
|
||||
str = NULL;
|
||||
*((char *) __mempcpy (result, linkval, len - 1)) = '\0';
|
||||
}
|
||||
else
|
||||
len = strlen (str);
|
||||
|
||||
if (str == NULL)
|
||||
{
|
||||
result = (char *) -1;
|
||||
/* We use the environment variable LD_ORIGIN_PATH. If it is set make
|
||||
a copy and strip out trailing slashes. */
|
||||
if (GLRO(dl_origin_path) != NULL)
|
||||
|
|
@ -75,20 +76,6 @@ _dl_get_origin (void)
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We can use this value. */
|
||||
assert (str[0] == '/');
|
||||
while (len > 1 && str[len - 1] != '/')
|
||||
--len;
|
||||
result = (char *) malloc (len + 1);
|
||||
if (result == NULL)
|
||||
result = (char *) -1;
|
||||
else if (len == 1)
|
||||
memcpy (result, "/", 2);
|
||||
else
|
||||
*((char *) __mempcpy (result, str, len - 1)) = '\0';
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@
|
|||
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
|
||||
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
|
||||
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
|
||||
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
|
||||
#endif
|
||||
|
||||
/* Flags to `msync'. */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* getifaddrs -- get names and addresses of all network interfaces
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
Copyright (C) 2003-2007, 2008 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
|
||||
|
|
@ -49,6 +49,22 @@ int __no_netlink_support attribute_hidden;
|
|||
#endif
|
||||
|
||||
|
||||
/* There is a problem with this type. The address length for
|
||||
Infiniband sockets is much longer than the 8 bytes allocated in the
|
||||
sockaddr_ll definition. Hence we use here a special
|
||||
definition. */
|
||||
struct sockaddr_ll_max
|
||||
{
|
||||
unsigned short int sll_family;
|
||||
unsigned short int sll_protocol;
|
||||
int sll_ifindex;
|
||||
unsigned short int sll_hatype;
|
||||
unsigned char sll_pkttype;
|
||||
unsigned char sll_halen;
|
||||
unsigned char sll_addr[24];
|
||||
};
|
||||
|
||||
|
||||
/* struct to hold the data for one ifaddrs entry, so we can allocate
|
||||
everything at once. */
|
||||
struct ifaddrs_storage
|
||||
|
|
@ -59,7 +75,7 @@ struct ifaddrs_storage
|
|||
/* Save space for the biggest of the four used sockaddr types and
|
||||
avoid a lot of casts. */
|
||||
struct sockaddr sa;
|
||||
struct sockaddr_ll sl;
|
||||
struct sockaddr_ll_max sl;
|
||||
struct sockaddr_in s4;
|
||||
struct sockaddr_in6 s6;
|
||||
} addr, netmask, broadaddr;
|
||||
|
|
@ -307,7 +323,7 @@ map_newlink (int index, struct ifaddrs_storage *ifas, int *map, int max)
|
|||
|
||||
/* Create a linked list of `struct ifaddrs' structures, one for each
|
||||
network interface on the host machine. If successful, store the
|
||||
list in *IFAP and return 0. On errors, return -1 and set `errno'. */
|
||||
list in *IFAP and 2004, 2005, 2006, return 0. On errors, return -1 and set `errno'. */
|
||||
int
|
||||
getifaddrs (struct ifaddrs **ifap)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,132 +0,0 @@
|
|||
/* Inline math functions for powerpc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2004, 2006, 2007, 2008
|
||||
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
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _MATH_H
|
||||
# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
|
||||
#endif
|
||||
|
||||
#ifndef __extern_inline
|
||||
# define __MATH_INLINE __inline
|
||||
#else
|
||||
# define __MATH_INLINE __extern_inline
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#if defined __GNUC__ && !defined _SOFT_FLOAT
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
# if !__GNUC_PREREQ (2,97)
|
||||
# define __unordered_cmp(x, y) \
|
||||
(__extension__ \
|
||||
({ __typeof__(x) __x = (x); __typeof__(y) __y = (y); \
|
||||
unsigned __r; \
|
||||
__asm__("fcmpu 7,%1,%2 ; mfcr %0" : "=r" (__r) : "f" (__x), "f"(__y) \
|
||||
: "cr7"); \
|
||||
__r; }))
|
||||
|
||||
# undef isgreater
|
||||
# undef isgreaterequal
|
||||
# undef isless
|
||||
# undef islessequal
|
||||
# undef islessgreater
|
||||
# undef isunordered
|
||||
|
||||
# define isgreater(x, y) (__unordered_cmp (x, y) >> 2 & 1)
|
||||
# define isgreaterequal(x, y) ((__unordered_cmp (x, y) & 6) != 0)
|
||||
# define isless(x, y) (__unordered_cmp (x, y) >> 3 & 1)
|
||||
# define islessequal(x, y) ((__unordered_cmp (x, y) & 0xA) != 0)
|
||||
# define islessgreater(x, y) ((__unordered_cmp (x, y) & 0xC) != 0)
|
||||
# define isunordered(x, y) (__unordered_cmp (x, y) & 1)
|
||||
|
||||
# endif /* __GNUC_PREREQ (2,97) */
|
||||
|
||||
/* The gcc, version 2.7 or below, has problems with all this inlining
|
||||
code. So disable it for this version of the compiler. */
|
||||
# if __GNUC_PREREQ (2, 8)
|
||||
/* Test for negative number. Used in the signbit() macro. */
|
||||
__MATH_INLINE int
|
||||
__NTH (__signbitf (float __x))
|
||||
{
|
||||
__extension__ union { float __f; int __i; } __u = { __f: __x };
|
||||
return __u.__i < 0;
|
||||
}
|
||||
__MATH_INLINE int
|
||||
__NTH (__signbit (double __x))
|
||||
{
|
||||
__extension__ union { double __d; int __i[2]; } __u = { __d: __x };
|
||||
return __u.__i[0] < 0;
|
||||
}
|
||||
# ifdef __LONGDOUBLE128
|
||||
__MATH_INLINE int
|
||||
__NTH (__signbitl (long double __x))
|
||||
{
|
||||
__extension__ union { long double __d; int __i[4]; } __u = { __d: __x };
|
||||
return __u.__i[0] < 0;
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
#endif /* __USE_ISOC99 */
|
||||
|
||||
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
|
||||
|
||||
#ifdef __USE_ISOC99
|
||||
|
||||
# ifndef __powerpc64__
|
||||
__MATH_INLINE long int lrint (double __x) __THROW;
|
||||
__MATH_INLINE long int
|
||||
__NTH (lrint (double __x))
|
||||
{
|
||||
union {
|
||||
double __d;
|
||||
int __ll[2];
|
||||
} __u;
|
||||
__asm__ ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
|
||||
return __u.__ll[1];
|
||||
}
|
||||
|
||||
__MATH_INLINE long int lrintf (float __x) __THROW;
|
||||
__MATH_INLINE long int
|
||||
__NTH (lrintf (float __x))
|
||||
{
|
||||
union {
|
||||
double __d;
|
||||
int __ll[2];
|
||||
} __u;
|
||||
__asm__ ("fctiw %0,%1" : "=f"(__u.__d) : "f"(__x));
|
||||
return __u.__ll[1];
|
||||
}
|
||||
# endif
|
||||
|
||||
__MATH_INLINE double fdim (double __x, double __y) __THROW;
|
||||
__MATH_INLINE double
|
||||
__NTH (fdim (double __x, double __y))
|
||||
{
|
||||
return __x <= __y ? 0 : __x - __y;
|
||||
}
|
||||
|
||||
__MATH_INLINE float fdimf (float __x, float __y) __THROW;
|
||||
__MATH_INLINE float
|
||||
__NTH (fdimf (float __x, float __y))
|
||||
{
|
||||
return __x <= __y ? 0 : __x - __y;
|
||||
}
|
||||
|
||||
#endif /* __USE_ISOC99 */
|
||||
#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
|
||||
#endif /* __GNUC__ && !_SOFT_FLOAT */
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions for POSIX memory map interface. Linux/PowerPC version.
|
||||
Copyright (C) 1997, 2000, 2003, 2005, 2006 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997,2000,2003,2005,2006,2008 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
|
||||
|
|
@ -34,6 +34,7 @@
|
|||
#define PROT_WRITE 0x2 /* Page can be written. */
|
||||
#define PROT_EXEC 0x4 /* Page can be executed. */
|
||||
#define PROT_NONE 0x0 /* Page can not be accessed. */
|
||||
#define PROT_SAO 0x10 /* Strong Access Ordering. */
|
||||
#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
|
||||
growsdown vma (mprotect only). */
|
||||
#define PROT_GROWSUP 0x02000000 /* Extend change to start of
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
|
||||
# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
|
||||
# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
|
||||
# define MAP_STACK 0x20000 /* Allocation is for a stack. */
|
||||
#endif
|
||||
|
||||
/* Flags to `msync'. */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/* ix87 specific implementation of exp(x)-1.
|
||||
Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2001, 2002, 2008 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>.
|
||||
|
|
@ -48,6 +48,11 @@ l2e: .tfloat 1.442695040888963407359924681002
|
|||
|
||||
.text
|
||||
ENTRY(__expm1l)
|
||||
movzwl 8+8(%rsp), %eax // load sign bit and 15-bit exponent
|
||||
xorb $0x80, %ah // invert sign bit (now 1 is "positive")
|
||||
cmpl $0xc006, %eax // is num positive and exp >= 6 (number is >= 128.0)?
|
||||
jae __ieee754_expl // (if num is denormal, it is at least >= 64.0)
|
||||
|
||||
fldt 8(%rsp) // x
|
||||
fxam // Is NaN or +-Inf?
|
||||
fstsw %ax
|
||||
|
|
|
|||
|
|
@ -55,12 +55,14 @@ L(now_dw_aligned):
|
|||
cmp $0x90,%r8
|
||||
jg L(ck_mem_ops_method)
|
||||
L(now_dw_aligned_small):
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
add %r8,%rdi
|
||||
#ifndef PIC
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8)
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea L(Got0)(%rip),%r11
|
||||
lea L(setPxQx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -115,177 +117,177 @@ L(setPxQx):
|
|||
# endif
|
||||
#else
|
||||
L(setPxQx):
|
||||
.int L(Got0)-L(setPxQx)
|
||||
.int L(P1Q0)-L(setPxQx)
|
||||
.int L(P2Q0)-L(setPxQx)
|
||||
.int L(P3Q0)-L(setPxQx)
|
||||
.int L(P4Q0)-L(setPxQx)
|
||||
.int L(P5Q0)-L(setPxQx)
|
||||
.int L(P6Q0)-L(setPxQx)
|
||||
.int L(P7Q0)-L(setPxQx)
|
||||
.short L(Got0)-L(Got0)
|
||||
.short L(P1Q0)-L(Got0)
|
||||
.short L(P2Q0)-L(Got0)
|
||||
.short L(P3Q0)-L(Got0)
|
||||
.short L(P4Q0)-L(Got0)
|
||||
.short L(P5Q0)-L(Got0)
|
||||
.short L(P6Q0)-L(Got0)
|
||||
.short L(P7Q0)-L(Got0)
|
||||
|
||||
.int L(P0Q1)-L(setPxQx)
|
||||
.int L(P1Q1)-L(setPxQx)
|
||||
.int L(P2Q1)-L(setPxQx)
|
||||
.int L(P3Q1)-L(setPxQx)
|
||||
.int L(P4Q1)-L(setPxQx)
|
||||
.int L(P5Q1)-L(setPxQx)
|
||||
.int L(P6Q1)-L(setPxQx)
|
||||
.int L(P7Q1)-L(setPxQx)
|
||||
.short L(P0Q1)-L(Got0)
|
||||
.short L(P1Q1)-L(Got0)
|
||||
.short L(P2Q1)-L(Got0)
|
||||
.short L(P3Q1)-L(Got0)
|
||||
.short L(P4Q1)-L(Got0)
|
||||
.short L(P5Q1)-L(Got0)
|
||||
.short L(P6Q1)-L(Got0)
|
||||
.short L(P7Q1)-L(Got0)
|
||||
|
||||
.int L(P0Q2)-L(setPxQx)
|
||||
.int L(P1Q2)-L(setPxQx)
|
||||
.int L(P2Q2)-L(setPxQx)
|
||||
.int L(P3Q2)-L(setPxQx)
|
||||
.int L(P4Q2)-L(setPxQx)
|
||||
.int L(P5Q2)-L(setPxQx)
|
||||
.int L(P6Q2)-L(setPxQx)
|
||||
.int L(P7Q2)-L(setPxQx)
|
||||
.short L(P0Q2)-L(Got0)
|
||||
.short L(P1Q2)-L(Got0)
|
||||
.short L(P2Q2)-L(Got0)
|
||||
.short L(P3Q2)-L(Got0)
|
||||
.short L(P4Q2)-L(Got0)
|
||||
.short L(P5Q2)-L(Got0)
|
||||
.short L(P6Q2)-L(Got0)
|
||||
.short L(P7Q2)-L(Got0)
|
||||
|
||||
.int L(P0Q3)-L(setPxQx)
|
||||
.int L(P1Q3)-L(setPxQx)
|
||||
.int L(P2Q3)-L(setPxQx)
|
||||
.int L(P3Q3)-L(setPxQx)
|
||||
.int L(P4Q3)-L(setPxQx)
|
||||
.int L(P5Q3)-L(setPxQx)
|
||||
.int L(P6Q3)-L(setPxQx)
|
||||
.int L(P7Q3)-L(setPxQx)
|
||||
.short L(P0Q3)-L(Got0)
|
||||
.short L(P1Q3)-L(Got0)
|
||||
.short L(P2Q3)-L(Got0)
|
||||
.short L(P3Q3)-L(Got0)
|
||||
.short L(P4Q3)-L(Got0)
|
||||
.short L(P5Q3)-L(Got0)
|
||||
.short L(P6Q3)-L(Got0)
|
||||
.short L(P7Q3)-L(Got0)
|
||||
|
||||
.int L(P0Q4)-L(setPxQx)
|
||||
.int L(P1Q4)-L(setPxQx)
|
||||
.int L(P2Q4)-L(setPxQx)
|
||||
.int L(P3Q4)-L(setPxQx)
|
||||
.int L(P4Q4)-L(setPxQx)
|
||||
.int L(P5Q4)-L(setPxQx)
|
||||
.int L(P6Q4)-L(setPxQx)
|
||||
.int L(P7Q4)-L(setPxQx)
|
||||
.short L(P0Q4)-L(Got0)
|
||||
.short L(P1Q4)-L(Got0)
|
||||
.short L(P2Q4)-L(Got0)
|
||||
.short L(P3Q4)-L(Got0)
|
||||
.short L(P4Q4)-L(Got0)
|
||||
.short L(P5Q4)-L(Got0)
|
||||
.short L(P6Q4)-L(Got0)
|
||||
.short L(P7Q4)-L(Got0)
|
||||
|
||||
.int L(P0Q5)-L(setPxQx)
|
||||
.int L(P1Q5)-L(setPxQx)
|
||||
.int L(P2Q5)-L(setPxQx)
|
||||
.int L(P3Q5)-L(setPxQx)
|
||||
.int L(P4Q5)-L(setPxQx)
|
||||
.int L(P5Q5)-L(setPxQx)
|
||||
.int L(P6Q5)-L(setPxQx)
|
||||
.int L(P7Q5)-L(setPxQx)
|
||||
.short L(P0Q5)-L(Got0)
|
||||
.short L(P1Q5)-L(Got0)
|
||||
.short L(P2Q5)-L(Got0)
|
||||
.short L(P3Q5)-L(Got0)
|
||||
.short L(P4Q5)-L(Got0)
|
||||
.short L(P5Q5)-L(Got0)
|
||||
.short L(P6Q5)-L(Got0)
|
||||
.short L(P7Q5)-L(Got0)
|
||||
|
||||
.int L(P0Q6)-L(setPxQx)
|
||||
.int L(P1Q6)-L(setPxQx)
|
||||
.int L(P2Q6)-L(setPxQx)
|
||||
.int L(P3Q6)-L(setPxQx)
|
||||
.int L(P4Q6)-L(setPxQx)
|
||||
.int L(P5Q6)-L(setPxQx)
|
||||
.int L(P6Q6)-L(setPxQx)
|
||||
.int L(P7Q6)-L(setPxQx)
|
||||
.short L(P0Q6)-L(Got0)
|
||||
.short L(P1Q6)-L(Got0)
|
||||
.short L(P2Q6)-L(Got0)
|
||||
.short L(P3Q6)-L(Got0)
|
||||
.short L(P4Q6)-L(Got0)
|
||||
.short L(P5Q6)-L(Got0)
|
||||
.short L(P6Q6)-L(Got0)
|
||||
.short L(P7Q6)-L(Got0)
|
||||
|
||||
.int L(P0Q7)-L(setPxQx)
|
||||
.int L(P1Q7)-L(setPxQx)
|
||||
.int L(P2Q7)-L(setPxQx)
|
||||
.int L(P3Q7)-L(setPxQx)
|
||||
.int L(P4Q7)-L(setPxQx)
|
||||
.int L(P5Q7)-L(setPxQx)
|
||||
.int L(P6Q7)-L(setPxQx)
|
||||
.int L(P7Q7)-L(setPxQx)
|
||||
.short L(P0Q7)-L(Got0)
|
||||
.short L(P1Q7)-L(Got0)
|
||||
.short L(P2Q7)-L(Got0)
|
||||
.short L(P3Q7)-L(Got0)
|
||||
.short L(P4Q7)-L(Got0)
|
||||
.short L(P5Q7)-L(Got0)
|
||||
.short L(P6Q7)-L(Got0)
|
||||
.short L(P7Q7)-L(Got0)
|
||||
|
||||
.int L(P0Q8)-L(setPxQx)
|
||||
.int L(P1Q8)-L(setPxQx)
|
||||
.int L(P2Q8)-L(setPxQx)
|
||||
.int L(P3Q8)-L(setPxQx)
|
||||
.int L(P4Q8)-L(setPxQx)
|
||||
.int L(P5Q8)-L(setPxQx)
|
||||
.int L(P6Q8)-L(setPxQx)
|
||||
.int L(P7Q8)-L(setPxQx)
|
||||
.short L(P0Q8)-L(Got0)
|
||||
.short L(P1Q8)-L(Got0)
|
||||
.short L(P2Q8)-L(Got0)
|
||||
.short L(P3Q8)-L(Got0)
|
||||
.short L(P4Q8)-L(Got0)
|
||||
.short L(P5Q8)-L(Got0)
|
||||
.short L(P6Q8)-L(Got0)
|
||||
.short L(P7Q8)-L(Got0)
|
||||
|
||||
.int L(P0Q9)-L(setPxQx)
|
||||
.int L(P1Q9)-L(setPxQx)
|
||||
.int L(P2Q9)-L(setPxQx)
|
||||
.int L(P3Q9)-L(setPxQx)
|
||||
.int L(P4Q9)-L(setPxQx)
|
||||
.int L(P5Q9)-L(setPxQx)
|
||||
.int L(P6Q9)-L(setPxQx)
|
||||
.int L(P7Q9)-L(setPxQx)
|
||||
.short L(P0Q9)-L(Got0)
|
||||
.short L(P1Q9)-L(Got0)
|
||||
.short L(P2Q9)-L(Got0)
|
||||
.short L(P3Q9)-L(Got0)
|
||||
.short L(P4Q9)-L(Got0)
|
||||
.short L(P5Q9)-L(Got0)
|
||||
.short L(P6Q9)-L(Got0)
|
||||
.short L(P7Q9)-L(Got0)
|
||||
|
||||
.int L(P0QA)-L(setPxQx)
|
||||
.int L(P1QA)-L(setPxQx)
|
||||
.int L(P2QA)-L(setPxQx)
|
||||
.int L(P3QA)-L(setPxQx)
|
||||
.int L(P4QA)-L(setPxQx)
|
||||
.int L(P5QA)-L(setPxQx)
|
||||
.int L(P6QA)-L(setPxQx)
|
||||
.int L(P7QA)-L(setPxQx)
|
||||
.short L(P0QA)-L(Got0)
|
||||
.short L(P1QA)-L(Got0)
|
||||
.short L(P2QA)-L(Got0)
|
||||
.short L(P3QA)-L(Got0)
|
||||
.short L(P4QA)-L(Got0)
|
||||
.short L(P5QA)-L(Got0)
|
||||
.short L(P6QA)-L(Got0)
|
||||
.short L(P7QA)-L(Got0)
|
||||
|
||||
.int L(P0QB)-L(setPxQx)
|
||||
.int L(P1QB)-L(setPxQx)
|
||||
.int L(P2QB)-L(setPxQx)
|
||||
.int L(P3QB)-L(setPxQx)
|
||||
.int L(P4QB)-L(setPxQx)
|
||||
.int L(P5QB)-L(setPxQx)
|
||||
.int L(P6QB)-L(setPxQx)
|
||||
.int L(P7QB)-L(setPxQx)
|
||||
.short L(P0QB)-L(Got0)
|
||||
.short L(P1QB)-L(Got0)
|
||||
.short L(P2QB)-L(Got0)
|
||||
.short L(P3QB)-L(Got0)
|
||||
.short L(P4QB)-L(Got0)
|
||||
.short L(P5QB)-L(Got0)
|
||||
.short L(P6QB)-L(Got0)
|
||||
.short L(P7QB)-L(Got0)
|
||||
|
||||
.int L(P0QC)-L(setPxQx)
|
||||
.int L(P1QC)-L(setPxQx)
|
||||
.int L(P2QC)-L(setPxQx)
|
||||
.int L(P3QC)-L(setPxQx)
|
||||
.int L(P4QC)-L(setPxQx)
|
||||
.int L(P5QC)-L(setPxQx)
|
||||
.int L(P6QC)-L(setPxQx)
|
||||
.int L(P7QC)-L(setPxQx)
|
||||
.short L(P0QC)-L(Got0)
|
||||
.short L(P1QC)-L(Got0)
|
||||
.short L(P2QC)-L(Got0)
|
||||
.short L(P3QC)-L(Got0)
|
||||
.short L(P4QC)-L(Got0)
|
||||
.short L(P5QC)-L(Got0)
|
||||
.short L(P6QC)-L(Got0)
|
||||
.short L(P7QC)-L(Got0)
|
||||
|
||||
.int L(P0QD)-L(setPxQx)
|
||||
.int L(P1QD)-L(setPxQx)
|
||||
.int L(P2QD)-L(setPxQx)
|
||||
.int L(P3QD)-L(setPxQx)
|
||||
.int L(P4QD)-L(setPxQx)
|
||||
.int L(P5QD)-L(setPxQx)
|
||||
.int L(P6QD)-L(setPxQx)
|
||||
.int L(P7QD)-L(setPxQx)
|
||||
.short L(P0QD)-L(Got0)
|
||||
.short L(P1QD)-L(Got0)
|
||||
.short L(P2QD)-L(Got0)
|
||||
.short L(P3QD)-L(Got0)
|
||||
.short L(P4QD)-L(Got0)
|
||||
.short L(P5QD)-L(Got0)
|
||||
.short L(P6QD)-L(Got0)
|
||||
.short L(P7QD)-L(Got0)
|
||||
|
||||
.int L(P0QE)-L(setPxQx)
|
||||
.int L(P1QE)-L(setPxQx)
|
||||
.int L(P2QE)-L(setPxQx)
|
||||
.int L(P3QE)-L(setPxQx)
|
||||
.int L(P4QE)-L(setPxQx)
|
||||
.int L(P5QE)-L(setPxQx)
|
||||
.int L(P6QE)-L(setPxQx)
|
||||
.int L(P7QE)-L(setPxQx)
|
||||
.short L(P0QE)-L(Got0)
|
||||
.short L(P1QE)-L(Got0)
|
||||
.short L(P2QE)-L(Got0)
|
||||
.short L(P3QE)-L(Got0)
|
||||
.short L(P4QE)-L(Got0)
|
||||
.short L(P5QE)-L(Got0)
|
||||
.short L(P6QE)-L(Got0)
|
||||
.short L(P7QE)-L(Got0)
|
||||
|
||||
.int L(P0QF)-L(setPxQx)
|
||||
.int L(P1QF)-L(setPxQx)
|
||||
.int L(P2QF)-L(setPxQx)
|
||||
.int L(P3QF)-L(setPxQx)
|
||||
.int L(P4QF)-L(setPxQx)
|
||||
.int L(P5QF)-L(setPxQx)
|
||||
.int L(P6QF)-L(setPxQx)
|
||||
.int L(P7QF)-L(setPxQx)
|
||||
.short L(P0QF)-L(Got0)
|
||||
.short L(P1QF)-L(Got0)
|
||||
.short L(P2QF)-L(Got0)
|
||||
.short L(P3QF)-L(Got0)
|
||||
.short L(P4QF)-L(Got0)
|
||||
.short L(P5QF)-L(Got0)
|
||||
.short L(P6QF)-L(Got0)
|
||||
.short L(P7QF)-L(Got0)
|
||||
|
||||
.int L(P0QG)-L(setPxQx)
|
||||
.int L(P1QG)-L(setPxQx)
|
||||
.int L(P2QG)-L(setPxQx)
|
||||
.int L(P3QG)-L(setPxQx)
|
||||
.int L(P4QG)-L(setPxQx)
|
||||
.int L(P5QG)-L(setPxQx)
|
||||
.int L(P6QG)-L(setPxQx)
|
||||
.int L(P7QG)-L(setPxQx)
|
||||
.short L(P0QG)-L(Got0)
|
||||
.short L(P1QG)-L(Got0)
|
||||
.short L(P2QG)-L(Got0)
|
||||
.short L(P3QG)-L(Got0)
|
||||
.short L(P4QG)-L(Got0)
|
||||
.short L(P5QG)-L(Got0)
|
||||
.short L(P6QG)-L(Got0)
|
||||
.short L(P7QG)-L(Got0)
|
||||
|
||||
.int L(P0QH)-L(setPxQx)
|
||||
.int L(P1QH)-L(setPxQx)
|
||||
.int L(P2QH)-L(setPxQx)
|
||||
.int L(P3QH)-L(setPxQx)
|
||||
.int L(P4QH)-L(setPxQx)
|
||||
.int L(P5QH)-L(setPxQx)
|
||||
.int L(P6QH)-L(setPxQx)
|
||||
.int L(P7QH)-L(setPxQx)
|
||||
.short L(P0QH)-L(Got0)
|
||||
.short L(P1QH)-L(Got0)
|
||||
.short L(P2QH)-L(Got0)
|
||||
.short L(P3QH)-L(Got0)
|
||||
.short L(P4QH)-L(Got0)
|
||||
.short L(P5QH)-L(Got0)
|
||||
.short L(P6QH)-L(Got0)
|
||||
.short L(P7QH)-L(Got0)
|
||||
|
||||
.int L(P0QI)-L(setPxQx)
|
||||
.short L(P0QI)-L(Got0)
|
||||
# ifdef USE_EXTRA_TABLE
|
||||
.int L(P1QI)-L(setPxQx)
|
||||
.int L(P2QI)-L(setPxQx)
|
||||
.int L(P3QI)-L(setPxQx)
|
||||
.int L(P4QI)-L(setPxQx)
|
||||
.int L(P5QI)-L(setPxQx)
|
||||
.int L(P6QI)-L(setPxQx)
|
||||
.int L(P7QI)-L(setPxQx)
|
||||
.short L(P1QI)-L(Got0)
|
||||
.short L(P2QI)-L(Got0)
|
||||
.short L(P3QI)-L(Got0)
|
||||
.short L(P4QI)-L(Got0)
|
||||
.short L(P5QI)-L(Got0)
|
||||
.short L(P6QI)-L(Got0)
|
||||
.short L(P7QI)-L(Got0)
|
||||
# endif
|
||||
#endif
|
||||
.popsection
|
||||
|
|
@ -499,18 +501,20 @@ L(ck_mem_ops_method):
|
|||
# align to 16 byte boundary first
|
||||
#test $0xf,%rdi
|
||||
#jz L(aligned_now)
|
||||
lea L(AliPxQx)(%rip),%r11
|
||||
mov $0x10,%r10
|
||||
mov %rdi,%r9
|
||||
and $0xf,%r9
|
||||
sub %r9,%r10
|
||||
and $0xf,%r10
|
||||
add %r10,%rdi
|
||||
sub %r10,%r8
|
||||
mov $0x10,%r10
|
||||
mov %rdi,%r9
|
||||
and $0xf,%r9
|
||||
sub %r9,%r10
|
||||
and $0xf,%r10
|
||||
add %r10,%rdi
|
||||
sub %r10,%r8
|
||||
#ifndef PIC
|
||||
lea L(AliPxQx)(%rip),%r11
|
||||
jmpq *(%r11,%r10,8)
|
||||
#else
|
||||
movslq (%r11,%r10,4),%rcx
|
||||
lea L(aligned_now)(%rip), %r11
|
||||
lea L(AliPxQx)(%rip),%rcx
|
||||
movswq (%rcx,%r10,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -525,23 +529,23 @@ L(AliPxQx):
|
|||
.quad L(A4Q1), L(A5Q1), L(A6Q1), L(A7Q1)
|
||||
#else
|
||||
L(AliPxQx):
|
||||
.int L(aligned_now)-L(AliPxQx)
|
||||
.int L(A1Q0)-L(AliPxQx)
|
||||
.int L(A2Q0)-L(AliPxQx)
|
||||
.int L(A3Q0)-L(AliPxQx)
|
||||
.int L(A4Q0)-L(AliPxQx)
|
||||
.int L(A5Q0)-L(AliPxQx)
|
||||
.int L(A6Q0)-L(AliPxQx)
|
||||
.int L(A7Q0)-L(AliPxQx)
|
||||
.short L(aligned_now)-L(aligned_now)
|
||||
.short L(A1Q0)-L(aligned_now)
|
||||
.short L(A2Q0)-L(aligned_now)
|
||||
.short L(A3Q0)-L(aligned_now)
|
||||
.short L(A4Q0)-L(aligned_now)
|
||||
.short L(A5Q0)-L(aligned_now)
|
||||
.short L(A6Q0)-L(aligned_now)
|
||||
.short L(A7Q0)-L(aligned_now)
|
||||
|
||||
.int L(A0Q1)-L(AliPxQx)
|
||||
.int L(A1Q1)-L(AliPxQx)
|
||||
.int L(A2Q1)-L(AliPxQx)
|
||||
.int L(A3Q1)-L(AliPxQx)
|
||||
.int L(A4Q1)-L(AliPxQx)
|
||||
.int L(A5Q1)-L(AliPxQx)
|
||||
.int L(A6Q1)-L(AliPxQx)
|
||||
.int L(A7Q1)-L(AliPxQx)
|
||||
.short L(A0Q1)-L(aligned_now)
|
||||
.short L(A1Q1)-L(aligned_now)
|
||||
.short L(A2Q1)-L(aligned_now)
|
||||
.short L(A3Q1)-L(aligned_now)
|
||||
.short L(A4Q1)-L(aligned_now)
|
||||
.short L(A5Q1)-L(aligned_now)
|
||||
.short L(A6Q1)-L(aligned_now)
|
||||
.short L(A7Q1)-L(aligned_now)
|
||||
#endif
|
||||
.popsection
|
||||
|
||||
|
|
@ -634,12 +638,14 @@ L(8byte_move_loop):
|
|||
L(8byte_move_skip):
|
||||
andl $127,%r8d
|
||||
lea (%rdi,%r8,1),%rdi
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
|
||||
#ifndef PIC
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea L(Got0)(%rip),%r11
|
||||
lea L(setPxQx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -676,11 +682,13 @@ L(8byte_stos_skip):
|
|||
|
||||
andl $7,%r8d
|
||||
lea (%rdi,%r8,1),%rdi
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
#ifndef PIC
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea L(Got0)(%rip),%r11
|
||||
lea L(setPxQx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -722,11 +730,13 @@ L(8byte_nt_move_skip):
|
|||
andl $127,%r8d
|
||||
|
||||
lea (%rdi,%r8,1),%rdi
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
#ifndef PIC
|
||||
lea L(setPxQx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8) # old scheme remained for nonPIC
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea L(Got0)(%rip),%r11
|
||||
lea L(setPxQx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -736,15 +746,17 @@ L(SSE_pre):
|
|||
movd %rdx,%xmm0
|
||||
punpcklqdq %xmm0,%xmm0
|
||||
|
||||
lea L(SSExDx)(%rip),%r9 # for later after the alignment
|
||||
cmp $0xb0,%r8 # 176
|
||||
jge L(byte32sse2_pre)
|
||||
|
||||
add %r8,%rdi
|
||||
#ifndef PIC
|
||||
lea L(SSExDx)(%rip),%r9
|
||||
jmpq *(%r9,%r8,8)
|
||||
#else
|
||||
movslq (%r9,%r8,4),%rcx
|
||||
lea L(SSE0Q0)(%rip),%r9
|
||||
lea L(SSExDx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r9,1),%r9
|
||||
jmpq *%r9
|
||||
#endif
|
||||
|
|
@ -1012,13 +1024,15 @@ L(byte32sse2):
|
|||
|
||||
lea 0x80(%rdi),%rdi
|
||||
jge L(byte32sse2)
|
||||
lea L(SSExDx)(%rip),%r11
|
||||
add %r8,%rdi
|
||||
#ifndef PIC
|
||||
lea L(SSExDx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8)
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
lea L(SSE0Q0)(%rip),%r11
|
||||
lea L(SSExDx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
||||
|
|
@ -1044,13 +1058,15 @@ L(sse2_nt_move):
|
|||
|
||||
lea 0x80(%rdi),%rdi
|
||||
jge L(sse2_nt_move)
|
||||
lea L(SSExDx)(%rip),%r11
|
||||
sfence
|
||||
add %r8,%rdi
|
||||
#ifndef PIC
|
||||
lea L(SSExDx)(%rip),%r11
|
||||
jmpq *(%r11,%r8,8)
|
||||
#else
|
||||
movslq (%r11,%r8,4),%rcx
|
||||
lea L(SSE0Q0)(%rip),%r11
|
||||
lea L(SSExDx)(%rip),%rcx
|
||||
movswq (%rcx,%r8,2),%rcx
|
||||
lea (%rcx,%r11,1),%r11
|
||||
jmpq *%r11
|
||||
#endif
|
||||
|
|
@ -1109,221 +1125,221 @@ L(SSExDx):
|
|||
.quad L(SSE12QB), L(SSE13QB), L(SSE14QB), L(SSE15QB)
|
||||
#else
|
||||
L(SSExDx):
|
||||
.int L(SSE0Q0) -L(SSExDx)
|
||||
.int L(SSE1Q0) -L(SSExDx)
|
||||
.int L(SSE2Q0) -L(SSExDx)
|
||||
.int L(SSE3Q0) -L(SSExDx)
|
||||
.int L(SSE4Q0) -L(SSExDx)
|
||||
.int L(SSE5Q0) -L(SSExDx)
|
||||
.int L(SSE6Q0) -L(SSExDx)
|
||||
.int L(SSE7Q0) -L(SSExDx)
|
||||
.short L(SSE0Q0) -L(SSE0Q0)
|
||||
.short L(SSE1Q0) -L(SSE0Q0)
|
||||
.short L(SSE2Q0) -L(SSE0Q0)
|
||||
.short L(SSE3Q0) -L(SSE0Q0)
|
||||
.short L(SSE4Q0) -L(SSE0Q0)
|
||||
.short L(SSE5Q0) -L(SSE0Q0)
|
||||
.short L(SSE6Q0) -L(SSE0Q0)
|
||||
.short L(SSE7Q0) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q0) -L(SSExDx)
|
||||
.int L(SSE9Q0) -L(SSExDx)
|
||||
.int L(SSE10Q0)-L(SSExDx)
|
||||
.int L(SSE11Q0)-L(SSExDx)
|
||||
.int L(SSE12Q0)-L(SSExDx)
|
||||
.int L(SSE13Q0)-L(SSExDx)
|
||||
.int L(SSE14Q0)-L(SSExDx)
|
||||
.int L(SSE15Q0)-L(SSExDx)
|
||||
.short L(SSE8Q0) -L(SSE0Q0)
|
||||
.short L(SSE9Q0) -L(SSE0Q0)
|
||||
.short L(SSE10Q0)-L(SSE0Q0)
|
||||
.short L(SSE11Q0)-L(SSE0Q0)
|
||||
.short L(SSE12Q0)-L(SSE0Q0)
|
||||
.short L(SSE13Q0)-L(SSE0Q0)
|
||||
.short L(SSE14Q0)-L(SSE0Q0)
|
||||
.short L(SSE15Q0)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q1) -L(SSExDx)
|
||||
.int L(SSE1Q1) -L(SSExDx)
|
||||
.int L(SSE2Q1) -L(SSExDx)
|
||||
.int L(SSE3Q1) -L(SSExDx)
|
||||
.int L(SSE4Q1) -L(SSExDx)
|
||||
.int L(SSE5Q1) -L(SSExDx)
|
||||
.int L(SSE6Q1) -L(SSExDx)
|
||||
.int L(SSE7Q1) -L(SSExDx)
|
||||
.short L(SSE0Q1) -L(SSE0Q0)
|
||||
.short L(SSE1Q1) -L(SSE0Q0)
|
||||
.short L(SSE2Q1) -L(SSE0Q0)
|
||||
.short L(SSE3Q1) -L(SSE0Q0)
|
||||
.short L(SSE4Q1) -L(SSE0Q0)
|
||||
.short L(SSE5Q1) -L(SSE0Q0)
|
||||
.short L(SSE6Q1) -L(SSE0Q0)
|
||||
.short L(SSE7Q1) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q1) -L(SSExDx)
|
||||
.int L(SSE9Q1) -L(SSExDx)
|
||||
.int L(SSE10Q1)-L(SSExDx)
|
||||
.int L(SSE11Q1)-L(SSExDx)
|
||||
.int L(SSE12Q1)-L(SSExDx)
|
||||
.int L(SSE13Q1)-L(SSExDx)
|
||||
.int L(SSE14Q1)-L(SSExDx)
|
||||
.int L(SSE15Q1)-L(SSExDx)
|
||||
.short L(SSE8Q1) -L(SSE0Q0)
|
||||
.short L(SSE9Q1) -L(SSE0Q0)
|
||||
.short L(SSE10Q1)-L(SSE0Q0)
|
||||
.short L(SSE11Q1)-L(SSE0Q0)
|
||||
.short L(SSE12Q1)-L(SSE0Q0)
|
||||
.short L(SSE13Q1)-L(SSE0Q0)
|
||||
.short L(SSE14Q1)-L(SSE0Q0)
|
||||
.short L(SSE15Q1)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q2) -L(SSExDx)
|
||||
.int L(SSE1Q2) -L(SSExDx)
|
||||
.int L(SSE2Q2) -L(SSExDx)
|
||||
.int L(SSE3Q2) -L(SSExDx)
|
||||
.int L(SSE4Q2) -L(SSExDx)
|
||||
.int L(SSE5Q2) -L(SSExDx)
|
||||
.int L(SSE6Q2) -L(SSExDx)
|
||||
.int L(SSE7Q2) -L(SSExDx)
|
||||
.short L(SSE0Q2) -L(SSE0Q0)
|
||||
.short L(SSE1Q2) -L(SSE0Q0)
|
||||
.short L(SSE2Q2) -L(SSE0Q0)
|
||||
.short L(SSE3Q2) -L(SSE0Q0)
|
||||
.short L(SSE4Q2) -L(SSE0Q0)
|
||||
.short L(SSE5Q2) -L(SSE0Q0)
|
||||
.short L(SSE6Q2) -L(SSE0Q0)
|
||||
.short L(SSE7Q2) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q2) -L(SSExDx)
|
||||
.int L(SSE9Q2) -L(SSExDx)
|
||||
.int L(SSE10Q2)-L(SSExDx)
|
||||
.int L(SSE11Q2)-L(SSExDx)
|
||||
.int L(SSE12Q2)-L(SSExDx)
|
||||
.int L(SSE13Q2)-L(SSExDx)
|
||||
.int L(SSE14Q2)-L(SSExDx)
|
||||
.int L(SSE15Q2)-L(SSExDx)
|
||||
.short L(SSE8Q2) -L(SSE0Q0)
|
||||
.short L(SSE9Q2) -L(SSE0Q0)
|
||||
.short L(SSE10Q2)-L(SSE0Q0)
|
||||
.short L(SSE11Q2)-L(SSE0Q0)
|
||||
.short L(SSE12Q2)-L(SSE0Q0)
|
||||
.short L(SSE13Q2)-L(SSE0Q0)
|
||||
.short L(SSE14Q2)-L(SSE0Q0)
|
||||
.short L(SSE15Q2)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q3) -L(SSExDx)
|
||||
.int L(SSE1Q3) -L(SSExDx)
|
||||
.int L(SSE2Q3) -L(SSExDx)
|
||||
.int L(SSE3Q3) -L(SSExDx)
|
||||
.int L(SSE4Q3) -L(SSExDx)
|
||||
.int L(SSE5Q3) -L(SSExDx)
|
||||
.int L(SSE6Q3) -L(SSExDx)
|
||||
.int L(SSE7Q3) -L(SSExDx)
|
||||
.short L(SSE0Q3) -L(SSE0Q0)
|
||||
.short L(SSE1Q3) -L(SSE0Q0)
|
||||
.short L(SSE2Q3) -L(SSE0Q0)
|
||||
.short L(SSE3Q3) -L(SSE0Q0)
|
||||
.short L(SSE4Q3) -L(SSE0Q0)
|
||||
.short L(SSE5Q3) -L(SSE0Q0)
|
||||
.short L(SSE6Q3) -L(SSE0Q0)
|
||||
.short L(SSE7Q3) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q3) -L(SSExDx)
|
||||
.int L(SSE9Q3) -L(SSExDx)
|
||||
.int L(SSE10Q3)-L(SSExDx)
|
||||
.int L(SSE11Q3)-L(SSExDx)
|
||||
.int L(SSE12Q3)-L(SSExDx)
|
||||
.int L(SSE13Q3)-L(SSExDx)
|
||||
.int L(SSE14Q3)-L(SSExDx)
|
||||
.int L(SSE15Q3)-L(SSExDx)
|
||||
.short L(SSE8Q3) -L(SSE0Q0)
|
||||
.short L(SSE9Q3) -L(SSE0Q0)
|
||||
.short L(SSE10Q3)-L(SSE0Q0)
|
||||
.short L(SSE11Q3)-L(SSE0Q0)
|
||||
.short L(SSE12Q3)-L(SSE0Q0)
|
||||
.short L(SSE13Q3)-L(SSE0Q0)
|
||||
.short L(SSE14Q3)-L(SSE0Q0)
|
||||
.short L(SSE15Q3)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q4) -L(SSExDx)
|
||||
.int L(SSE1Q4) -L(SSExDx)
|
||||
.int L(SSE2Q4) -L(SSExDx)
|
||||
.int L(SSE3Q4) -L(SSExDx)
|
||||
.int L(SSE4Q4) -L(SSExDx)
|
||||
.int L(SSE5Q4) -L(SSExDx)
|
||||
.int L(SSE6Q4) -L(SSExDx)
|
||||
.int L(SSE7Q4) -L(SSExDx)
|
||||
.short L(SSE0Q4) -L(SSE0Q0)
|
||||
.short L(SSE1Q4) -L(SSE0Q0)
|
||||
.short L(SSE2Q4) -L(SSE0Q0)
|
||||
.short L(SSE3Q4) -L(SSE0Q0)
|
||||
.short L(SSE4Q4) -L(SSE0Q0)
|
||||
.short L(SSE5Q4) -L(SSE0Q0)
|
||||
.short L(SSE6Q4) -L(SSE0Q0)
|
||||
.short L(SSE7Q4) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q4) -L(SSExDx)
|
||||
.int L(SSE9Q4) -L(SSExDx)
|
||||
.int L(SSE10Q4)-L(SSExDx)
|
||||
.int L(SSE11Q4)-L(SSExDx)
|
||||
.int L(SSE12Q4)-L(SSExDx)
|
||||
.int L(SSE13Q4)-L(SSExDx)
|
||||
.int L(SSE14Q4)-L(SSExDx)
|
||||
.int L(SSE15Q4)-L(SSExDx)
|
||||
.short L(SSE8Q4) -L(SSE0Q0)
|
||||
.short L(SSE9Q4) -L(SSE0Q0)
|
||||
.short L(SSE10Q4)-L(SSE0Q0)
|
||||
.short L(SSE11Q4)-L(SSE0Q0)
|
||||
.short L(SSE12Q4)-L(SSE0Q0)
|
||||
.short L(SSE13Q4)-L(SSE0Q0)
|
||||
.short L(SSE14Q4)-L(SSE0Q0)
|
||||
.short L(SSE15Q4)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q5) -L(SSExDx)
|
||||
.int L(SSE1Q5) -L(SSExDx)
|
||||
.int L(SSE2Q5) -L(SSExDx)
|
||||
.int L(SSE3Q5) -L(SSExDx)
|
||||
.int L(SSE4Q5) -L(SSExDx)
|
||||
.int L(SSE5Q5) -L(SSExDx)
|
||||
.int L(SSE6Q5) -L(SSExDx)
|
||||
.int L(SSE7Q5) -L(SSExDx)
|
||||
.short L(SSE0Q5) -L(SSE0Q0)
|
||||
.short L(SSE1Q5) -L(SSE0Q0)
|
||||
.short L(SSE2Q5) -L(SSE0Q0)
|
||||
.short L(SSE3Q5) -L(SSE0Q0)
|
||||
.short L(SSE4Q5) -L(SSE0Q0)
|
||||
.short L(SSE5Q5) -L(SSE0Q0)
|
||||
.short L(SSE6Q5) -L(SSE0Q0)
|
||||
.short L(SSE7Q5) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q5) -L(SSExDx)
|
||||
.int L(SSE9Q5) -L(SSExDx)
|
||||
.int L(SSE10Q5)-L(SSExDx)
|
||||
.int L(SSE11Q5)-L(SSExDx)
|
||||
.int L(SSE12Q5)-L(SSExDx)
|
||||
.int L(SSE13Q5)-L(SSExDx)
|
||||
.int L(SSE14Q5)-L(SSExDx)
|
||||
.int L(SSE15Q5)-L(SSExDx)
|
||||
.short L(SSE8Q5) -L(SSE0Q0)
|
||||
.short L(SSE9Q5) -L(SSE0Q0)
|
||||
.short L(SSE10Q5)-L(SSE0Q0)
|
||||
.short L(SSE11Q5)-L(SSE0Q0)
|
||||
.short L(SSE12Q5)-L(SSE0Q0)
|
||||
.short L(SSE13Q5)-L(SSE0Q0)
|
||||
.short L(SSE14Q5)-L(SSE0Q0)
|
||||
.short L(SSE15Q5)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q6) -L(SSExDx)
|
||||
.int L(SSE1Q6) -L(SSExDx)
|
||||
.int L(SSE2Q6) -L(SSExDx)
|
||||
.int L(SSE3Q6) -L(SSExDx)
|
||||
.int L(SSE4Q6) -L(SSExDx)
|
||||
.int L(SSE5Q6) -L(SSExDx)
|
||||
.int L(SSE6Q6) -L(SSExDx)
|
||||
.int L(SSE7Q6) -L(SSExDx)
|
||||
.short L(SSE0Q6) -L(SSE0Q0)
|
||||
.short L(SSE1Q6) -L(SSE0Q0)
|
||||
.short L(SSE2Q6) -L(SSE0Q0)
|
||||
.short L(SSE3Q6) -L(SSE0Q0)
|
||||
.short L(SSE4Q6) -L(SSE0Q0)
|
||||
.short L(SSE5Q6) -L(SSE0Q0)
|
||||
.short L(SSE6Q6) -L(SSE0Q0)
|
||||
.short L(SSE7Q6) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q6) -L(SSExDx)
|
||||
.int L(SSE9Q6) -L(SSExDx)
|
||||
.int L(SSE10Q6)-L(SSExDx)
|
||||
.int L(SSE11Q6)-L(SSExDx)
|
||||
.int L(SSE12Q6)-L(SSExDx)
|
||||
.int L(SSE13Q6)-L(SSExDx)
|
||||
.int L(SSE14Q6)-L(SSExDx)
|
||||
.int L(SSE15Q6)-L(SSExDx)
|
||||
.short L(SSE8Q6) -L(SSE0Q0)
|
||||
.short L(SSE9Q6) -L(SSE0Q0)
|
||||
.short L(SSE10Q6)-L(SSE0Q0)
|
||||
.short L(SSE11Q6)-L(SSE0Q0)
|
||||
.short L(SSE12Q6)-L(SSE0Q0)
|
||||
.short L(SSE13Q6)-L(SSE0Q0)
|
||||
.short L(SSE14Q6)-L(SSE0Q0)
|
||||
.short L(SSE15Q6)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q7) -L(SSExDx)
|
||||
.int L(SSE1Q7) -L(SSExDx)
|
||||
.int L(SSE2Q7) -L(SSExDx)
|
||||
.int L(SSE3Q7) -L(SSExDx)
|
||||
.int L(SSE4Q7) -L(SSExDx)
|
||||
.int L(SSE5Q7) -L(SSExDx)
|
||||
.int L(SSE6Q7) -L(SSExDx)
|
||||
.int L(SSE7Q7) -L(SSExDx)
|
||||
.short L(SSE0Q7) -L(SSE0Q0)
|
||||
.short L(SSE1Q7) -L(SSE0Q0)
|
||||
.short L(SSE2Q7) -L(SSE0Q0)
|
||||
.short L(SSE3Q7) -L(SSE0Q0)
|
||||
.short L(SSE4Q7) -L(SSE0Q0)
|
||||
.short L(SSE5Q7) -L(SSE0Q0)
|
||||
.short L(SSE6Q7) -L(SSE0Q0)
|
||||
.short L(SSE7Q7) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q7) -L(SSExDx)
|
||||
.int L(SSE9Q7) -L(SSExDx)
|
||||
.int L(SSE10Q7)-L(SSExDx)
|
||||
.int L(SSE11Q7)-L(SSExDx)
|
||||
.int L(SSE12Q7)-L(SSExDx)
|
||||
.int L(SSE13Q7)-L(SSExDx)
|
||||
.int L(SSE14Q7)-L(SSExDx)
|
||||
.int L(SSE15Q7)-L(SSExDx)
|
||||
.short L(SSE8Q7) -L(SSE0Q0)
|
||||
.short L(SSE9Q7) -L(SSE0Q0)
|
||||
.short L(SSE10Q7)-L(SSE0Q0)
|
||||
.short L(SSE11Q7)-L(SSE0Q0)
|
||||
.short L(SSE12Q7)-L(SSE0Q0)
|
||||
.short L(SSE13Q7)-L(SSE0Q0)
|
||||
.short L(SSE14Q7)-L(SSE0Q0)
|
||||
.short L(SSE15Q7)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q8) -L(SSExDx)
|
||||
.int L(SSE1Q8) -L(SSExDx)
|
||||
.int L(SSE2Q8) -L(SSExDx)
|
||||
.int L(SSE3Q8) -L(SSExDx)
|
||||
.int L(SSE4Q8) -L(SSExDx)
|
||||
.int L(SSE5Q8) -L(SSExDx)
|
||||
.int L(SSE6Q8) -L(SSExDx)
|
||||
.int L(SSE7Q8) -L(SSExDx)
|
||||
.short L(SSE0Q8) -L(SSE0Q0)
|
||||
.short L(SSE1Q8) -L(SSE0Q0)
|
||||
.short L(SSE2Q8) -L(SSE0Q0)
|
||||
.short L(SSE3Q8) -L(SSE0Q0)
|
||||
.short L(SSE4Q8) -L(SSE0Q0)
|
||||
.short L(SSE5Q8) -L(SSE0Q0)
|
||||
.short L(SSE6Q8) -L(SSE0Q0)
|
||||
.short L(SSE7Q8) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q8) -L(SSExDx)
|
||||
.int L(SSE9Q8) -L(SSExDx)
|
||||
.int L(SSE10Q8)-L(SSExDx)
|
||||
.int L(SSE11Q8)-L(SSExDx)
|
||||
.int L(SSE12Q8)-L(SSExDx)
|
||||
.int L(SSE13Q8)-L(SSExDx)
|
||||
.int L(SSE14Q8)-L(SSExDx)
|
||||
.int L(SSE15Q8)-L(SSExDx)
|
||||
.short L(SSE8Q8) -L(SSE0Q0)
|
||||
.short L(SSE9Q8) -L(SSE0Q0)
|
||||
.short L(SSE10Q8)-L(SSE0Q0)
|
||||
.short L(SSE11Q8)-L(SSE0Q0)
|
||||
.short L(SSE12Q8)-L(SSE0Q0)
|
||||
.short L(SSE13Q8)-L(SSE0Q0)
|
||||
.short L(SSE14Q8)-L(SSE0Q0)
|
||||
.short L(SSE15Q8)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0Q9) -L(SSExDx)
|
||||
.int L(SSE1Q9) -L(SSExDx)
|
||||
.int L(SSE2Q9) -L(SSExDx)
|
||||
.int L(SSE3Q9) -L(SSExDx)
|
||||
.int L(SSE4Q9) -L(SSExDx)
|
||||
.int L(SSE5Q9) -L(SSExDx)
|
||||
.int L(SSE6Q9) -L(SSExDx)
|
||||
.int L(SSE7Q9) -L(SSExDx)
|
||||
.short L(SSE0Q9) -L(SSE0Q0)
|
||||
.short L(SSE1Q9) -L(SSE0Q0)
|
||||
.short L(SSE2Q9) -L(SSE0Q0)
|
||||
.short L(SSE3Q9) -L(SSE0Q0)
|
||||
.short L(SSE4Q9) -L(SSE0Q0)
|
||||
.short L(SSE5Q9) -L(SSE0Q0)
|
||||
.short L(SSE6Q9) -L(SSE0Q0)
|
||||
.short L(SSE7Q9) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8Q9) -L(SSExDx)
|
||||
.int L(SSE9Q9) -L(SSExDx)
|
||||
.int L(SSE10Q9)-L(SSExDx)
|
||||
.int L(SSE11Q9)-L(SSExDx)
|
||||
.int L(SSE12Q9)-L(SSExDx)
|
||||
.int L(SSE13Q9)-L(SSExDx)
|
||||
.int L(SSE14Q9)-L(SSExDx)
|
||||
.int L(SSE15Q9)-L(SSExDx)
|
||||
.short L(SSE8Q9) -L(SSE0Q0)
|
||||
.short L(SSE9Q9) -L(SSE0Q0)
|
||||
.short L(SSE10Q9)-L(SSE0Q0)
|
||||
.short L(SSE11Q9)-L(SSE0Q0)
|
||||
.short L(SSE12Q9)-L(SSE0Q0)
|
||||
.short L(SSE13Q9)-L(SSE0Q0)
|
||||
.short L(SSE14Q9)-L(SSE0Q0)
|
||||
.short L(SSE15Q9)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0QA) -L(SSExDx)
|
||||
.int L(SSE1QA) -L(SSExDx)
|
||||
.int L(SSE2QA) -L(SSExDx)
|
||||
.int L(SSE3QA) -L(SSExDx)
|
||||
.int L(SSE4QA) -L(SSExDx)
|
||||
.int L(SSE5QA) -L(SSExDx)
|
||||
.int L(SSE6QA) -L(SSExDx)
|
||||
.int L(SSE7QA) -L(SSExDx)
|
||||
.short L(SSE0QA) -L(SSE0Q0)
|
||||
.short L(SSE1QA) -L(SSE0Q0)
|
||||
.short L(SSE2QA) -L(SSE0Q0)
|
||||
.short L(SSE3QA) -L(SSE0Q0)
|
||||
.short L(SSE4QA) -L(SSE0Q0)
|
||||
.short L(SSE5QA) -L(SSE0Q0)
|
||||
.short L(SSE6QA) -L(SSE0Q0)
|
||||
.short L(SSE7QA) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8QA) -L(SSExDx)
|
||||
.int L(SSE9QA) -L(SSExDx)
|
||||
.int L(SSE10QA)-L(SSExDx)
|
||||
.int L(SSE11QA)-L(SSExDx)
|
||||
.int L(SSE12QA)-L(SSExDx)
|
||||
.int L(SSE13QA)-L(SSExDx)
|
||||
.int L(SSE14QA)-L(SSExDx)
|
||||
.int L(SSE15QA)-L(SSExDx)
|
||||
.short L(SSE8QA) -L(SSE0Q0)
|
||||
.short L(SSE9QA) -L(SSE0Q0)
|
||||
.short L(SSE10QA)-L(SSE0Q0)
|
||||
.short L(SSE11QA)-L(SSE0Q0)
|
||||
.short L(SSE12QA)-L(SSE0Q0)
|
||||
.short L(SSE13QA)-L(SSE0Q0)
|
||||
.short L(SSE14QA)-L(SSE0Q0)
|
||||
.short L(SSE15QA)-L(SSE0Q0)
|
||||
|
||||
.int L(SSE0QB) -L(SSExDx)
|
||||
.int L(SSE1QB) -L(SSExDx)
|
||||
.int L(SSE2QB) -L(SSExDx)
|
||||
.int L(SSE3QB) -L(SSExDx)
|
||||
.int L(SSE4QB) -L(SSExDx)
|
||||
.int L(SSE5QB) -L(SSExDx)
|
||||
.int L(SSE6QB) -L(SSExDx)
|
||||
.int L(SSE7QB) -L(SSExDx)
|
||||
.short L(SSE0QB) -L(SSE0Q0)
|
||||
.short L(SSE1QB) -L(SSE0Q0)
|
||||
.short L(SSE2QB) -L(SSE0Q0)
|
||||
.short L(SSE3QB) -L(SSE0Q0)
|
||||
.short L(SSE4QB) -L(SSE0Q0)
|
||||
.short L(SSE5QB) -L(SSE0Q0)
|
||||
.short L(SSE6QB) -L(SSE0Q0)
|
||||
.short L(SSE7QB) -L(SSE0Q0)
|
||||
|
||||
.int L(SSE8QB) -L(SSExDx)
|
||||
.int L(SSE9QB) -L(SSExDx)
|
||||
.int L(SSE10QB)-L(SSExDx)
|
||||
.int L(SSE11QB)-L(SSExDx)
|
||||
.int L(SSE12QB)-L(SSExDx)
|
||||
.int L(SSE13QB)-L(SSExDx)
|
||||
.int L(SSE14QB)-L(SSExDx)
|
||||
.int L(SSE15QB)-L(SSExDx)
|
||||
.short L(SSE8QB) -L(SSE0Q0)
|
||||
.short L(SSE9QB) -L(SSE0Q0)
|
||||
.short L(SSE10QB)-L(SSE0Q0)
|
||||
.short L(SSE11QB)-L(SSE0Q0)
|
||||
.short L(SSE12QB)-L(SSE0Q0)
|
||||
.short L(SSE13QB)-L(SSE0Q0)
|
||||
.short L(SSE14QB)-L(SSE0Q0)
|
||||
.short L(SSE15QB)-L(SSE0Q0)
|
||||
#endif
|
||||
.popsection
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue