1void
2bcopy1 (s, d, c)
3     long long *s;
4     long long *d;
5     int c;
6{
7  int i;
8  c = c / 8;
9  for (i = 0;  i < c;  i++)
10    d[i] = s[i];
11}
12
13void
14bcopy2 (s, d, c)
15     long *s;
16     long *d;
17     int c;
18{
19  int i;
20  c = c / 4;
21  for (i = 0;  i < c;  i++)
22    d[i] = s[i];
23}
24
25
26void
27bcopy3 (s, d, c)
28     char *s;
29     char *d;
30     int c;
31{
32  long long z0, z1;
33  int r = d - s;
34
35  int i;
36
37  c /= 16;
38
39  z0 = *((long long *) s);
40  s += 8;
41  z1 = *((long long *) s);
42  s += 8;
43  for (i = 0; i < c; i++)
44    {
45      *(long long *)(s + r) = z0;
46      z0 = *((long long *) s);
47      s += 8;
48      *(long long *)(s + r) = z1;
49      z1 = *((long long *) s);
50      s += 8;
51    }
52}
53
54#if defined(STACK_SIZE) && STACK_SIZE < 16384
55#define BYTES STACK_SIZE
56#else
57#define BYTES 16384
58#endif
59
60main ()
61{
62  long long s[BYTES / 8];
63  long long d[BYTES / 8];
64  int i;
65
66  for (i = 1; i < 67108864 / BYTES; i++)
67    bcopy (s, d, BYTES);
68}
69