This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.17-4-g31a7fe5


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  31a7fe5ca943b8bd76357c9c013211f8c17db833 (commit)
       via  b76eb5f076d362cdfbb95f0986285a8661e4082f (commit)
       via  8ebac7785b6ac0e412075d832af2ede21153148a (commit)
      from  2c8bfe7d6f22c4a599894846bf1715d93b295f53 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=31a7fe5ca943b8bd76357c9c013211f8c17db833

commit 31a7fe5ca943b8bd76357c9c013211f8c17db833
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Thu Dec 27 20:43:55 2012 +0530

    Remove redundant __mpexp_nn
    
    It's an array that stores integral float values of the offset.

diff --git a/ChangeLog b/ChangeLog
index 7216ca6..2a9a361 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-12-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
+	* sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Eliminate __mpexp_nn
+	and use variable directly.
+	* sysdeps/ieee754/dbl-64/mpexp.h (__mpexp_nn): Remove.
+
 	* sysdeps/ieee754/dbl-64/mpa.c [! NO__CONST]: New constant
 	MPONE.
 	* sysdeps/ieee754/dbl-64/mpa.h: Declare MPONE.
diff --git a/sysdeps/ieee754/dbl-64/mpexp.c b/sysdeps/ieee754/dbl-64/mpexp.c
index 2762ba9..c5a0283 100644
--- a/sysdeps/ieee754/dbl-64/mpexp.c
+++ b/sysdeps/ieee754/dbl-64/mpexp.c
@@ -81,12 +81,12 @@ __mpexp(mp_no *x, mp_no *y, int p) {
   __mul(x,&mpt1,&mps,p);
 
   /* Evaluate the polynomial. Put result in mpt2 */
-  mpk.e = 1;   mpk.d[0] = ONE;   mpk.d[1]=__mpexp_nn[n].d;
+  mpk.e = 1;   mpk.d[0] = ONE;   mpk.d[1]=n;
   __dvd(&mps,&mpk,&mpt1,p);
   __add(&mpone,&mpt1,&mpak,p);
   for (k=n-1; k>1; k--) {
     __mul(&mps,&mpak,&mpt1,p);
-    mpk.d[1]=__mpexp_nn[k].d;
+    mpk.d[1] = k;
     __dvd(&mpt1,&mpk,&mpt2,p);
     __add(&mpone,&mpt2,&mpak,p);
   }
diff --git a/sysdeps/ieee754/dbl-64/mpexp.h b/sysdeps/ieee754/dbl-64/mpexp.h
index 390e272..758255b 100644
--- a/sysdeps/ieee754/dbl-64/mpexp.h
+++ b/sysdeps/ieee754/dbl-64/mpexp.h
@@ -28,7 +28,6 @@
 #define MPEXP_H
 
 extern const number __mpexp_twomm1[33] attribute_hidden;
-extern const number __mpexp_nn[9] attribute_hidden;
 extern const number __mpexp_radix attribute_hidden;
 extern const number __mpexp_radixi attribute_hidden;
 extern const number __mpexp_zero attribute_hidden;
@@ -75,18 +74,6 @@ extern const number __mpexp_half attribute_hidden;
 /**/                  {{0x3b100000, 0x00000000} }, /* 2**-78 */
 /**/                  {{0x3ae00000, 0x00000000} }, /* 2**-81 */
   };
-  const number
-	       __mpexp_nn[9]={                     /* n      */
-/**/                  {{0x00000000, 0x00000000} }, /* 0      */
-/**/                  {{0x3ff00000, 0x00000000} }, /* 1      */
-/**/                  {{0x40000000, 0x00000000} }, /* 2      */
-/**/                  {{0x40080000, 0x00000000} }, /* 3      */
-/**/                  {{0x40100000, 0x00000000} }, /* 4      */
-/**/                  {{0x40140000, 0x00000000} }, /* 5      */
-/**/                  {{0x40180000, 0x00000000} }, /* 6      */
-/**/                  {{0x401c0000, 0x00000000} }, /* 7      */
-/**/                  {{0x40200000, 0x00000000} }, /* 8      */
-  };
 
   const number
 /**/ __mpexp_radix    = {{0x41700000, 0x00000000} }, /* 2**24  */
