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 Constant_getBoolValue (ejsval env, ejsval _this, int argc, ejsval *args) { REQ_BOOL_ARG (0, b); return Value_new (llvm::Constant::getIntegerValue(llvm::Type::getInt8Ty(llvm::getGlobalContext()), llvm::APInt(8, b?1:0))); }
ejsval LandingPad_prototype_setCleanup(ejsval env, ejsval _this, int argc, ejsval *args) { LandingPad *landing_pad = ((LandingPad*)EJSVAL_TO_OBJECT(_this)); REQ_BOOL_ARG(0, flag); landing_pad->llvm_landing_pad->setCleanup(flag); return _ejs_undefined; }
ejsval Module_prototype_getGlobalVariable(ejsval env, ejsval _this, int argc, ejsval *args) { Module *module = ((Module*)EJSVAL_TO_OBJECT(_this)); REQ_UTF8_ARG(0, name); REQ_BOOL_ARG(1, allowInternal); ejsval rv = GlobalVariable_new (module->llvm_module->getGlobalVariable(name, allowInternal)); return rv; }
static ejsval DIBuilder_prototype_createCompileUnit (ejsval env, ejsval _this, int argc, ejsval *args) { REQ_UTF8_ARG(0, file); REQ_UTF8_ARG(1, dir); REQ_UTF8_ARG(2, producer); REQ_BOOL_ARG(3, isOptimized); REQ_UTF8_ARG(4, flags); REQ_INT_ARG(5, runtimeVersion); DIBuilder* dib = ((DIBuilder*)EJSVAL_TO_OBJECT(_this)); return DIDescriptor_new(dib->llvm_dibuilder->createCompileUnit(llvm::dwarf::DW_LANG_C99, file, dir, producer, isOptimized, flags, runtimeVersion)); }
static EJS_NATIVE_FUNC(GlobalVariable_impl) { if (EJSVAL_IS_UNDEFINED(newTarget)) { // called as a function EJS_NOT_IMPLEMENTED(); } else { ejsval O = OrdinaryCreateFromConstructor(newTarget, _ejs_GlobalVariable_prototype, &_ejs_GlobalVariable_specops); *_this = O; GlobalVariable* gv = (GlobalVariable*)EJSVAL_TO_OBJECT(O); REQ_LLVM_MODULE_ARG(0, module); REQ_LLVM_TYPE_ARG(1, type); REQ_UTF8_ARG(2, name); REQ_NULLABLE_LLVM_CONST_ARG(3, init); REQ_BOOL_ARG(4, visible); gv->llvm_global = new ::llvm::GlobalVariable(*module, type, false, visible ? llvm::GlobalValue::ExternalLinkage : llvm::GlobalValue::InternalLinkage, init, name); return *_this; } }