* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[deliverable/binutils-gdb.git] / gas / bignum-copy.c
index 11346369c69ab960123027078127a9e0018c1029..2bffcbfea4c9c0993a0e9d5b3b11585f793db40d 100644 (file)
@@ -1,29 +1,24 @@
 /* bignum_copy.c - copy a bignum
    Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc.
-   
+
    This file is part of GAS, the GNU Assembler.
-   
+
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2, or (at your option)
    any later version.
-   
+
    GAS 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to
-   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
 
 #include "as.h"
 
-#ifdef USG
-#define bzero(s,n) memset(s,0,n)
-#define bcopy(from,to,n) memcpy(to,from,n)
-#endif
-
 /*
  *                     bignum_copy ()
  *
  * If the output is shorter than the input, copy lower-order littlenums.
  * Return 0 or the number of significant littlenums dropped.
  * Assumes littlenum arrays are densely packed: no unused chars between
- * the littlenums. Uses bcopy() to move littlenums, and wants to
+ * the littlenums. Uses memcpy() to move littlenums, and wants to
  * know length (in chars) of the input bignum.
  */
 
 /* void */
 int
-    bignum_copy(in, in_length, out, out_length)
-register LITTLENUM_TYPE *in;
-register int in_length; /* in sizeof(littlenum)s */
-register LITTLENUM_TYPE *out;
-register int out_length; /* in sizeof(littlenum)s */
+bignum_copy (in, in_length, out, out_length)
+     register LITTLENUM_TYPE *in;
+     register int in_length;   /* in sizeof(littlenum)s */
+     register LITTLENUM_TYPE *out;
+     register int out_length;  /* in sizeof(littlenum)s */
 {
-       int significant_littlenums_dropped;
-       
-       if (out_length < in_length) {
-               LITTLENUM_TYPE *p; /* -> most significant (non-zero) input
-                                     littlenum. */ 
-               
-               bcopy((char *) in, (char *) out,
-                     out_length << LITTLENUM_SHIFT); 
-               for (p = in + in_length - 1; p >= in; --p) {
-                       if (* p) break;
-               }
-               significant_littlenums_dropped = p - in - in_length + 1;
-               
-               if (significant_littlenums_dropped < 0) {
-                       significant_littlenums_dropped = 0;
-               }
-       } else {
-               bcopy((char *) in, (char *) out,
-                     in_length << LITTLENUM_SHIFT);
+  int significant_littlenums_dropped;
 
-               if (out_length > in_length) {
-                       bzero((char *) (out + out_length),
-                             (out_length - in_length) << LITTLENUM_SHIFT);
-               }
+  if (out_length < in_length)
+    {
+      LITTLENUM_TYPE *p;       /* -> most significant (non-zero) input
+                                     littlenum. */
 
-               significant_littlenums_dropped = 0;
+      memcpy ((void *) out, (void *) in,
+             (unsigned int) out_length << LITTLENUM_SHIFT);
+      for (p = in + in_length - 1; p >= in; --p)
+       {
+         if (*p)
+           break;
        }
-       
-       return(significant_littlenums_dropped);
-} /* bignum_copy() */
+      significant_littlenums_dropped = p - in - in_length + 1;
+
+      if (significant_littlenums_dropped < 0)
+       {
+         significant_littlenums_dropped = 0;
+       }
+    }
+  else
+    {
+      memcpy ((char *) out, (char *) in,
+             (unsigned int) in_length << LITTLENUM_SHIFT);
+
+      if (out_length > in_length)
+       {
+         memset ((char *) (out + in_length),
+                 '\0',
+                 (unsigned int) (out_length - in_length) << LITTLENUM_SHIFT);
+       }
+
+      significant_littlenums_dropped = 0;
+    }
+
+  return (significant_littlenums_dropped);
+}                              /* bignum_copy() */
 
 /* end of bignum-copy.c */
This page took 0.027344 seconds and 4 git commands to generate.