Hi, Stefan Israelsson Tampe <stefan.ita...@gmail.com> writes:
> #include "cfkn.h" > #define LOCAL_REF(i) fp[i] > #define LOCAL_SET(i,v) fp[i] = (v) > void cfkn3676(SCM *fp, SCM **spp) > { > /* setup of environment */ > SCM *objects, *free, program, *sp, sss[100]; > sp = sss; > program = fp[-1]; > objects = SCM_I_VECTOR_WELTS (SCM_PROGRAM_OBJTABLE (program)); > free = SCM_PROGRAM_FREE_VARIABLES(program); > /* compiled section */ > LCASE3666: > > > goto L3668; > LCASE3665: > sp++; *sp = LOCAL_REF(1); > sp++; *sp = SCM_I_MAKINUM(0); > sp-=2; if(!scm_is_eq(sp[1],sp[2])) goto L3669; > sp++; *sp = LOCAL_REF(2); [...] Comparing this to the VM’s bytecode interpreter should show the overhead incurred by instruction dispatch. Did you try to measure this? That’d be interesting. Thanks, Ludo’.