codegen: support code3