source: trunk/src/binutils/libiberty/bcopy.c@ 580

Last change on this file since 580 was 10, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 711 bytes
Line 
1/* bcopy -- copy memory regions of arbitary length
2
3NAME
4 bcopy -- copy memory regions of arbitrary length
5
6SYNOPSIS
7 void bcopy (char *in, char *out, int length)
8
9DESCRIPTION
10 Copy LENGTH bytes from memory region pointed to by IN to memory
11 region pointed to by OUT.
12
13BUGS
14 Significant speed improvements can be made in some cases by
15 implementing copies of multiple bytes simultaneously, or unrolling
16 the copy loop.
17
18*/
19
20void
21bcopy (src, dest, len)
22 register char *src, *dest;
23 int len;
24{
25 if (dest < src)
26 while (len--)
27 *dest++ = *src++;
28 else
29 {
30 char *lasts = src + (len-1);
31 char *lastd = dest + (len-1);
32 while (len--)
33 *(char *)lastd-- = *(char *)lasts--;
34 }
35}
Note: See TracBrowser for help on using the repository browser.