#include main(int ac, char **av) { unsigned int t0, t1, tmin; int i; tmin = ~0; for (i = 0; i < 100000; ++i) { asm volatile("mftb %0; li %1,10000; mtctr %1; bdnz .; mftb %1" : "=r" (t0), "=r" (t1) : : "ctr"); t1 -= t0; if (t1 < tmin) tmin = t1; } printf("%d ticks for 10000 loops\n", t1); printf("Clock = %.3fGHz\n", 1000.0 / t1); exit(0); }