This is the mail archive of the libc-alpha@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]

Re: Avoid use of "register" as optimization hint


On Wed, Jun 05, 2013 at 03:18:10PM +0000, Joseph S. Myers wrote:
> Just as we now generally use plain "static" instead of "static inline"
> in glibc, letting the compiler choose what to inline, so use of
> "register" as an optimization hint is obsolete and has been for a lot
> longer than explicitly specifying "inline" has been dubious.
>
Nice, I written similar tool (attached.) It should do job more
exhaustively. Perhaps we can merge these lists?

git checkout -f debug/segfault.c ports sysdeps timezone

As you mentioned to exclude generated files is there simple make rule
to regenerate them all? 

If not could you write a script that does

git checkout 'files that can be regenerated' ?

It would simplify future cleanups a lot.

> This patch removes uses of "register" from many places in glibc,
> although not exhaustively.  The following places need to be excluded
> from such a removal:
> 
> * Code imported verbatim from upstream sources (timezone/).
> 
> * Generated files (gperf output).
> 
> * Use of "register" with "asm" to allocate a variable to a particular
>   register (in syscall sequences, in particular).
>
Does this force gcc to use variable as particular register?
 
> The following are also excluded from this patch although they could
> probably reasonably be cleaned up:
> 
> * The legacy sunrpc code, which has lots of uses of "register".
> 
> * Code from GMP, which also has lots of uses of "register".  I don't
>   know if GMP upstream has since cleaned them up; we don't actually
>   try to stay in sync with GMP upstream (updating GMP code from there
>   would require FSF permission to use the current GMP versions of the
>   relevant code under LGPLv2.1+).
> 
My patch should also handle these.

> * Cases where use of "register" on a variable seems to serve as
>   documentation that this variable is being used as an asm input or
>   output that needs to be in a register for the asm, although not
>   assigned to a particular register, rather than being used as an
>   obsolete optimization hint.
> 
> Tested x86_64.  The only changes to generated code in glibc's shared
> libraries are to address offsets, e.g.
> 
> <    204c3:     48 8d 3d 6e e2 14 00    lea    0x14e26e(%rip),%rdi        # 16e738 <__PRETTY_FUNCTION__.9362+0x3d2c>
> >    204c3:     48 8d 3d 56 e2 14 00    lea    0x14e256(%rip),%rdi        # 16e720 <__PRETTY_FUNCTION__.9362+0x3d14>
> 
> rather than anything affecting instruction choice or ordering.
> 
> 2013-06-05  Joseph Myers  <joseph@codesourcery.com>
> 
Did you generate changelog from diff? If so that script would also
simplify futher cleanups?


