diff src/TEMPLATE-INST/Array-jit.cc @ 15014:094bc0a145a1

Take into account different calling conventions * src/TEMPLATE-INST/Array-jit.cc: Instantiate jit_function instead of jit_operation::overload. * src/pt-jit.cc: New test cases. (operator<<): New overload. (jit_type::jit_type): Initialize new fields. (jit_function::jit_function, jit_function::name, jit_function::new_block, jit_function::call, jit_function::argument, jit_function::do_return, jit_typeinfo::create_int, jit_typeinfo::intN): New function. (jit_operation::add_overload, jit_typeinfo::add_print, jit_typeinfo::add_binary_op, jit_typeinfo::add_binary_icmp, jit_typeinfo::add_binary_fcmp, jit_typeinfo::create_function, jit_typeinfo::create_identity, jit_typeinfo::register_intrinsic, jit_typeinfo::mirror_binary): Use jit_function. (jit_operation::overload): Renamed from get_overload and use jit_function. (jit_typeinfo::initialize): Do not assign to instance. (jit_typeinfo::jit_typeinfo): Assign to instance and deal with calling conventions using jit_function. (jit_typeinfo::wrap_complex, jit_convert::convert_llvm::create_call): Removed function. (jit_call::infer): Call result instead of get_result. (jit_convert::convert_llvm::visit): Use jit_function and jit_function::call. * src/pt-jit.h (operator<<): New declaration. (jit_convention::type): New enumeration. (jit_type::jit_type): Move implementation to src/pt-jit.cc. (jit_type::sret, jit_type::mark_sret, jit_type::pointer_arg, jit_type::mark_pointer_arg, jit_type::pack, jit_type::set_pack, jit_type::unpack, jit_type::set_unpack, jit_type::packed_type, jit_type::set_packed_type): New functions. (ASSIGN_ARG, JIT_EXPAND): New convenience macros. (jit_function): New class. (jit_operation::overload): Removed class. (jit_operation::add_overload): Accept a jit_function instead of a jit_operation::overload. (jit_operation::result): Rename from jit_operation::get_result. (jit_operation::overload): Rename from jit_operation::get_overload. (jit_operation::add_overload): Remove several overloads. (jit_typeinfo::get_grab, jit_typeinfo::get_release, jit_typeinfo::cast, jit_typeinfo::do_cast, jit_typeinfo::mirror_binary, jit_call::overload, jit_call::needs_release, jit_extract_argument::overload, jit_store_argument::overload): Use jit_function (jit_typeinfo::add_print): Remove unneeded parameter. (jit_typeinfo::create_function): Use new parameters. (jit_typeinfo::pack_complex, jit_typeinfo::unpack_complex): Make static. (jit_typeinfo::intN, jit_typeinfo::create_int): New declarations. (jit_call::jit_call): Use rename parameter. (jit_call::operation): Rename from jit_call::function. (jit_call::can_error): overload ().can_error is now a function. (jit_call::print): Use moperation instead of mfunction. (jit_convert::create_call): Removed function and declarations.
author Max Brister <max@2bass.com>
date Wed, 25 Jul 2012 06:40:15 -0500
parents fd8d1a616be1
children
line wrap: on
line diff
--- a/src/TEMPLATE-INST/Array-jit.cc	Wed Jul 25 16:48:10 2012 +0100
+++ b/src/TEMPLATE-INST/Array-jit.cc	Wed Jul 25 06:40:15 2012 -0500
@@ -33,8 +33,8 @@
 
 #include "pt-jit.h"
 
-NO_INSTANTIATE_ARRAY_SORT (jit_operation::overload);
+NO_INSTANTIATE_ARRAY_SORT (jit_function);
 
-INSTANTIATE_ARRAY (jit_operation::overload, OCTINTERP_API);
+INSTANTIATE_ARRAY (jit_function, OCTINTERP_API);
 
 #endif