Llvm 访问用于加载的函数参数寄存器
函数的创建方式如下:Llvm 访问用于加载的函数参数寄存器,llvm,llvm-c++-api,Llvm,Llvm C++ Api,函数的创建方式如下: llvm::FunctionType* FunctionTypePtr = llvm::FunctionType::get( returnTypePtr , types , false ); llvm::Function* llvmFunction = llvm::Function::Create(FunctionTypePtr, llvm::GlobalValue::ExternalLinkage,
llvm::FunctionType* FunctionTypePtr = llvm::FunctionType::get( returnTypePtr , types , false );
llvm::Function* llvmFunction = llvm::Function::Create(FunctionTypePtr,
llvm::GlobalValue::ExternalLinkage,
functionName,
llvmModule);
然后,通过向块中添加指令来创建函数体:
llvm::BasicBlock* entryBlock = llvm::BasicBlock::Create(llvmContext, "", llvmFunction);
llvm::IRBuilder<> builder(entryBlock);
我不知道如何/从何处获取函数参数的
地址
变量 您不应该加载任何内容。使用Function::arg_迭代器获取与参数对应的值
有关更多信息,请参阅(arg_开始/arg_结束)和
//where do i get address??
llvm::LoadInst* load = builder.CreateLoad(address, "read");