diff options
author | Peter Zotov <whitequark@whitequark.org> | 2013-11-05 11:56:20 +0000 |
---|---|---|
committer | Peter Zotov <whitequark@whitequark.org> | 2013-11-05 11:56:20 +0000 |
commit | c8ac229cc8349685117f68bc6f1da04f98015cd6 (patch) | |
tree | 89e3dbfa18e4add8b2b663f5cfd220f337f3f358 /bindings | |
parent | 150c95eab549e1d764eab7ed05b17fe09663fc6e (diff) | |
download | external_llvm-c8ac229cc8349685117f68bc6f1da04f98015cd6.zip external_llvm-c8ac229cc8349685117f68bc6f1da04f98015cd6.tar.gz external_llvm-c8ac229cc8349685117f68bc6f1da04f98015cd6.tar.bz2 |
[OCaml] (PR16318) Add missing argument to Llvm.const_intcast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194065 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/ocaml/llvm/llvm.ml | 3 | ||||
-rw-r--r-- | bindings/ocaml/llvm/llvm.mli | 10 | ||||
-rw-r--r-- | bindings/ocaml/llvm/llvm_ocaml.c | 6 |
3 files changed, 14 insertions, 5 deletions
diff --git a/bindings/ocaml/llvm/llvm.ml b/bindings/ocaml/llvm/llvm.ml index e5ffd59..1bf91f4 100644 --- a/bindings/ocaml/llvm/llvm.ml +++ b/bindings/ocaml/llvm/llvm.ml @@ -529,7 +529,8 @@ external const_trunc_or_bitcast : llvalue -> lltype -> llvalue = "LLVMConstTruncOrBitCast" external const_pointercast : llvalue -> lltype -> llvalue = "LLVMConstPointerCast" -external const_intcast : llvalue -> lltype -> llvalue = "LLVMConstIntCast" +external const_intcast : llvalue -> lltype -> is_signed:bool -> llvalue + = "llvm_const_intcast" external const_fpcast : llvalue -> lltype -> llvalue = "LLVMConstFPCast" external const_select : llvalue -> llvalue -> llvalue -> llvalue = "LLVMConstSelect" diff --git a/bindings/ocaml/llvm/llvm.mli b/bindings/ocaml/llvm/llvm.mli index 8d08c0a..f70fd60 100644 --- a/bindings/ocaml/llvm/llvm.mli +++ b/bindings/ocaml/llvm/llvm.mli @@ -1118,10 +1118,12 @@ val const_trunc_or_bitcast : llvalue -> lltype -> llvalue See the method [llvm::ConstantExpr::getPointerCast]. *) val const_pointercast : llvalue -> lltype -> llvalue -(** [const_intcast c ty] returns a constant zext, bitcast, or trunc for integer - -> integer casts of constant [c] to type [ty]. - See the method [llvm::ConstantExpr::getIntCast]. *) -val const_intcast : llvalue -> lltype -> llvalue +(** [const_intcast c ty ~is_signed] returns a constant sext/zext, bitcast, + or trunc for integer -> integer casts of constant [c] to type [ty]. + When converting a narrower value to a wider one, whether sext or zext + will be used is controlled by [is_signed]. + See the method [llvm::ConstantExpr::getIntegerCast]. *) +val const_intcast : llvalue -> lltype -> is_signed:bool -> llvalue (** [const_fpcast c ty] returns a constant fpext, bitcast, or fptrunc for fp -> fp casts of constant [c] to type [ty]. diff --git a/bindings/ocaml/llvm/llvm_ocaml.c b/bindings/ocaml/llvm/llvm_ocaml.c index 46c170b..e7ebde2 100644 --- a/bindings/ocaml/llvm/llvm_ocaml.c +++ b/bindings/ocaml/llvm/llvm_ocaml.c @@ -771,6 +771,12 @@ CAMLprim LLVMValueRef llvm_const_in_bounds_gep(LLVMValueRef ConstantVal, Wosize_val(Indices)); } +/* llvalue -> lltype -> is_signed:bool -> llvalue */ +CAMLprim LLVMValueRef llvm_const_intcast(LLVMValueRef CV, LLVMTypeRef T, + value IsSigned) { + return LLVMConstIntCast(CV, T, Bool_val(IsSigned)); +} + /* llvalue -> int array -> llvalue */ CAMLprim LLVMValueRef llvm_const_extractvalue(LLVMValueRef Aggregate, value Indices) { |