Add InlineAsm
This commit is contained in:
parent
6133b643d8
commit
507ff73061
4 changed files with 71 additions and 1 deletions
|
|
@ -642,7 +642,6 @@ _wrap_obj2none(LLVMViewFunctionCFGOnly, LLVMValueRef)
|
|||
_wrap_objenum2none(LLVMAddFunctionAttr, LLVMValueRef, LLVMAttribute)
|
||||
_wrap_objenum2none(LLVMRemoveFunctionAttr, LLVMValueRef, LLVMAttribute)
|
||||
|
||||
|
||||
static PyObject *
|
||||
_wLLVMVerifyFunction(PyObject *self, PyObject *args)
|
||||
{
|
||||
|
|
@ -654,6 +653,33 @@ _wLLVMVerifyFunction(PyObject *self, PyObject *args)
|
|||
LLVMPY_CATCH_ALL
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
_wLLVMGetFunctionFromInlineAsm(PyObject *self, PyObject *args)
|
||||
{
|
||||
LLVMPY_TRY
|
||||
PyObject *pycapFuncType;
|
||||
const char *inlineAsm = NULL;
|
||||
const char *constrains = NULL;
|
||||
int hasSideEffect;
|
||||
int isAlignStack;
|
||||
int asmDialect;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "Ossiii", &pycapFuncType, &inlineAsm,
|
||||
&constrains, &hasSideEffect,
|
||||
&isAlignStack, &asmDialect))
|
||||
return NULL;
|
||||
|
||||
|
||||
LLVMTypeRef funcType = pycap_get<LLVMTypeRef>(pycapFuncType);
|
||||
LLVMValueRef inlineAsmRef;
|
||||
inlineAsmRef = LLVMGetFunctionFromInlineAsm(funcType, inlineAsm, constrains,
|
||||
hasSideEffect, isAlignStack,
|
||||
asmDialect);
|
||||
|
||||
return pycap_new<LLVMValueRef>(inlineAsmRef);
|
||||
LLVMPY_CATCH_ALL
|
||||
}
|
||||
|
||||
|
||||
/*===-- Arguments --------------------------------------------------------===*/
|
||||
|
||||
|
|
@ -747,6 +773,7 @@ _wrap_obj2obj(LLVMIsTailCall, LLVMValueRef, int)
|
|||
_wrap_objint2none(LLVMSetTailCall, LLVMValueRef)
|
||||
_wrap_obj2obj(LLVMInstGetCalledFunction, LLVMValueRef, LLVMValueRef)
|
||||
|
||||
|
||||
/*===-- PHI Nodes --------------------------------------------------------===*/
|
||||
|
||||
static void LLVMAddIncoming1(LLVMValueRef PhiNode, LLVMValueRef IncomingValue, LLVMBasicBlockRef IncomingBlock)
|
||||
|
|
@ -1776,6 +1803,7 @@ static PyMethodDef core_methods[] = {
|
|||
_method( LLVMViewFunctionCFGOnly )
|
||||
_method( LLVMAddFunctionAttr )
|
||||
_method( LLVMRemoveFunctionAttr )
|
||||
_method( LLVMGetFunctionFromInlineAsm )
|
||||
|
||||
/* Arguments */
|
||||
_method( LLVMCountParams )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue