diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-07-14 16:34:58 +0300 | 
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-07-14 16:34:58 +0300 | 
| commit | 679aefb63d364b2bc73c13b75fe5bee407822892 (patch) | |
| tree | e7c8631aeda43d40f1d44e603f27a76d9e129f92 /src | |
| parent | 4b3a6a072620b0b0a5ddc92ba615a4fea9964145 (diff) | |
| download | posthaste-679aefb63d364b2bc73c13b75fe5bee407822892.tar.gz posthaste-679aefb63d364b2bc73c13b75fe5bee407822892.zip | |
update ejit
Diffstat (limited to 'src')
| -rw-r--r-- | src/lower.c | 43 | 
1 files changed, 22 insertions, 21 deletions
| diff --git a/src/lower.c b/src/lower.c index 15ce6d1..5e0e41e 100644 --- a/src/lower.c +++ b/src/lower.c @@ -220,8 +220,8 @@ static long escape_store_year(size_t argc, const struct ejit_arg args[argc])  	unsigned month = 0;  	unsigned day = 0; -	date_split(args[0].ul, NULL, &month, &day); -	return date_from_numbers(args[1].ul, month, day); +	date_split(args[0].u64, NULL, &month, &day); +	return date_from_numbers(args[1].u64, month, day);  }  static void lower_store_year(struct fn *f, struct ast *base, struct ast* r) @@ -245,8 +245,8 @@ static long escape_store_month(size_t argc, const struct ejit_arg args[argc])  	unsigned year = 0;  	unsigned day = 0; -	date_split(args[0].ul, &year, NULL, &day); -	return date_from_numbers(year, args[1].ul, day); +	date_split(args[0].u64, &year, NULL, &day); +	return date_from_numbers(year, args[1].u64, day);  }  static void lower_store_month(struct fn *f, struct ast *base, struct ast* r) @@ -270,8 +270,8 @@ static long escape_store_day(size_t argc, const struct ejit_arg args[argc])  	unsigned year = 0;  	unsigned month = 0; -	date_split(args[0].ul, &year, &month, NULL); -	return date_from_numbers(year, month, args[1].ul); +	date_split(args[0].u64, &year, &month, NULL); +	return date_from_numbers(year, month, args[1].u64);  }  static void lower_store_day(struct fn *f, struct ast *base, struct ast* r) @@ -360,7 +360,7 @@ static void lower_return(struct fn *f, struct ast *n)  {  	struct ast *expr = return_expr(n);  	lower(f, expr); -	ejit_ret(f->f, reg(expr)); +	ejit_retr(f->f, reg(expr));  	n->l = null_loc();  } @@ -369,7 +369,7 @@ static long escape_load_weeknum(size_t argc, const struct ejit_arg args[argc])  	assert(argc == 1);  	assert(args[0].type == ejit_type_from(TYPE_DATE)); -	struct tm time = tm_from_date(args[0].ul); +	struct tm time = tm_from_date(args[0].u64);  	return time.tm_yday / 7;  } @@ -389,7 +389,7 @@ static long escape_load_weekday(size_t argc, const struct ejit_arg args[argc])  	assert(argc == 1);  	assert(args[0].type == ejit_type_from(TYPE_DATE)); -	struct tm time = tm_from_date(args[0].ul); +	struct tm time = tm_from_date(args[0].u64);  	return time.tm_wday;  } @@ -410,7 +410,7 @@ static long escape_load_year(size_t argc, const struct ejit_arg args[argc])  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	unsigned year = 0; -	date_split(args[0].ul, &year, NULL, NULL); +	date_split(args[0].u64, &year, NULL, NULL);  	return year;  } @@ -431,7 +431,7 @@ static long escape_load_month(size_t argc, const struct ejit_arg args[argc])  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	unsigned month = 0; -	date_split(args[0].ul, NULL, &month, NULL); +	date_split(args[0].u64, NULL, &month, NULL);  	return month;  } @@ -452,7 +452,7 @@ static long escape_load_day(size_t argc, const struct ejit_arg args[argc])  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	unsigned day = 0; -	date_split(args[0].ul, NULL, NULL, &day); +	date_split(args[0].u64, NULL, NULL, &day);  	return day;  } @@ -622,7 +622,7 @@ static long escape_print_date(size_t argc, const struct ejit_arg args[argc])  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	char str[11] = {0}; -	date_to_string(str, args[0].ul); +	date_to_string(str, args[0].u64);  	printf("%s", str);  	return 0;  } @@ -716,7 +716,7 @@ static long escape_date_add(size_t argc, const struct ejit_arg args[argc])  	assert(argc == 2);  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	assert(args[1].type == ejit_type_from(TYPE_INT)); -	return date_add(args[0].ul, args[1].l); +	return date_add(args[0].u64, args[1].l);  }  static void lower_date_add(struct fn *f, struct ast *n) @@ -752,7 +752,7 @@ static long escape_date_sub(size_t argc, const struct ejit_arg args[argc])  	assert(argc == 2);  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	assert(args[1].type == ejit_type_from(TYPE_INT)); -	return date_sub(args[0].ul, args[1].l); +	return date_sub(args[0].u64, args[1].l);  }  static void lower_date_sub(struct fn *f, struct ast *n) @@ -781,8 +781,8 @@ static long escape_date_diff(size_t argc, const struct ejit_arg args[argc])  	assert(args[0].type == ejit_type_from(TYPE_DATE));  	assert(args[1].type == ejit_type_from(TYPE_DATE)); -	struct tm tm0 = tm_from_date((ph_date_t)args[0].ul); -	struct tm tm1 = tm_from_date((ph_date_t)args[1].ul); +	struct tm tm0 = tm_from_date((ph_date_t)args[0].u64); +	struct tm tm1 = tm_from_date((ph_date_t)args[1].u64);  	time_t t0 = mktime(&tm0);  	time_t t1 = mktime(&tm1); @@ -995,9 +995,10 @@ static void lower_proc_def(struct ast *d)  	lower_list(f, proc_body(d));  	if (d->t == TYPE_VOID) -		ejit_ret_i(f->f, 0); +		ejit_reti(f->f, 0); -	ejit_compile_func(f->f, f->max_sp + 1, 0); +	/* ph_date_t is inherently 64bit so we can't really use 32bit JIT */ +	ejit_select_compile_func(f->f, f->max_sp + 1, 0, true, JIT);  }  static void lower_func_def(struct ast *d) @@ -1012,7 +1013,7 @@ static void lower_func_def(struct ast *d)  	lower_list(f, func_vars(d));  	lower_list(f, func_body(d)); -	ejit_compile_func(f->f, f->max_sp + 1, 0); +	ejit_select_compile_func(f->f, f->max_sp + 1, 0, true, JIT);  }  struct fn *find_fn(size_t idx) @@ -1063,7 +1064,7 @@ int lower_ast(struct ast *tree)  		}  	} -	ejit_compile_func(f->f, f->max_sp + 1, 0); +	ejit_select_compile_func(f->f, f->max_sp + 1, 0, true, JIT);  	return 0;  } | 