diff --git a/bits/byteswap.h b/bits/byteswap.h
index 57d34b4..5a35084 100644
--- a/bits/byteswap.h
+++ b/bits/byteswap.h
@@ -48,7 +48,7 @@ __bswap_32 (unsigned int __bsx)
 # else
 #  define __bswap_32(x) \
   (__extension__							      \
-   ({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
+   ({ unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
 # endif
 #else
 static __inline unsigned int
diff --git a/crypt/crypt.c b/crypt/crypt.c
index b90a46d..e429950 100644
--- a/crypt/crypt.c
+++ b/crypt/crypt.c
@@ -88,8 +88,8 @@ _ufc_doit_r(itr, __data, res)
 {
   int i;
   long64 l, r, s, *k;
-  register long64 *sb01 = (long64*)__data->sb0;
-  register long64 *sb23 = (long64*)__data->sb2;
+  long64 *sb01 = (long64*)__data->sb0;
+  long64 *sb23 = (long64*)__data->sb2;
 
   l = (((long64)res[0]) << 32) | ((long64)res[1]);
   r = (((long64)res[2]) << 32) | ((long64)res[3]);
diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
index cdf052e..b16b83d 100644
--- a/debug/stpcpy_chk.c
+++ b/debug/stpcpy_chk.c
@@ -29,8 +29,8 @@ __stpcpy_chk (dest, src, destlen)
      const char *src;
      size_t destlen;
 {
-  register char *d = dest;
-  register const char *s = src;
+  char *d = dest;
+  const char *s = src;
 
   do
     {
diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c
index 0d49f70..2bd7e76 100644
--- a/debug/wcscat_chk.c
+++ b/debug/wcscat_chk.c
@@ -23,8 +23,8 @@
 wchar_t *
 __wcscat_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
 {
-  register wchar_t *s1 = dest;
-  register const wchar_t *s2 = src;
+  wchar_t *s1 = dest;
+  const wchar_t *s2 = src;
   wchar_t c;
 
   /* Find the end of the string.  */
diff --git a/gmon/gmon.c b/gmon/gmon.c
index 0d2ed05..9774d57 100644
--- a/gmon/gmon.c
+++ b/gmon/gmon.c
@@ -102,7 +102,7 @@ __monstartup (lowpc, highpc)
      u_long lowpc;
      u_long highpc;
 {
-  register int o;
+  int o;
   char *cp;
   struct gmonparam *p = &_gmonparam;
 
diff --git a/gmon/mcount.c b/gmon/mcount.c
index 5a4a249..0c2acd2 100644
--- a/gmon/mcount.c
+++ b/gmon/mcount.c
@@ -58,10 +58,10 @@ static char sccsid[] = "@(#)mcount.c	8.1 (Berkeley) 6/4/93";
  */
 _MCOUNT_DECL(frompc, selfpc)	/* _mcount; may be static, inline, etc */
 {
-	register ARCINDEX *frompcindex;
-	register struct tostruct *top, *prevtop;
-	register struct gmonparam *p;
-	register ARCINDEX toindex;
+	ARCINDEX *frompcindex;
+	struct tostruct *top, *prevtop;
+	struct gmonparam *p;
+	ARCINDEX toindex;
 	int i;
 
 	p = &_gmonparam;
diff --git a/hurd/hurdmalloc.c b/hurd/hurdmalloc.c
index 12da1f2..886b402 100644
--- a/hurd/hurdmalloc.c
+++ b/hurd/hurdmalloc.c
@@ -171,10 +171,10 @@ malloc_init (void)
 static void
 more_memory(int size, free_list_t fl)
 {
-	register int amount;
-	register int n;
+	int amount;
+	int n;
 	vm_address_t where;
-	register header_t h;
+	header_t h;
 	kern_return_t r;
 
 	if (size <= vm_page_size) {
@@ -203,11 +203,11 @@ more_memory(int size, free_list_t fl)
 /* Declaration changed to standard one for GNU.  */
 void *
 malloc(size)
-	register size_t size;
+	size_t size;
 {
-	register int i, n;
-	register free_list_t fl;
-	register header_t h;
+	int i, n;
+	free_list_t fl;
+	header_t h;
 
 	if ((int) size < 0)		/* sanity check */
 		return 0;
@@ -272,9 +272,9 @@ void
 free(base)
 	void *base;
 {
-	register header_t h;
-	register free_list_t fl;
-	register int i;
+	header_t h;
+	free_list_t fl;
+	int i;
 
 	if (base == 0)
 		return;
@@ -322,9 +322,9 @@ realloc(old_base, new_size)
         void *old_base;
         size_t new_size;
 {
-	register header_t h;
-	register free_list_t fl;
-	register int i;
+	header_t h;
+	free_list_t fl;
+	int i;
 	unsigned int old_size;
 	char *new_base;
 
@@ -382,10 +382,10 @@ realloc(old_base, new_size)
 void
 print_malloc_free_list()
 {
-  	register int i, size;
-	register free_list_t fl;
-	register int n;
-  	register header_t h;
+  	int i, size;
+	free_list_t fl;
+	int n;
+  	header_t h;
 	int total_used = 0;
 	int total_free = 0;
 
@@ -416,7 +416,7 @@ malloc_fork_prepare(void)
  * malloc critical section.
  */
 {
-    register int i;
+    int i;
 
     for (i = 0; i < NBUCKETS; i++) {
 	spin_lock(&malloc_free_list[i].lock);
@@ -429,7 +429,7 @@ malloc_fork_parent(void)
  * Called in the parent process after a fork() to resume normal operation.
  */
 {
-    register int i;
+    int i;
 
     for (i = NBUCKETS-1; i >= 0; i--) {
 	spin_unlock(&malloc_free_list[i].lock);
@@ -442,7 +442,7 @@ malloc_fork_child(void)
  * Called in the child process after a fork() to resume normal operation.
  */
 {
-    register int i;
+    int i;
 
     for (i = NBUCKETS-1; i >= 0; i--) {
 	spin_unlock(&malloc_free_list[i].lock);
diff --git a/include/rpc/auth_des.h b/include/rpc/auth_des.h
index c14f069..0e9db1a 100644
--- a/include/rpc/auth_des.h
+++ b/include/rpc/auth_des.h
@@ -7,12 +7,12 @@ libc_hidden_proto (getsecretkey)
 libc_hidden_proto (rtime)
 
 extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred);
-extern bool_t xdr_authdes_verf (register XDR *xdrs,
-				register struct authdes_verf *verf);
+extern bool_t xdr_authdes_verf (XDR *xdrs,
+				struct authdes_verf *verf);
 struct svc_req;
 struct rpc_msg;
-extern enum auth_stat _svcauth_des (register struct svc_req *rqst,
-				    register struct rpc_msg *msg);
+extern enum auth_stat _svcauth_des (struct svc_req *rqst,
+				    struct rpc_msg *msg);
 
 
 #define DECLARE_NSS_PROTOTYPES(service)					\
diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
index 0e115a4..c993c8b 100644
--- a/inet/inet_lnaof.c
+++ b/inet/inet_lnaof.c
@@ -44,7 +44,7 @@ in_addr_t
 inet_lnaof(in)
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return ((i)&IN_CLASSA_HOST);
diff --git a/inet/inet_net.c b/inet/inet_net.c
index d58f1ae..68e232f 100644
--- a/inet/inet_net.c
+++ b/inet/inet_net.c
@@ -43,10 +43,10 @@ static char sccsid[] = "@(#)inet_network.c	8.1 (Berkeley) 6/4/93";
  */
 u_int32_t
 inet_network(cp)
-	register const char *cp;
+	const char *cp;
 {
-	register u_int32_t val, base, n, i;
-	register char c;
+	u_int32_t val, base, n, i;
+	char c;
 	u_int32_t parts[4], *pp = parts;
 	int digit;
 
diff --git a/inet/inet_netof.c b/inet/inet_netof.c
index e49177a..9b0aed9 100644
--- a/inet/inet_netof.c
+++ b/inet/inet_netof.c
@@ -43,7 +43,7 @@ in_addr_t
 inet_netof(in)
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 5e18b12..acacaa0 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -769,8 +769,8 @@ __validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
 	size_t ralen;
 	const char *luser, *ruser, *rhost;
 {
-    register const char *user;
-    register char *p;
+    const char *user;
+    char *p;
     int hcheck, ucheck;
     char *buf = NULL;
     size_t bufsize = 0;
diff --git a/io/fts.c b/io/fts.c
index 5ba202b..c9c054d 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -87,12 +87,12 @@ static int      fts_safe_changedir (FTS *, FTSENT *, int, const char *)
 FTS *
 fts_open(argv, options, compar)
 	char * const *argv;
-	register int options;
+	int options;
 	int (*compar) (const FTSENT **, const FTSENT **);
 {
-	register FTS *sp;
-	register FTSENT *p, *root;
-	register int nitems;
+	FTS *sp;
+	FTSENT *p, *root;
+	int nitems;
 	FTSENT *parent = NULL;
 	FTSENT *tmp;
 
@@ -204,10 +204,10 @@ static void
 internal_function
 fts_load(sp, p)
 	FTS *sp;
-	register FTSENT *p;
+	FTSENT *p;
 {
-	register int len;
-	register char *cp;
+	int len;
+	char *cp;
 
 	/*
 	 * Load the stream structure for the next traversal.  Since we don't
@@ -231,7 +231,7 @@ int
 fts_close(sp)
 	FTS *sp;
 {
-	register FTSENT *freep, *p;
+	FTSENT *freep, *p;
 	int saved_errno;
 
 	/*
@@ -283,11 +283,11 @@ fts_close(sp)
 
 FTSENT *
 fts_read(sp)
-	register FTS *sp;
+	FTS *sp;
 {
-	register FTSENT *p, *tmp;
-	register int instr;
-	register char *t;
+	FTSENT *p, *tmp;
+	int instr;
+	char *t;
 	int saved_errno;
 
 	/* If finished or unrecoverable error, return NULL. */
@@ -495,10 +495,10 @@ fts_set(sp, p, instr)
 
 FTSENT *
 fts_children(sp, instr)
-	register FTS *sp;
+	FTS *sp;
 	int instr;
 {
-	register FTSENT *p;
+	FTSENT *p;
 	int fd;
 
 	if (instr != 0 && instr != FTS_NAMEONLY) {
@@ -578,12 +578,12 @@ fts_children(sp, instr)
 static FTSENT *
 internal_function
 fts_build(sp, type)
-	register FTS *sp;
+	FTS *sp;
 	int type;
 {
-	register struct dirent *dp;
-	register FTSENT *p, *head;
-	register int nitems;
+	struct dirent *dp;
+	FTSENT *p, *head;
+	int nitems;
 	FTSENT *cur, *tail;
 	DIR *dirp;
 	void *oldaddr;
@@ -848,12 +848,12 @@ static u_short
 internal_function
 fts_stat(sp, p, follow)
 	FTS *sp;
-	register FTSENT *p;
+	FTSENT *p;
 	int follow;
 {
-	register FTSENT *t;
-	register dev_t dev;
-	register ino_t ino;
+	FTSENT *t;
+	dev_t dev;
+	ino_t ino;
 	struct stat *sbp, sb;
 	int saved_errno;
 
@@ -933,9 +933,9 @@ internal_function
 fts_sort(sp, head, nitems)
 	FTS *sp;
 	FTSENT *head;
-	register int nitems;
+	int nitems;
 {
-	register FTSENT **ap, *p;
+	FTSENT **ap, *p;
 
 	/*
 	 * Construct an array of pointers to the structures and call qsort(3).
@@ -973,7 +973,7 @@ fts_alloc(sp, name, namelen)
 	const char *name;
 	size_t namelen;
 {
-	register FTSENT *p;
+	FTSENT *p;
 	size_t len;
 
 	/*
@@ -1009,9 +1009,9 @@ fts_alloc(sp, name, namelen)
 static void
 internal_function
 fts_lfree(head)
-	register FTSENT *head;
+	FTSENT *head;
 {
-	register FTSENT *p;
+	FTSENT *p;
 
 	/* Free a linked list of structures. */
 	while ((p = head)) {
diff --git a/libio/fileops.c b/libio/fileops.c
index 61b61b3..e92f85b 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -1272,7 +1272,7 @@ _IO_new_file_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const char *s = (const char *) data;
+  const char *s = (const char *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count = 0;
@@ -1289,7 +1289,7 @@ _IO_new_file_xsputn (f, data, n)
       count = f->_IO_buf_end - f->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const char *p;
+	  const char *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == '\n')
@@ -1357,9 +1357,9 @@ _IO_file_xsgetn (fp, data, n)
      void *data;
      _IO_size_t n;
 {
-  register _IO_size_t want, have;
-  register _IO_ssize_t count;
-  register char *s = data;
+  _IO_size_t want, have;
+  _IO_ssize_t count;
+  char *s = data;
 
   want = n;
 
@@ -1459,9 +1459,9 @@ _IO_file_xsgetn_mmap (fp, data, n)
      void *data;
      _IO_size_t n;
 {
-  register _IO_size_t have;
+  _IO_size_t have;
   char *read_ptr = fp->_IO_read_ptr;
-  register char *s = (char *) data;
+  char *s = (char *) data;
 
   have = fp->_IO_read_end - fp->_IO_read_ptr;
 
diff --git a/libio/iofopncook.c b/libio/iofopncook.c
index 3867042..34db0cb 100644
--- a/libio/iofopncook.c
+++ b/libio/iofopncook.c
@@ -30,9 +30,9 @@
 #include <shlib-compat.h>
 
 /* Prototyped for local functions.  */
-static _IO_ssize_t _IO_cookie_read (register _IO_FILE* fp, void* buf,
+static _IO_ssize_t _IO_cookie_read (_IO_FILE* fp, void* buf,
 				    _IO_ssize_t size);
-static _IO_ssize_t _IO_cookie_write (register _IO_FILE* fp,
+static _IO_ssize_t _IO_cookie_write (_IO_FILE* fp,
 				     const void* buf, _IO_ssize_t size);
 static _IO_off64_t _IO_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir);
 static _IO_off64_t _IO_cookie_seekoff (_IO_FILE *fp, _IO_off64_t offset,
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index 80e4b57..c9537f4 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -689,7 +689,7 @@ _IO_old_file_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const char *s = (char *) data;
+  const char *s = (char *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count = 0;
@@ -706,7 +706,7 @@ _IO_old_file_xsputn (f, data, n)
       count = f->_IO_buf_end - f->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const char *p;
+	  const char *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == '\n')
@@ -738,8 +738,8 @@ _IO_old_file_xsputn (f, data, n)
 	}
       else
 	{
-	  register char *p = f->_IO_write_ptr;
-	  register int i = (int) count;
+	  char *p = f->_IO_write_ptr;
+	  int i = (int) count;
 	  while (--i >= 0)
 	    *p++ = *s++;
 	  f->_IO_write_ptr = p;
diff --git a/libio/wfileops.c b/libio/wfileops.c
index d59abbd..0a156ea 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -907,7 +907,7 @@ _IO_wfile_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const wchar_t *s = (const wchar_t *) data;
+  const wchar_t *s = (const wchar_t *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count;
@@ -925,7 +925,7 @@ _IO_wfile_xsputn (f, data, n)
       count = f->_wide_data->_IO_buf_end - f->_wide_data->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const wchar_t *p;
+	  const wchar_t *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == L'\n')
@@ -955,8 +955,8 @@ _IO_wfile_xsputn (f, data, n)
 	}
       else
 	{
-	  register wchar_t *p = f->_wide_data->_IO_write_ptr;
-	  register int i = (int) count;
+	  wchar_t *p = f->_wide_data->_IO_write_ptr;
+	  int i = (int) count;
 	  while (--i >= 0)
 	    *p++ = *s++;
 	  f->_wide_data->_IO_write_ptr = p;
diff --git a/mach/msgserver.c b/mach/msgserver.c
index fc34d71..a77377b 100644
--- a/mach/msgserver.c
+++ b/mach/msgserver.c
@@ -78,8 +78,8 @@ __mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request,
 			   mach_msg_option_t option,
 			   mach_msg_timeout_t timeout)
 {
-  register mig_reply_header_t *request, *reply;
-  register mach_msg_return_t mr;
+  mig_reply_header_t *request, *reply;
+  mach_msg_return_t mr;
 
   if (max_size == 0)
     {
diff --git a/malloc/obstack.c b/malloc/obstack.c
index c3c7db4..69320ca 100644
--- a/malloc/obstack.c
+++ b/malloc/obstack.c
@@ -154,7 +154,7 @@ _obstack_begin (struct obstack *h,
 		void *(*chunkfun) (long),
 		void (*freefun) (void *))
 {
-  register struct _obstack_chunk *chunk; /* points to new chunk */
+  struct _obstack_chunk *chunk; /* points to new chunk */
 
   if (alignment == 0)
     alignment = DEFAULT_ALIGNMENT;
@@ -201,7 +201,7 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
 		  void (*freefun) (void *, void *),
 		  void *arg)
 {
-  register struct _obstack_chunk *chunk; /* points to new chunk */
+  struct _obstack_chunk *chunk; /* points to new chunk */
 
   if (alignment == 0)
     alignment = DEFAULT_ALIGNMENT;
@@ -252,11 +252,11 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
 void
 _obstack_newchunk (struct obstack *h, int length)
 {
-  register struct _obstack_chunk *old_chunk = h->chunk;
-  register struct _obstack_chunk *new_chunk;
-  register long	new_size;
-  register long obj_size = h->next_free - h->object_base;
-  register long i;
+  struct _obstack_chunk *old_chunk = h->chunk;
+  struct _obstack_chunk *new_chunk;
+  long	new_size;
+  long obj_size = h->next_free - h->object_base;
+  long i;
   long already;
   char *object_base;
 
@@ -329,8 +329,8 @@ int _obstack_allocated_p (struct obstack *h, void *obj);
 int
 _obstack_allocated_p (struct obstack *h, void *obj)
 {
-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
+  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+  struct _obstack_chunk *plp;	/* point to previous chunk if any */
 
   lp = (h)->chunk;
   /* We use >= rather than > since the object cannot be exactly at
@@ -352,8 +352,8 @@ _obstack_allocated_p (struct obstack *h, void *obj)
 void
 obstack_free (struct obstack *h, void *obj)
 {
-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
+  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+  struct _obstack_chunk *plp;	/* point to previous chunk if any */
 
   lp = h->chunk;
   /* We use >= because there cannot be an object at the beginning of a chunk.
@@ -388,8 +388,8 @@ strong_alias (obstack_free, _obstack_free)
 int
 _obstack_memory_used (struct obstack *h)
 {
-  register struct _obstack_chunk* lp;
-  register int nbytes = 0;
+  struct _obstack_chunk* lp;
+  int nbytes = 0;
 
   for (lp = h->chunk; lp != 0; lp = lp->prev)
     {
diff --git a/misc/getttyent.c b/misc/getttyent.c
index b1e6376..1efc506 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -47,7 +47,7 @@ struct ttyent *
 getttynam(tty)
 	const char *tty;
 {
-	register struct ttyent *t;
+	struct ttyent *t;
 
 	setttyent();
 	while ((t = getttyent()))
@@ -64,8 +64,8 @@ struct ttyent *
 getttyent()
 {
 	static struct ttyent tty;
-	register int c;
-	register char *p;
+	int c;
+	char *p;
 #define	MAXLINELENGTH	100
 	static char line[MAXLINELENGTH];
 
@@ -142,10 +142,10 @@ libc_hidden_def (getttyent)
 static char *
 internal_function
 skip(p)
-	register char *p;
+	char *p;
 {
-	register char *t;
-	register int c, q;
+	char *t;
+	int c, q;
 
 	for (q = 0, t = p; (c = *p) != '\0'; p++) {
 		if (c == '"') {
diff --git a/misc/getusershell.c b/misc/getusershell.c
index 2e8d97e..677377c 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -95,8 +95,8 @@ setusershell()
 static char **
 initshells()
 {
-	register char **sp, *cp;
-	register FILE *fp;
+	char **sp, *cp;
+	FILE *fp;
 	struct stat64 statb;
 	size_t flen;
 
diff --git a/misc/syslog.c b/misc/syslog.c
index 748361f..4976e89 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -229,7 +229,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
 	/* Output to stderr if requested. */
 	if (LogStat & LOG_PERROR) {
 		struct iovec iov[2];
-		register struct iovec *v = iov;
+		struct iovec *v = iov;
 
 		v->iov_base = buf + msgoff;
 		v->iov_len = bufsize - msgoff;
diff --git a/misc/ttyslot.c b/misc/ttyslot.c
index 5872f23..75ca6a2 100644
--- a/misc/ttyslot.c
+++ b/misc/ttyslot.c
@@ -40,9 +40,9 @@ static char sccsid[] = "@(#)ttyslot.c	8.1 (Berkeley) 6/4/93";
 int
 ttyslot()
 {
-	register struct ttyent *ttyp;
-	register int slot;
-	register char *p;
+	struct ttyent *ttyp;
+	int slot;
+	char *p;
 	int cnt;
 	size_t buflen = __sysconf (_SC_TTY_NAME_MAX) + 1;
 	char *name;
diff --git a/nis/nis_hash.c b/nis/nis_hash.c
index d8a6d06..c927575 100644
--- a/nis/nis_hash.c
+++ b/nis/nis_hash.c
@@ -30,11 +30,11 @@
  * OZ's original sdbm hash
  */
 uint32_t
-__nis_hash (const void *keyarg, register size_t len)
+__nis_hash (const void *keyarg, size_t len)
 {
-  register const u_char *key;
-  register size_t loop;
-  register uint32_t h;
+  const u_char *key;
+  size_t loop;
+  uint32_t h;
 
 #define HASHC   h = *key++ + 65599 * h
 
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6c4301d..b21fa1f 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -47,8 +47,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
      struct STRUCT *ends;
      size_t alloca_used;
 {
-  register const CHAR *p = pattern, *n = string;
-  register UCHAR c;
+  const CHAR *p = pattern, *n = string;
+  UCHAR c;
 #ifdef _LIBC
 # if WIDE_CHAR_VERSION
   const char *collseq = (const char *)
diff --git a/posix/getconf.c b/posix/getconf.c
index 8a0c79b..8787720 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -1043,7 +1043,7 @@ usage (void)
 static void
 print_all (const char *path)
 {
-  register const struct conf *c;
+  const struct conf *c;
   size_t clen;
   long int value;
   char *cvalue;
@@ -1087,7 +1087,7 @@ print_all (const char *path)
 int
 main (int argc, char *argv[])
 {
-  register const struct conf *c;
+  const struct conf *c;
 
   /* Set locale.  Do not set LC_ALL because the other categories must
      not be affected (according to POSIX.2).  */
diff --git a/posix/getopt.c b/posix/getopt.c
index 20b8eb3..5497fc4 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -227,7 +227,7 @@ exchange (char **argv, struct _getopt_data *d)
 	{
 	  /* Bottom segment is the short one.  */
 	  int len = middle - bottom;
-	  register int i;
+	  int i;
 
 	  /* Swap it with the top part of the top segment.  */
 	  for (i = 0; i < len; i++)
@@ -244,7 +244,7 @@ exchange (char **argv, struct _getopt_data *d)
 	{
 	  /* Top segment is the short one.  */
 	  int len = top - middle;
-	  register int i;
+	  int i;
 
 	  /* Swap it with the bottom part of the bottom segment.  */
 	  for (i = 0; i < len; i++)
diff --git a/posix/transbug.c b/posix/transbug.c
old mode 100755
new mode 100644
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index 6a2c837..fb8513b 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -433,7 +433,7 @@ typedef enum __ns_cert_types {
  * Inline versions of get/put short/long.  Pointer is advanced.
  */
 #define NS_GET16(s, cp) do { \
-	register const u_char *t_cp = (const u_char *)(cp); \
+	const u_char *t_cp = (const u_char *)(cp); \
 	(s) = ((u_int16_t)t_cp[0] << 8) \
 	    | ((u_int16_t)t_cp[1]) \
 	    ; \
@@ -441,7 +441,7 @@ typedef enum __ns_cert_types {
 } while (0)
 
 #define NS_GET32(l, cp) do { \
-	register const u_char *t_cp = (const u_char *)(cp); \
+	const u_char *t_cp = (const u_char *)(cp); \
 	(l) = ((u_int32_t)t_cp[0] << 24) \
 	    | ((u_int32_t)t_cp[1] << 16) \
 	    | ((u_int32_t)t_cp[2] << 8) \
@@ -451,16 +451,16 @@ typedef enum __ns_cert_types {
 } while (0)
 
 #define NS_PUT16(s, cp) do { \
-	register u_int16_t t_s = (u_int16_t)(s); \
-	register u_char *t_cp = (u_char *)(cp); \
+	u_int16_t t_s = (u_int16_t)(s); \
+	u_char *t_cp = (u_char *)(cp); \
 	*t_cp++ = t_s >> 8; \
 	*t_cp   = t_s; \
 	(cp) += NS_INT16SZ; \
 } while (0)
 
 #define NS_PUT32(l, cp) do { \
-	register u_int32_t t_l = (u_int32_t)(l); \
-	register u_char *t_cp = (u_char *)(cp); \
+	u_int32_t t_l = (u_int32_t)(l); \
+	u_char *t_cp = (u_char *)(cp); \
 	*t_cp++ = t_l >> 24; \
 	*t_cp++ = t_l >> 16; \
 	*t_cp++ = t_l >> 8; \
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index a8ccf1f..9568c06 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -178,9 +178,9 @@ Dprintf(msg, num)
 static struct hostent *
 getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 {
-	register const HEADER *hp;
-	register const u_char *cp;
-	register int n;
+	const HEADER *hp;
+	const u_char *cp;
+	int n;
 	const u_char *eom, *erdata;
 	char *bp, **ap, **hap;
 	int type, class, buflen, ancount, qdcount;
@@ -409,7 +409,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 				continue;
 			}
 			if (!haveanswer) {
-				register int nn;
+				int nn;
 
 				host.h_name = bp;
 				nn = strlen(bp) + 1;	/* for the \0 */
@@ -514,7 +514,7 @@ gethostbyname2(name, af)
 	  u_char *ptr;
 	} buf;
 	querybuf *origbuf;
-	register const char *cp;
+	const char *cp;
 	char *bp;
 	int n, size, type, len;
 	struct hostent *ret;
@@ -653,10 +653,10 @@ gethostbyaddr(addr, len, af)
 	  u_char *ptr;
 	} buf;
 	querybuf *orig_buf;
-	register struct hostent *hp;
+	struct hostent *hp;
 	char qbuf[MAXDNAME+1], *qp = NULL;
 #ifdef SUNSECURITY
-	register struct hostent *rhp;
+	struct hostent *rhp;
 	char **haddr;
 	u_long old_options;
 	char hname2[MAXDNAME+1];
@@ -807,7 +807,7 @@ struct hostent *
 _gethtent()
 {
 	char *p;
-	register char *cp, **q;
+	char *cp, **q;
 	int af, len;
 
 	if (!hostf && !(hostf = fopen(_PATH_HOSTS, "rce" ))) {
@@ -888,8 +888,8 @@ _gethtbyname2(name, af)
 	const char *name;
 	int af;
 {
-	register struct hostent *p;
-	register char **cp;
+	struct hostent *p;
+	char **cp;
 
 	_sethtent(0);
 	while ((p = _gethtent())) {
@@ -913,7 +913,7 @@ _gethtbyaddr(addr, len, af)
 	size_t len;
 	int af;
 {
-	register struct hostent *p;
+	struct hostent *p;
 
 	_sethtent(0);
 	while ((p = _gethtent()))
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index af5c166..9018bb9 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -601,7 +601,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
     char *h_addr_ptrs[0];
   } *host_data;
   int linebuflen;
-  register const HEADER *hp;
+  const HEADER *hp;
   const u_char *end_of_message, *cp;
   int n, ancount, qdcount;
   int haveanswer, had_error;
@@ -920,7 +920,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
 	    }
 	  if (!haveanswer)
 	    {
-	      register int nn;
+	      int nn;
 
 	      /* We compose a single hostent out of the entire chain of
 	         entries, so the TTL of the hostent is essentially the lowest
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 002dec5..5e1a747 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -149,9 +149,9 @@ libc_hidden_def (__res_ninit)
 /* This function has to be reachable by res_data.c but not publically. */
 int
 __res_vinit(res_state statp, int preinit) {
-	register FILE *fp;
-	register char *cp, **pp;
-	register int n;
+	FILE *fp;
+	char *cp, **pp;
+	int n;
 	char buf[BUFSIZ];
 	int nserv = 0;    /* number of nameserver records read from file */
 #ifdef _LIBC
@@ -571,7 +571,7 @@ static u_int32_t
 net_mask(in)		/* XXX - should really use system's version of this */
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return (htonl(IN_CLASSA_NET));
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index e2c6a74..c0798dc 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -104,9 +104,9 @@ res_nmkquery(res_state statp,
 	     u_char *buf,		/* buffer to put query */
 	     int buflen)		/* size of buffer */
 {
-	register HEADER *hp;
-	register u_char *cp;
-	register int n;
+	HEADER *hp;
+	u_char *cp;
+	int n;
 	u_char *dnptrs[20], **dpp, **lastdnptr;
 
 #ifdef DEBUG
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index ad60f43..9bc0fe0 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -72,7 +72,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);					      \
       if (putc (outc, fp) == EOF)					      \
 	{								      \
 	  if (buffer_malloced)						      \
@@ -85,7 +85,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);					      \
       if (len > 20)							      \
 	{								      \
 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
index 57590b9..1d4c623 100644
--- a/stdio-common/printf_fphex.c
+++ b/stdio-common/printf_fphex.c
@@ -52,7 +52,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);					      \
       if (putc (outc, fp) == EOF)					      \
 	return -1;							      \
       ++done;								      \
@@ -61,7 +61,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);					      \
       if (wide)								      \
 	while (outlen-- > 0)						      \
 	  outchar (*wptr++);						      \
diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c
index 68b0839..f149ab2 100644
--- a/stdio-common/printf_size.c
+++ b/stdio-common/printf_size.c
@@ -42,7 +42,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);					      \
       if (putc (outc, fp) == EOF)					      \
 	return -1;							      \
       ++done;								      \
@@ -51,7 +51,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);					      \
       if (len > 20)							      \
 	{								      \
 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
diff --git a/stdio-common/test_rdwr.c b/stdio-common/test_rdwr.c
index 93b0fa4..2be8365 100644
--- a/stdio-common/test_rdwr.c
+++ b/stdio-common/test_rdwr.c
@@ -78,7 +78,7 @@ main (int argc, char **argv)
     long int where = ftell (f);
     if (where == (long int) replace_from)
       {
-	register size_t i;
+	size_t i;
 	for (i = replace_from; i < replace_to; ++i)
 	  if (putc(replace[i], f) == EOF)
 	    {
diff --git a/stdio-common/tfformat.c b/stdio-common/tfformat.c
index 7704ddd..5cb366d 100644
--- a/stdio-common/tfformat.c
+++ b/stdio-common/tfformat.c
@@ -4050,7 +4050,7 @@ sprint_double_type sprint_doubles[] =
 int required_precision = 13;
 
 static int
-matches (register char *result, register const char *desired)
+matches (char *result, const char *desired)
 {
     int digits_seen = 0;
     for (;; result++, desired++) {
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index c8bcf5a..a1dad10 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -147,7 +147,7 @@
 #define	outchar(Ch)							      \
   do									      \
     {									      \
-      register const INT_T outc = (Ch);					      \
+      const INT_T outc = (Ch);					      \
       if (PUTC (outc, s) == EOF || done == INT_MAX)			      \
 	{								      \
 	  done = -1;							      \
@@ -2061,7 +2061,7 @@ printf_unknown (FILE *s, const struct printf_info *info,
   CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
   CHAR_T *const workend
     = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
-  register CHAR_T *w;
+  CHAR_T *w;
 
   outchar (L_('%'));
 
@@ -2267,12 +2267,12 @@ static const struct _IO_jump_t _IO_helper_jumps =
 
 static int
 internal_function
-buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
+buffered_vfprintf (_IO_FILE *s, const CHAR_T *format,
 		   _IO_va_list args)
 {
   CHAR_T buf[_IO_BUFSIZ];
   struct helper_file helper;
-  register _IO_FILE *hp = (_IO_FILE *) &helper._f;
+  _IO_FILE *hp = (_IO_FILE *) &helper._f;
   int result, to_flush;
 
   /* Orient the stream.  */
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 82f7eee..3430567 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -206,13 +206,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
 #endif
 {
   va_list arg;
-  register const CHAR_T *f = format;
-  register UCHAR_T fc;	/* Current character of the format.  */
-  register WINT_T done = 0;	/* Assignments done.  */
-  register size_t read_in = 0;	/* Chars read in.  */
-  register WINT_T c = 0;	/* Last char read.  */
-  register int width;		/* Maximum field width.  */
-  register int flags;		/* Modifiers for current format element.  */
+  const CHAR_T *f = format;
+  UCHAR_T fc;	/* Current character of the format.  */
+  WINT_T done = 0;	/* Assignments done.  */
+  size_t read_in = 0;	/* Chars read in.  */
+  WINT_T c = 0;	/* Last char read.  */
+  int width;		/* Maximum field width.  */
+  int flags;		/* Modifiers for current format element.  */
   int errval = 0;
 #ifndef COMPILE_WSCANF
   __locale_t loc = _NL_CURRENT_LOCALE;
diff --git a/stdio-common/xbug.c b/stdio-common/xbug.c
index 76a8c54..64ba314 100644
--- a/stdio-common/xbug.c
+++ b/stdio-common/xbug.c
@@ -9,8 +9,8 @@ typedef struct _Buffer {
 } Buffer;
 
 void InitBuffer (Buffer *b);
-void AppendToBuffer (register Buffer *b, const char *str, register int len);
-void ReadFile (register Buffer *buffer, FILE *input);
+void AppendToBuffer (Buffer *b, const char *str, int len);
+void ReadFile (Buffer *buffer, FILE *input);
 
 #define INIT_BUFFER_SIZE 10000
 
@@ -23,9 +23,9 @@ void InitBuffer(b)
 }
 
 void AppendToBuffer(b, str, len)
-     register Buffer *b;
+     Buffer *b;
      const char *str;
-     register int len;
+     int len;
 {
   while (b->used + len > b->room) {
     b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
@@ -36,11 +36,11 @@ void AppendToBuffer(b, str, len)
 }
 
 void ReadFile(buffer, input)
-     register Buffer *buffer;
+     Buffer *buffer;
      FILE *input;
 {
   char       buf[BUFSIZ + 1];
-  register int        bytes;
+  int        bytes;
 
   buffer->used = 0;
   while (!feof(input) && (bytes = fread(buf, 1, BUFSIZ, input)) > 0) {
diff --git a/stdlib/add_n.c b/stdlib/add_n.c
index e3930ea..917c925 100644
--- a/stdlib/add_n.c
+++ b/stdlib/add_n.c
@@ -26,14 +26,14 @@ mp_limb_t
 mpn_add_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size)
 #else
 mpn_add_n (res_ptr, s1_ptr, s2_ptr, size)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_srcptr s2_ptr;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_srcptr s2_ptr;
      mp_size_t size;
 #endif
 {
-  register mp_limb_t x, y, cy;
-  register mp_size_t j;
+  mp_limb_t x, y, cy;
+  mp_size_t j;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
      the loop becomes faster.  */
diff --git a/stdlib/addmul_1.c b/stdlib/addmul_1.c
index cf5b371..38223a9 100644
--- a/stdlib/addmul_1.c
+++ b/stdlib/addmul_1.c
@@ -27,15 +27,15 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 
 mp_limb_t
 mpn_addmul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
      mp_size_t s1_size;
-     register mp_limb_t s2_limb;
+     mp_limb_t s2_limb;
 {
-  register mp_limb_t cy_limb;
-  register mp_size_t j;
-  register mp_limb_t prod_high, prod_low;
-  register mp_limb_t x;
+  mp_limb_t cy_limb;
+  mp_size_t j;
+  mp_limb_t prod_high, prod_low;
+  mp_limb_t x;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
      the loop becomes faster.  */
diff --git a/stdlib/gmp.h b/stdlib/gmp.h
index 07bebc0..191d061 100644
--- a/stdlib/gmp.h
+++ b/stdlib/gmp.h
@@ -429,19 +429,19 @@ mp_limb_t mpn_submul_1 _PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t));
 #if defined (__GNUC__) || defined (_FORCE_INLINES)
 _EXTERN_INLINE mp_limb_t
 #if defined (__STDC__) || defined (__cplusplus)
-mpn_add_1 (register mp_ptr res_ptr,
-	   register mp_srcptr s1_ptr,
-	   register mp_size_t s1_size,
-	   register mp_limb_t s2_limb)
+mpn_add_1 (mp_ptr res_ptr,
+	   mp_srcptr s1_ptr,
+	   mp_size_t s1_size,
+	   mp_limb_t s2_limb)
 #else
 mpn_add_1 (res_ptr, s1_ptr, s1_size, s2_limb)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_size_t s1_size;
-     register mp_limb_t s2_limb;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_size_t s1_size;
+     mp_limb_t s2_limb;
 #endif
 {
-  register mp_limb_t x;
+  mp_limb_t x;
 
   x = *s1_ptr++;
   s2_limb = x + s2_limb;
@@ -471,18 +471,18 @@ mpn_add_1 (res_ptr, s1_ptr, s1_size, s2_limb)
 
 _EXTERN_INLINE mp_limb_t
 #if defined (__STDC__) || defined (__cplusplus)
-mpn_add (register mp_ptr res_ptr,
-	 register mp_srcptr s1_ptr,
-	 register mp_size_t s1_size,
-	 register mp_srcptr s2_ptr,
-	 register mp_size_t s2_size)
+mpn_add (mp_ptr res_ptr,
+	 mp_srcptr s1_ptr,
+	 mp_size_t s1_size,
+	 mp_srcptr s2_ptr,
+	 mp_size_t s2_size)
 #else
 mpn_add (res_ptr, s1_ptr, s1_size, s2_ptr, s2_size)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_size_t s1_size;
-     register mp_srcptr s2_ptr;
-     register mp_size_t s2_size;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_size_t s1_size;
+     mp_srcptr s2_ptr;
+     mp_size_t s2_size;
 #endif
 {
   mp_limb_t cy_limb = 0;
@@ -500,19 +500,19 @@ mpn_add (res_ptr, s1_ptr, s1_size, s2_ptr, s2_size)
 
 _EXTERN_INLINE mp_limb_t
 #if defined (__STDC__) || defined (__cplusplus)
-mpn_sub_1 (register mp_ptr res_ptr,
-	   register mp_srcptr s1_ptr,
-	   register mp_size_t s1_size,
-	   register mp_limb_t s2_limb)
+mpn_sub_1 (mp_ptr res_ptr,
+	   mp_srcptr s1_ptr,
+	   mp_size_t s1_size,
+	   mp_limb_t s2_limb)
 #else
 mpn_sub_1 (res_ptr, s1_ptr, s1_size, s2_limb)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_size_t s1_size;
-     register mp_limb_t s2_limb;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_size_t s1_size;
+     mp_limb_t s2_limb;
 #endif
 {
-  register mp_limb_t x;
+  mp_limb_t x;
 
   x = *s1_ptr++;
   s2_limb = x - s2_limb;
@@ -542,18 +542,18 @@ mpn_sub_1 (res_ptr, s1_ptr, s1_size, s2_limb)
 
 _EXTERN_INLINE mp_limb_t
 #if defined (__STDC__) || defined (__cplusplus)
-mpn_sub (register mp_ptr res_ptr,
-	 register mp_srcptr s1_ptr,
-	 register mp_size_t s1_size,
-	 register mp_srcptr s2_ptr,
-	 register mp_size_t s2_size)
+mpn_sub (mp_ptr res_ptr,
+	 mp_srcptr s1_ptr,
+	 mp_size_t s1_size,
+	 mp_srcptr s2_ptr,
+	 mp_size_t s2_size)
 #else
 mpn_sub (res_ptr, s1_ptr, s1_size, s2_ptr, s2_size)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_size_t s1_size;
-     register mp_srcptr s2_ptr;
-     register mp_size_t s2_size;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_size_t s1_size;
+     mp_srcptr s2_ptr;
+     mp_size_t s2_size;
 #endif
 {
   mp_limb_t cy_limb = 0;
diff --git a/stdlib/longlong.h b/stdlib/longlong.h
index c4b1b97..3cf2ae9 100644
--- a/stdlib/longlong.h
+++ b/stdlib/longlong.h
@@ -222,7 +222,7 @@ UDItype __umulsidi3 (USItype, USItype);
      || defined(__ARM_ARCH_3__)
 #  define umul_ppmm(xh, xl, a, b)					\
   do {									\
-    register USItype __t0, __t1, __t2;					\
+    USItype __t0, __t1, __t2;					\
     __asm__ ("%@ Inlined umul_ppmm\n"					\
 	   "	mov	%2, %5, lsr #16\n"				\
 	   "	mov	%0, %6, lsr #16\n"				\
@@ -247,7 +247,7 @@ UDItype __umulsidi3 (USItype, USItype);
 #  define umul_ppmm(xh, xl, a, b)					\
   do {									\
     /* Generate umull, under compiler control.  */			\
-    register UDItype __t0 = (UDItype)(USItype)(a) * (USItype)(b);	\
+    UDItype __t0 = (UDItype)(USItype)(a) * (USItype)(b);	\
     (xl) = (USItype)__t0;						\
     (xh) = (USItype)(__t0 >> 32);					\
   } while (0)
diff --git a/stdlib/lshift.c b/stdlib/lshift.c
index c92439b..97a7d49 100644
--- a/stdlib/lshift.c
+++ b/stdlib/lshift.c
@@ -32,20 +32,20 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 
 mp_limb_t
 #if __STDC__
-mpn_lshift (register mp_ptr wp,
-	    register mp_srcptr up, mp_size_t usize,
-	    register unsigned int cnt)
+mpn_lshift (mp_ptr wp,
+	    mp_srcptr up, mp_size_t usize,
+	    unsigned int cnt)
 #else
 mpn_lshift (wp, up, usize, cnt)
-     register mp_ptr wp;
-     register mp_srcptr up;
+     mp_ptr wp;
+     mp_srcptr up;
      mp_size_t usize;
-     register unsigned int cnt;
+     unsigned int cnt;
 #endif
 {
-  register mp_limb_t high_limb, low_limb;
-  register unsigned sh_1, sh_2;
-  register mp_size_t i;
+  mp_limb_t high_limb, low_limb;
+  unsigned sh_1, sh_2;
+  mp_size_t i;
   mp_limb_t retval;
 
 #ifdef DEBUG
diff --git a/stdlib/mul_1.c b/stdlib/mul_1.c
index f566ba2..549c889 100644
--- a/stdlib/mul_1.c
+++ b/stdlib/mul_1.c
@@ -25,14 +25,14 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 
 mp_limb_t
 mpn_mul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
      mp_size_t s1_size;
-     register mp_limb_t s2_limb;
+     mp_limb_t s2_limb;
 {
-  register mp_limb_t cy_limb;
-  register mp_size_t j;
-  register mp_limb_t prod_high, prod_low;
+  mp_limb_t cy_limb;
+  mp_size_t j;
+  mp_limb_t prod_high, prod_low;
 
   /* The loop counter and index J goes from -S1_SIZE to -1.  This way
      the loop becomes faster.  */
diff --git a/stdlib/qsort.c b/stdlib/qsort.c
index ccbdccc..4a92da2 100644
--- a/stdlib/qsort.c
+++ b/stdlib/qsort.c
@@ -29,8 +29,8 @@
 #define SWAP(a, b, size)						      \
   do									      \
     {									      \
-      register size_t __size = (size);					      \
-      register char *__a = (a), *__b = (b);				      \
+      size_t __size = (size);					      \
+      char *__a = (a), *__b = (b);				      \
       do								      \
 	{								      \
 	  char __tmp = *__a;						      \
@@ -89,7 +89,7 @@ void
 _quicksort (void *const pbase, size_t total_elems, size_t size,
 	    __compar_d_fn_t cmp, void *arg)
 {
-  register char *base_ptr = (char *) pbase;
+  char *base_ptr = (char *) pbase;
 
   const size_t max_thresh = MAX_THRESH * size;
 
@@ -206,7 +206,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size,
     char *const end_ptr = &base_ptr[size * (total_elems - 1)];
     char *tmp_ptr = base_ptr;
     char *thresh = min(end_ptr, base_ptr + max_thresh);
-    register char *run_ptr;
+    char *run_ptr;
 
     /* Find smallest element in first threshold and place it at the
        array's beginning.  This is the smallest array element,
diff --git a/stdlib/rshift.c b/stdlib/rshift.c
index c69dbd0..9d29f55 100644
--- a/stdlib/rshift.c
+++ b/stdlib/rshift.c
@@ -32,20 +32,20 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 
 mp_limb_t
 #if __STDC__
-mpn_rshift (register mp_ptr wp,
-	    register mp_srcptr up, mp_size_t usize,
-	    register unsigned int cnt)
+mpn_rshift (mp_ptr wp,
+	    mp_srcptr up, mp_size_t usize,
+	    unsigned int cnt)
 #else
 mpn_rshift (wp, up, usize, cnt)
-     register mp_ptr wp;
-     register mp_srcptr up;
+     mp_ptr wp;
+     mp_srcptr up;
      mp_size_t usize;
-     register unsigned int cnt;
+     unsigned int cnt;
 #endif
 {
-  register mp_limb_t high_limb, low_limb;
-  register unsigned sh_1, sh_2;
-  register mp_size_t i;
+  mp_limb_t high_limb, low_limb;
+  unsigned sh_1, sh_2;
+  mp_size_t i;
   mp_limb_t retval;
 
 #ifdef DEBUG
diff --git a/stdlib/setenv.c b/stdlib/setenv.c
index a9ebe33..fdcd8e1 100644
--- a/stdlib/setenv.c
+++ b/stdlib/setenv.c
@@ -112,8 +112,8 @@ __add_to_environ (name, value, combined, replace)
      const char *combined;
      int replace;
 {
-  register char **ep;
-  register size_t size;
+  char **ep;
+  size_t size;
   const size_t namelen = strlen (name);
   const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
 
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index 47247b5..2c546c2 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -1175,7 +1175,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
      really integer digits or belong to the fractional part; i.e. we normalize
      123e-2 to 1.23.  */
   {
-    register intmax_t incr = (exponent < 0
+    intmax_t incr = (exponent < 0
 			      ? MAX (-(intmax_t) int_no, exponent)
 			      : MIN ((intmax_t) dig_no - (intmax_t) int_no,
 				     exponent));
@@ -1499,7 +1499,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 #define got_limb							      \
 	      if (bits == 0)						      \
 		{							      \
-		  register int cnt;					      \
+		  int cnt;					      \
 		  if (quot == 0)					      \
 		    cnt = BITS_PER_MP_LIMB;				      \
 		  else							      \
@@ -1651,7 +1651,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 	  if (numsize < densize)
 	    {
 	      mp_size_t empty = densize - numsize;
-	      register int i;
+	      int i;
 
 	      if (bits <= 0)
 		exponent -= empty * BITS_PER_MP_LIMB;
@@ -1679,7 +1679,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 		      used = MANT_DIG - bits;
 		      if (used >= BITS_PER_MP_LIMB)
 			{
-			  register int i;
+			  int i;
 			  (void) __mpn_lshift (&retval[used
 						       / BITS_PER_MP_LIMB],
 					       retval,
diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
index 874708a..dc47608 100644
--- a/stdlib/strtol_l.c
+++ b/stdlib/strtol_l.c
@@ -231,11 +231,11 @@ INTERNAL (__strtol_l) (nptr, endptr, base, group, loc)
      __locale_t loc;
 {
   int negative;
-  register unsigned LONG int cutoff;
-  register unsigned int cutlim;
-  register unsigned LONG int i;
-  register const STRING_TYPE *s;
-  register UCHAR_TYPE c;
+  unsigned LONG int cutoff;
+  unsigned int cutlim;
+  unsigned LONG int i;
+  const STRING_TYPE *s;
+  UCHAR_TYPE c;
   const STRING_TYPE *save, *end;
   int overflow;
 #ifndef USE_WIDE_CHAR
diff --git a/stdlib/sub_n.c b/stdlib/sub_n.c
index 9b3fb92..f3c03c8 100644
--- a/stdlib/sub_n.c
+++ b/stdlib/sub_n.c
@@ -26,14 +26,14 @@ mp_limb_t
 mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size)
 #else
 mpn_sub_n (res_ptr, s1_ptr, s2_ptr, size)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
-     register mp_srcptr s2_ptr;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
+     mp_srcptr s2_ptr;
      mp_size_t size;
 #endif
 {
-  register mp_limb_t x, y, cy;
-  register mp_size_t j;
+  mp_limb_t x, y, cy;
+  mp_size_t j;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
      the loop becomes faster.  */
diff --git a/stdlib/submul_1.c b/stdlib/submul_1.c
index 61a07ca..93af44a 100644
--- a/stdlib/submul_1.c
+++ b/stdlib/submul_1.c
@@ -27,15 +27,15 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
 
 mp_limb_t
 mpn_submul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
-     register mp_ptr res_ptr;
-     register mp_srcptr s1_ptr;
+     mp_ptr res_ptr;
+     mp_srcptr s1_ptr;
      mp_size_t s1_size;
-     register mp_limb_t s2_limb;
+     mp_limb_t s2_limb;
 {
-  register mp_limb_t cy_limb;
-  register mp_size_t j;
-  register mp_limb_t prod_high, prod_low;
-  register mp_limb_t x;
+  mp_limb_t cy_limb;
+  mp_size_t j;
+  mp_limb_t prod_high, prod_low;
+  mp_limb_t x;
 
   /* The loop counter and index J goes from -SIZE to -1.  This way
      the loop becomes faster.  */
diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
index 0154aad..acd1377 100644
--- a/stdlib/tst-strtod.c
+++ b/stdlib/tst-strtod.c
@@ -85,7 +85,7 @@ int
 main (int argc, char ** argv)
 {
   char buf[100];
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
@@ -184,7 +184,7 @@ main (int argc, char ** argv)
 static void
 expand (dst, c)
      char *dst;
-     register int c;
+     int c;
 {
   if (isprint (c))
     {
diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c
index f569e55..eebd8f7 100644
--- a/stdlib/tst-strtol.c
+++ b/stdlib/tst-strtol.c
@@ -537,14 +537,14 @@ static void expand (char *dst, int c);
 int
 main (void)
 {
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
 
   for (lt = tests; lt->str != NULL; ++lt)
     {
-      register long int l;
+      long int l;
 
       errno = 0;
       l = strtol (lt->str, &ep, lt->base);
@@ -577,7 +577,7 @@ main (void)
 
   for (++lt; lt->str != NULL; lt++)
     {
-      register unsigned long int ul;
+      unsigned long int ul;
 
       errno = 0;
       ul = strtoul (lt->str, &ep, lt->base);
diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c
index ba33382..0c77254 100644
--- a/stdlib/tst-strtoll.c
+++ b/stdlib/tst-strtoll.c
@@ -312,14 +312,14 @@ static void expand (char *dst, int c);
 int
 main (void)
 {
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
 
   for (lt = tests; lt->str != NULL; ++lt)
     {
-      register long long int l;
+      long long int l;
 
       errno = 0;
       l = strtoll (lt->str, &ep, lt->base);
@@ -352,7 +352,7 @@ main (void)
 
   for (++lt; lt->str != NULL; lt++)
     {
-      register unsigned long long int ul;
+      unsigned long long int ul;
 
       errno = 0;
       ul = strtoull (lt->str, &ep, lt->base);
diff --git a/string/bits/string2.h b/string/bits/string2.h
index ddd1c04..a12fe43 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -839,7 +839,7 @@ __stpcpy_small (char *__dest,
 # endif
 
 # define __strcmp_cc(s1, s2, l) \
-  (__extension__ ({ register int __result =				      \
+  (__extension__ ({ int __result =				      \
 		      (((const unsigned char *) (const char *) (s1))[0]	      \
 		       - ((const unsigned char *) (const char *)(s2))[0]);    \
 		    if (l > 0 && __result == 0)				      \
@@ -868,7 +868,7 @@ __stpcpy_small (char *__dest,
 # define __strcmp_cg(s1, s2, l1) \
   (__extension__ ({ const unsigned char *__s2 =				      \
 		      (const unsigned char *) (const char *) (s2);	      \
-		    register int __result =				      \
+		    int __result =				      \
 		      (((const unsigned char *) (const char *) (s1))[0]	      \
 		       - __s2[0]);					      \
 		    if (l1 > 0 && __result == 0)			      \
@@ -946,7 +946,7 @@ __STRING_INLINE size_t __strcspn_c1 (const char *__s, int __reject);
 __STRING_INLINE size_t
 __strcspn_c1 (const char *__s, int __reject)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject)
     ++__result;
   return __result;
@@ -957,7 +957,7 @@ __STRING_INLINE size_t __strcspn_c2 (const char *__s, int __reject1,
 __STRING_INLINE size_t
 __strcspn_c2 (const char *__s, int __reject1, int __reject2)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
 	 && __s[__result] != __reject2)
     ++__result;
@@ -970,7 +970,7 @@ __STRING_INLINE size_t
 __strcspn_c3 (const char *__s, int __reject1, int __reject2,
 	      int __reject3)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
 	 && __s[__result] != __reject2 && __s[__result] != __reject3)
     ++__result;
@@ -1022,7 +1022,7 @@ __STRING_INLINE size_t __strspn_c1 (const char *__s, int __accept);
 __STRING_INLINE size_t
 __strspn_c1 (const char *__s, int __accept)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept never can be '\0'.  */
   while (__s[__result] == __accept)
     ++__result;
@@ -1034,7 +1034,7 @@ __STRING_INLINE size_t __strspn_c2 (const char *__s, int __accept1,
 __STRING_INLINE size_t
 __strspn_c2 (const char *__s, int __accept1, int __accept2)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept1 and __accept2 never can be '\0'.  */
   while (__s[__result] == __accept1 || __s[__result] == __accept2)
     ++__result;
@@ -1046,7 +1046,7 @@ __STRING_INLINE size_t __strspn_c3 (const char *__s, int __accept1,
 __STRING_INLINE size_t
 __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept1 to __accept3 never can be '\0'.  */
   while (__s[__result] == __accept1 || __s[__result] == __accept2
 	 || __s[__result] == __accept3)
@@ -1198,7 +1198,7 @@ __STRING_INLINE char *__strsep_1c (char **__s, char __reject);
 __STRING_INLINE char *
 __strsep_1c (char **__s, char __reject)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL && (*__s = strchr (__retval, __reject)) != NULL)
     *(*__s)++ = '\0';
   return __retval;
@@ -1208,10 +1208,10 @@ __STRING_INLINE char *__strsep_2c (char **__s, char __reject1, char __reject2);
 __STRING_INLINE char *
 __strsep_2c (char **__s, char __reject1, char __reject2)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL)
     {
-      register char *__cp = __retval;
+      char *__cp = __retval;
       while (1)
 	{
 	  if (*__cp == '\0')
@@ -1236,10 +1236,10 @@ __STRING_INLINE char *__strsep_3c (char **__s, char __reject1, char __reject2,
 __STRING_INLINE char *
 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL)
     {
-      register char *__cp = __retval;
+      char *__cp = __retval;
       while (1)
 	{
 	  if (*__cp == '\0')
diff --git a/string/memccpy.c b/string/memccpy.c
index d2c0244..2a33032 100644
--- a/string/memccpy.c
+++ b/string/memccpy.c
@@ -30,10 +30,10 @@ __memccpy (dest, src, c, n)
       int c;
       size_t n;
 {
-  register const char *s = src;
-  register char *d = dest;
-  register const char x = c;
-  register size_t i = n;
+  const char *s = src;
+  char *d = dest;
+  const char x = c;
+  size_t i = n;
 
   while (i-- > 0)
     if ((*d++ = *s++) == x)
diff --git a/string/stpcpy.c b/string/stpcpy.c
index 93e2510..8ece3d9 100644
--- a/string/stpcpy.c
+++ b/string/stpcpy.c
@@ -34,8 +34,8 @@ __stpcpy (dest, src)
      char *dest;
      const char *src;
 {
-  register char *d = dest;
-  register const char *s = src;
+  char *d = dest;
+  const char *s = src;
 
   do
     *d++ = *s;
diff --git a/string/strcmp.c b/string/strcmp.c
index b7a53d3..a464563 100644
--- a/string/strcmp.c
+++ b/string/strcmp.c
@@ -28,8 +28,8 @@ strcmp (p1, p2)
      const char *p1;
      const char *p2;
 {
-  register const unsigned char *s1 = (const unsigned char *) p1;
-  register const unsigned char *s2 = (const unsigned char *) p2;
+  const unsigned char *s1 = (const unsigned char *) p1;
+  const unsigned char *s2 = (const unsigned char *) p2;
   unsigned char c1, c2;
 
   do
diff --git a/string/strrchr.c b/string/strrchr.c
index 2bf3499..bdec841 100644
--- a/string/strrchr.c
+++ b/string/strrchr.c
@@ -23,7 +23,7 @@
 char *
 strrchr (const char *s, int c)
 {
-  register const char *found, *p;
+  const char *found, *p;
 
   c = (unsigned char) c;
 
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index b299c45..8d16e55 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -245,7 +245,7 @@ authdes_marshal (AUTH *auth, XDR *xdrs)
   des_block ivec;
   int status;
   int len;
-  register int32_t *ixdr;
+  int32_t *ixdr;
   struct timeval tval;
 
   /*
@@ -345,7 +345,7 @@ authdes_validate (AUTH *auth, struct opaque_auth *rverf)
   struct ad_private *ad = AUTH_PRIVATE (auth);
   struct authdes_verf verf;
   int status;
-  register uint32_t *ixdr;
+  uint32_t *ixdr;
 
   if (rverf->oa_length != (2 + 1) * BYTES_PER_XDR_UNIT)
     return FALSE;
diff --git a/sunrpc/authdes_prot.c b/sunrpc/authdes_prot.c
index 164c122..7ec0df5 100644
--- a/sunrpc/authdes_prot.c
+++ b/sunrpc/authdes_prot.c
@@ -67,7 +67,7 @@ libc_hidden_nolink_sunrpc (xdr_authdes_cred, GLIBC_2_1)
 
 
 bool_t
-xdr_authdes_verf (register XDR *xdrs, register struct authdes_verf *verf)
+xdr_authdes_verf (XDR *xdrs, struct authdes_verf *verf)
 {
   /*
    * Unrolled xdr
diff --git a/sunrpc/des_crypt.c b/sunrpc/des_crypt.c
index 22a34b7..bea8859 100644
--- a/sunrpc/des_crypt.c
+++ b/sunrpc/des_crypt.c
@@ -41,8 +41,8 @@ extern int _des_crypt (char *, unsigned, struct desparams *);
  * Copy 8 bytes
  */
 #define COPY8(src, dst) { \
-	register char *a = (char *) dst; \
-	register char *b = (char *) src; \
+	char *a = (char *) dst; \
+	char *b = (char *) src; \
 	*a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \
 	*a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \
 }
@@ -51,9 +51,9 @@ extern int _des_crypt (char *, unsigned, struct desparams *);
  * Copy multiple of 8 bytes
  */
 #define DESCOPY(src, dst, len) { \
-	register char *a = (char *) dst; \
-	register char *b = (char *) src; \
-	register int i; \
+	char *a = (char *) dst; \
+	char *b = (char *) src; \
+	int i; \
 	for (i = (int) len; i > 0; i -= 8) { \
 		*a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \
 		*a++ = *b++; *a++ = *b++; *a++ = *b++; *a++ = *b++; \
@@ -64,10 +64,10 @@ extern int _des_crypt (char *, unsigned, struct desparams *);
  * Common code to cbc_crypt() & ecb_crypt()
  */
 static int
-common_crypt (char *key, char *buf, register unsigned len,
-	      unsigned mode, register struct desparams *desp)
+common_crypt (char *key, char *buf, unsigned len,
+	      unsigned mode, struct desparams *desp)
 {
-  register int desdev;
+  int desdev;
 
   if ((len % 8) != 0 || len > DES_MAXDATA)
     return DESERR_BADPARAM;
diff --git a/sunrpc/des_impl.c b/sunrpc/des_impl.c
index 1757dc1..94d1f66 100644
--- a/sunrpc/des_impl.c
+++ b/sunrpc/des_impl.c
@@ -379,10 +379,10 @@ static void
 internal_function
 des_set_key (unsigned char *key, unsigned long *schedule)
 {
-  register unsigned long c, d, t, s;
-  register unsigned char *in;
-  register unsigned long *k;
-  register int i;
+  unsigned long c, d, t, s;
+  unsigned char *in;
+  unsigned long *k;
+  int i;
 
   k = (unsigned long *) schedule;
   in = key;
@@ -442,9 +442,9 @@ static void
 internal_function
 des_encrypt (unsigned long *buf, unsigned long *schedule, int encrypt)
 {
-  register unsigned long l, r, t, u;
-  register int i;
-  register unsigned long *s;
+  unsigned long l, r, t, u;
+  int i;
+  unsigned long *s;
 
   l = buf[0];
   r = buf[1];
@@ -519,9 +519,9 @@ int
 _des_crypt (char *buf, unsigned len, struct desparams *desp)
 {
   unsigned long schedule[32];
-  register unsigned long tin0, tin1;
-  register unsigned long tout0, tout1, xor0, xor1;
-  register unsigned char *in, *out;
+  unsigned long tin0, tin1;
+  unsigned long tout0, tout1, xor0, xor1;
+  unsigned char *in, *out;
   unsigned long tbuf[2];
   unsigned char *iv, *oiv;
   int cbc_mode;
diff --git a/sunrpc/rpcinfo.c b/sunrpc/rpcinfo.c
index e490a7e..ca087cd 100644
--- a/sunrpc/rpcinfo.c
+++ b/sunrpc/rpcinfo.c
@@ -84,7 +84,7 @@ static void get_inet_address (struct sockaddr_in *addr, char *host);
 int
 main (int argc, char **argv)
 {
-  register int c;
+  int c;
   int errflg;
   int function;
   u_short portnum;
@@ -506,7 +506,7 @@ tcpping (portnum, argc, argv)
  */
 static int
 pstatus (client, prognum, vers)
-     register CLIENT *client;
+     CLIENT *client;
      u_long prognum;
      u_long vers;
 {
@@ -532,11 +532,11 @@ pmapdump (argc, argv)
      char **argv;
 {
   struct sockaddr_in server_addr;
-  register struct hostent *hp;
+  struct hostent *hp;
   struct pmaplist *head = NULL;
   int socket = RPC_ANYSOCK;
   struct timeval minutetimeout;
-  register CLIENT *client;
+  CLIENT *client;
   struct rpcent *rpc;
 
   if (argc > 1)
@@ -614,7 +614,7 @@ reply_proc (res, who)
      void *res;			/* Nothing comes back */
      struct sockaddr_in *who;	/* Who sent us the reply */
 {
-  register struct hostent *hp;
+  struct hostent *hp;
 
   hp = gethostbyaddr ((char *) &who->sin_addr, sizeof who->sin_addr,
 		      AF_INET);
@@ -703,8 +703,8 @@ static u_long
 getprognum (arg)
      char *arg;
 {
-  register struct rpcent *rpc;
-  register u_long prognum;
+  struct rpcent *rpc;
+  u_long prognum;
 
   if (isalpha (*arg))
     {
@@ -728,7 +728,7 @@ static u_long
 getvers (arg)
      char *arg;
 {
-  register u_long vers;
+  u_long vers;
 
   vers = (int) atoi (arg);
   return vers;
@@ -739,7 +739,7 @@ get_inet_address (addr, host)
      struct sockaddr_in *addr;
      char *host;
 {
-  register struct hostent *hp;
+  struct hostent *hp;
 
   bzero ((char *) addr, sizeof *addr);
   addr->sin_addr.s_addr = (u_long) inet_addr (host);
diff --git a/sunrpc/svc.c b/sunrpc/svc.c
index 53e5d9f..48c4f81 100644
--- a/sunrpc/svc.c
+++ b/sunrpc/svc.c
@@ -92,8 +92,8 @@ static struct svc_callout *svc_head;
 void
 xprt_register (SVCXPRT *xprt)
 {
-  register int sock = xprt->xp_sock;
-  register int i;
+  int sock = xprt->xp_sock;
+  int i;
 
   if (xports == NULL)
     {
@@ -139,8 +139,8 @@ libc_hidden_nolink_sunrpc (xprt_register, GLIBC_2_0)
 void
 xprt_unregister (SVCXPRT *xprt)
 {
-  register int sock = xprt->xp_sock;
-  register int i;
+  int sock = xprt->xp_sock;
+  int i;
 
   if ((sock < _rpc_dtablesize ()) && (xports[sock] == xprt))
     {
@@ -168,7 +168,7 @@ libc_hidden_nolink_sunrpc (xprt_unregister, GLIBC_2_0)
 static struct svc_callout *
 svc_find (rpcprog_t prog, rpcvers_t vers, struct svc_callout **prev)
 {
-  register struct svc_callout *s, *p;
+  struct svc_callout *s, *p;
 
   p = NULL_SVC;
   for (s = svc_head; s != NULL_SVC; s = s->sc_next)
@@ -187,7 +187,7 @@ static bool_t
 svc_is_mapped (rpcprog_t prog, rpcvers_t vers)
 {
   struct svc_callout *prev;
-  register struct svc_callout *s;
+  struct svc_callout *s;
   s = svc_find (prog, vers, &prev);
   return s!= NULL_SVC && s->sc_mapped;
 }
@@ -202,7 +202,7 @@ svc_register (SVCXPRT * xprt, rpcprog_t prog, rpcvers_t vers,
 	      rpcproc_t protocol)
 {
   struct svc_callout *prev;
-  register struct svc_callout *s;
+  struct svc_callout *s;
 
   if ((s = svc_find (prog, vers, &prev)) != NULL_SVC)
     {
@@ -244,7 +244,7 @@ void
 svc_unregister (rpcprog_t prog, rpcvers_t vers)
 {
   struct svc_callout *prev;
-  register struct svc_callout *s;
+  struct svc_callout *s;
 
   if ((s = svc_find (prog, vers, &prev)) == NULL_SVC)
     return;
@@ -266,7 +266,7 @@ libc_hidden_nolink_sunrpc (svc_unregister, GLIBC_2_0)
 
 /* Send a reply to an rpc request */
 bool_t
-svc_sendreply (register SVCXPRT *xprt, xdrproc_t xdr_results,
+svc_sendreply (SVCXPRT *xprt, xdrproc_t xdr_results,
 	       caddr_t xdr_location)
 {
   struct rpc_msg rply;
@@ -287,7 +287,7 @@ libc_hidden_nolink_sunrpc (svc_sendreply, GLIBC_2_0)
 
 /* No procedure error reply */
 void
-svcerr_noproc (register SVCXPRT *xprt)
+svcerr_noproc (SVCXPRT *xprt)
 {
   struct rpc_msg rply;
 
@@ -305,7 +305,7 @@ libc_hidden_nolink_sunrpc (svcerr_noproc, GLIBC_2_0)
 
 /* Can't decode args error reply */
 void
-svcerr_decode (register SVCXPRT *xprt)
+svcerr_decode (SVCXPRT *xprt)
 {
   struct rpc_msg rply;
 
@@ -323,7 +323,7 @@ libc_hidden_nolink_sunrpc (svcerr_decode, GLIBC_2_0)
 
 /* Some system error */
 void
-svcerr_systemerr (register SVCXPRT *xprt)
+svcerr_systemerr (SVCXPRT *xprt)
 {
   struct rpc_msg rply;
 
@@ -363,7 +363,7 @@ libc_hidden_nolink_sunrpc (svcerr_weakauth, GLIBC_2_0)
 
 /* Program unavailable error reply */
 void
-svcerr_noprog (register SVCXPRT *xprt)
+svcerr_noprog (SVCXPRT *xprt)
 {
   struct rpc_msg rply;
 
@@ -377,7 +377,7 @@ libc_hidden_nolink_sunrpc (svcerr_noprog, GLIBC_2_0)
 
 /* Program version mismatch error reply */
 void
-svcerr_progvers (register SVCXPRT *xprt, rpcvers_t low_vers,
+svcerr_progvers (SVCXPRT *xprt, rpcvers_t low_vers,
 		 rpcvers_t high_vers)
 {
   struct rpc_msg rply;
@@ -424,11 +424,11 @@ libc_hidden_nolink_sunrpc (svc_getreq, GLIBC_2_0)
 void
 svc_getreqset (fd_set *readfds)
 {
-  register fd_mask mask;
-  register fd_mask *maskp;
-  register int setsize;
-  register int sock;
-  register int bit;
+  fd_mask mask;
+  fd_mask *maskp;
+  int setsize;
+  int sock;
+  int bit;
 
   setsize = _rpc_dtablesize ();
   if (setsize > FD_SETSIZE)
@@ -446,10 +446,10 @@ svc_getreq_poll (struct pollfd *pfdp, int pollretval)
   if (pollretval == 0)
     return;
 
-  register int fds_found;
+  int fds_found;
   for (int i = fds_found = 0; i < svc_max_pollfd; ++i)
     {
-      register struct pollfd *p = &pfdp[i];
+      struct pollfd *p = &pfdp[i];
 
       if (p->fd != -1 && p->revents)
 	{
@@ -476,7 +476,7 @@ svc_getreq_common (const int fd)
 {
   enum xprt_stat stat;
   struct rpc_msg msg;
-  register SVCXPRT *xprt;
+  SVCXPRT *xprt;
   char cred_area[2 * MAX_AUTH_BYTES + RQCRED_SIZE];
   msg.rm_call.cb_cred.oa_base = cred_area;
   msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
diff --git a/sunrpc/svc_auth.c b/sunrpc/svc_auth.c
index f33bda2..5bae68b 100644
--- a/sunrpc/svc_auth.c
+++ b/sunrpc/svc_auth.c
@@ -92,9 +92,9 @@ svcauthsw[] =
  * invalid.
  */
 enum auth_stat
-_authenticate (register struct svc_req *rqst, struct rpc_msg *msg)
+_authenticate (struct svc_req *rqst, struct rpc_msg *msg)
 {
-  register int cred_flavor;
+  int cred_flavor;
 
   rqst->rq_cred = msg->rm_call.cb_cred;
   rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c
index a0f961d..c24c353 100644
--- a/sunrpc/svcauth_des.c
+++ b/sunrpc/svcauth_des.c
@@ -103,14 +103,14 @@ svcauthdes_stats;
  * Service side authenticator for AUTH_DES
  */
 enum auth_stat
-_svcauth_des (register struct svc_req *rqst, register struct rpc_msg *msg)
+_svcauth_des (struct svc_req *rqst, struct rpc_msg *msg)
 {
-  register uint32_t *ixdr;
+  uint32_t *ixdr;
   des_block cryptbuf[2];
-  register struct authdes_cred *cred;
+  struct authdes_cred *cred;
   struct authdes_verf verf;
   int status;
-  register struct cache_entry *entry;
+  struct cache_entry *entry;
   uint32_t sid = 0;
   des_block *sessionkey;
   des_block ivec;
@@ -392,7 +392,7 @@ static void
 internal_function
 cache_init (void)
 {
-  register int i;
+  int i;
 
   authdes_cache = (struct cache_entry *)
     calloc (sizeof (struct cache_entry) * AUTHDES_CACHESZ, 1);
@@ -422,11 +422,11 @@ cache_victim (void)
  */
 static void
 internal_function
-cache_ref (register uint32_t sid)
+cache_ref (uint32_t sid)
 {
-  register int i;
-  register int curr;
-  register int prev;
+  int i;
+  int curr;
+  int prev;
 
   prev = authdes_lru[0];
   authdes_lru[0] = sid;
@@ -445,12 +445,12 @@ cache_ref (register uint32_t sid)
  */
 static short
 internal_function
-cache_spot (register des_block *key, char *name,
+cache_spot (des_block *key, char *name,
 	    struct rpc_timeval *timestamp)
 {
-  register struct cache_entry *cp;
-  register int i;
-  register uint32_t hi;
+  struct cache_entry *cp;
+  int i;
+  uint32_t hi;
 
   hi = key->key.high;
   for (cp = authdes_cache, i = 0; i < AUTHDES_CACHESZ; ++i, ++cp)
@@ -501,7 +501,7 @@ authdes_getucred (const struct authdes_cred *adc, uid_t * uid, gid_t * gid,
 		  short *grouplen, gid_t * groups)
 {
   unsigned sid;
-  register int i;
+  int i;
   uid_t i_uid;
   gid_t i_gid;
   int i_grouplen;
diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c
index 78e8f3b..644709a 100644
--- a/sunrpc/xdr_float.c
+++ b/sunrpc/xdr_float.c
@@ -208,7 +208,7 @@ xdr_double(xdrs, dp)
 #ifdef vax
 	struct	ieee_double id;
 	struct	vax_double vd;
-	register struct dbl_limits *lim;
+	struct dbl_limits *lim;
 	int i;
 #endif
 
diff --git a/time/test_time.c b/time/test_time.c
index 5c38652..361763a 100644
--- a/time/test_time.c
+++ b/time/test_time.c
@@ -24,7 +24,7 @@ int
 main (int argc, char **argv)
 {
   time_t t;
-  register struct tm *tp;
+  struct tm *tp;
   struct tm tbuf;
   int lose = 0;
 
diff --git a/time/tzfile.c b/time/tzfile.c
index 2e3a7b6..9dd5130 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -104,10 +104,10 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
 {
   static const char default_tzdir[] = TZDIR;
   size_t num_isstd, num_isgmt;
-  register FILE *f;
+  FILE *f;
   struct tzhead tzhead;
   size_t chars;
-  register size_t i;
+  size_t i;
   size_t total_size;
   size_t types_idx;
   size_t leaps_idx;
@@ -630,7 +630,7 @@ __tzfile_compute (time_t timer, int use_localtime,
 		  long int *leap_correct, int *leap_hit,
 		  struct tm *tp)
 {
-  register size_t i;
+  size_t i;
 
   if (use_localtime)
     {
diff --git a/time/tzset.c b/time/tzset.c
index 843f661..0064cb0 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -300,7 +300,7 @@ __tzset_parse_tz (tz)
   /* Figure out the standard <-> DST rules.  */
   for (unsigned int whichrule = 0; whichrule < 2; ++whichrule)
     {
-      register tz_rule *tzr = &tz_rules[whichrule];
+      tz_rule *tzr = &tz_rules[whichrule];
 
       /* Ignore comma to support string following the incorrect
 	 specification in early POSIX.1 printings.  */
@@ -400,7 +400,7 @@ tzset_internal (always, explicit)
      int explicit;
 {
   static int is_initialized;
-  register const char *tz;
+  const char *tz;
 
   if (is_initialized && !always)
     return;
@@ -471,7 +471,7 @@ compute_change (rule, year)
      tz_rule *rule;
      int year;
 {
-  register time_t t;
+  time_t t;
 
   if (year != -1 && rule->computed_for == year)
     /* Operations on times in 2 BC will be slower.  Oh well.  */
diff --git a/wcsmbs/wcscat.c b/wcsmbs/wcscat.c
index e13e9d2..7ab7969f 100644
--- a/wcsmbs/wcscat.c
+++ b/wcsmbs/wcscat.c
@@ -25,8 +25,8 @@ __wcscat (dest, src)
      wchar_t *dest;
      const wchar_t *src;
 {
-  register wchar_t *s1 = dest;
-  register const wchar_t *s2 = src;
+  wchar_t *s1 = dest;
+  const wchar_t *s2 = src;
   wchar_t c;
 
   /* Find the end of the string.  */
diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
index 3b5b63d..22872ee 100644
--- a/wcsmbs/wcschr.c
+++ b/wcsmbs/wcschr.c
@@ -24,8 +24,8 @@
 
 wchar_t *
 wcschr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   do
     if (*wcs == wc)
diff --git a/wcsmbs/wcschrnul.c b/wcsmbs/wcschrnul.c
index 040aa70..d6b1231 100644
--- a/wcsmbs/wcschrnul.c
+++ b/wcsmbs/wcschrnul.c
@@ -21,8 +21,8 @@
 /* Find the first occurrence of WC in WCS.  */
 wchar_t *
 __wcschrnul (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   while (*wcs != L'\0')
     if (*wcs == wc)
diff --git a/wcsmbs/wcscspn.c b/wcsmbs/wcscspn.c
index 281de36..a25da0f 100644
--- a/wcsmbs/wcscspn.c
+++ b/wcsmbs/wcscspn.c
@@ -26,7 +26,7 @@ wcscspn (wcs, reject)
      const wchar_t *wcs;
      const wchar_t *reject;
 {
-  register size_t count = 0;
+  size_t count = 0;
 
   while (*wcs != L'\0')
     if (wcschr (reject, *wcs++) == NULL)
diff --git a/wcsmbs/wcspbrk.c b/wcsmbs/wcspbrk.c
index 2a417a5..5a3438f 100644
--- a/wcsmbs/wcspbrk.c
+++ b/wcsmbs/wcspbrk.c
@@ -22,8 +22,8 @@
 /* Find the first occurrence in WCS of any wide-character in ACCEPT.  */
 wchar_t *
 wcspbrk (wcs, accept)
-     register const wchar_t *wcs;
-     register const wchar_t *accept;
+     const wchar_t *wcs;
+     const wchar_t *accept;
 {
   while (*wcs != L'\0')
     if (wcschr (accept, *wcs) == NULL)
diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
index 7c3bc96..e30b851 100644
--- a/wcsmbs/wcsrchr.c
+++ b/wcsmbs/wcsrchr.c
@@ -22,8 +22,8 @@
 /* Find the last occurrence of WC in WCS.  */
 wchar_t *
 wcsrchr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   const wchar_t *retval = NULL;
 
diff --git a/wcsmbs/wcsspn.c b/wcsmbs/wcsspn.c
index d8597c5..709b61b 100644
--- a/wcsmbs/wcsspn.c
+++ b/wcsmbs/wcsspn.c
@@ -26,9 +26,9 @@ wcsspn (wcs, accept)
      const wchar_t *wcs;
      const wchar_t *accept;
 {
-  register const wchar_t *p;
-  register const wchar_t *a;
-  register size_t count = 0;
+  const wchar_t *p;
+  const wchar_t *a;
+  size_t count = 0;
 
   for (p = wcs; *p != L'\0'; ++p)
     {
diff --git a/wcsmbs/wcsstr.c b/wcsmbs/wcsstr.c
index 7151571..fe984d1 100644
--- a/wcsmbs/wcsstr.c
+++ b/wcsmbs/wcsstr.c
@@ -33,7 +33,7 @@ wcsstr (haystack, needle)
      const wchar_t *haystack;
      const wchar_t *needle;
 {
-  register wchar_t b, c;
+  wchar_t b, c;
 
   if ((b = *needle) != L'\0')
     {
@@ -50,8 +50,8 @@ wcsstr (haystack, needle)
 
       for (;;)
 	{
-	  register wchar_t a;
-	  register const wchar_t *rhaystack, *rneedle;
+	  wchar_t a;
+	  const wchar_t *rhaystack, *rneedle;
 
 	  do
 	    {
diff --git a/wcsmbs/wmemchr.c b/wcsmbs/wmemchr.c
index 63311f2..237765a 100644
--- a/wcsmbs/wmemchr.c
+++ b/wcsmbs/wmemchr.c
@@ -20,9 +20,9 @@
 
 wchar_t *
 wmemchr (s, c, n)
-     register const wchar_t *s;
-     register wchar_t c;
-     register size_t n;
+     const wchar_t *s;
+     wchar_t c;
+     size_t n;
 {
   /* For performance reasons unfold the loop four times.  */
   while (n >= 4)
diff --git a/wcsmbs/wmemcmp.c b/wcsmbs/wmemcmp.c
index bedb893..37b84b5 100644
--- a/wcsmbs/wmemcmp.c
+++ b/wcsmbs/wmemcmp.c
@@ -28,8 +28,8 @@ WMEMCMP (s1, s2, n)
      const wchar_t *s2;
      size_t n;
 {
-  register wchar_t c1;
-  register wchar_t c2;
+  wchar_t c1;
+  wchar_t c2;
 
   while (n >= 4)
     {
diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
index d5b56af..fbec915 100644
--- a/wcsmbs/wmemset.c
+++ b/wcsmbs/wmemset.c
@@ -25,7 +25,7 @@ wmemset (s, c, n)
      wchar_t c;
      size_t n;
 {
-  register wchar_t *wp = s;
+  wchar_t *wp = s;
 
   while (n >= 4)
     {

Attachment: remove_register.c
Description: Text document

Attachment: run_register
Description: Text document


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