@@ -135,19 +122,6 @@ extern const number __mpexp_half attribute_hidden;
 /**/                  {{0x00000000, 0x3ae00000} }, /* 2**-81 */
   };
   const number
-	       __mpexp_nn[9]={                     /* n      */
-/**/                  {{0x00000000, 0x00000000} }, /* 0      */
-/**/                  {{0x00000000, 0x3ff00000} }, /* 1      */
-/**/                  {{0x00000000, 0x40000000} }, /* 2      */
-/**/                  {{0x00000000, 0x40080000} }, /* 3      */
-/**/                  {{0x00000000, 0x40100000} }, /* 4      */
-/**/                  {{0x00000000, 0x40140000} }, /* 5      */
-/**/                  {{0x00000000, 0x40180000} }, /* 6      */
-/**/                  {{0x00000000, 0x401c0000} }, /* 7      */
-/**/                  {{0x00000000, 0x40200000} }, /* 8      */
-  };
-
-  const number
 /**/ __mpexp_radix    = {{0x00000000, 0x41700000} }, /* 2**24  */
 /**/ __mpexp_radixi   = {{0x00000000, 0x3e700000} }, /* 2**-24 */
 /**/ __mpexp_zero     = {{0x00000000, 0x00000000} }, /* 0      */

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b76eb5f076d362cdfbb95f0986285a8661e4082f

commit b76eb5f076d362cdfbb95f0986285a8661e4082f
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Thu Dec 27 20:43:24 2012 +0530

    Move mpone out to a global const
    
    Code cleanup.

diff --git a/ChangeLog b/ChangeLog
index 86350e3..7216ca6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2012-12-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+	* sysdeps/ieee754/dbl-64/mpa.c [! NO__CONST]: New constant
+	MPONE.
+	* sysdeps/ieee754/dbl-64/mpa.h: Declare MPONE.
+	* sysdeps/ieee754/dbl-64/mpatan.c (__mpatan): Remove local
+	variable MPONE.
+	* sysdeps/ieee754/dbl-64/mpatan2.c (__mpatan2): Likewise.
+	* sysdeps/ieee754/dbl-64/mpexp.c (__mpexp): Likewise.
+	* sysdeps/ieee754/dbl-64/mplog.c (__mplog): Remove mplog.h
+	include directive.  Remove local variable MPONE.
+	* sysdeps/ieee754/dbl-64/mplog.h: Remove.
+	* sysdeps/x86_64/fpu/multiarch/mpa-avx.c: Define NO__CONST.
+	* sysdeps/x86_64/fpu/multiarch/mpa-fma4.c: Likewise.
+
 2012-12-25  David S. Miller  <davem@davemloft.net>
 
 	* version.h (RELEASE): Set to "development".
diff --git a/sysdeps/ieee754/dbl-64/mpa.c b/sysdeps/ieee754/dbl-64/mpa.c
index 7e0ee44..b5d25ed 100644
--- a/sysdeps/ieee754/dbl-64/mpa.c
+++ b/sysdeps/ieee754/dbl-64/mpa.c
@@ -51,6 +51,10 @@
 # define SECTION
 #endif
 
+#ifndef NO__CONST
+const mp_no mpone = {1, {1.0, 1.0}};
+#endif
+
 #ifndef NO___ACR
 /* mcr() compares the sizes of the mantissas of two multiple precision  */
 /* numbers. Mantissas are compared regardless of the signs of the       */
diff --git a/sysdeps/ieee754/dbl-64/mpa.h b/sysdeps/ieee754/dbl-64/mpa.h
index 26ae2ac..4fdecb6 100644
--- a/sysdeps/ieee754/dbl-64/mpa.h
+++ b/sysdeps/ieee754/dbl-64/mpa.h
@@ -54,6 +54,8 @@ typedef struct {/* This structure holds the details of a multi-precision     */
 
 typedef union { int i[2]; double d; } number;
 
+extern const mp_no mpone;
+
 #define  X   x->d
 #define  Y   y->d
 #define  Z   z->d
diff --git a/sysdeps/ieee754/dbl-64/mpatan.c b/sysdeps/ieee754/dbl-64/mpatan.c
index 80637e5..d897bbb 100644
--- a/sysdeps/ieee754/dbl-64/mpatan.c
+++ b/sysdeps/ieee754/dbl-64/mpatan.c
@@ -48,9 +48,6 @@ __mpatan(mp_no *x, mp_no *y, int p) {
   int i,m,n;
   double dx;
   mp_no
-    mpone    = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}},
     mptwo    = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
 		0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
 		0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}},
