xace: ricer tuning for XaceHook

gcc doesn't want to hoist the check for XaceHooks[hook] != NULL above the
varargs code for some reason, so do it ourselves.

Before:
40000000 trep @   0.0010 msec (1050420.2/sec): PutImage 10x10 square
60000000 trep @   0.0005 msec (1921147.6/sec): ShmPutImage 10x10 square

After:
40000000 trep @   0.0009 msec (1087458.5/sec): PutImage 10x10 square
60000000 trep @   0.0005 msec (2012238.6/sec): ShmPutImage 10x10 square

Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2011-12-13 21:00:05 -05:00
parent a4553019a1
commit 11977fab54

View File

@ -101,6 +101,10 @@ int XaceHook(int hook, ...)
} u; } u;
int *prv = NULL; /* points to return value from callback */ int *prv = NULL; /* points to return value from callback */
va_list ap; /* argument list */ va_list ap; /* argument list */
if (!XaceHooks[hook])
return Success;
va_start(ap, hook); va_start(ap, hook);
/* Marshal arguments for passing to callback. /* Marshal arguments for passing to callback.