#include "blib.h"
#define LOOP 500000000
__asm(".p2align 6");
static void xnop1(void) { }
__asm(".p2align 6");
static void xnop2(void) { }
__asm(".p2align 6");
static void xnop(void (*func)(void)) { func(); }
int
main(int ac, char **av)
{
int i;
printf("call nop() function through function pointer in loop\n");
start_timing();
for (i = 0; i < LOOP; ++i) {
xnop(xnop1);
xnop(xnop1);
}
stop_timing(LOOP * 2, "call3/nop1-1");
start_timing();
for (i = 0; i < LOOP; ++i) {
xnop(xnop1);
xnop(xnop2);
}
stop_timing(LOOP * 2, "call3/nop1-2");
start_timing();
for (i = 0; i < LOOP; ++i) {
xnop(xnop2);
xnop(xnop2);
}
stop_timing(LOOP * 2, "call3/nop2-2");
return(0);
}