@@ -60,7 +57,7 @@ __mpatan(mp_no *x, mp_no *y, int p) {
 
   mp_no mps,mpsm,mpt,mpt1,mpt2,mpt3;
 
-		      /* Choose m and initiate mpone, mptwo & mptwoim1 */
+		      /* Choose m and initiate mptwo & mptwoim1 */
     if      (EX>0) m=7;
     else if (EX<0) m=0;
     else {
@@ -68,8 +65,8 @@ __mpatan(mp_no *x, mp_no *y, int p) {
       for (m=6; m>0; m--)
 	{if (dx>__atan_xm[m].d) break;}
     }
-    mpone.e    = mptwo.e    = mptwoim1.e = 1;
-    mpone.d[0] = mpone.d[1] = mptwo.d[0] = mptwoim1.d[0] = ONE;
+    mptwo.e    = mptwoim1.e = 1;
+    mptwo.d[0] = mptwoim1.d[0] = ONE;
     mptwo.d[1] = TWO;
 
 				 /* Reduce x m times */
diff --git a/sysdeps/ieee754/dbl-64/mpatan2.c b/sysdeps/ieee754/dbl-64/mpatan2.c
index e9c9745..42cb6a7 100644
--- a/sysdeps/ieee754/dbl-64/mpatan2.c
+++ b/sysdeps/ieee754/dbl-64/mpatan2.c
@@ -51,14 +51,10 @@ __mpatan2(mp_no *y, mp_no *x, mp_no *z, int p) {
 
   static const double ZERO = 0.0, ONE = 1.0;
 
-  mp_no mpone = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}};
   mp_no mpt1,mpt2,mpt3;
 
 
   if (X[0] <= ZERO) {
-    mpone.e = 1;                 mpone.d[0] = mpone.d[1] = ONE;
     __dvd(x,y,&mpt1,p);          __mul(&mpt1,&mpt1,&mpt2,p);
     if (mpt1.d[0] != ZERO)       mpt1.d[0] = ONE;
     __add(&mpt2,&mpone,&mpt3,p); __mpsqrt(&mpt3,&mpt2,p);
diff --git a/sysdeps/ieee754/dbl-64/mpexp.c b/sysdeps/ieee754/dbl-64/mpexp.c
index 6b1fcf2..2762ba9 100644
--- a/sysdeps/ieee754/dbl-64/mpexp.c
+++ b/sysdeps/ieee754/dbl-64/mpexp.c
@@ -56,9 +56,6 @@ __mpexp(mp_no *x, mp_no *y, int p) {
 		 { 0, 0, 0, 0, 0, 0,23,28,33,38,42,47,52,57,62,66, 0, 0},
 		 { 0, 0, 0, 0, 0, 0, 0, 0,27, 0, 0,39,43,47,51,55,59,63},
 		 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,43,47,50,54}};
-  mp_no mpone = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}};
   mp_no mpk   = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
 		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
 		    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}};
