diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/ejit/ejit.h | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/include/ejit/ejit.h b/include/ejit/ejit.h index e15550d..5152d8d 100644 --- a/include/ejit/ejit.h +++ b/include/ejit/ejit.h @@ -166,9 +166,9 @@ struct ejit_func;  struct ejit_func *ejit_create_func(enum ejit_type rtype, size_t argc,                                     const struct ejit_operand args[argc]); -void ejit_compile_func(struct ejit_func *f, size_t gpr, size_t fpr); +void ejit_compile_func(struct ejit_func *f, size_t gpr, size_t fpr, bool use_64);  void ejit_select_compile_func(struct ejit_func *f, size_t gpr, size_t fpr, -                              bool try_jit); +                              bool use_64, bool try_jit);  int64_t ejit_run_func(struct ejit_func *f, size_t argc,                     struct ejit_arg args[argc]); @@ -270,6 +270,17 @@ static inline struct ejit_arg ejit_double(double a)  #define EJIT_AUTO(x) \  	EJIT_ARG(x, typeof(x)) +static inline ejit_use64(struct ejit_arg a) +{ +	if (a.type == EJIT_INT64 || a.type == EJIT_UINT64) +		return true; + +	return false; +} + +#define EJIT_USE64(t) \ +	ejit_use64(EJIT_ARG(0, t)) +  typedef long (*ejit_escape_t)(size_t argc, const struct ejit_arg args[argc]);  typedef double (*ejit_escape_f_t)(size_t argc,                                    const struct ejit_arg args[argc]);  | 
