Mercurial > octave-nkf
diff src/jit-typeinfo.h @ 15019:ae3670d4df29
Update the execution engine's global mapping for external functions
* src/jit_typeinfo.cc: (octave_jit_print_double): Rename to
octave_jit_print_scalar
(jit_function::do_add_mapping): New function.
(jit_typeinfo::jit_typeinfo, jit_typeinfo::add_print): Add mappings.
(jit_typeinfo::do_insert_error_check): Rename builder argument.
* src/jit_typeinfo.h: (jit_function::add_mapping): New function.
(jit_function::do_add_mapping): New declaration.
(jit_typeinfo::add_print): Take function ptr as argument.
author | Max Brister <max@2bass.com> |
---|---|
date | Thu, 26 Jul 2012 10:40:26 -0500 |
parents | 005cb78e1dd1 |
children | bc32288f4a42 |
line wrap: on
line diff
--- a/src/jit-typeinfo.h Thu Jul 26 08:13:22 2012 -0700 +++ b/src/jit-typeinfo.h Thu Jul 26 10:40:26 2012 -0500 @@ -231,6 +231,12 @@ jit_function (const jit_function& fn); + template <typename T> + void add_mapping (llvm::ExecutionEngine *engine, T fn) + { + do_add_mapping (engine, reinterpret_cast<void *> (fn)); + } + bool valid (void) const { return llvm_function; } std::string name (void) const; @@ -289,6 +295,8 @@ const std::vector<jit_type *>& arguments (void) const { return args; } private: + void do_add_mapping (llvm::ExecutionEngine *engine, void *fn); + llvm::Module *module; llvm::Function *llvm_function; jit_type *mresult; @@ -533,7 +541,7 @@ llvm::Type *llvm_type); - void add_print (jit_type *ty); + void add_print (jit_type *ty, void *fptr); void add_binary_op (jit_type *ty, int op, int llvm_op);