@@ -84,7 +81,6 @@ __mpexp(mp_no *x, mp_no *y, int p) {
   __mul(x,&mpt1,&mps,p);
 
   /* Evaluate the polynomial. Put result in mpt2 */
-  mpone.e=1;   mpone.d[0]=ONE;   mpone.d[1]=ONE;
   mpk.e = 1;   mpk.d[0] = ONE;   mpk.d[1]=__mpexp_nn[n].d;
   __dvd(&mps,&mpk,&mpt1,p);
   __add(&mpone,&mpt1,&mpak,p);
diff --git a/sysdeps/ieee754/dbl-64/mplog.c b/sysdeps/ieee754/dbl-64/mplog.c
index 8255e2a..c0606c6 100644
--- a/sysdeps/ieee754/dbl-64/mplog.c
+++ b/sysdeps/ieee754/dbl-64/mplog.c
@@ -40,21 +40,13 @@
 void __mpexp(mp_no *, mp_no *, int);
 
 void __mplog(mp_no *x, mp_no *y, int p) {
-#include "mplog.h"
   int i,m;
-#if 0
-  int j,k,m1,m2,n;
-  double a,b;
-#endif
   static const int mp[33] = {0,0,0,0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,
                              4,4,4,4,4,4,4,4,4,4,4,4,4,4};
-  mp_no mpone = {0,{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-                    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
-                    0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}};
   mp_no mpt1,mpt2;
 
-  /* Choose m and initiate mpone */
-  m = mp[p];  mpone.e = 1;  mpone.d[0]=mpone.d[1]=ONE;
+  /* Choose m */
+  m = mp[p];
 
   /* Perform m newton iterations to solve for y: exp(y)-x=0.     */
   /* The iterations formula is:  y(n+1)=y(n)+(x*exp(-y(n))-1).   */
diff --git a/sysdeps/ieee754/dbl-64/mplog.h b/sysdeps/ieee754/dbl-64/mplog.h
deleted file mode 100644
index b967f52..0000000
--- a/sysdeps/ieee754/dbl-64/mplog.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * IBM Accurate Mathematical Library
- * Written by International Business Machines Corp.
- * Copyright (C) 2001 Free Software Foundation, Inc.
- *
- * This program 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.
- *
- * This program 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 this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/******************************************************************/
-/*                                                                */
-/* MODULE_NAME:mplog.h                                            */
-/*                                                                */
-/* common data and variables prototype and definition             */
-/******************************************************************/
-
-#ifndef MPLOG_H
-#define MPLOG_H
-
-#ifdef BIG_ENDI
-  static const number
-/**/ one            = {{0x3ff00000, 0x00000000} }; /* 1      */
-
-#else
-#ifdef LITTLE_ENDI
-  static const number
-/**/ one            = {{0x00000000, 0x3ff00000} }; /* 1      */
-
-#endif
-#endif
-
-#define  ONE       one.d
-
-#endif
diff --git a/sysdeps/x86_64/fpu/multiarch/mpa-avx.c b/sysdeps/x86_64/fpu/multiarch/mpa-avx.c
index a92dbed..d3f4d7a 100644
--- a/sysdeps/x86_64/fpu/multiarch/mpa-avx.c
+++ b/sysdeps/x86_64/fpu/multiarch/mpa-avx.c
@@ -7,6 +7,7 @@
 #define NO___CPY 1
 #define NO___MP_DBL 1
 #define NO___ACR 1
+#define NO__CONST 1
 #define SECTION __attribute__ ((section (".text.avx")))
 
 #include <sysdeps/ieee754/dbl-64/mpa.c>
diff --git a/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c b/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c
index f8ed8f3..6abb671 100644
--- a/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c
+++ b/sysdeps/x86_64/fpu/multiarch/mpa-fma4.c
@@ -7,6 +7,7 @@
 #define NO___CPY 1
 #define NO___MP_DBL 1
 #define NO___ACR 1
+#define NO__CONST 1
 #define SECTION __attribute__ ((section (".text.fma4")))
 
 #include <sysdeps/ieee754/dbl-64/mpa.c>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8ebac7785b6ac0e412075d832af2ede21153148a

commit 8ebac7785b6ac0e412075d832af2ede21153148a
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date:   Thu Dec 27 20:43:02 2012 +0530

    [s390] Replace lll_futex_* assembly code with INTERNAL_SYSCALL

diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index b950687..78ffe2d 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,14 @@
+2012-12-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
+
+	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (SYS_futex):
+	Remove definition.
+	(lll_futex_timed_wait): Replace assembly code with
+	INTERNAL_SYSCALL.
+	(lll_futex_timed_wait_bitset): Likewise.
+	(lll_futex_wake): Likewise.
+	(lll_futex_requeue): Likewise.
+	(lll_futex_wake_unlock): Likewise.
+
 2012-12-08  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind):
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
index 0b7110f..78154af 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
@@ -76,60 +76,35 @@
 #define lll_futex_wait(futex, val, private) \
   lll_futex_timed_wait (futex, val, NULL, private)
 
-#define lll_futex_timed_wait(futex, val, timespec, private) \
+#define lll_futex_timed_wait(futexp, val, timespec, private) \
   ({									      \
-    register unsigned long int __r2 asm ("2") = (unsigned long int) (futex);  \
-    register unsigned long int __r3 asm ("3")				      \
-      = __lll_private_flag (FUTEX_WAIT, private);			      \
-    register unsigned long int __r4 asm ("4") = (unsigned long int) (val);    \
-    register unsigned long int __r5 asm ("5") = (unsigned long int)(timespec);\
-    register unsigned long int __result asm ("2");			      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
 									      \
-    __asm __volatile ("svc %b1"						      \
-		      : "=d" (__result)					      \
-		      : "i" (SYS_futex), "0" (__r2), "d" (__r3),	      \
-			"d" (__r4), "d" (__r5)				      \
-		      : "cc", "memory" );				      \
-    __result;								      \
+    INTERNAL_SYSCALL (futex, __err, 4, (futexp),		      \
+			      __lll_private_flag (FUTEX_WAIT, private),	      \
+			      (val), (timespec));			      \
   })
 
 #define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
   ({									      \
-    register unsigned long int __r2 asm ("2") = (unsigned long int) (futexp); \
-    register unsigned long int __r3 asm ("3")				      \
-      = __lll_private_flag ((FUTEX_WAIT_BITSET | clockbit), private);	      \
-    register unsigned long int __r4 asm ("4") = (long int) (val);	      \
-    register unsigned long int __r5 asm ("5") = (long int) (timespec);	      \
-    register unsigned long int __r6 asm ("6") = (unsigned long int) (NULL);   \
-    register unsigned long int __r7 asm ("7")				      \
-      = (unsigned int) (FUTEX_BITSET_MATCH_ANY);			      \
-    register unsigned long __result asm ("2");				      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
+    int __op = FUTEX_WAIT_BITSET | clockbit;				      \
 									      \
-    __asm __volatile ("svc %b1"						      \
-		      : "=d" (__result)					      \
-		      : "i" (SYS_futex), "0" (__r2), "d" (__r3),	      \
-			"d" (__r4), "d" (__r5), "d" (__r6), "d" (__r7)	      \
-		      : "cc", "memory" );				      \
-    __result;								      \
+    INTERNAL_SYSCALL (futex, __err, 6, (futexp),		      \
+			      __lll_private_flag (__op, private),	      \
+			      (val), (timespec), NULL /* Unused.  */, 	      \
+			      FUTEX_BITSET_MATCH_ANY);			      \
   })
 
-
-#define lll_futex_wake(futex, nr, private) \
+#define lll_futex_wake(futexp, nr, private) \
   ({									      \
-    register unsigned long int __r2 asm ("2") = (unsigned long int) (futex);  \
-    register unsigned long int __r3 asm ("3")				      \
-      = __lll_private_flag (FUTEX_WAKE, private);			      \
-    register unsigned long int __r4 asm ("4") = (unsigned long int) (nr);     \
-    register unsigned long int __result asm ("2");			      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
 									      \
-    __asm __volatile ("svc %b1"						      \
-		      : "=d" (__result)					      \
-		      : "i" (SYS_futex), "0" (__r2), "d" (__r3), "d" (__r4)   \
-		      : "cc", "memory" );				      \
-    __result;								      \
+    INTERNAL_SYSCALL (futex, __err, 4, (futexp),		      \
+			      __lll_private_flag (FUTEX_WAKE, private),	      \
+			      (nr), 0);					      \
   })
 
-
 #define lll_robust_dead(futexv, private) \
   do									      \
     {									      \
@@ -142,48 +117,30 @@
 
 
 /* Returns non-zero if error happened, zero if success.  */
-#define lll_futex_requeue(futex, nr_wake, nr_move, mutex, val, private) \
+#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
   ({									      \
-    register unsigned long int __r2 asm ("2") = (unsigned long int) (futex);  \
-    register unsigned long int __r3 asm ("3")				      \
-      = __lll_private_flag (FUTEX_CMP_REQUEUE, private);		      \
-    register unsigned long int __r4 asm ("4") = (long int) (nr_wake);	      \
-    register unsigned long int __r5 asm ("5") = (long int) (nr_move);	      \
-    register unsigned long int __r6 asm ("6") = (unsigned long int) (mutex);  \
-    register unsigned long int __r7 asm ("7") = (int) (val);		      \
-    register unsigned long __result asm ("2");				      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
+    long int __ret;							      \
 									      \
-    __asm __volatile ("svc %b1"						      \
-		      : "=d" (__result)					      \
-		      : "i" (SYS_futex), "0" (__r2), "d" (__r3),	      \
-			"d" (__r4), "d" (__r5), "d" (__r6), "d" (__r7)	      \
-		      : "cc", "memory" );				      \
-    __result > -4096UL;							      \
+    __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp),		      \
+			      __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
+			      (nr_wake), (nr_move), (mutex), (val));	      \
+    INTERNAL_SYSCALL_ERROR_P (__ret, __err);				      \
   })
 
