void bcopy1 (s, d, c) long long *s; long long *d; int c; { int i; c = c / 8; for (i = 0; i < c; i++) d[i] = s[i]; } void bcopy2 (s, d, c) long *s; long *d; int c; { int i; c = c / 4; for (i = 0; i < c; i++) d[i] = s[i]; } void bcopy3 (s, d, c) char *s; char *d; int c; { long long z0, z1; int r = d - s; int i; c /= 16; z0 = *((long long *) s); s += 8; z1 = *((long long *) s); s += 8; for (i = 0; i < c; i++) { *(long long *)(s + r) = z0; z0 = *((long long *) s); s += 8; *(long long *)(s + r) = z1; z1 = *((long long *) s); s += 8; } } #if defined(STACK_SIZE) && STACK_SIZE < 16384 #define BYTES STACK_SIZE #else #define BYTES 16384 #endif main () { long long s[BYTES / 8]; long long d[BYTES / 8]; int i; for (i = 1; i < 67108864 / BYTES; i++) bcopy (s, d, BYTES); }