#define cl_va_end(a) \
va_end(a[0].args)
#define check_arg(n) \
- do { if (narg != (n)) FEwrong_num_arguments_anonym();} while(0)
+ do { if (ecl_unlikely(narg != (n))) FEwrong_num_arguments_anonym();} while(0)
/***********************
* RETURN VALUES STACK
#define ECL_STACK_INDEX(env) ((env)->stack_top - (env)->stack)
-#define ECL_STACK_PUSH(the_env,o) do { \
- const cl_env_ptr __env = (the_env); \
- cl_object *__new_top = __env->stack_top; \
- if (__new_top >= __env->stack_limit) { \
- __new_top = ecl_stack_grow(__env); \
- } \
- *__new_top = (o); \
+#define ECL_STACK_PUSH(the_env,o) do { \
+ const cl_env_ptr __env = (the_env); \
+ cl_object *__new_top = __env->stack_top; \
+ if (ecl_unlikely(__new_top >= __env->stack_limit)) { \
+ __new_top = ecl_stack_grow(__env); \
+ } \
+ *__new_top = (o); \
__env->stack_top = __new_top+1; } while (0)
#define ECL_STACK_POP_UNSAFE(env) *(--((env)->stack_top))
#define ECL_STACK_SET_INDEX(the_env,ndx) do { \
const cl_env_ptr __env = (the_env); \
cl_object *__new_top = __env->stack + (ndx); \
- if (__new_top > __env->stack_top) \
+ if (ecl_unlikely(__new_top > __env->stack_top)) \
FEstack_advance(); \
__env->stack_top = __new_top; } while (0)
#define ECL_STACK_POP_N(the_env,n) do { \
const cl_env_ptr __env = (the_env); \
cl_object *__new_top = __env->stack_top - (n); \
- if (__new_top < __env->stack) FEstack_underflow(); \
+ if (ecl_unlikely(__new_top < __env->stack)) \
+ FEstack_underflow(); \
__env->stack_top = __new_top; } while (0)
#define ECL_STACK_POP_N_UNSAFE(the_env,n) ((the_env)->stack_top -= (n))
const cl_env_ptr __env = (the_env) ; \
cl_index __aux = (n); \
cl_object *__new_top = __env->stack_top; \
- while ((__env->stack_limit - __new_top) <= __aux) { \
+ while (ecl_unlikely((__env->stack_limit - __new_top) <= __aux)) { \
__new_top = ecl_stack_grow(__env); \
} \
__env->stack_top = __new_top + __aux; } while (0)