diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-23 02:47:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-23 02:47:22 +0000 |
commit | 5400570097a25f05694d451afed7f949281b789e (patch) | |
tree | 50ee8812e81014733fcc07c6fc443c5cf654b856 | |
parent | 79b967bd9fed0a3147d704ce269af6cc26aff391 (diff) |
add a 'LLVMConstIntOfArbitraryPrecision' api to the C api,
patch by Greg Pfeil!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119989 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm-c/Core.h | 3 | ||||
-rw-r--r-- | lib/VMCore/Core.cpp | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h index d0fe536d5c..433958323f 100644 --- a/include/llvm-c/Core.h +++ b/include/llvm-c/Core.h @@ -547,6 +547,9 @@ LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count); /* Operations on scalar constants */ LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N, LLVMBool SignExtend); +LLVMValueRef LLVMConstIntOfArbitraryPrecision(LLVMTypeRef IntTy, + unsigned NumWords, + const uint64_t Words[]); LLVMValueRef LLVMConstIntOfString(LLVMTypeRef IntTy, const char *Text, uint8_t Radix); LLVMValueRef LLVMConstIntOfStringAndSize(LLVMTypeRef IntTy, const char *Text, diff --git a/lib/VMCore/Core.cpp b/lib/VMCore/Core.cpp index b2be64cc21..eb0af30a2f 100644 --- a/lib/VMCore/Core.cpp +++ b/lib/VMCore/Core.cpp @@ -547,6 +547,14 @@ LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N, return wrap(ConstantInt::get(unwrap<IntegerType>(IntTy), N, SignExtend != 0)); } +LLVMValueRef LLVMConstIntOfArbitraryPrecision(LLVMTypeRef IntTy, + unsigned NumWords, + const uint64_t Words[]) { + IntegerType *Ty = unwrap<IntegerType>(IntTy); + return wrap(ConstantInt::get(Ty->getContext(), + APInt(Ty->getBitWidth(), NumWords, Words))); +} + LLVMValueRef LLVMConstIntOfString(LLVMTypeRef IntTy, const char Str[], uint8_t Radix) { return wrap(ConstantInt::get(unwrap<IntegerType>(IntTy), StringRef(Str), |