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’.


Reply via email to