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