本文整理汇总了C++中X86Compiler::call方法的典型用法代码示例。如果您正苦于以下问题:C++ X86Compiler::call方法的具体用法?C++ X86Compiler::call怎么用?C++ X86Compiler::call使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类X86Compiler
的用法示例。
在下文中一共展示了X86Compiler::call方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: compile
virtual void compile(X86Compiler& c)
{
c.newFunc(kX86FuncConvDefault, FuncBuilder1<int, int>());
c.getFunc()->setHint(kFuncHintNaked, true);
// Call a function.
GpVar address(c.newGpVar());
GpVar var(c.getGpArg(0));
c.mov(address, imm((sysint_t)(void*)calledFunc));
X86CompilerFuncCall* ctx;
ctx = c.call(address);
ctx->setPrototype(kX86FuncConvCompatFastCall, FuncBuilder1<int, int>());
ctx->setArgument(0, var);
ctx->setReturn(var);
ctx = c.call(address);
ctx->setPrototype(kX86FuncConvCompatFastCall, FuncBuilder1<int, int>());
ctx->setArgument(0, var);
ctx->setReturn(var);
c.ret(var);
c.endFunc();
}
示例2: generateSingleArgCall
void CompiledExpression::generateSingleArgCall(X86Compiler& c, X86XmmVar& dest, X86XmmVar& arg, double (*function)(double)) {
X86GpVar fn(c, kVarTypeIntPtr);
c.mov(fn, imm_ptr((void*) function));
X86CallNode* call = c.call(fn, kFuncConvHost, FuncBuilder1<double, double>());
call->setArg(0, arg);
call->setRet(0, dest);
}