-
 /* Returns non-zero if error happened, zero if success.  */
-#define lll_futex_wake_unlock(futex, nr_wake, nr_wake2, futex2, private) \
+#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
   ({									      \
-    register unsigned long int __r2 asm ("2") = (unsigned long int) (futex);  \
-    register unsigned long int __r3 asm ("3")				      \
-      = __lll_private_flag (FUTEX_WAKE_OP, private);			      \
-    register unsigned long int __r4 asm ("4") = (long int) (nr_wake);	      \
-    register unsigned long int __r5 asm ("5") = (long int) (nr_wake2);	      \
-    register unsigned long int __r6 asm ("6") = (unsigned long int) (futex2); \
-    register unsigned long int __r7 asm ("7")				      \
-      = (int) FUTEX_OP_CLEAR_WAKE_IF_GT_ONE;				      \
-    register unsigned long __result asm ("2");				      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
+    long int __ret;							      \
 									      \
-    __asm __volatile ("svc %b1"						      \
-		      : "=d" (__result)					      \
-		      : "i" (SYS_futex), "0" (__r2), "d" (__r3),	      \
-			"d" (__r4), "d" (__r5), "d" (__r6), "d" (__r7)	      \
-		      : "cc", "memory" );				      \
-    __result > -4096UL;							      \
+    __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp),		      \
+			      __lll_private_flag (FUTEX_WAKE_OP, private),    \
+			      (nr_wake), (nr_wake2), (futexp2),		      \
+			      FUTEX_OP_CLEAR_WAKE_IF_GT_ONE);		      \
+    INTERNAL_SYSCALL_ERROR_P (__ret, __err);				      \
   })
 
-
 #define lll_compare_and_swap(futex, oldval, newval, operation) \
   do {									      \
     __typeof (futex) __futex = (futex);					      \

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                        |   19 ++++
 nptl/ChangeLog                                   |   11 +++
 nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h |  105 +++++++---------------
 sysdeps/ieee754/dbl-64/mpa.c                     |    4 +
 sysdeps/ieee754/dbl-64/mpa.h                     |    2 +
 sysdeps/ieee754/dbl-64/mpatan.c                  |    9 +--
 sysdeps/ieee754/dbl-64/mpatan2.c                 |    4 -
 sysdeps/ieee754/dbl-64/mpexp.c                   |    8 +--
 sysdeps/ieee754/dbl-64/mpexp.h                   |   26 ------
 sysdeps/ieee754/dbl-64/mplog.c                   |   12 +--
 sysdeps/ieee754/dbl-64/mplog.h                   |   44 ---------
 sysdeps/x86_64/fpu/multiarch/mpa-avx.c           |    1 +
 sysdeps/x86_64/fpu/multiarch/mpa-fma4.c          |    1 +
 13 files changed, 76 insertions(+), 170 deletions(-)
 delete mode 100644 sysdeps/ieee754/dbl-64/mplog.h


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]