vmengine header
add codegen.c and vmengine.h
code generation utility functions