mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Add C bindings for extractvalue and insertvalue. Patch by Frits van Bommel!
llvm-svn: 58650
This commit is contained in:
parent
999398c004
commit
3258c45d0f
@ -371,6 +371,11 @@ LLVMValueRef LLVMConstInsertElement(LLVMValueRef VectorConstant,
|
|||||||
LLVMValueRef LLVMConstShuffleVector(LLVMValueRef VectorAConstant,
|
LLVMValueRef LLVMConstShuffleVector(LLVMValueRef VectorAConstant,
|
||||||
LLVMValueRef VectorBConstant,
|
LLVMValueRef VectorBConstant,
|
||||||
LLVMValueRef MaskConstant);
|
LLVMValueRef MaskConstant);
|
||||||
|
LLVMValueRef LLVMConstExtractValue(LLVMValueRef AggConstant, unsigned *IdxList,
|
||||||
|
unsigned NumIdx);
|
||||||
|
LLVMValueRef LLVMConstInsertValue(LLVMValueRef AggConstant,
|
||||||
|
LLVMValueRef ElementValueConstant,
|
||||||
|
unsigned *IdxList, unsigned NumIdx);
|
||||||
|
|
||||||
/* Operations on global variables, functions, and aliases (globals) */
|
/* Operations on global variables, functions, and aliases (globals) */
|
||||||
LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global);
|
LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global);
|
||||||
@ -605,6 +610,11 @@ LLVMValueRef LLVMBuildInsertElement(LLVMBuilderRef, LLVMValueRef VecVal,
|
|||||||
LLVMValueRef LLVMBuildShuffleVector(LLVMBuilderRef, LLVMValueRef V1,
|
LLVMValueRef LLVMBuildShuffleVector(LLVMBuilderRef, LLVMValueRef V1,
|
||||||
LLVMValueRef V2, LLVMValueRef Mask,
|
LLVMValueRef V2, LLVMValueRef Mask,
|
||||||
const char *Name);
|
const char *Name);
|
||||||
|
LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef, LLVMValueRef AggVal,
|
||||||
|
unsigned Index, const char *Name);
|
||||||
|
LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef, LLVMValueRef AggVal,
|
||||||
|
LLVMValueRef EltVal, unsigned Index,
|
||||||
|
const char *Name);
|
||||||
|
|
||||||
|
|
||||||
/*===-- Module providers --------------------------------------------------===*/
|
/*===-- Module providers --------------------------------------------------===*/
|
||||||
|
@ -541,6 +541,20 @@ LLVMValueRef LLVMConstShuffleVector(LLVMValueRef VectorAConstant,
|
|||||||
unwrap<Constant>(MaskConstant)));
|
unwrap<Constant>(MaskConstant)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMConstExtractValue(LLVMValueRef AggConstant, unsigned *IdxList,
|
||||||
|
unsigned NumIdx) {
|
||||||
|
return wrap(ConstantExpr::getExtractValue(unwrap<Constant>(AggConstant),
|
||||||
|
IdxList, NumIdx));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMConstInsertValue(LLVMValueRef AggConstant,
|
||||||
|
LLVMValueRef ElementValueConstant,
|
||||||
|
unsigned *IdxList, unsigned NumIdx) {
|
||||||
|
return wrap(ConstantExpr::getInsertValue(unwrap<Constant>(AggConstant),
|
||||||
|
unwrap<Constant>(ElementValueConstant),
|
||||||
|
IdxList, NumIdx));
|
||||||
|
}
|
||||||
|
|
||||||
/*--.. Operations on global variables, functions, and aliases (globals) ....--*/
|
/*--.. Operations on global variables, functions, and aliases (globals) ....--*/
|
||||||
|
|
||||||
LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global) {
|
LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global) {
|
||||||
@ -1326,6 +1340,18 @@ LLVMValueRef LLVMBuildShuffleVector(LLVMBuilderRef B, LLVMValueRef V1,
|
|||||||
unwrap(Mask), Name));
|
unwrap(Mask), Name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef B, LLVMValueRef AggVal,
|
||||||
|
unsigned Index, const char *Name) {
|
||||||
|
return wrap(unwrap(B)->CreateExtractValue(unwrap(AggVal), Index, Name));
|
||||||
|
}
|
||||||
|
|
||||||
|
LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef B, LLVMValueRef AggVal,
|
||||||
|
LLVMValueRef EltVal, unsigned Index,
|
||||||
|
const char *Name) {
|
||||||
|
return wrap(unwrap(B)->CreateInsertValue(unwrap(AggVal), unwrap(EltVal),
|
||||||
|
Index, Name));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===-- Module providers --------------------------------------------------===*/
|
/*===-- Module providers --------------------------------------------------===*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user