On Wed, October 20, 2010 12:23 am, Steven Rostedt wrote:
Due to not actually having a sane key type the above is not easy to
implement, but I tried:
#define _SWITCH_POINT(x)\
({ \
__label__ jl_enabled; \
bool ret = true; \
JUMP_LABEL(x, jl_enabled); \
ret = false; \
jl_enabled: \
ret; })
#define SWITCH_POINT(x) unlikely(_SWITCH_POINT(x))
#define COND_STMT(key, stmt) \
do { \
if (SWITCH_POINT(key)) { \
stmt; \
} \
} while (0)
and that's still generating these double jumps.
--