static ejsval DIBuilder_prototype_createFunction (ejsval env, ejsval _this, int argc, ejsval *args) { REQ_LLVM_DISCOPE_ARG(0, discope); REQ_UTF8_ARG(1, name); REQ_UTF8_ARG(2, linkageName); REQ_LLVM_DIFILE_ARG(3, file); REQ_INT_ARG(4, line_no); REQ_BOOL_ARG(5, isLocalToUnit); REQ_BOOL_ARG(6, isDefinition); REQ_INT_ARG(7, scopeLine); REQ_INT_ARG(8, flags); REQ_BOOL_ARG(9, isOptimized); REQ_LLVM_FUN_ARG(10, fn); DIBuilder* dib = ((DIBuilder*)EJSVAL_TO_OBJECT(_this)); return DISubprogram_new(dib->llvm_dibuilder->createFunction (discope, name, linkageName, file, line_no, createDIFunctionType(dib->llvm_dibuilder, file, fn->getFunctionType()), isLocalToUnit, isDefinition, scopeLine, flags, isOptimized, fn)); }
static ejsval BasicBlock_impl (ejsval env, ejsval _this, int argc, ejsval *args) { if (EJSVAL_IS_UNDEFINED(_this)) { // called as a function EJS_NOT_IMPLEMENTED(); } else { BasicBlock* bb = ((BasicBlock*)EJSVAL_TO_OBJECT(_this)); REQ_UTF8_ARG(0, name); REQ_LLVM_FUN_ARG(1, fun); bb->llvm_bb = llvm::BasicBlock::Create(llvm::getGlobalContext(), name, fun); free (name); return _this; } }